只有一个参数且是List集合类型的进行校验
2022-08-15 本文已影响0人
flyjar
List参数不能直接放到Controller直接进行校验,所以要创建校验对象
@Data
public class SkuListParam {
@NotNull
@Size(min = 1, message = "请至少上传1一条记录")
@ApiModelProperty(value = "sku集合", required = true)
private List<@Valid SkuParam> skuParams;
@Data
// 内部类一定要用static,具体原因请参考文章
// 像这样的非静态内部类只能通过使用默认的无参数构造函数进行实例化
// 所以这里要把SkuParam这个类改成静态类
public static class SkuParam {
/**
*
*/
@NotNull(message = "sku的主键id不能为空")
@ApiModelProperty(value = "sku的主键id", required = true)
private Long skuId;
/**
* 需求数量
*/
@NotNull
@Min(value = 1, message = "需求数量最小不能少于1个")
@ApiModelProperty(value = "需求数量", required = true)
private Integer prodCount;
}
}
/**
* 计算订单中产品的总价
* @param skuParams sku集合
* @return 总价格
*/
@PostMapping("/calcProdTotalPrice")
@ApiOperation(value = "计算订单中产品的总价", notes = "根据sku的id集合计算对应的总价格")
public ResponseEntity calcProdPrice(@Valid @RequestBody SkuListParam skuParams) {
}