1. 程式人生 > 其它 >restful API批量新增List內部物件必傳引數驗證

restful API批量新增List內部物件必傳引數驗證

技術標籤:技術交流java校驗

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);
    }

 }

小夥伴們學會了嗎?程式碼從未如此簡單!!!