注解实体类
@Data
public class OrderDemandDTO implements DtoConverter<OrderDemand> {
private Integer id;
@NotNull(message = "订单ID不能为空")
private Integer orderId;
private Integer destinationCity;
private String destinationCityName;
@NotNull(message = "预定城市不能为空")
private Integer bookingCity;
private String bookingCityName;
@NotNull(message = "出发城市不能为空")
private Integer tripCity;
private String tripCityName;
private Integer minTravelDay;//最小出游天数
private Integer maxTravelDay;//最大出游天数
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startTravelDate;//开始出游日期
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endTravelDate;//结束出游日期
private BigDecimal minProductPrice;//产品起价-最小价格
private BigDecimal maxProductPrice;//产品起价-最大价格
@EnumValid(enumClass = SingleRoomPlanEnum.class, message = "单房差方案有误")
private String singleRoomPlan;
private String singleRoomPlanName;
@Override
public void covertEntity2Dto(OrderDemand orderDemand) {
MyBeanUtils.copyProperties(orderDemand, this);
if(StringUtils.isNotBlank(this.singleRoomPlan)) this.singleRoomPlanName = SingleRoomPlanEnum.valueOf(this.singleRoomPlan).getName();
}
@Override
public void covertDto2Entity(OrderDemand orderDemand) {
MyBeanUtils.copyProperties(this, orderDemand);
}
校验类
public class MyValidator {
static ValidatorFactory vf = Validation.buildDefaultValidatorFactory();
static Validator validator = vf.getValidator();
/**
* 使用Validator校验注解
* @param param
*/
public static void checkParams(Object param){
checkParams(param, Default.class);
}
/**
* 分组校验
* @param param
* @param groups
*/
public static void checkParams(Object param, Class<?>... groups){
Set<ConstraintViolation<Object>> set = validator.validate(param, groups);
for (ConstraintViolation<Object> constraintViolation : set) {
throw new MySystemException(SystemErrorEnum.BAD_REQUEST, constraintViolation.getMessage());
}
}
}
调用方法:
MyValidator.checkParams(orderDemandDTO );