在controller层应注解校验对象

一、校验的对象为单个实体时

创建一个入参对象,要在不为空的属性上面,加上@NotNull注解

package com.citicsc.galaxy.finance.lq;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * @ClassName TraAccBillReq
 * @Description TODO
 * @Author houbing
 * @Date 2023/9/11 10:07
 */

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TraAccBillReq {

    @NotNull(message = "日期不为空")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date tradingDay;

    private List<String> accountTypes;
}

在controller代码如下,同时在controller层上面加上@Validated注解

@ApiOperation(value = "查询对账单数据明细")
    @PostMapping("/queryBillDetails")
    public BillDetails queryBillDetails(@RequestBody @Validated TraAccBillReq req){
        // tradingDay 日期
        return lqAppService.queryBillDetails(req, true);
    }

在方法参数里面加上@Validated注解,就可以校验了。

二、校验的对象为list的时候

首先创建一个校验的对象

package com.citicsc.galaxy.finance.lq;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;

/**
 * @ClassName TradeAccountBillReq
 * @Description TODO
 * @Author houbing
 * @Date 2023/8/17 16:39
 */

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TradeAccountBillReq {

    @NotNull(message = "id不能为空")
    private String id;

    private String remark;

}

然后再包装一层

package com.citicsc.galaxy.finance.lq;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import java.util.List;

/**
 * @ClassName TradeAccountBillReqDTO
 * @Description TODO
 * @Author houbing
 * @Date 2023/9/14 9:19
 */

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TradeAccountBillReqDTO {

    @Valid
    @NotEmpty(message = "参数为空")
    private List<TradeAccountBillReq> reqs;
}

这时,在controller层里面代码如下,注意的是,这里用的@Valid注解,这个注解可以嵌套检查入参对象不为空的属性

@ApiOperation(value = "确认数据")
    @PostMapping("/reconciliatizeAccountBill")
    public void reconciliatizeAccountBill(@RequestBody @Valid TradeAccountBillReqDTO reqDTO) throws SQLException {
        lqAppService.reconciliatizeAccountBill(reqDTO);
    }

这里面的前提是,你的代码中做过全局的异常捕获

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值