rkljw há 1 mês atrás
pai
commit
dc06772953
1 ficheiros alterados com 98 adições e 0 exclusões
  1. 98 0
      app/JsonRpc/FormService.php

+ 98 - 0
app/JsonRpc/FormService.php

@@ -44,6 +44,7 @@ class FormService implements FormServiceInterface
                     'is_check' => 1,
                     'admin_display' => 1,
                     'home_display' => 1,
+                    'disable_del' => 1,
                 ]);
  
             return Result::success('添加成功');
@@ -150,4 +151,101 @@ class FormService implements FormServiceInterface
         GlobalTable::where('id', $data['id'])->delete();
         return Result::success('删除成功');
     }
+    /**
+     * 获取表单字段列表
+     * @param array $data
+     * @return array
+     */
+    public function getGlobalTableFieldList(array $data): array
+    {
+        $globalTableField = GlobalTableField::where('table_id',$data['table_id'])->orderBy("sort","asc")->get();
+        return Result::success($globalTableField);
+    }
+    /**
+     * 获取表单字段
+     * @param array $data
+     * @return array    
+     */
+    public function getGlobalTableField(array $data): array
+    {
+        $globalTableField = GlobalTableField::where('id',$data['id'])->first();
+        return Result::success($globalTableField);
+    }
+    /**
+     * 添加表单字段
+     * @param array $data
+     * @return array
+     * @throws \Throwable
+     */
+    public function addGlobalTableField(array $data): array
+    {
+        $globalTable = GlobalTable::where('id',$data['table_id'])->first(); 
+        if(empty($globalTable)){
+            return Result::error('表单不存在');     
+        }
+        //检查是否已存在相同名称的记录
+        $globalTableField = GlobalTableField::where(['table_id'=>$data['table_id'],'field_name'=>$data['field_name']])->first();    
+        if(!empty($globalTableField)){
+            return Result::error('字段已存在');
+        }
+        //给global库的表添加字段
+        Db::connection('global')->statement("ALTER TABLE `{$globalTable->table}` ADD COLUMN `{$data['field_name']}` {$data['field_type']}({$data['length']})"); 
+        //给GlobalTableField表添加数据
+        GlobalTableField::create($data);
+        return Result::success('添加成功');
+    }
+    /**
+     * 修改表单字段
+     * @param array $data
+     * @return array
+     * @throws \Throwable
+     */
+    public function upGlobalTableField(array $data): array
+    {
+        $globalTable = GlobalTable::where('id',$data['table_id'])->first(); 
+        if(empty($globalTable)){
+            return Result::error('表单不存在');
+        }
+        //检查是否已存在相同名称的记录
+        $globalTableField = GlobalTableField::where(['table_id'=>$data['table_id'],'field_name'=>$data['field_name']])->first();
+        if(!empty($globalTableField) && $globalTableField->id != $data['id']){
+            return Result::error('字段已存在');
+        }
+        //给global库的表修改字段
+        Db::connection('global')->statement("ALTER TABLE `{$globalTable->table}` CHANGE COLUMN `{$data['field_name']}` {$data['field_type']}({$data['length']})");  
+        //给GlobalTableField表修改数据
+        GlobalTableField::where('id',$data['id'])->update($data);
+        return Result::success('修改成功');
+    }
+    /**
+     * 删除表单字段
+     * @param array $data
+     * @return array
+     * @throws \Throwable
+     */
+    public function delGlobalTableField(array $data): array
+    {
+        $globalTable = GlobalTable::where('id',$data['table_id'])->first(); 
+        if(empty($globalTable)){
+            return Result::error('表单不存在');
+        }
+        //给global库的表删除字段
+        Db::connection('global')->statement("ALTER TABLE `{$globalTable->table}` DROP COLUMN `{$data['field_name']}`"); 
+        //给GlobalTableField表删除数据
+        GlobalTableField::where('id',$data['id'])->delete();
+        return Result::success('删除成功');
+    }
+    /**
+     * 获取自定义生成表里面的数据
+     */
+    public function getCustomTableData(array $data): array
+    {
+        $globalTable = GlobalTable::where('id',$data['table_id'])->first();
+        if(empty($globalTable)){
+            return Result::error('表单不存在');
+        }
+        //根据返回的table名称,查询这个表的数据
+        $data = Db::connection('global')->table($globalTable->table)->get();
+        return Result::success($data);
+    }
 }