@Component
@Slf4j
public class ManualValidateComponent implements InitializingBean {
private static SpringValidatorAdapter validator;
@Autowired
private SpringValidatorAdapter validatorAdapter;
/**
* 预寻仓校验
*
* @param object 校验对象
* @param groups 校验组
*/
public static void groupsValidate(Object object, Class<?>... groups) {
Set<ConstraintViolation<Object>> validate = validator.validate(object, groups);
if (!CollectionUtils.isEmpty(validate)) {
ConstraintViolation<Object> objectConstraintViolation = validate.stream().findFirst().get();
String message = objectConstraintViolation.getMessage();
String errorInfoByNo = ErrorCodeEnums.getErrorInfoByNo(message);
log.error("校验失败:{} {}", message, errorInfoByNo);
ErrorCodeEnums errorCodeEnum = ErrorCodeEnums.getErrorCodeEnum(message);
I18nAssert.isTrue(false, errorCodeEnum);
}
}
@Override
public void afterPropertiesSet() throws Exception {
validator = validatorAdapter;
}
}
@NotBlank(message = "error.order.trans.8029", groups = {
OrderTransactionAppValidationGroup.SapSdSendOut.class,
OrderTransactionAppValidationGroup.ExchangeOrder.class,
OrderTransactionAppValidationGroup.ReturnOrder.class,
OrderTransactionAppValidationGroup.RefundOrder.class,
OrderTransactionAppValidationGroup.DebitCreditOrderCreate.class
})
private String orderType;
// 订单基本校验,所有订单类型都校验部分
ManualValidateComponent.groupsValidate(orderHeadDTO, OrderTransactionAppValidationGroup.Base.class);