一直以来都用if/else做数据入参的校验,如图:
开始觉得还行,好像什么都能干,用的都挺好的。不过随着项目的不断深入,弊端就逐渐显示了出来,代码太过繁琐,不够简洁,于是涛哥让我们在网上找数据校验的方法,于是找了viladate,开始觉得就那样只能做一下空值的校验,随着深入才发现真香,少废话,上图:
2022-06-13:
start
校验生效时间不能小于当前时间
/**
* 校验起始时间是否小于当前时间,起始时间是否大于终止时间
* @param effectTime 生效时间
*/
public static void checkEffectDate(Date effectTime){
if (effectTime == null) {
throw new BusinessException("生效时间不能为空");
}
// 获取当前的时间
Date today = DateUtil.now();
// compareTo()方法的返回值,第一个时间小于第二个时间返回-1,第一个时间大于第二个时间返回返回1,相等返回0
int compare = today.compareTo(effectTime);
// 生效时间小于当前时间,抛出异常
if (compare > 0) {
throw new BusinessException(“生效时间不能小于当前时间”);
}
}
或者在实体类上添加注解@Future(message="生效时间不能小于当前时间")
end
相关文章:
2024-10-17 start:
controller:
@PostMapping("/test")
public TestVo messageUp(@RequestBody @Valid TestPara TestPara) {
log.info("入参【{}】",TestPara);
return TestVo.builder()
.code(OfficeImMessageVo.SUCCESS)
.msg(OfficeImMessageVo.SUCCESS_MSG)
.build();
}
TestPara:
/**
* @author haijin
* @description: -入参
*/
@Data
public class TestPara {
/**
* 32位uuid
*/
@NotBlank(message = "uuid不能为空")
@Length(max = 32,min = 32,message = "uuid为32位")
private String uuid;
}
TestVo:
/**
* @author haijin
* @description: 出参
*/
@Data
@Builder
public class TestVo {
/**
* 成功标识
*/
public static final String SUCCESS = "0";
/**
* 失败标识
*/
public static final String FAIL = "1";
/**
* 成功
*/
public static final String SUCCESS_MSG = "成功";
/**
* 响应结果编码
*/
private String code;
/**
* 响应结果编码内容
*/
private String msg;
}
end