Browse Source

优化动态表单

zhouhao 7 years ago
parent
commit
dfc5d27372

+ 2 - 0
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

@@ -26,6 +26,8 @@ public interface DynamicFormOperationService {
 
 
     <T> int update(String formId, UpdateParamEntity<T> paramEntity);
     <T> int update(String formId, UpdateParamEntity<T> paramEntity);
 
 
+    <T> void insert(String formId, T entity);
+
     int delete(String formId, DeleteParamEntity paramEntity);
     int delete(String formId, DeleteParamEntity paramEntity);
 
 
 
 

+ 16 - 2
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,6 +1,7 @@
 package org.hswebframework.web.service.form.simple;
 package org.hswebframework.web.service.form.simple;
 
 
 import org.hsweb.ezorm.core.Delete;
 import org.hsweb.ezorm.core.Delete;
+import org.hsweb.ezorm.core.Insert;
 import org.hsweb.ezorm.core.Update;
 import org.hsweb.ezorm.core.Update;
 import org.hsweb.ezorm.rdb.RDBDatabase;
 import org.hsweb.ezorm.rdb.RDBDatabase;
 import org.hsweb.ezorm.rdb.RDBQuery;
 import org.hsweb.ezorm.rdb.RDBQuery;
@@ -43,9 +44,10 @@ public class SimpleDynamicFormOperationService implements DynamicFormOperationSe
         DynamicFormEntity entity= dynamicFormService.selectByPk(formId);
         DynamicFormEntity entity= dynamicFormService.selectByPk(formId);
         if(null==entity)throw new NotFoundException("表单不存在");
         if(null==entity)throw new NotFoundException("表单不存在");
 
 
-        RDBDatabase database=entity.getDataSourceId()==null?databaseRepository.getDatabase(entity.getDataSourceId()):
+        RDBDatabase database=entity.getDataSourceId()!=null?
+                databaseRepository.getDatabase(entity.getDataSourceId()):
                 databaseRepository.getDefaultDatabase();
                 databaseRepository.getDefaultDatabase();
-        return database.getTable(entity.getTableName());
+        return database.getTable(entity.getDatabaseTableName());
     };
     };
     @Override
     @Override
     public <T> PagerResult<T> selectPager(String formId, QueryParamEntity paramEntity) {
     public <T> PagerResult<T> selectPager(String formId, QueryParamEntity paramEntity) {
@@ -118,6 +120,18 @@ public class SimpleDynamicFormOperationService implements DynamicFormOperationSe
         }
         }
     }
     }
 
 
+    @Override
+    public <T> void insert(String formId, T entity) {
+        RDBTable table=getTable(formId);
+        try {
+           Insert<T> insert=table.createInsert();
+            insert.value(entity).exec();
+        } catch (SQLException e) {
+            //todo custom exception
+            throw new RuntimeException(e);
+        }
+    }
+
     @Override
     @Override
     public int delete(String formId, DeleteParamEntity paramEntity) {
     public int delete(String formId, DeleteParamEntity paramEntity) {
         RDBTable table=getTable(formId);
         RDBTable table=getTable(formId);

+ 21 - 1
hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-starter/src/test/java/org/hswebframework/web/service/form/simple/SimpleDynamicFormServiceTest.java

@@ -1,16 +1,23 @@
 package org.hswebframework.web.service.form.simple;
 package org.hswebframework.web.service.form.simple;
 
 
 import org.hsweb.ezorm.rdb.executor.SqlExecutor;
 import org.hsweb.ezorm.rdb.executor.SqlExecutor;
+import org.hswebframework.web.commons.entity.param.QueryParamEntity;
 import org.hswebframework.web.entity.form.DynamicFormColumnEntity;
 import org.hswebframework.web.entity.form.DynamicFormColumnEntity;
 import org.hswebframework.web.entity.form.DynamicFormEntity;
 import org.hswebframework.web.entity.form.DynamicFormEntity;
 import org.hswebframework.web.service.form.DynamicFormColumnService;
 import org.hswebframework.web.service.form.DynamicFormColumnService;
+import org.hswebframework.web.service.form.DynamicFormOperationService;
 import org.hswebframework.web.service.form.DynamicFormService;
 import org.hswebframework.web.service.form.DynamicFormService;
 import org.hswebframework.web.tests.SimpleWebApplicationTests;
 import org.hswebframework.web.tests.SimpleWebApplicationTests;
+import org.junit.Assert;
 import org.junit.Test;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 
 
 import java.sql.JDBCType;
 import java.sql.JDBCType;
 import java.sql.SQLException;
 import java.sql.SQLException;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.stream.Stream;
 
 
 /**
 /**
  * TODO 完成注释
  * TODO 完成注释
@@ -25,6 +32,8 @@ public class SimpleDynamicFormServiceTest extends SimpleWebApplicationTests {
     @Autowired
     @Autowired
     private DynamicFormColumnService dynamicFormColumnService;
     private DynamicFormColumnService dynamicFormColumnService;
 
 
+    @Autowired
+    private DynamicFormOperationService dynamicFormOperationService;
     @Autowired
     @Autowired
     private SqlExecutor sqlExecutor;
     private SqlExecutor sqlExecutor;
 
 
@@ -58,9 +67,20 @@ public class SimpleDynamicFormServiceTest extends SimpleWebApplicationTests {
         column_age.setPrecision(4);
         column_age.setPrecision(4);
         column_age.setScale(0);
         column_age.setScale(0);
 
 
-        dynamicFormColumnService.insert(column_id);
+        Stream.of(column_id,column_name,column_age).forEach(dynamicFormColumnService::insert);
         dynamicFormService.deploy(id);
         dynamicFormService.deploy(id);
 
 
+        dynamicFormOperationService.insert(form.getId(),new HashMap<String,Object>(){
+            {
+                put("id","test");
+                put("name","张三");
+                put("age",10);
+            }
+        });
+       List<Object> objects= dynamicFormOperationService.select(form.getId(),new QueryParamEntity());
+
+        Assert.assertTrue(objects.size()==1);
+        System.out.println(objects);
         sqlExecutor.list("select * from f_test");
         sqlExecutor.list("select * from f_test");
     }
     }
 }
 }