Bläddra i källkod

优化动态表单

zhouhao 7 år sedan
förälder
incheckning
c8bb6f7e1e

+ 2 - 2
hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-controller/src/main/java/org/hswebframework/web/controller/form/DynamicFormColumnController.java

@@ -21,7 +21,7 @@ import java.util.List;
  * @author hsweb-generator-online
  */
 @RestController
-@RequestMapping("${hsweb.web.mappings.dynamic/form/column:dynamic/form/column}")
+@RequestMapping("${hsweb.web.mappings.dynamic-form-column:dynamic/form/column}")
 @Authorize(permission = "dynamic-form", description = "动态表单管理")
 @Api(value = "动态表单管理",tags = "动态表单-表单管理")
 public class DynamicFormColumnController {
@@ -52,7 +52,7 @@ public class DynamicFormColumnController {
     @ApiOperation("删除列")
     public ResponseMessage<List<DynamicFormColumnEntity>> delete(@ApiParam(value = "要删除的列id,多个列以,分割", example = "1,2,3")
                                                                  @RequestParam String ids) {
-        return ResponseMessage.ok(dynamicFormService.deleteColumn(Arrays.asList(ids.split(","))));
+        return ResponseMessage.ok(dynamicFormService.deleteColumn(Arrays.asList(ids.split("[,]"))));
     }
 
     @GetMapping("/{formId}")

+ 1 - 1
hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-controller/src/main/java/org/hswebframework/web/controller/form/DynamicFormController.java

@@ -24,7 +24,7 @@ import java.util.Objects;
  * @author hsweb-generator-online
  */
 @RestController
-@RequestMapping("${hsweb.web.mappings.dynamic/form:dynamic/form}")
+@RequestMapping("${hsweb.web.mappings.dynamic-form:dynamic/form}")
 @Authorize(permission = "dynamic-form", description = "动态表单管理")
 @Api(value = "动态表单管理",tags = "动态表单-表单管理")
 public class DynamicFormController implements SimpleGenericEntityController<DynamicFormEntity, String, QueryParamEntity> {

+ 1 - 1
hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-controller/src/main/java/org/hswebframework/web/controller/form/DynamicFormDeployLogController.java

@@ -24,7 +24,7 @@ import java.util.List;
  * @author hsweb-generator-online
  */
 @RestController
-@RequestMapping("${hsweb.web.mappings.dynamicFormDeployLog:dynamic/form-deploy-log}")
+@RequestMapping("${hsweb.web.mappings.dynamic-form-log:dynamic/form-deploy-log}")
 @Authorize(permission = "form-deploy-log",description = "表单发布日志")
 @Api(value = "表单发布日志",tags = "动态表单-发布日志")
 public class DynamicFormDeployLogController implements QueryController<DynamicFormDeployLogEntity, String, QueryParamEntity> {

+ 18 - 6
hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-controller/src/main/java/org/hswebframework/web/controller/form/DynamicFormOperationController.java

@@ -58,7 +58,8 @@ public class DynamicFormOperationController {
     @PostMapping("/{formId}")
     @ApiOperation("新增")
     @Authorize(action = Permission.ACTION_ADD)
-    public ResponseMessage<Map<String, Object>> add(@PathVariable String formId, @RequestBody Map<String, Object> data) {
+    public ResponseMessage<Map<String, Object>> add(@PathVariable String formId,
+                                                    @RequestBody Map<String, Object> data) {
         dynamicFormOperationService.insert(formId, data);
         return ResponseMessage.ok(data);
     }
@@ -66,14 +67,25 @@ public class DynamicFormOperationController {
     @PutMapping("/{formId}")
     @ApiOperation("动态修改")
     @Authorize(action = Permission.ACTION_UPDATE)
-    public ResponseMessage<Integer> update(@PathVariable String formId, @RequestBody UpdateParamEntity<Map<String, Object>> paramEntity) {
+    public ResponseMessage<Integer> update(@PathVariable String formId,
+                                           @RequestBody UpdateParamEntity<Map<String, Object>> paramEntity) {
         return ResponseMessage.ok(dynamicFormOperationService.update(formId, paramEntity));
     }
 
-    @DeleteMapping("/{formId}")
-    @ApiOperation("动态删除")
+    @PutMapping("/{formId}/{id}")
+    @ApiOperation("根据主键修改")
+    @Authorize(action = Permission.ACTION_UPDATE)
+    public ResponseMessage<Map<String, Object>> update(@PathVariable String formId,
+                                                       @PathVariable String id,
+                                                       @RequestBody Map<String, Object> param) {
+        return ResponseMessage.ok(dynamicFormOperationService.updateById(formId, id, param));
+    }
+
+    @DeleteMapping("/{formId}/{id}")
+    @ApiOperation("根据主键删除")
     @Authorize(action = Permission.ACTION_DELETE)
-    public ResponseMessage<Integer> delete(@PathVariable String formId, @RequestParam DeleteParamEntity paramEntity) {
-        return ResponseMessage.ok(dynamicFormOperationService.delete(formId, paramEntity));
+    public ResponseMessage<Integer> delete(@PathVariable String formId,
+                                           @PathVariable String id) {
+        return ResponseMessage.ok(dynamicFormOperationService.deleteById(formId, id));
     }
 }

+ 5 - 2
hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-service/hsweb-system-dynamic-form-service-api/src/main/java/org/hswebframework/web/service/form/DynamicFormOperationService.java

@@ -10,9 +10,8 @@ import java.util.List;
 /**
  * 动态表单操作接口,用于对动态表单进行增删改查操作
  *
- * @since 3.0
  * @author zhouhao
- *
+ * @since 3.0
  */
 public interface DynamicFormOperationService {
     <T> PagerResult<T> selectPager(String formId, QueryParamEntity paramEntity);
@@ -25,9 +24,13 @@ public interface DynamicFormOperationService {
 
     <T> int update(String formId, UpdateParamEntity<T> paramEntity);
 
+    <T> T updateById(String formId, String id, T data);
+
     <T> void insert(String formId, T entity);
 
     int delete(String formId, DeleteParamEntity paramEntity);
 
+    int deleteById(String formId, String id);
+
 
 }

+ 49 - 55
hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-service/hsweb-system-dynamic-form-service-simple/src/main/java/org/hswebframework/web/service/form/simple/SimpleDynamicFormOperationService.java

@@ -1,5 +1,6 @@
 package org.hswebframework.web.service.form.simple;
 
+import lombok.SneakyThrows;
 import org.hswebframework.ezorm.core.Delete;
 import org.hswebframework.ezorm.core.Insert;
 import org.hswebframework.ezorm.core.Update;
@@ -44,10 +45,9 @@ public class SimpleDynamicFormOperationService implements DynamicFormOperationSe
 
     protected <T> RDBTable<T> getTable(String formId) {
         DynamicFormEntity form = dynamicFormService.selectByPk(formId);
-        if (null == form||Boolean.FALSE.equals(form.getDeployed())) {
+        if (null == form || Boolean.FALSE.equals(form.getDeployed())) {
             throw new NotFoundException("表单不存在");
         }
-
         RDBDatabase database = StringUtils.isEmpty(form.getDataSourceId()) ?
                 databaseRepository.getDefaultDatabase() : databaseRepository.getDatabase(form.getDataSourceId());
         return database.getTable(form.getDatabaseTableName());
@@ -55,99 +55,93 @@ public class SimpleDynamicFormOperationService implements DynamicFormOperationSe
 
     @Override
     @Transactional(readOnly = true)
+    @SneakyThrows
     public <T> PagerResult<T> selectPager(String formId, QueryParamEntity paramEntity) {
         RDBTable<T> table = getTable(formId);
-        try {
-            RDBQuery<T> query = table.createQuery();
-            int total = query.setParam(paramEntity).total();
-            if (total == 0) {
-                return PagerResult.empty();
-            }
-            paramEntity.rePaging(total);
-            List<T> list = query.setParam(paramEntity).list(paramEntity.getPageIndex(),paramEntity.getPageSize());
-            return PagerResult.of(total, list);
-        } catch (SQLException e) {
-            throw new DynamicFormException("selectPager fail:" + e.getMessage(), e);
+        RDBQuery<T> query = table.createQuery();
+        int total = query.setParam(paramEntity).total();
+        if (total == 0) {
+            return PagerResult.empty();
         }
-
+        paramEntity.rePaging(total);
+        List<T> list = query.setParam(paramEntity).list(paramEntity.getPageIndex(), paramEntity.getPageSize());
+        return PagerResult.of(total, list);
     }
 
     @Override
     @Transactional(readOnly = true)
+    @SneakyThrows
     public <T> List<T> select(String formId, QueryParamEntity paramEntity) {
         RDBTable<T> table = getTable(formId);
-        try {
-            RDBQuery<T> query = table.createQuery();
-            return query.setParam(paramEntity).list();
-        } catch (SQLException e) {
-            throw new DynamicFormException("select fail:" + e.getMessage(), e);
-        }
+        RDBQuery<T> query = table.createQuery();
+        return query.setParam(paramEntity).list();
     }
 
     @Override
     @Transactional(readOnly = true)
+    @SneakyThrows
     public <T> T selectSingle(String formId, QueryParamEntity paramEntity) {
         RDBTable<T> table = getTable(formId);
-        try {
-            RDBQuery<T> query = table.createQuery();
-
-            return query.setParam(paramEntity).single();
-        } catch (SQLException e) {
-            throw new DynamicFormException("selectSingle fail:" + e.getMessage(), e);
-        }
+        RDBQuery<T> query = table.createQuery();
+        return query.setParam(paramEntity).single();
     }
 
     @Override
     @Transactional(readOnly = true)
+    @SneakyThrows
     public int count(String formId, QueryParamEntity paramEntity) {
         RDBTable table = getTable(formId);
-        try {
-            RDBQuery query = table.createQuery();
-
-            return query.setParam(paramEntity).total();
-        } catch (SQLException e) {
-            throw new DynamicFormException("count fail:" + e.getMessage(), e);
-        }
+        RDBQuery query = table.createQuery();
+        return query.setParam(paramEntity).total();
     }
 
     @Override
+    @SneakyThrows
     public <T> int update(String formId, UpdateParamEntity<T> paramEntity) {
         if (Objects.requireNonNull(paramEntity).getTerms().isEmpty()) {
-            throw new UnsupportedOperationException("can not use empty condition for update");
+            throw new UnsupportedOperationException("不能执行无条件的更新操作");
         }
         RDBTable<T> table = getTable(formId);
-        try {
-            Update<T> update = table.createUpdate();
-
-            return update.setParam(paramEntity).exec();
-        } catch (SQLException e) {
-            throw new DynamicFormException("update fail:" + e.getMessage(), e);
-        }
+        Update<T> update = table.createUpdate();
+        return update.setParam(paramEntity).exec();
     }
 
     @Override
+    @SneakyThrows
     public <T> void insert(String formId, T entity) {
         RDBTable<T> table = getTable(formId);
-        try {
-            Insert<T> insert = table.createInsert();
-            insert.value(entity).exec();
-        } catch (SQLException e) {
-            throw new DynamicFormException("insert fail:" + e.getMessage(), e);
-        }
+        Insert<T> insert = table.createInsert();
+        insert.value(entity).exec();
     }
 
     @Override
+    @SneakyThrows
     public int delete(String formId, DeleteParamEntity paramEntity) {
         if (Objects.requireNonNull(paramEntity).getTerms().isEmpty()) {
-            throw new UnsupportedOperationException("can not use empty condition for delete");
+            throw new UnsupportedOperationException("不能执行无条件的删除操作");
         }
         RDBTable table = getTable(formId);
-        try {
-            Delete delete = table.createDelete();
+        Delete delete = table.createDelete();
+        return delete.setParam(paramEntity).exec();
+    }
 
-            return delete.setParam(paramEntity).exec();
-        } catch (SQLException e) {
-            throw new DynamicFormException("delete fail:" + e.getMessage(), e);
-        }
+    @Override
+    @SneakyThrows
+    public int deleteById(String formId, String id) {
+        Objects.requireNonNull(id, "主键不能为空");
+        RDBTable table = getTable(formId);
+        return table.createDelete().where("id", id).exec();
+    }
+
+    @Override
+    @SneakyThrows
+    public <T> T updateById(String formId, String id, T data) {
+        Objects.requireNonNull(id, "主键不能为空");
+        RDBTable<T> table = getTable(formId);
+        table.createUpdate()
+                .set(data)
+                .where("id", id)
+                .exec();
+        return data;
     }
 }