From 0ad0ffccc3a58fcc3dc0d8e56f0677ea567edf4d Mon Sep 17 00:00:00 2001 From: zhouhao Date: Fri, 11 Aug 2017 11:04:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=A1=A8=E5=8D=95=E4=BF=9D?= =?UTF-8?q?=E5=AD=98,=E6=94=AF=E6=8C=81=E5=90=8C=E6=97=B6=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E8=A1=A8=E5=8D=95=E5=92=8C=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/DynamicFormController.java | 21 +++++++++++++++++++ .../web/service/form/DynamicFormService.java | 2 ++ .../form/simple/SimpleDynamicFormService.java | 17 +++++++++++++++ .../simple/SimpleDynamicFormServiceTest.java | 21 ++++++++++++------- 4 files changed, 54 insertions(+), 7 deletions(-) diff --git a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-controller/src/main/java/org/hswebframework/web/controller/form/DynamicFormController.java b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-controller/src/main/java/org/hswebframework/web/controller/form/DynamicFormController.java index 1ab76c93c..a6778786d 100644 --- a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-controller/src/main/java/org/hswebframework/web/controller/form/DynamicFormController.java +++ b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-controller/src/main/java/org/hswebframework/web/controller/form/DynamicFormController.java @@ -2,7 +2,9 @@ package org.hswebframework.web.controller.form; import io.swagger.annotations.Api; import org.hswebframework.web.authorization.Authentication; +import org.hswebframework.web.authorization.Permission; import org.hswebframework.web.authorization.annotation.Authorize; +import org.hswebframework.web.authorization.annotation.Logical; import org.hswebframework.web.commons.entity.param.QueryParamEntity; import org.hswebframework.web.controller.SimpleGenericEntityController; import org.hswebframework.web.controller.message.ResponseMessage; @@ -13,6 +15,8 @@ import org.hswebframework.web.service.form.DynamicFormService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.Objects; + /** * 动态表单 * @@ -37,6 +41,23 @@ public class DynamicFormController implements SimpleGenericEntityController saveOrUpdateFormAndColumn(@RequestBody DynamicFormColumnBindEntity bindEntity) { + Authentication authentication = Authentication.current().orElse(null); + Objects.requireNonNull(bindEntity.getForm(), "form can not be null"); + Objects.requireNonNull(bindEntity.getColumns(), "columns can not be null"); + + if (null != authentication) { + bindEntity.getForm().setCreatorId(authentication.getUser().getId()); + } + bindEntity.getForm().setCreateTime(System.currentTimeMillis()); + + return ResponseMessage.ok(dynamicFormService.saveOrUpdate(bindEntity)); + } + @Override public ResponseMessage add(@RequestBody DynamicFormEntity data) { Authentication authentication = Authentication.current().orElse(null); diff --git a/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/DynamicFormService.java b/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/DynamicFormService.java index d49153a02..119358cb0 100644 --- a/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/DynamicFormService.java +++ b/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/DynamicFormService.java @@ -21,6 +21,8 @@ public interface DynamicFormService extends CrudService saveOrUpdateColumn(List columnEntities); diff --git a/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/SimpleDynamicFormService.java b/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/SimpleDynamicFormService.java index d07a94efd..9a67048a9 100644 --- a/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/SimpleDynamicFormService.java +++ b/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/SimpleDynamicFormService.java @@ -221,6 +221,23 @@ public class SimpleDynamicFormService extends GenericEntityService columnEntities = bindEntity.getColumns(); + //保存表单 + saveOrUpdate(formEntity); + + //保存表单列 + columnEntities.stream() + .peek(column -> column.setFormId(formEntity.getId())) + .forEach(this::saveOrUpdate0); + + return formEntity.getId(); + } + @Override @CacheEvict(key = "'form-columns:'+#formId") public DynamicFormColumnEntity deleteColumn(String formId) { diff --git a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-starter/src/test/java/org/hswebframework/web/service/form/simple/SimpleDynamicFormServiceTest.java b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-starter/src/test/java/org/hswebframework/web/service/form/simple/SimpleDynamicFormServiceTest.java index 7fa14d185..0900dd7e6 100644 --- a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-starter/src/test/java/org/hswebframework/web/service/form/simple/SimpleDynamicFormServiceTest.java +++ b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-starter/src/test/java/org/hswebframework/web/service/form/simple/SimpleDynamicFormServiceTest.java @@ -2,6 +2,7 @@ package org.hswebframework.web.service.form.simple; import org.hsweb.ezorm.rdb.executor.SqlExecutor; import org.hswebframework.web.commons.entity.param.QueryParamEntity; +import org.hswebframework.web.entity.form.DynamicFormColumnBindEntity; import org.hswebframework.web.entity.form.DynamicFormColumnEntity; import org.hswebframework.web.entity.form.DynamicFormEntity; import org.hswebframework.web.service.form.DatabaseRepository; @@ -16,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional; import java.sql.JDBCType; import java.sql.SQLException; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.stream.Stream; @@ -39,7 +41,7 @@ public class SimpleDynamicFormServiceTest extends SimpleWebApplicationTests { @Autowired private DatabaseRepository databaseRepository; @Autowired - private SqlExecutor sqlExecutor; + private SqlExecutor sqlExecutor; @Test @Transactional @@ -56,16 +58,14 @@ public class SimpleDynamicFormServiceTest extends SimpleWebApplicationTests { form.setCorrelations("[" + "{\"target\":\"s_dyn_form\",\"alias\":\"form\",\"condition\":\"form.u_id=f_test.id\"}" + "]"); - String id = dynamicFormService.insert(form); + DynamicFormColumnEntity column_id = entityFactory.newInstance(DynamicFormColumnEntity.class); - column_id.setFormId(id); column_id.setColumnName("id"); column_id.setName("ID"); column_id.setJavaType("string"); column_id.setJdbcType(JDBCType.VARCHAR.getName()); column_id.setLength(32); DynamicFormColumnEntity column_name = entityFactory.newInstance(DynamicFormColumnEntity.class); - column_name.setFormId(id); column_name.setName("姓名"); column_name.setColumnName("name"); column_name.setJavaType("string"); @@ -73,7 +73,6 @@ public class SimpleDynamicFormServiceTest extends SimpleWebApplicationTests { column_name.setLength(32); DynamicFormColumnEntity column_age = entityFactory.newInstance(DynamicFormColumnEntity.class); - column_age.setFormId(id); column_age.setName("年龄"); column_age.setColumnName("age"); column_age.setJavaType("int"); @@ -81,7 +80,15 @@ public class SimpleDynamicFormServiceTest extends SimpleWebApplicationTests { column_age.setPrecision(4); column_age.setScale(0); - Stream.of(column_id, column_name, column_age).forEach(dynamicFormColumnService::insert); +// Stream.of(column_id, column_name, column_age).forEach(dynamicFormColumnService::insert); + DynamicFormColumnBindEntity bindEntity = new DynamicFormColumnBindEntity(); + + bindEntity.setForm(form); + bindEntity.setColumns(Arrays.asList(column_id, column_name, column_age)); + + String id = dynamicFormService.saveOrUpdate(bindEntity); + + dynamicFormService.deploy(id); dynamicFormOperationService.insert(form.getId(), new HashMap() { @@ -94,7 +101,7 @@ public class SimpleDynamicFormServiceTest extends SimpleWebApplicationTests { databaseRepository.getDefaultDatabase().getTable("s_dyn_form"); - List objects = dynamicFormOperationService.select(form.getId(), new QueryParamEntity().includes("*","form.*")); + List objects = dynamicFormOperationService.select(form.getId(), new QueryParamEntity().includes("*", "form.*")); Assert.assertTrue(objects.size() == 1); System.out.println(objects);