Commit cde62f55 by guojuxing

service曾参数校验

parent 3fe11e3e
......@@ -49,6 +49,12 @@
<version>4.12</version>
<scope>test</scope>
</dependency>
<!--参数验证-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.16.Final</version>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-log-api</artifactId>
......
package com.gic.enterprise.utils.valid;
import java.util.Iterator;
import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import com.gic.enterprise.exception.CommonException;
import org.hibernate.validator.HibernateValidator;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.enterprise.error.ErrorCode;
/**
* service层面的参数校验工具
* @ClassName: ValidUtil

* @Description: 

* @author guojuxing

* @date 2019/7/9 10:49 AM

*/
public class ValidParamsUtils {
/**
* 开启快速结束模式 failFast (true)
*/
private static Validator failFastValidator = Validation.byProvider(HibernateValidator.class).configure()
.failFast(true).buildValidatorFactory().getValidator();
/**
* 全部校验
*/
private static Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
private ValidParamsUtils() {
}
/**
* 输出第一个参数错误的信息
* @Title: fastFailValidate

* @Description:

 * @author guojuxing
* @param obj
* @param groups
 分组接口
* @return com.gic.api.base.commons.ServiceResponse


 */
public static <T> ServiceResponse fastFailValidate(T obj, Class<?>... groups) {
Set<ConstraintViolation<T>> constraintViolations = failFastValidator.validate(obj, groups);
if (constraintViolations.size() > 0) {
String paramName = constraintViolations.iterator().next().getPropertyPath().toString();
String paramError = constraintViolations.iterator().next().getMessage();
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), getFailFastMsg(paramName, paramError));
}
return ServiceResponse.success();
}
/**
* 输出所有参数错误的信息
* @Title: allCheckValidate

* @Description:

 * @author guojuxing
* @param obj
* @param groups

* @return com.gic.api.base.commons.ServiceResponse


 */
public static <T> ServiceResponse allCheckValidate(T obj, Class<?>... groups) {
Set<ConstraintViolation<T>> constraintViolations = validator.validate(obj, groups);
if (constraintViolations.size() > 0) {
StringBuilder errorMessages = new StringBuilder();
Iterator<ConstraintViolation<T>> iterator = constraintViolations.iterator();
while (iterator.hasNext()) {
ConstraintViolation<T> violation = iterator.next();
errorMessages.append(getFailFastMsg(violation.getPropertyPath().toString(), violation.getMessage()))
.append(",");
}
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), errorMessages.toString());
}
return ServiceResponse.success();
}
/**
* 输出所有参数错误的信息
* @Title: allCheckValidate

* @Description:

 * @author guojuxing
* @param obj
* @param groups

* @return com.gic.api.base.commons.ServiceResponse


 */
public static <T> void allCheckValidateOfException(T obj, Class<?>... groups) {
Set<ConstraintViolation<T>> constraintViolations = validator.validate(obj, groups);
if (constraintViolations.size() > 0) {
StringBuilder errorMessages = new StringBuilder();
Iterator<ConstraintViolation<T>> iterator = constraintViolations.iterator();
while (iterator.hasNext()) {
ConstraintViolation<T> violation = iterator.next();
errorMessages.append(getFailFastMsg(violation.getPropertyPath().toString(), violation.getMessage()))
.append(",");
}
throw new CommonException(ErrorCode.PARAMETER_ERROR.getCode(), errorMessages.toString());
}
}
public static String getFailFastMsg(String paramName, String paramError) {
return String.format("%s:%s", paramName, paramError);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment