tao.mo

biz-customer | 修改 | 信息校验

mt
2024年11月12日15:07:37
......@@ -10,24 +10,24 @@ public class ConsignmentBo {
//运单id
private Integer id;
//运单号
@BaseNotBlank
@BaseNotBlank(describe = "business_field_31003")
private String consignmentCode;
//用户录入shipperAccount
@BaseNotBlank
//发货人计费账号
@BaseNotBlank(describe = "business_field_31001")
private String shipperAccount;
//原产国code
@BaseNotBlank
@BaseNotBlank(describe = "business_field_31004")
private String originCountryCode;
//原产国全
@BaseNotBlank
//原产国全
@BaseNotBlank(describe = "business_field_31005")
private String originCountry;
//目的国code
@BaseNotBlank
@BaseNotBlank(describe = "business_field_31006")
private String destinationCountryCode;
//目的国全称
@BaseNotBlank
@BaseNotBlank(describe = "business_field_31007")
private String destinationCountry;
//文件业务类型AWB,INV,PKL,OTH(分运单,发票,箱单和其它这四种类型)
@BaseNotBlank
@BaseNotBlank(describe = "business_field_31008")
private List<String> fileBizType;
}
......
......@@ -9,6 +9,13 @@ public enum ResponseCode {
//********************biz_customer模块
//#*********用于字段描述使用,不单独使用**********
MESSAGE_CODE_31001(31001,"business_field_31001"),
MESSAGE_CODE_31002(31002,"business_field_31002"),
MESSAGE_CODE_31003(31003,"business_field_31003"),
MESSAGE_CODE_31004(31004,"business_field_31004"),
MESSAGE_CODE_31005(31005,"business_field_31005"),
MESSAGE_CODE_31006(31006,"business_field_31006"),
MESSAGE_CODE_31007(31007,"business_field_31007"),
MESSAGE_CODE_31008(31008,"business_field_31008"),
//#*********具体响应到前端**********
MESSAGE_CODE_30001(30001,"business_exception_30001"),
......
......@@ -27,7 +27,7 @@ public class ConsignmentInfoValidate {
*/
public void validateConsignmentId(Long consignmentId){
if (Objects.isNull(consignmentId)){
responseUtils.fail(ResponseCode.MESSAGE_CODE_30001);
responseUtils.fail(ResponseCode.MESSAGE_CODE_30001,ResponseCode.MESSAGE_CODE_31002.getMsg());
}
}
}
......
......@@ -45,14 +45,9 @@ public class ConsignmentValidate {
* @return void
*/
public void validateConsignmentSubmit(ConsignmentBo consignmentBo){
Integer code = ResponseCode.MESSAGE_CODE_30001.getCode();
String msg = ResponseCode.MESSAGE_CODE_30001.getMsg();
if(Objects.isNull(consignmentBo)){
responseUtils.fail(ResponseCode.MESSAGE_CODE_30001);
}
/**
* 非空字段校验
*/
baseValidateUtils.notBlankValidate(consignmentBo,code,msg);
baseValidateUtils.notBlankValidate(consignmentBo,ResponseCode.MESSAGE_CODE_30001);
}
}
......
......@@ -21,6 +21,12 @@ system_exception_10006=登录已过期,请重新登录
business_field_31001=发货人计费账号
business_field_31002=运单ID
business_field_31003=运单号
business_field_31004=原产国编码
business_field_31005=原产国名称
business_field_31006=目的国编码
business_field_31007=目的国全称
business_field_31008=文件业务类型
#*********具体响应到前端**********
business_exception_30001=${0}必填字段未填写
business_exception_30002=单次最多可查询1000个运单号码
......
......@@ -21,6 +21,12 @@ system_exception_10006=登录已过期,请重新登录
business_field_31001=发货人计费账号
business_field_31002=运单ID
business_field_31003=运单号
business_field_31004=原产国编码
business_field_31005=原产国名称
business_field_31006=目的国编码
business_field_31007=目的国全称
business_field_31008=文件业务类型
#*********具体响应到前端**********
business_exception_30001=${0}必填字段未填写
business_exception_30002=单次最多可查询1000个运单号码
......
package com.fedex.connect.common.dependencies.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* 字段非空注解
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface BaseNotBlank {
//操作描述,使用国际化文件中编码
String describe();
}
......
......@@ -2,10 +2,13 @@ package com.fedex.connect.common.dependencies.util;
import com.fedex.connect.common.dependencies.annotation.BaseNotBlank;
import com.fedex.connect.common.dependencies.exception.OpErrorException;
import com.fedex.connect.common.dependencies.i18n.LocaleMessageUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
......@@ -15,32 +18,44 @@ import java.util.Objects;
*/
@Component
public class BaseValidateUtils {
@Autowired
ResponseUtils responseUtils;
@Autowired
LocaleMessageUtil localeMessageUtil;
/**
* 字段非空校验,仅对有BaseNotBlank注解字段进行非空校验,字段类型如果为字符串,空字符串也算空
* @param obj
*/
public void notBlankValidate(Object obj,Integer code,String msg){
public void notBlankValidate(Object obj,Object codeEnum){
Class cls = obj.getClass();
Field[] fields = cls.getDeclaredFields();
try {
List<String> errorList = new ArrayList<>();
for (Field field : fields) {
Annotation annotation = field.getAnnotation(BaseNotBlank.class);
BaseNotBlank annotation = field.getAnnotation(BaseNotBlank.class);
if (Objects.nonNull(annotation)) {
Object value = AssignmentFieldUtils.getFieldValue(obj, field.getName());
if(value instanceof String){
String str = String.valueOf(value);
if(!StringUtils.hasText(str)){
throw new OpErrorException(code,msg);
String fieldName = localeMessageUtil.getMessage(annotation.describe());
errorList.add(fieldName);
}
}else{
if(Objects.isNull(value)){
throw new OpErrorException(code,msg);
String fieldName = localeMessageUtil.getMessage(annotation.describe());
errorList.add(fieldName);
}
}
}
}
//存在非空字段为空的情况
if(errorList.size() > 0){
responseUtils.fail(codeEnum,errorList);
}
}catch(Exception ex){
throw new OpErrorException(code,msg);
responseUtils.fail(codeEnum);
}
}
}
\ No newline at end of file
......
......@@ -50,6 +50,7 @@ public class ResponseUtils {
*/
public void fail(Object codeEnum,Object...objects) {
ResponseCodeBo responseCodeBo = this.ref(codeEnum,objects);
log.error(responseCodeBo.getErrMsg());
throw new OpErrorException(responseCodeBo.getCode(), responseCodeBo.getErrMsg());
}
......