Browse Source

修复若干bug

周浩 9 years ago
parent
commit
096c212012

+ 7 - 0
hsweb-web-service-impl-common/src/main/java/org/hsweb/web/service/impl/form/DynamicFormServiceImpl.java

@@ -2,6 +2,9 @@ package org.hsweb.web.service.impl.form;
 
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import org.hsweb.concurrent.lock.LockFactory;
 import org.hsweb.concurrent.lock.LockFactory;
+import org.hsweb.concurrent.lock.annotation.LockName;
+import org.hsweb.concurrent.lock.annotation.ReadLock;
+import org.hsweb.concurrent.lock.annotation.WriteLock;
 import org.hsweb.web.core.Install;
 import org.hsweb.web.core.Install;
 import org.hsweb.web.bean.common.*;
 import org.hsweb.web.bean.common.*;
 import org.hsweb.web.bean.po.GenericPo;
 import org.hsweb.web.bean.po.GenericPo;
@@ -98,6 +101,8 @@ public class DynamicFormServiceImpl implements DynamicFormService {
     }
     }
 
 
     @Override
     @Override
+    @WriteLock
+    @LockName(value = "'form.lock.'+#form.name",expression = true)
     public void deploy(Form form) throws Exception {
     public void deploy(Form form) throws Exception {
         try {
         try {
             writeLock.lock();
             writeLock.lock();
@@ -122,6 +127,7 @@ public class DynamicFormServiceImpl implements DynamicFormService {
     }
     }
 
 
     @Override
     @Override
+    @WriteLock
     public void unDeploy(Form form) throws Exception {
     public void unDeploy(Form form) throws Exception {
         try {
         try {
             writeLock.lock();
             writeLock.lock();
@@ -140,6 +146,7 @@ public class DynamicFormServiceImpl implements DynamicFormService {
     }
     }
 
 
     @Override
     @Override
+    @ReadLock
     public <T> PagerResult<T> selectPager(String name, QueryParam param) throws Exception {
     public <T> PagerResult<T> selectPager(String name, QueryParam param) throws Exception {
         PagerResult<T> result = new PagerResult<>();
         PagerResult<T> result = new PagerResult<>();
         try {
         try {

+ 5 - 2
hsweb-web-service-impl-common/src/main/java/org/hsweb/web/service/impl/form/FormServiceImpl.java

@@ -66,6 +66,7 @@ public class FormServiceImpl extends AbstractServiceImpl<Form, String> implement
         old.setVersion(old.getVersion() + 1);
         old.setVersion(old.getVersion() + 1);
         old.setCreate_date(new Date());
         old.setCreate_date(new Date());
         old.setUpdate_date(null);
         old.setUpdate_date(null);
+        old.setRevision(1);
         old.setUsing(false);
         old.setUsing(false);
         getMapper().insert(new InsertParam<>(old));
         getMapper().insert(new InsertParam<>(old));
         return old.getU_id();
         return old.getU_id();
@@ -89,7 +90,8 @@ public class FormServiceImpl extends AbstractServiceImpl<Form, String> implement
         Form old = this.selectByPk(data.getU_id());
         Form old = this.selectByPk(data.getU_id());
         Assert.notNull(old, "表单不存在!");
         Assert.notNull(old, "表单不存在!");
         data.setUpdate_date(new Date());
         data.setUpdate_date(new Date());
-        UpdateParam<Form> param = new UpdateParam<>(data).excludes("create_date", "version", "using");
+        data.setRevision(old.getRevision() + 1);
+        UpdateParam<Form> param = new UpdateParam<>(data).excludes("create_date", "release", "version", "using");
         return getMapper().update(param);
         return getMapper().update(param);
     }
     }
 
 
@@ -149,7 +151,8 @@ public class FormServiceImpl extends AbstractServiceImpl<Form, String> implement
         //开始发布
         //开始发布
         old.setUsing(true);
         old.setUsing(true);
         dynamicFormService.deploy(old);
         dynamicFormService.deploy(old);
-        getMapper().update(new UpdateParam<>(old).includes("using").where("u_id", old.getU_id()));
+        old.setRelease(old.getRevision());//发布修订版本
+        getMapper().update(new UpdateParam<>(old).includes("using", "release").where("u_id", old.getU_id()));
         //加入发布历史记录
         //加入发布历史记录
         History history = History.newInstace("form.deploy." + old.getName());
         History history = History.newInstace("form.deploy." + old.getName());
         history.setPrimary_key_name("u_id");
         history.setPrimary_key_name("u_id");

+ 2 - 2
hsweb-web-service-impl-common/src/main/java/org/hsweb/web/service/impl/form/validator/GroovyDycBeanValidator.java

@@ -37,8 +37,8 @@ public class GroovyDycBeanValidator implements Validator {
             if (!(data instanceof Map)) {
             if (!(data instanceof Map)) {
                 throw new ValidationException("数据类型错误!");
                 throw new ValidationException("数据类型错误!");
             }
             }
-            Object validatorTarget = engine.execute(className + ".instance", new HashMap<>()).getResult();
-            Class validatorTargetClass = validatorTarget.getClass();
+            Class validatorTargetClass = (Class)engine.execute(className, new HashMap<>()).getResult();
+            Object validatorTarget = validatorTargetClass.newInstance();
             Map<String, Object> mapData = ((Map) data);
             Map<String, Object> mapData = ((Map) data);
             Set<ConstraintViolation<Object>> result = new LinkedHashSet<>();
             Set<ConstraintViolation<Object>> result = new LinkedHashSet<>();
             if (insert) {
             if (insert) {

+ 0 - 1
hsweb-web-service-impl-common/src/main/java/org/hsweb/web/service/impl/form/validator/GroovyDycBeanValidatorFactory.java

@@ -86,7 +86,6 @@ public class GroovyDycBeanValidatorFactory implements ValidatorFactory {
         script.append("}");
         script.append("}");
         try {
         try {
             engine.compile(className, script.toString());
             engine.compile(className, script.toString());
-            engine.compile(className + ".instance", "return new "+ className + "();");
         } catch (Exception e) {
         } catch (Exception e) {
             throw new BusinessException("创建动态表单验证器失败!", e, 500);
             throw new BusinessException("创建动态表单验证器失败!", e, 500);
         }
         }

+ 1 - 2
hsweb-web-service-impl-common/src/main/java/org/hsweb/web/service/impl/user/UserServiceImpl.java

@@ -51,7 +51,6 @@ public class UserServiceImpl extends AbstractServiceImpl<User, String> implement
     public String insert(User data) throws Exception {
     public String insert(User data) throws Exception {
         tryValidPo(data);
         tryValidPo(data);
         Assert.isNull(selectByUserName(data.getUsername()), "用户已存在!");
         Assert.isNull(selectByUserName(data.getUsername()), "用户已存在!");
-
         data.setU_id(RandomUtil.randomChar(6));
         data.setU_id(RandomUtil.randomChar(6));
         data.setCreate_date(new Date());
         data.setCreate_date(new Date());
         data.setUpdate_date(new Date());
         data.setUpdate_date(new Date());
@@ -82,7 +81,7 @@ public class UserServiceImpl extends AbstractServiceImpl<User, String> implement
             data.setPassword(MD5.encode(data.getPassword()));
             data.setPassword(MD5.encode(data.getPassword()));
             userMapper.updatePassword(data);
             userMapper.updatePassword(data);
         }
         }
-        int i = userMapper.update(new UpdateParam<>(data));
+        int i = userMapper.update(new UpdateParam<>(data).excludes("status","password","create_date"));
         if (data.getUserRoles().size() != 0) {
         if (data.getUserRoles().size() != 0) {
             //删除所有
             //删除所有
             userRoleMapper.deleteByUserId(data.getU_id());
             userRoleMapper.deleteByUserId(data.getU_id());