restful API批量添加List内部对象必传参数验证

controller层代码 

 @ApiOperation(value = "图层数据-批量添加 @author Tarzan Liu")
    @PostMapping("layer/addBatch")
    public ResponseDTO<List<LayerAddBackVO>> addBatch(@RequestBody @Valid ValidList<LayerDTO> data) {
        return layerService.addBatch(data);
    }

 LayerDTO对象


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

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;


@Data
public class LayerDTO {


    @ApiModelProperty("图层ID")
    private Long id;

    @ApiModelProperty("煤矿图id")
    @NotNull(message = "煤矿图id不为空")
    private Long drawingId;

    @ApiModelProperty("图层分类id")
    @NotNull(message = "图层分类id不为空")
    private Long layerTypeId;

    @ApiModelProperty("图层唯一标识(识别dwg文件图层是否同一个图层)")
    private String code;

    @ApiModelProperty("图层名称")
    @NotBlank(message = "图层名称不为空")
    private String layerName;

    @ApiModelProperty("线形")
    private String lineType;

    @ApiModelProperty("颜色")
    private Integer color;

    @ApiModelProperty("打印样式")
    private String plotStyle;

    @ApiModelProperty("是否冻结")
    private Integer isFrozen;

    @ApiModelProperty("是否锁定")
    private Integer isLocked;

    @ApiModelProperty("是否关闭")
    private Integer isOff;

    @ApiModelProperty("是否有PLOT表")
    private Integer isPlotTable;

    @ApiModelProperty("线形重量")
    private Integer lineWeight;

    @ApiModelProperty("显示倍数")
    private Long showMultiple;

    @ApiModelProperty("版本号")
    private String version;

    @ApiModelProperty("生效状态(0:未生效;1:生效)")
    private Integer effectStatus;

    @ApiModelProperty("版本批次(标记版本批次,一般给第一个版本id)")
    private String versionBatch;

    @ApiModelProperty("专题图和图层关系是否绑定")
    private Boolean bindFlag = false;

    @ApiModelProperty("专题图和图层关系表id")
    private Long mapTypeId;

    @ApiModelProperty("是否入库")
    private Boolean isExist;


}

ValidList 包装类 


import javax.validation.Valid;
import java.util.*;

/**
 * 可被校验的List
 * @description
 * @author tarzan Liu
 * @version 1.0.0
 * @date 2020/9/29
 */
 public class ValidList<E> implements List<E> {

    @Valid
    private List<E> list;

    public ValidList() {
        this.list = new ArrayList<>();
    }

    public ValidList(List<E> list) {
        this.list = list;
    }

    public List<E> getList() {
        return list;
    }

    public void setList(List<E> list) {
        this.list = list;
    }

    //重写List方法,可省略
    @Override
    public int size() {
        return list.size();
    }

    @Override
    public boolean isEmpty() {
        return list.isEmpty();
    }

    @Override
    public boolean contains(Object o) {
        return list.contains(o);
    }

    @Override
    public Iterator<E> iterator() {
        return list.iterator();
    }

    @Override
    public Object[] toArray() {
        return list.toArray();
    }

    @Override
    public <T> T[] toArray(T[] a) {
        return list.toArray(a);
    }

    @Override
    public boolean add(E e) {
        return list.add(e);
    }

    @Override
    public boolean remove(Object o) {
        return list.remove(o);
    }

    @Override
    public boolean containsAll(Collection<?> c) {
        return list.contains(c);
    }

    @Override
    public boolean addAll(Collection<? extends E> c) {
        return list.addAll(c);
    }

    @Override
    public boolean addAll(int index, Collection<? extends E> c) {
        return list.addAll(index, c);
    }

    @Override
    public boolean removeAll(Collection<?> c) {
        return list.removeAll(c);
    }

    @Override
    public boolean retainAll(Collection<?> c) {
        return list.retainAll(c);
    }

    @Override
    public void clear() {
        list.clear();
    }

    @Override
    public E get(int index) {
        return list.get(index);
    }

    @Override
    public E set(int index, E element) {
        return list.set(index, element);
    }

    @Override
    public void add(int index, E element) {
        list.add(index, element);
    }

    @Override
    public E remove(int index) {
        return list.remove(index);
    }

    @Override
    public int indexOf(Object o) {
        return list.indexOf(o);
    }

    @Override
    public int lastIndexOf(Object o) {
        return list.lastIndexOf(o);
    }

    @Override
    public ListIterator<E> listIterator() {
        return list.listIterator();
    }

    @Override
    public ListIterator<E> listIterator(int index) {
        return list.listIterator(index);
    }

    @Override
    public List<E> subList(int fromIndex, int toIndex) {
        return list.subList(fromIndex, toIndex);
    }

 }

小伙伴们学会了吗?代码从未如此简单!!! 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泰山AI

原创不易,感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值