| 分类 | 限制 | 说明 | 
| 空和非空检查 | @Null | 限制只能为null | 
|  | @NotNull | 限制必须不为null | 
|  | @NotEmpty | 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0) | 
|  | @NotBlank | 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格 | 
| Boolean值得检查 | @AssertFalse | 限制必须为false | 
|  | @AssertTrue | 限制必须为true | 
| 长度检查 | @Size(max,min) | 限制字符长度必须在min到max之间 | 
| 日期检查 | @Past | 检验日期为当期日期之前 | 
|  | @Future | 检验日期为当期日期之后 | 
|  | @PastOrPresent | 校验日期为当前日期或之后 | 
| 数值检查 | @Max(value) | 限制必须为一个不大于指定值的数字 | 
|  | @Min(value) | 限制必须为一个不小于指定值的数字 | 
|  | @DecimalMax(value) | 限制必须为一个不大于指定值的数字 | 
|  | @DecimalMin(value) | 限制必须为一个不小于指定值的数字 | 
|  | @Digits(integer,fraction) | 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction | 
|  | @Negative | 限制必须为负整数 | 
|  | @NegativeOrZero | 限制必须为负整数或零 | 
|  | @Positive | 限制必须为正整数 | 
|  | @PositiveOrZero | 限制必须为正整数或零 | 
| 其他 | @Pattern(value) | 限制必须符合指定的正则 | 
|  | @Email | 限制必须为email | 
    /**
     * 新增图片
     * @param rquest
     * @param bindingResult
     * @return
     */
    @PostMapping("/add")
    public ResponseEntity<?> add(@RequestBody  @Valid AssetImageAndVideoResp rquest, BindingResult bindingResult){
        log.info("asset image request params >>>  {}", rquest);
        // 处理校验
        if (bindingResult.hasErrors()){
            throw new BaseException(bindingResult.getFieldError().getDefaultMessage());
        }
        AssetImageJpaEntity assetImageJpaEntity = assetImageService.add(rquest);
        if (assetImageJpaEntity.getId() != null) {
            return ResponseEntity.ok(GenericResponse.success());
        } else {
            return ResponseEntity.ok(GenericResponse.error());
        }
    }
@Data
public class AssetImageAndVideoResp {
    private int id;
    @NotBlank(message = "请输入素材url")
    private String url;  // 素材URL
    @NotBlank(message = "请输入素材名称")
    private String name; // 名称
    private Integer source; // 素材来源
    private String advertiserName; // 来源名称
    private String advertiserId; // 素材来源ID
    @Positive(message = "请输入素材宽")
    private Integer width;    // 宽
    @Positive(message = "请输入素材高")
    private Integer height;   // 高
    private String widthAndHeight; //宽高
    private Integer asceptWidth; // 宽比例
    private Integer asceptHeight; // 高比例
    @Positive(message = "请输入素材大小")
    private Long size;  // 大小
    private Integer assetImageAspectId; // 规则ID
    private Integer duration;   // 视频时长,单位:秒
    // 创建时间
    private LocalDateTime createdAt;
    // 修改时间
    private LocalDateTime updatedAt;
    // 创建人
    private String createdBy;
    // 最后一次提交人
    private String updatedBy;
}