测试bean validate
diff --git a/common/src/main/java/com/supwisdom/dlpay/api/bean/OpenUserParam.java b/common/src/main/java/com/supwisdom/dlpay/api/bean/OpenUserParam.java
index ceaae42..09514e3 100644
--- a/common/src/main/java/com/supwisdom/dlpay/api/bean/OpenUserParam.java
+++ b/common/src/main/java/com/supwisdom/dlpay/api/bean/OpenUserParam.java
@@ -36,7 +36,6 @@
   @NotEmpty(message = "证件号不能为空,且仅支持数字和字母")
   private String idno;
   @Sign
-  @NotEmpty(message = "手机号格式错误")
   @MobileNumber(message = "手机号格式错误")
   private String mobile;
   @Sign
diff --git a/common/src/main/java/com/supwisdom/dlpay/api/validator/IDNoCheckValidator.java b/common/src/main/java/com/supwisdom/dlpay/api/validator/IDNoCheckValidator.java
index 812ad55..9d67476 100644
--- a/common/src/main/java/com/supwisdom/dlpay/api/validator/IDNoCheckValidator.java
+++ b/common/src/main/java/com/supwisdom/dlpay/api/validator/IDNoCheckValidator.java
@@ -29,6 +29,10 @@
       if (StringUtils.isEmpty(idno)) {
         return false;
       }
+      if (IDTypes.IDTYPE_IDCARD.value().equals(idtype) && idno.length() != 18) {
+        return false;
+      }
+      return true;
     } catch (IllegalAccessException e) {
       e.printStackTrace();
     } catch (InvocationTargetException e) {
diff --git a/common/src/test/java/com/supwisdom/dlpay/api/bean/CitizenCardPayinitParamTest.java b/common/src/test/java/com/supwisdom/dlpay/api/bean/CitizenCardPayinitParamTest.java
index f39af2e..3fa5c38 100644
--- a/common/src/test/java/com/supwisdom/dlpay/api/bean/CitizenCardPayinitParamTest.java
+++ b/common/src/test/java/com/supwisdom/dlpay/api/bean/CitizenCardPayinitParamTest.java
@@ -1,12 +1,16 @@
 package com.supwisdom.dlpay.api.bean;
 
+import com.supwisdom.dlpay.api.util.IDTypes;
+import com.supwisdom.dlpay.api.util.SexTypes;
 import org.junit.Test;
 
 import javax.validation.ConstraintViolation;
 import javax.validation.Validation;
 import javax.validation.Validator;
 import javax.validation.ValidatorFactory;
-import java.util.Set;
+import java.util.*;
+import java.util.stream.Collectors;
+import java.util.stream.StreamSupport;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
@@ -25,23 +29,41 @@
   public void testCitizenPay() {
     CitizenCardPayinitParam param = new CitizenCardPayinitParam();
 
-    Set<ConstraintViolation<CitizenCardPayinitParam>> violations = validator.validate(param);
+    List<ConstraintViolation<CitizenCardPayinitParam>> violations = validate(param);
+    String message = getViolationMessage(violations);
+    assertFalse(message, violations.isEmpty());
+  }
+
+  private <T> List<ConstraintViolation<T>> validate(T param) {
+    Set<ConstraintViolation<T>> violations = validator.validate(param);
+    List<ConstraintViolation<T>> result = StreamSupport.stream(violations.spliterator(), false)
+        .collect(Collectors.toList());
+    return result;
+  }
+
+  private <T> String getViolationMessage(List<ConstraintViolation<T>> violations) {
     StringBuilder message = new StringBuilder();
-    for (ConstraintViolation<CitizenCardPayinitParam> item : violations) {
+    for (ConstraintViolation<T> item : violations) {
       message.append(item.getMessage()).append("\n");
     }
-    assertFalse(message.toString(), violations.isEmpty());
+    return message.toString();
   }
 
   @Test
   public void testOpenUserParam() {
     OpenUserParam param = new OpenUserParam();
-    param.setIdtype("12323");
-    Set<ConstraintViolation<OpenUserParam>> violations = validator.validate(param);
-    StringBuilder message = new StringBuilder();
-    for (ConstraintViolation<OpenUserParam> item : violations) {
-      message.append(item.getMessage()).append("\n");
-    }
-    assertFalse(message.toString(), violations.isEmpty());
+    List<ConstraintViolation<OpenUserParam>> result = validate(param);
+    assertFalse(getViolationMessage(result), result.isEmpty());
+
+    param.setIdtype(IDTypes.IDTYPE_IDCARD.value());
+    param.setIdno("123213");
+    param.setUid("1231323");
+    param.setName("lily");
+    param.setSex(SexTypes.MALE.value());
+    param.setMobile("+8618272733888");
+
+    result = validate(param);
+    assertTrue(getViolationMessage(result), result.isEmpty());
+
   }
 }
\ No newline at end of file
diff --git a/payapi-sdk/build.gradle b/payapi-sdk/build.gradle
index 2c27e28..7f5aafa 100644
--- a/payapi-sdk/build.gradle
+++ b/payapi-sdk/build.gradle
@@ -78,4 +78,4 @@
 }
 
 jar.dependsOn(fullJar)
-publish.dependsOn(fullJar)
\ No newline at end of file
+publish.dependsOn(jar)
\ No newline at end of file