springboot 多個Vo共用一個Vo,利用@Validated注解的分組特性

Vo類的代碼

package com.meilingcloud.biobank.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.sql.Timestamp;

/**
 * 通過時間查詢設(shè)備歷史數(shù)據(jù)Vo
 *
 * @author WeiWei
 * @date 2022/08/24
 */
@Data
public class GetDeviceHistoryDataByTimeReqVo implements Serializable {

    private static final long serialVersionUID = 1L;


    /**
     * 通過時間查詢設(shè)備歷史數(shù)據(jù)接口入?yún)?     *
     * @author WeiWei
     * @date 2022/08/29
     */
    public interface GetDeviceHistoryDataByTime {
    }


    /**
     * 通過時間分頁查詢設(shè)備歷史數(shù)據(jù)接口入?yún)?     *
     * @author WeiWei
     * @date 2022/08/29
     */
    public interface GetDeviceHistoryDataByTimeToPaging{

    }

    /**
     * 通過時間導(dǎo)出設(shè)備基礎(chǔ)數(shù)據(jù)接口入?yún)?     *
     * @author WeiWei
     * @date 2022/08/29
     */
    public interface ExportDeviceHistoryDataByTime{

    }


    /**
     * 開始時間
     */
    @NotNull(message = "開始時間不能為空",groups = {GetDeviceHistoryDataByTime.class,GetDeviceHistoryDataByTimeToPaging.class,ExportDeviceHistoryDataByTime.class})
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
    private Timestamp startTime;

    /**
     * 結(jié)束時間
     */
    @NotNull(message = "結(jié)束時間不能為空",groups = {GetDeviceHistoryDataByTime.class,GetDeviceHistoryDataByTimeToPaging.class,ExportDeviceHistoryDataByTime.class})
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
    private Timestamp endTime;

    /**
     * 設(shè)備id
     */
    @NotNull(message = "設(shè)備id不能為空",groups = {GetDeviceHistoryDataByTime.class,GetDeviceHistoryDataByTimeToPaging.class,ExportDeviceHistoryDataByTime.class})
    private String deviceId;

    /**
     * 設(shè)備類型(1:冷藏箱 2:液氮罐 3:超低溫冰箱)
     */
    @NotNull(message = "設(shè)備類型不能為空",groups = {GetDeviceHistoryDataByTime.class,GetDeviceHistoryDataByTimeToPaging.class,ExportDeviceHistoryDataByTime.class})
    private String deviceType;


    /**
     * 頁碼
     */
    @NotNull(message = "頁碼不能為空",groups = {GetDeviceHistoryDataByTimeToPaging.class})
    private Integer pageNum;

    /**
     * 頁大小
     */
    @NotNull(message = "頁大小不能為空",groups = {GetDeviceHistoryDataByTimeToPaging.class})
    private Integer pageSize;

    /**
     * 排序字段
     */
    @NotNull(message = "排序字段不能為空",groups = {GetDeviceHistoryDataByTimeToPaging.class})
    private String orderByColumn;

    /**
     * 排序的方向 "desc" 或者 "asc"
     */
    @NotNull(message = "排序的方向不能為空",groups = {GetDeviceHistoryDataByTimeToPaging.class})
    private String isAsc;
}

在controller類的用法

package com.meilingcloud.web.controller.taos;


import com.meilingcloud.biobank.domain.UltraColdData;
import com.meilingcloud.biobank.domain.vo.DeviceBaseDataToPagingVo;
import com.meilingcloud.biobank.domain.vo.GetDeviceHistoryDataByTimeReqVo;
import com.meilingcloud.biobank.service.DataUploadService;
import com.meilingcloud.common.annotation.Log;
import com.meilingcloud.common.core.domain.AjaxResult;
import com.meilingcloud.common.enums.BusinessType;
import com.meilingcloud.system.domain.vo.AppPageBase;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)上傳控制器
 *
 * @author WeiWei
 * @date 2022/08/22
 */
@RestController
@RequestMapping("/dataUpload")
@RequiredArgsConstructor
public class DataUploadController {

    private final DataUploadService dataUploadService;


    @Log(title = "數(shù)據(jù)上傳", businessType = BusinessType.INSERT)
    @PostMapping("/coldData")
    public AjaxResult coldData(@RequestBody UltraColdData ultraColdData) {
        boolean result = dataUploadService.insertOneUltraColdData(ultraColdData);
        return result ? AjaxResult.success() : AjaxResult.error();
    }


    /**
     * 分頁查詢所有設(shè)備基礎(chǔ)數(shù)據(jù)列表
     *
     * @return {@link AjaxResult}
     */
    @PostMapping("/getAllDeviceBaseDataListToPaging")
    public AjaxResult getAllDeviceBaseDataListToPaging(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize) {
        DeviceBaseDataToPagingVo result = dataUploadService.getAllDeviceBaseDataListToPaging(pageNum,pageSize);
        return AjaxResult.success(result);
    }


    /**
     * 通過時間查詢設(shè)備歷史數(shù)據(jù)
     *
     * @return {@link AjaxResult}
     */
    @PostMapping("/getDeviceHistoryDataByTime")
    public AjaxResult getDeviceHistoryDataByTime(@Validated(GetDeviceHistoryDataByTimeReqVo.GetDeviceHistoryDataByTime.class) @RequestBody GetDeviceHistoryDataByTimeReqVo reqVo) {
        List<?> result = dataUploadService.getDeviceHistoryDataByTime(reqVo);
        return AjaxResult.success(result);
    }

    /**
     * 通過時間分頁查詢設(shè)備歷史數(shù)據(jù)
     *
     * @return {@link AjaxResult}
     */
    @PostMapping("/getDeviceHistoryDataByTimeToPaging")
    public AjaxResult getDeviceHistoryDataByTimeToPaging(@Validated(GetDeviceHistoryDataByTimeReqVo.GetDeviceHistoryDataByTimeToPaging.class) @RequestBody GetDeviceHistoryDataByTimeReqVo reqVo) {
        AppPageBase appPageBaseResult = dataUploadService.getDeviceHistoryDataByTimeToPaging(reqVo);
        return AjaxResult.success(appPageBaseResult);
    }


    /**
     * 通過時間分頁查詢設(shè)備歷史告警數(shù)據(jù)
     *
     * @return {@link AjaxResult}
     */
    @PostMapping("/getDeviceHistoryAlarmDataByTimeToPaging")
    public AjaxResult getDeviceHistoryAlarmDataByTimeToPaging(@RequestBody GetDeviceHistoryDataByTimeReqVo reqVo) {
        AppPageBase appPageBaseResult = dataUploadService.getDeviceHistoryDataByTimeToPaging(reqVo);
        return AjaxResult.success(appPageBaseResult);
    }

    /**
     * 通過時間導(dǎo)出設(shè)備基礎(chǔ)數(shù)據(jù)
     */
    @PreAuthorize("@ss.hasPermi('biobank:taos:export')")
    @Log(title = "通過時間導(dǎo)出設(shè)備基礎(chǔ)數(shù)據(jù)", businessType = BusinessType.EXPORT)
    @PostMapping("/exportDeviceHistoryDataByTime")
    public AjaxResult exportDeviceHistoryDataByTime(@Validated(GetDeviceHistoryDataByTimeReqVo.ExportDeviceHistoryDataByTime.class) @RequestBody GetDeviceHistoryDataByTimeReqVo reqVo) {
        return dataUploadService.exportDeviceHistoryDataByTime(reqVo);
    }


}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容