diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPerson.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPerson.java
index 9e31db8..a8cfbd6 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPerson.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPerson.java
@@ -1,14 +1,18 @@
 package com.supwisdom.dlpay.api.domain;
 
+import com.supwisdom.dlpay.api.annotation.IDNoCheck;
+import com.supwisdom.dlpay.api.annotation.MobileNumber;
 import org.hibernate.annotations.GenericGenerator;
 
 import javax.persistence.*;
+import javax.validation.constraints.Email;
 import javax.validation.constraints.NotNull;
 
 @Entity
 @Table(name = "TB_PERSON",
     indexes = {@Index(name = "person_name_idx", columnList = "name"),
         @Index(name = "person_idno_uk", unique = true, columnList = "idtype,idno")})
+@IDNoCheck(message = "证件信息错误", idno = "idno", idtype = "idtype")
 public class TPerson {
   @Id
   @GenericGenerator(name = "idGenerator", strategy = "uuid")
@@ -39,12 +43,14 @@
   private String nation;
 
   @Column(name = "EMAIL", length = 60)
+  @Email(message = "电子邮件格式错误")
   private String email;
 
   @Column(name = "TEL", length = 20)
   private String tel;
 
   @Column(name = "MOBILE", length = 30)
+  @MobileNumber(message = "手机号格式错误")
   private String mobile;
 
   @Column(name = "ADDR", length = 240)
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/system/controller/DictPoolAction.java b/payapi/src/main/java/com/supwisdom/dlpay/system/controller/DictPoolAction.java
index 9c78b00..16e68da 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/system/controller/DictPoolAction.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/system/controller/DictPoolAction.java
@@ -5,6 +5,7 @@
 import com.supwisdom.dlpay.system.service.DictionaryProxy;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
@@ -20,7 +21,7 @@
   }
 
   @GetMapping("/dictpool")
-  public Map getDictDataByDicttype(@FormParam("dicttype") String dictType, HttpServletRequest request) {
+  public Map getDictDataByDicttype(@RequestParam("dicttype") String dictType, HttpServletRequest request) {
     dictType = request.getParameter("dicttype");
     return dictionaryProxy.getDictionaryAsMap(dictType);
   }
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt
index 9fab5f0..874a539 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt
@@ -1,5 +1,6 @@
 package com.supwisdom.dlpay.api
 
+import com.supwisdom.dlpay.api.bean.JsonResult
 import com.supwisdom.dlpay.api.exception.RequestParamCheckException
 import com.supwisdom.dlpay.exception.TransactionCheckException
 import com.supwisdom.dlpay.exception.TransactionException
@@ -18,17 +19,16 @@
 import org.springframework.http.ResponseEntity
 import org.springframework.security.core.context.SecurityContextHolder
 import org.springframework.stereotype.Component
+import org.springframework.transaction.TransactionSystemException
+import org.springframework.web.bind.MethodArgumentNotValidException
+import org.springframework.web.bind.annotation.ControllerAdvice
 import org.springframework.web.bind.annotation.ExceptionHandler
 import org.springframework.web.bind.annotation.RestControllerAdvice
+import org.springframework.web.context.request.WebRequest
+import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler
 import java.lang.reflect.UndeclaredThrowableException
 import javax.servlet.http.HttpServletRequest
-import java.util.stream.Collectors
-import org.springframework.validation.BindingResultUtils.getBindingResult
-import java.util.LinkedHashMap
-import org.springframework.web.context.request.WebRequest
-import org.springframework.web.bind.MethodArgumentNotValidException
-import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler
-import org.springframework.web.bind.annotation.ControllerAdvice
+import javax.validation.ConstraintViolationException
 
 
 @RestControllerAdvice("com.supwisdom.dlpay.api")
@@ -52,9 +52,18 @@
     }
 }
 
+@ControllerAdvice("com.supwisdom.dlpay")
+class MvcControllerAdvice {
+    private val logger = KotlinLogging.logger { }
+    @ExceptionHandler(ConstraintViolationException::class)
+    fun handleException(e: ConstraintViolationException): ResponseEntity<Any> {
+        logger.error { "unhandle exception : $e" }
+        return ResponseEntity.status(HttpStatus.SERVICE_UNAVAILABLE).body(e)
+    }
+}
+
 @ControllerAdvice
 class CustomGlobalExceptionHandler : ResponseEntityExceptionHandler() {
-
     // error handle for @Valid
     override fun handleMethodArgumentNotValid(ex: MethodArgumentNotValidException,
                                               headers: HttpHeaders,
@@ -66,6 +75,22 @@
                 .fail(300001, msg))
 
     }
+
+    @ExceptionHandler(TransactionSystemException::class)
+    fun handleContraintViolationException(e: TransactionSystemException): ResponseEntity<Any> {
+        logger.error { "unhandle exception : $e" }
+        var cause = e.cause
+        while (cause != null) {
+            if (cause is ConstraintViolationException) {
+                val msg = cause.constraintViolations.joinToString {
+                    it.message
+                }
+                return ResponseEntity.status(HttpStatus.OK).body(JsonResult.error(msg))
+            }
+            cause = cause.cause
+        }
+        return ResponseEntity.status(HttpStatus.SERVICE_UNAVAILABLE).body(e)
+    }
 }
 
 @Component
