@Validated校验多层json

发布于:2024-05-10 ⋅ 阅读:(31) ⋅ 点赞:(0)

请求体

{
    "aid":123,
	"name": "abc",
	"phone": "13333333333",
    "address":"abcdefgh",
    "region":{
        "province":234,
        "district":445,
        "city":3,
        "full_name":"辽宁 大连"
    }
}

 


@RestController
@RequestMapping("api/user/address")
@Api(tags = "用户地址管理")
public class AddressController {
    @Resource

    @NotLogin
    @PostMapping("/add")
    @ApiOperation(value="添加地址")
    public AjaxResult<Object> add(@Validated(AddressValidate.Basic.class) @RequestBody AddressValidate addressValidate) {
        return AjaxResult.success(addressValidate);
    }

    @NotLogin
    @PostMapping("/edit")
    @ApiOperation(value="添加地址")
    public AjaxResult<Object> edit(@Validated(AddressValidate.Update.class) @RequestBody AddressValidate addressValidate) {
        return AjaxResult.success(addressValidate);
    }

}

 AddressValidate.java

package com.mdd.front.validate.users;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.*;
import java.io.Serializable;
@Data
@ApiModel("更新地址")
public class AddressValidate implements Serializable {
    private static final long serialVersionUID = 1L;

    public interface Basic {}
    public interface Update extends Basic {}

    @NotNull(groups = Update.class, message = "地址ID参数缺失")
    @ApiModelProperty(value = "地址ID", required = true)
    private Integer aid;

    @NotNull(groups = Basic.class, message = "联系人参数缺失")
    @NotBlank(groups = Basic.class, message = "联系人不能为空")
    @Size(groups = Basic.class, min = 2, message="联系人最少2个字")
    @ApiModelProperty(value = "联系人", required = true)
    private String name;

    @NotNull(groups = Basic.class, message = "联系电话参数缺失")
    @NotBlank(groups = Basic.class, message = "联系电话不能为空")
    @Size(groups = Basic.class, min = 11, max = 11, message="电话应为11位")
    @Pattern(groups = Basic.class, regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$", message = "手机号格式有误")
    @ApiModelProperty(value = "联系电话", required = true)
    private String phone;

    @NotNull(groups = Basic.class, message = "详细地址参数缺失")
    @NotBlank(groups = Basic.class, message = "详细地址不能为空")
    @Size(groups = Basic.class, min = 6, message="详细地址最少6个字")
    @ApiModelProperty(value = "详细地址", required = true)
    private String address;

    @NotNull(groups = Basic.class, message = "地区参数缺失")
    @Valid
    private Region region;

    @Data
    public static class Region {
        @NotNull(groups = Basic.class, message = "province参数缺失")
        @ApiModelProperty(value = "省", required = true)
        private Integer province;

        @NotNull(groups = Basic.class, message = "city参数缺失")
        @ApiModelProperty(value = "市", required = true)
        private Integer city;

        @NotNull(groups = Basic.class, message = "district参数缺失")
        @ApiModelProperty(value = "区", required = true)
        private Integer district;

        @NotNull(groups = Basic.class, message = "full_name参数缺失")
        @ApiModelProperty(value = "地区全称", required = true)
        private String full_name;
    }
}


网站公告

今日签到

点亮在社区的每一天
去签到