@Valid注解

分类 限制 说明
空和非空检查 @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;
}
posted @ 2022-09-07 11:55  Lafite-1820  阅读(75)  评论(0)    收藏  举报