请求体
{
"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="添加地址")
//验证场景不同,使用了AddressValidate.Update
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 {}
//只有update时才验证aid
@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;
}
}