request->params([ ['contract_id', 0], ['placeholder', ''], ['table_name', ''], ['field_name', ''], ['page', 1], ['limit', 20] ]); return success((new DocumentDataSourceService())->getPage($data)); } /** * 获取数据源配置详情 * @param int $id * @return Response */ public function info(int $id): Response { return success((new DocumentDataSourceService())->getInfo($id)); } /** * 添加数据源配置 * @return Response */ public function add(): Response { $data = $this->request->params([ ['contract_id', 0], ['placeholder', ''], ['table_name', ''], ['field_name', ''], ['field_type', 'string'], ['is_required', 0], ['default_value', ''] ]); $this->validate($data, 'app\validate\document\DocumentDataSource.add'); $id = (new DocumentDataSourceService())->add($data); return success('ADD_SUCCESS', ['id' => $id]); } /** * 编辑数据源配置 * @param int $id * @return Response */ public function edit(int $id): Response { $data = $this->request->params([ ['contract_id', 0], ['placeholder', ''], ['table_name', ''], ['field_name', ''], ['field_type', 'string'], ['is_required', 0], ['default_value', ''] ]); $this->validate($data, 'app\validate\document\DocumentDataSource.edit'); (new DocumentDataSourceService())->edit($id, $data); return success('EDIT_SUCCESS'); } /** * 删除数据源配置 * @param int $id * @return Response */ public function del(int $id): Response { (new DocumentDataSourceService())->del($id); return success('DELETE_SUCCESS'); } /** * 批量配置数据源 * @return Response */ public function batchConfig(): Response { $data = $this->request->params([ ['contract_id', 0], ['configs', []] ]); $this->validate($data, 'app\validate\document\DocumentDataSource.batchConfig'); (new DocumentDataSourceService())->batchConfig($data['contract_id'], $data['configs']); return success('CONFIG_SUCCESS'); } /** * 获取可用数据表列表 * @return Response */ public function getAvailableTables(): Response { return success((new DocumentDataSourceService())->getAvailableTables()); } /** * 获取数据表字段列表 * @return Response */ public function getTableFields(): Response { $tableName = $this->request->param('table_name', ''); if (empty($tableName)) { return fail('TABLE_NAME_REQUIRED'); } return success((new DocumentDataSourceService())->getTableFields($tableName)); } /** * 预览数据源配置效果 * @return Response */ public function preview(): Response { $data = $this->request->params([ ['contract_id', 0], ['sample_data', []] ]); return success((new DocumentDataSourceService())->preview($data['contract_id'], $data['sample_data'])); } }