diff --git a/payapi/src/main/resources/data.sql b/payapi/src/main/resources/data.sql
index fdeebca..0f44e62 100644
--- a/payapi/src/main/resources/data.sql
+++ b/payapi/src/main/resources/data.sql
@@ -505,60 +505,60 @@
 INSERT INTO "tb_transcode" ("transcode", "transname", "tenantid")
 VALUES (3500, '账户充值', '{tenantid}');
 
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('cancel', 'reverseFlagList', '冲正', '冲正状态', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('reverse', 'reverseFlagList', '手工撤销', '冲正状态', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('none', 'reverseFlagList', '-', '冲正状态', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('init', 'dtlStatusList', '初始化', '流水状态', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('success', 'dtlStatusList', '交易成功', '流水状态', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('fail', 'dtlStatusList', '交易失败', '流水状态', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('wip', 'dtlStatusList','待支付', '流水状态', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('cancel','dtlStatusList', '交易取消', '流水状态', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (1, 'cancel', 'reverseFlagList', '冲正', '冲正状态', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (2, 'reverse', 'reverseFlagList', '手工撤销', '冲正状态', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (3, 'none', 'reverseFlagList', '-', '冲正状态', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (4, 'init', 'dtlStatusList', '初始化', '流水状态', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (5, 'success', 'dtlStatusList', '交易成功', '流水状态', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (6, 'fail', 'dtlStatusList', '交易失败', '流水状态', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (7, 'wip', 'dtlStatusList','待支付', '流水状态', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (8, 'cancel','dtlStatusList', '交易取消', '流水状态', '{tenantid}');
 
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('idcard', 'idtypeList', '身份证', '证件类型', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('residence_booklet', 'idtypeList', '户口簿', '证件类型', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('passport', 'idtypeList', '护照', '证件类型', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('hk_macau_pass', 'idtypeList', '港澳居民来往内地通行证', '证件类型', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('taiwan_pass', 'idtypeList', '港澳通行证', '台湾同胞来往内地通行证', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('foreigner_residence_permit', 'idtypeList', '港澳通行证', '外国人居留证', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('military_idcard', 'idtypeList', '港澳通行证', '军官证', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('soldier_idcard', 'idtypeList', '港澳通行证', '士兵证', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('driving_license', 'idtypeList', '驾照', '证件类型', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('student_idcard', 'idtypeList', '学工号', '证件类型', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('unknown', 'idtypeList', '其他', '证件类型', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (9, 'idcard', 'idtypeList', '身份证', '证件类型', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (10, 'residence_booklet', 'idtypeList', '户口簿', '证件类型', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (11, 'passport', 'idtypeList', '护照', '证件类型', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (12, 'hk_macau_pass', 'idtypeList', '港澳居民来往内地通行证', '证件类型', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (13, 'taiwan_pass', 'idtypeList', '港澳通行证', '台湾同胞来往内地通行证', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (14, 'foreigner_residence_permit', 'idtypeList', '港澳通行证', '外国人居留证', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (15, 'military_idcard', 'idtypeList', '港澳通行证', '军官证', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (16, 'soldier_idcard', 'idtypeList', '港澳通行证', '士兵证', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (17, 'driving_license', 'idtypeList', '驾照', '证件类型', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (18, 'student_idcard', 'idtypeList', '学工号', '证件类型', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (19, 'unknown', 'idtypeList', '其他', '证件类型', '{tenantid}');
 
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('male', 'sexList', '男', '性别', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('female', 'sexList', '女', '性别', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('unknown', 'sexList', '未知', '性别', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (20, 'male', 'sexList', '男', '性别', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (21, 'female', 'sexList', '女', '性别', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (22, 'unknown', 'sexList', '未知', '性别', '{tenantid}');
 
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('normal', 'accountStatusList', '正常', '账户状态', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('closed', 'accountStatusList', '注销', '账户状态', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('locked', 'accountStatusList', '锁定', '账户状态', '{tenantid}');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
-VALUES ('unknown', 'accountStatusList', '异常', '账户状态', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (23, 'normal', 'accountStatusList', '正常', '账户状态', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (24, 'closed', 'accountStatusList', '注销', '账户状态', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (25, 'locked', 'accountStatusList', '锁定', '账户状态', '{tenantid}');
+INSERT INTO "tb_dictionary" ("id", "dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES (26, 'unknown', 'accountStatusList', '异常', '账户状态', '{tenantid}');
 ----------------------------------------------------
 commit;
\ No newline at end of file
diff --git a/payapi/src/main/resources/templates/system/user/add.html b/payapi/src/main/resources/templates/system/user/add.html
index f886aca..f33976e 100755
--- a/payapi/src/main/resources/templates/system/user/add.html
+++ b/payapi/src/main/resources/templates/system/user/add.html
@@ -86,14 +86,13 @@
                 data : JSON.stringify(data.field),
                 success : function(result) {
                     layer.closeAll('loading');
-                    if (result.code == 200) {
+                    if (result.code === 200) {
                         layer.msg(result.msg, {icon: 1});
                         admin.finishPopupCenter();
-                    } else if (result.code == 401) {
+                    } else if (result.code === 401) {
                         layer.msg(result.msg, {icon: 2, time: 1500}, function () {
                             location.replace('[[@{/login}]]');
                         }, 1000);
-                        return;
                     } else {
                         console.log('err:' + result.code);
                         layer.msg(result.msg, {icon: 2});
