栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot参数校验

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot参数校验

参考文章:(1条消息) springBoot参数联合校验,自定义分组校验_yuhui666666的博客-CSDN博客_springboot 参数联合校验https://blog.csdn.net/y666666y/article/details/118482863 

一、自定义分组完成微信支付,申请退款参数二选一

@GroupSequenceProvider(value = NativeRefundSequenceProvider.class)
@Data
public class NativeRefundDTO {
    
    @Valid
    @NotNull(message = "微信支付基本配置必传")
    private WxPaybase wxPaybase;


    @NotBlank(message = "微信支付订单号必传",groups = WhenOutTradeNoIsNull.class)
    @Length(min = 1, max = 32, message = "微信支付订单号长度需要在1和32之间",groups = WhenOutTradeNoIsNull.class)
    private String transaction_id;


    @NotBlank(message = "商户订单号必传",groups = WhenTransactionIdIsNull.class)
    @Length(min = 6, max = 32, message = "商户订单号长度需要在6和32之间",groups = WhenTransactionIdIsNull.class)
    private String 	out_trade_no;


    @NotBlank(message = "商户退款单号必传")
    @Length(min = 1, max = 64, message = "商户退款单号长度需要在1和64之间")
    private String 	out_refund_no;

    
    @Length(min = 1, max = 80, message = "退款原因长度需要在1和80之间")
    private String 	reason;

    
    @Length(min = 8, max = 256, message = "退款结果回调url长度需要在8和256之间")
    private String 	notify_url;


    
    @Length(min = 1, max = 32, message = "退款资金来源长度需要在1和32之间")
    private String funds_account;

    
    @Valid
    private NativeRefundAmount amount;

    
    @Valid
    private List goods_detail;


    
    public interface WhenTransactionIdIsNull {}

    
    public interface WhenOutTradeNoIsNull {}


}

public class NativeRefundSequenceProvider implements DefaultGroupSequenceProvider {

    @Override
    public List> getValidationGroups(NativeRefundDTO dto) {
        List> defaultGroupSequence = new ArrayList<>();
        defaultGroupSequence.add(NativeRefundDTO.class);

        if(Objects.nonNull(dto)){
            //微信支付订单号为null,group =WhenTransactionIdIsNull 的校验注解生效
            if(Objects.isNull(dto.getTransaction_id()) ){
                defaultGroupSequence.add(NativeRefundDTO.WhenTransactionIdIsNull.class);
            }
            //商户订单号为null,group = WhenOutTradeNoIsNull 的校验注解生效
            if(Objects.isNull(dto.getOut_trade_no())){
                defaultGroupSequence.add(NativeRefundDTO.WhenOutTradeNoIsNull.class);
            }
        }
        return defaultGroupSequence;
    }

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/696864.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号