Przeglądaj źródła

Merge remote-tracking branch 'origin/20231115_master_dgpay' into mp-server-test

# Conflicts:
#	mp-admin/src/main/java/com/qs/mp/web/controller/api/user/UserTicketOrderController.java
#	mp-service/src/main/java/com/qs/mp/pay/service/impl/WalletServiceImpl.java
Chris-zy 1 rok temu
rodzic
commit
b832c879db

+ 70 - 1
mp-admin/src/main/java/com/qs/mp/web/controller/api/user/UserTicketOrderController.java

@@ -1,8 +1,11 @@
 package com.qs.mp.web.controller.api.user;
 
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.RandomUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.google.common.collect.Maps;
 import com.qs.mp.admin.domain.Ticket;
 import com.qs.mp.admin.domain.TicketBox;
 import com.qs.mp.admin.domain.TicketBoxGoods;
@@ -17,7 +20,7 @@ import com.qs.mp.channel.domain.ChannelOrder;
 import com.qs.mp.channel.domain.param.OrderPayParam;
 import com.qs.mp.channel.domain.vo.PromoterVO;
 import com.qs.mp.channel.service.IPromoterUserService;
-import com.qs.mp.common.constant.PayConstants;
+import com.qs.mp.common.constant.Constants;
 import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.core.page.TableDataInfo;
 import com.qs.mp.common.core.redis.RedisCache;
@@ -48,6 +51,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 import javax.validation.Valid;
@@ -326,6 +330,71 @@ public class UserTicketOrderController extends BaseApiController {
         return AjaxResult.success(jsonObject);
     }
 
+    /**
+     * 斗拱订单支付
+     */
+    @PostMapping("/order/dg/pay")
+    @ApiOperation(value = "订单支付", notes = "在盲票页面支付")
+    public AjaxResult dgpay(@Valid @RequestBody OrderPayParam param) {
+
+        Long userId = SecurityUtils.getLoginUser().getUserId();
+        SysUser sysUser = sysUserService.selectUserById(userId);
+        String openId = "";
+        //支付方式:1支付宝,2微信
+        Integer payType = param.getPayType();
+        if (payType == 1) {
+            if (StringUtils.isBlank(sysUser.getAliuserId())) {
+                return AjaxResult.error(ErrorCodeEnum.ERROR_CODE_1026);
+            }
+        } else {
+            AppSourceEnum appSourceEnum = AppSourceEnum.getByValue(param.getAppSource());
+            if (AppSourceEnum.MSDQ.equals(appSourceEnum)) {
+                if (StringUtils.isBlank(sysUser.getMsdqOpenId())) {
+                    return AjaxResult.error(ErrorCodeEnum.ERROR_CODE_1005);
+                }
+                openId = sysUser.getMsdqOpenId();
+            } else {
+                if (StringUtils.isBlank(sysUser.getOpenId())) {
+                    return AjaxResult.error(ErrorCodeEnum.ERROR_CODE_1005);
+                }
+                openId = sysUser.getOpenId();
+            }
+        }
+
+        //获取订单
+        UserTicketOrder ticketOrder = userTicketOrderService.getById(param.getOrderId());
+        //获取支付参数
+        //openid-->code
+        //支付方式:1支付宝,2微信
+        //获取实际支付金额,需要判断是否0元订单的情况
+        Integer payAmt = ticketOrder.getPayAmt();
+
+
+        JSONObject jsonObject;
+        try {
+
+            if (param.getPayType() == 1) {
+                // 支付宝支付
+                jsonObject = walletService.dgAliPay(BizTypeEnum.TICKET_ORDER, param.getOrderId(), sysUser.getAliuserId(),
+                        ticketOrder.getPayAmt(), ticketOrder.getTitle(), Constants.PAY_STYLE_ALI, param.getAppSource());
+
+            } else {
+                // 微信支付
+                jsonObject = walletService.dgWxPay(BizTypeEnum.TICKET_ORDER, param.getOrderId(), openId,
+                        ticketOrder.getPayAmt(), ticketOrder.getTitle(), param.getAppSource(), Constants.PAY_STYLE_WX);
+
+            }
+
+        } catch (Exception e) {
+            LogUtil.error(logger, e, "根据盲票购买订单创建支付单失败。userId:{0},orderId:{1}",
+                    new Object[]{userId, param.getOrderId()});
+            return AjaxResult.error(e.getMessage());
+        }
+        return AjaxResult.success(jsonObject);
+
+
+    }
+
     /**
      * 可用优惠券列表
      */

+ 4 - 2
mp-admin/src/main/resources/application.yml

@@ -153,9 +153,11 @@ pay:
   baseUrl: https://jlpays.kakapaypay.com
   user-shopNo: 1646882813774
   user-sign: 614140724fb74085be8aef8bebc538ed
-  channel-shopNo: 1647504328218
+  #channel-shopNo: 1647504328218  渠道商户号
+  channel-shopNo: 6666000137086360
   channel-sign: 0e0c00555fee4549b1a88af4d988415b
-  msdq-shopNo: 1657242588900
+  #msdq-shopNo: 1657242588900   商户号
+  msdq-shopNo: 6666000137501979
   msdq-sign: e39069383c6944a18abc0b03a4ad0217
 
 # 银盛支付配置

+ 40 - 0
mp-common/src/main/java/com/qs/mp/common/constant/Constants.java

@@ -173,4 +173,44 @@ public class Constants
      * 红包默认图片
      */
     public static final String HONGBAO_PIC = "redPkg.png";
+
+    /**
+     * 支付方式:微信
+     */
+    public static final String PAY_STYLE_WX = "wx";
+
+    /**
+     * 斗拱--微信小程序
+     */
+    public static final String DOUGONG_TRADE_TYPE_MINIAPP = "T_MINIAPP";
+
+    /**
+     * 斗拱微信小程序支付
+     */
+    public static final String PAY_STYLE_WXMINI_DOUGONG = "micro_wxmini_dg";
+
+    /**
+     * 支付方式:支付宝
+     */
+    public static final String PAY_STYLE_ALI = "ali";
+
+    /**
+     * 斗拱--支付宝JS
+     */
+    public static final String DOUGONG_TRADE_TYPE_ALIJS = "A_JSAPI";
+
+    /**
+     * 斗拱支付宝小程序支付
+     */
+    public static final String PAY_STYLE_ALIMINI_DOUGONG = "micro_alimini_dg";
+
+    /**
+     * 斗拱--支付宝本地
+     */
+    public static final String DOUGONG_TRADE_TYPE_ALINATIVE = "A_NATIVE";
+
+    /**
+     * 斗拱下单成功
+     */
+    public static final String DOUGONG_ORDER_SUCCESS_CODE = "00000100";
 }

+ 30 - 0
mp-common/src/main/java/com/qs/mp/common/utils/KeyGenUtil.java

@@ -0,0 +1,30 @@
+package com.qs.mp.common.utils;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.UUID;
+
+public class KeyGenUtil {
+    public static String newKey(){
+        SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        String prefix = format.format(Calendar.getInstance().getTime());
+        String rand = String.valueOf((int)(Math.random() * 1000000));
+        return prefix + rand;
+    }
+
+    public static String simpleUUID(){
+        return UUID.randomUUID().toString().replaceAll("-", "");
+    }
+
+    public static String simpleRandomSufix(){
+        return "-ran-" +UUID.randomUUID().toString().replaceAll("-","").substring(0,10);
+    }
+
+    public static String newKeyTimestamp() {
+        SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        return format.format(Calendar.getInstance().getTime());
+    }
+
+    public static void main(String[] args) {
+        System.out.println(simpleUUID());
+    }
+}

+ 8 - 0
mp-service/pom.xml

@@ -73,6 +73,14 @@
             <scope>compile</scope>
         </dependency>
 
+        <dependency>
+            <groupId>com.dougong</groupId>
+            <artifactId>dougong</artifactId>
+            <version>1.0.0</version>
+            <scope>system</scope>
+            <systemPath>${project.basedir}/libs/dougong/dg-java-sdk-3.0.8.jar</systemPath>
+        </dependency>
+
     </dependencies>
 
 </project>

+ 614 - 0
mp-service/src/main/java/com/qs/mp/pay/domain/DougongPayRequestParam.java

@@ -0,0 +1,614 @@
+package com.qs.mp.pay.domain;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class DougongPayRequestParam {
+    //公众账号ID
+    private String appid;
+    //商户号
+    private String mchId;
+    //设备号
+    private String deviceInfo;
+    //随机字符串
+    private String nonceStr;
+    //签名
+    private String sign;
+    //签名类型
+    private String signType;
+    //商品描述
+    private String body;
+    //商品详情
+    private String detail;
+    //附加数据
+    private String attach;
+    //商户订单号
+    private String tradesOrderId;
+    //标价币种 默认人民币:CNY
+    private String feeType;
+    //标价金额 单位为分
+    private Integer totalFee;
+    //终端IP
+    private String spbillCreateIp;
+    //交易起始时间 格式为yyyyMMddHHmmss
+    private String timeStart;
+    //交易结束时间 格式为yyyyMMddHHmmss
+    private String timeExpire;
+    //商品标记
+    private String goodsTag;
+    //通知地址
+    private String notifyUrl;
+    //交易类型 JSAPI,NATIVE,APP
+    private String tradeType;
+    //商品ID
+    private String productId;
+    //指定支付方式
+    private String limitPay;
+    //用户标识
+    private String openid;
+
+    //子商户号
+    private String subMchId;
+
+    //子商户公众账号ID
+    private String subAppid;
+
+    //用户子标识
+    private String subOpenid;
+    /**
+     * 退款请求参数
+     */
+
+    //微信订单号
+    private String transactionId;
+    //商户退款单号
+    private String outRefundNo;
+    //退款金额
+    private Integer refundFee;
+    //货币种类
+    private String refundFeeType;
+    //操作员
+    private String opUserId;
+    //微信退款单号
+    private String refundId;
+    //对账单日期 格式:20140603
+    private String billDate;
+    //账单类型 ALL,返回当日所有订单信息,默认值
+    //COUNT,返回当日成功支付的订单
+    //REFUND,返回当日退款订单
+    private String billType;
+
+    /**
+     * 微信上报
+     */
+    //接口URL
+    private String interfaceUrl;
+    //接口耗时
+    private Integer executeTime;
+    //返回状态码
+    private String returnCode;
+    //业务结果
+    private String resultCode;
+    //访问接口IP
+    private String userIp;
+
+    //URL链接
+    private String shorturl;
+    //扫码支付授权码,设备读取用户微信中的条码或者二维码信息
+    private String authCode;
+    //退款资金来源仅针对老资金流商户使用
+    //REFUND_SOURCE_UNSETTLED_FUNDS---未结算资金退款(默认使用未结算资金退款)
+    //REFUND_SOURCE_RECHARGE_FUNDS---可用余额退款
+    private String refundAccount;
+
+    private String clientIp;
+    //场景信息//IOS移动应用
+    //{"h5_info": {"type":"IOS","app_name": "王者荣耀","bundle_id": "com.tencent.wzryIOS"}}
+
+    //安卓移动应用
+    //{"h5_info": {"type":"Android","app_name": "王者荣耀","package_name": "com.tencent.tmgp.sgame"}}
+
+    //WAP网站应用
+    //{"h5_info": {"type":"Wap","wap_url": "https://pay.qq.com","wap_name": "腾讯充值"}}
+    private String sceneInfo;
+
+    private String huifuTransDate;//汇付支付交易时间,实际上就是订单的汇付支付时间,格式按照要求必须为:yyyyMMdd
+
+    private String huifuOrdType;//汇付订单类型,1-支付订单2-退款订单
+
+    private String couponId;
+    private Integer discountMoney;
+    private Integer originalMoney;
+    private String merchantNo;
+    private String productType;
+
+    private Integer faceValue;
+
+    public String getCouponId() {
+        return couponId;
+    }
+
+    public void setCouponId(String couponId) {
+        this.couponId = couponId;
+    }
+
+    public Integer getDiscountMoney() {
+        return discountMoney;
+    }
+
+    public void setDiscountMoney(Integer discountMoney) {
+        this.discountMoney = discountMoney;
+    }
+
+    public Integer getOriginalMoney() {
+        return originalMoney;
+    }
+
+    public void setOriginalMoney(Integer originalMoney) {
+        this.originalMoney = originalMoney;
+    }
+
+    public String getMerchantNo() {
+        return merchantNo;
+    }
+
+    public void setMerchantNo(String merchantNo) {
+        this.merchantNo = merchantNo;
+    }
+
+    public String getProductType() {
+        return productType;
+    }
+
+    public void setProductType(String productType) {
+        this.productType = productType;
+    }
+
+    public Integer getFaceValue() {
+        return faceValue;
+    }
+
+    public void setFaceValue(Integer faceValue) {
+        this.faceValue = faceValue;
+    }
+
+    public String getAppid() {
+        return appid;
+    }
+
+    public void setAppid(String appid) {
+        this.appid = appid;
+    }
+
+    public String getMchId() {
+        return mchId;
+    }
+
+    public void setMchId(String mchId) {
+        this.mchId = mchId;
+    }
+
+    public String getDeviceInfo() {
+        return deviceInfo;
+    }
+
+    public void setDeviceInfo(String deviceInfo) {
+        this.deviceInfo = deviceInfo;
+    }
+
+    public String getNonceStr() {
+        return nonceStr;
+    }
+
+    public void setNonceStr(String nonceStr) {
+        this.nonceStr = nonceStr;
+    }
+
+    public String getSign() {
+        return sign;
+    }
+
+    public void setSign(String sign) {
+        this.sign = sign;
+    }
+
+    public String getSignType() {
+        return signType;
+    }
+
+    public void setSignType(String signType) {
+        this.signType = signType;
+    }
+
+    public String getBody() {
+        return body;
+    }
+
+    public void setBody(String body) {
+        this.body = body;
+    }
+
+    public String getDetail() {
+        return detail;
+    }
+
+    public void setDetail(String detail) {
+        this.detail = detail;
+    }
+
+    public String getAttach() {
+        return attach;
+    }
+
+    public void setAttach(String attach) {
+        this.attach = attach;
+    }
+
+    public String getTradesOrderId() {
+        return tradesOrderId;
+    }
+
+    public void setTradesOrderId(String tradesOrderId) {
+        this.tradesOrderId = tradesOrderId;
+    }
+
+    public String getFeeType() {
+        return feeType;
+    }
+
+    public void setFeeType(String feeType) {
+        this.feeType = feeType;
+    }
+
+    public Integer getTotalFee() {
+        return totalFee;
+    }
+
+    public void setTotalFee(Integer totalFee) {
+        this.totalFee = totalFee;
+    }
+
+    public String getSpbillCreateIp() {
+        return spbillCreateIp;
+    }
+
+    public void setSpbillCreateIp(String spbillCreateIp) {
+        this.spbillCreateIp = spbillCreateIp;
+    }
+
+    public String getTimeStart() {
+        return timeStart;
+    }
+
+    public void setTimeStart(String timeStart) {
+        this.timeStart = timeStart;
+    }
+
+    public String getTimeExpire() {
+        return timeExpire;
+    }
+
+    public void setTimeExpire(String timeExpire) {
+        this.timeExpire = timeExpire;
+    }
+
+    public String getGoodsTag() {
+        return goodsTag;
+    }
+
+    public void setGoodsTag(String goodsTag) {
+        this.goodsTag = goodsTag;
+    }
+
+    public String getNotifyUrl() {
+        return notifyUrl;
+    }
+
+    public void setNotifyUrl(String notifyUrl) {
+        this.notifyUrl = notifyUrl;
+    }
+
+    public String getTradeType() {
+        return tradeType;
+    }
+
+    public void setTradeType(String tradeType) {
+        this.tradeType = tradeType;
+    }
+
+    public String getProductId() {
+        return productId;
+    }
+
+    public void setProductId(String productId) {
+        this.productId = productId;
+    }
+
+    public String getLimitPay() {
+        return limitPay;
+    }
+
+    public void setLimitPay(String limitPay) {
+        this.limitPay = limitPay;
+    }
+
+    public String getOpenid() {
+        return openid;
+    }
+
+    public void setOpenid(String openid) {
+        this.openid = openid;
+    }
+
+    public String getSubMchId() {
+        return subMchId;
+    }
+
+    public void setSubMchId(String subMchId) {
+        this.subMchId = subMchId;
+    }
+
+    public String getSubAppid() {
+        return subAppid;
+    }
+
+    public void setSubAppid(String subAppid) {
+        this.subAppid = subAppid;
+    }
+
+    public String getSubOpenid() {
+        return subOpenid;
+    }
+
+    public void setSubOpenid(String subOpenid) {
+        this.subOpenid = subOpenid;
+    }
+
+    public String getTransactionId() {
+        return transactionId;
+    }
+
+    public void setTransactionId(String transactionId) {
+        this.transactionId = transactionId;
+    }
+
+    public String getOutRefundNo() {
+        return outRefundNo;
+    }
+
+    public void setOutRefundNo(String outRefundNo) {
+        this.outRefundNo = outRefundNo;
+    }
+
+    public Integer getRefundFee() {
+        return refundFee;
+    }
+
+    public void setRefundFee(Integer refundFee) {
+        this.refundFee = refundFee;
+    }
+
+    public String getRefundFeeType() {
+        return refundFeeType;
+    }
+
+    public void setRefundFeeType(String refundFeeType) {
+        this.refundFeeType = refundFeeType;
+    }
+
+    public String getOpUserId() {
+        return opUserId;
+    }
+
+    public void setOpUserId(String opUserId) {
+        this.opUserId = opUserId;
+    }
+
+    public String getRefundId() {
+        return refundId;
+    }
+
+    public void setRefundId(String refundId) {
+        this.refundId = refundId;
+    }
+
+    public String getBillDate() {
+        return billDate;
+    }
+
+    public void setBillDate(String billDate) {
+        this.billDate = billDate;
+    }
+
+    public String getBillType() {
+        return billType;
+    }
+
+    public void setBillType(String billType) {
+        this.billType = billType;
+    }
+
+    public String getInterfaceUrl() {
+        return interfaceUrl;
+    }
+
+    public void setInterfaceUrl(String interfaceUrl) {
+        this.interfaceUrl = interfaceUrl;
+    }
+
+    public Integer getExecuteTime() {
+        return executeTime;
+    }
+
+    public void setExecuteTime(Integer executeTime) {
+        this.executeTime = executeTime;
+    }
+
+    public String getReturnCode() {
+        return returnCode;
+    }
+
+    public void setReturnCode(String returnCode) {
+        this.returnCode = returnCode;
+    }
+
+    public String getResultCode() {
+        return resultCode;
+    }
+
+    public void setResultCode(String resultCode) {
+        this.resultCode = resultCode;
+    }
+
+    public String getUserIp() {
+        return userIp;
+    }
+
+    public void setUserIp(String userIp) {
+        this.userIp = userIp;
+    }
+
+    public String getShorturl() {
+        return shorturl;
+    }
+
+    public void setShorturl(String shorturl) {
+        this.shorturl = shorturl;
+    }
+
+    public String getAuthCode() {
+        return authCode;
+    }
+
+    public void setAuthCode(String authCode) {
+        this.authCode = authCode;
+    }
+
+    public String getRefundAccount() {
+        return refundAccount;
+    }
+
+    public void setRefundAccount(String refundAccount) {
+        this.refundAccount = refundAccount;
+    }
+
+    public String getClientIp() {
+        return clientIp;
+    }
+
+    public void setClientIp(String clientIp) {
+        this.clientIp = clientIp;
+    }
+
+    public String getSceneInfo() {
+        return sceneInfo;
+    }
+
+    public void setSceneInfo(String sceneInfo) {
+        this.sceneInfo = sceneInfo;
+    }
+
+    public String getHuifuTransDate() {
+        return huifuTransDate;
+    }
+
+    public void setHuifuTransDate(String huifuTransDate) {
+        this.huifuTransDate = huifuTransDate;
+    }
+
+    public String getHuifuOrdType() {
+        return huifuOrdType;
+    }
+
+    public void setHuifuOrdType(String huifuOrdType) {
+        this.huifuOrdType = huifuOrdType;
+    }
+
+    public String getPayStyle() {
+        return payStyle;
+    }
+
+    public void setPayStyle(String payStyle) {
+        this.payStyle = payStyle;
+    }
+
+    public String getHuifuPayId() {
+        return huifuPayId;
+    }
+
+    public void setHuifuPayId(String huifuPayId) {
+        this.huifuPayId = huifuPayId;
+    }
+
+    public String getCcbPayId() {
+        return ccbPayId;
+    }
+
+    public void setCcbPayId(String ccbPayId) {
+        this.ccbPayId = ccbPayId;
+    }
+
+    private String payStyle;//支付方式:wx/wx_huifu/ali/ali_huifu
+
+    private String huifuPayId;//汇付支付单号,原始订单号+P+时间戳
+
+    private String ccbPayId;//建行支付单号,原始订单号+P+时间戳
+
+
+
+
+
+
+
+
+
+
+
+
+    @Override
+    public String toString() {
+        return "WxRequestParam{" +
+            "appid='" + appid + '\'' +
+            ", mch_id='" + mchId + '\'' +
+            ", deviceInfo='" + deviceInfo + '\'' +
+            ", nonceStr='" + nonceStr + '\'' +
+            ", sign='" + sign + '\'' +
+            ", signType='" + signType + '\'' +
+            ", body='" + body + '\'' +
+            ", detail='" + detail + '\'' +
+            ", attach='" + attach + '\'' +
+            ", outTradeNo='" + tradesOrderId + '\'' +
+            ", feeType='" + feeType + '\'' +
+            ", total_fee=" + totalFee +
+            ", spbillCreateIp='" + spbillCreateIp + '\'' +
+            ", timeStart='" + timeStart + '\'' +
+            ", timeExpire='" + timeExpire + '\'' +
+            ", goodsTag='" + goodsTag + '\'' +
+            ", notifyUrl='" + notifyUrl + '\'' +
+            ", tradeType='" + tradeType + '\'' +
+            ", productId='" + productId + '\'' +
+            ", limitPay='" + limitPay + '\'' +
+            ", openid='" + openid + '\'' +
+            ", subMchId='" + subMchId + '\'' +
+            ", subAppid='" + subAppid + '\'' +
+            ", subOpenid='" + subOpenid + '\'' +
+            ", transactionId='" + transactionId + '\'' +
+            ", outRefundNo='" + outRefundNo + '\'' +
+            ", refund_fee=" + refundFee +
+            ", refundFeeType='" + refundFeeType + '\'' +
+            ", opUserId='" + opUserId + '\'' +
+            ", refundId='" + refundId + '\'' +
+            ", billDate='" + billDate + '\'' +
+            ", billType='" + billType + '\'' +
+            ", interfaceUrl='" + interfaceUrl + '\'' +
+            ", executeTime=" + executeTime +
+            ", returnCode='" + returnCode + '\'' +
+            ", resultCode='" + resultCode + '\'' +
+            ", userIp='" + userIp + '\'' +
+            ", shorturl='" + shorturl + '\'' +
+            ", authCode='" + authCode + '\'' +
+            ", refundAccount='" + refundAccount + '\'' +
+            ", sceneInfo='" + sceneInfo + '\'' +
+            '}';
+    }
+}

+ 436 - 0
mp-service/src/main/java/com/qs/mp/pay/domain/PaymentConfig.java

@@ -0,0 +1,436 @@
+package com.qs.mp.pay.domain;
+
+import java.util.Date;
+
+public class PaymentConfig {
+    private String id;
+
+    private Integer dataOrder;
+
+    private Date createTime;
+
+    private Date updateTime;
+
+    private String makePerson;
+
+    private String modifier;
+
+    private Date modifierTime;
+
+    private Integer locked;
+
+    private Integer delTag;
+
+    private Integer checkTag;
+
+    private String checkStatus;
+
+    private Date checkTime;
+
+    private String checkPerson;
+
+    private Integer printTag;
+
+    private Integer invalidTag;
+
+    private String menuId;
+
+    private String menuName;
+
+    private String remarks;
+
+    private String merchantId;
+
+    private String appId;
+
+    private String memberId;
+
+    private String aliPid;
+
+    private String storeId;
+
+    private String agentId;
+
+    private String agentName;
+
+    private Integer storeType;
+
+    private Integer paymentType;
+
+    private String merchantCode;
+
+    private String merchantCounterCode;
+
+    private String theBranchCode;
+
+    private String sysId;
+
+    private String huifuId;
+
+    private String merchantName;
+
+    private String storeName;
+
+    private Integer availableTag;
+
+    private String privateKeyDougong;
+
+    private String publicKeyHuifu;
+
+    private String appletId;
+
+    private String appletSecret;
+
+    private String wechatSecret;
+
+    private String dougongProductId;
+
+    private String hostName;
+
+    private String token;
+
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id == null ? null : id.trim();
+    }
+
+    public Integer getDataOrder() {
+        return dataOrder;
+    }
+
+    public void setDataOrder(Integer dataOrder) {
+        this.dataOrder = dataOrder;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getMakePerson() {
+        return makePerson;
+    }
+
+    public void setMakePerson(String makePerson) {
+        this.makePerson = makePerson == null ? null : makePerson.trim();
+    }
+
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier == null ? null : modifier.trim();
+    }
+
+    public Date getModifierTime() {
+        return modifierTime;
+    }
+
+    public void setModifierTime(Date modifierTime) {
+        this.modifierTime = modifierTime;
+    }
+
+    public Integer getLocked() {
+        return locked;
+    }
+
+    public void setLocked(Integer locked) {
+        this.locked = locked;
+    }
+
+    public Integer getDelTag() {
+        return delTag;
+    }
+
+    public void setDelTag(Integer delTag) {
+        this.delTag = delTag;
+    }
+
+    public Integer getCheckTag() {
+        return checkTag;
+    }
+
+    public void setCheckTag(Integer checkTag) {
+        this.checkTag = checkTag;
+    }
+
+    public String getCheckStatus() {
+        return checkStatus;
+    }
+
+    public void setCheckStatus(String checkStatus) {
+        this.checkStatus = checkStatus == null ? null : checkStatus.trim();
+    }
+
+    public Date getCheckTime() {
+        return checkTime;
+    }
+
+    public void setCheckTime(Date checkTime) {
+        this.checkTime = checkTime;
+    }
+
+    public String getCheckPerson() {
+        return checkPerson;
+    }
+
+    public void setCheckPerson(String checkPerson) {
+        this.checkPerson = checkPerson == null ? null : checkPerson.trim();
+    }
+
+    public Integer getPrintTag() {
+        return printTag;
+    }
+
+    public void setPrintTag(Integer printTag) {
+        this.printTag = printTag;
+    }
+
+    public Integer getInvalidTag() {
+        return invalidTag;
+    }
+
+    public void setInvalidTag(Integer invalidTag) {
+        this.invalidTag = invalidTag;
+    }
+
+    public String getMenuId() {
+        return menuId;
+    }
+
+    public void setMenuId(String menuId) {
+        this.menuId = menuId == null ? null : menuId.trim();
+    }
+
+    public String getMenuName() {
+        return menuName;
+    }
+
+    public void setMenuName(String menuName) {
+        this.menuName = menuName == null ? null : menuName.trim();
+    }
+
+    public String getRemarks() {
+        return remarks;
+    }
+
+    public void setRemarks(String remarks) {
+        this.remarks = remarks == null ? null : remarks.trim();
+    }
+
+    public String getMerchantId() {
+        return merchantId;
+    }
+
+    public void setMerchantId(String merchantId) {
+        this.merchantId = merchantId == null ? null : merchantId.trim();
+    }
+
+    public String getAppId() {
+        return appId;
+    }
+
+    public void setAppId(String appId) {
+        this.appId = appId == null ? null : appId.trim();
+    }
+
+    public String getMemberId() {
+        return memberId;
+    }
+
+    public void setMemberId(String memberId) {
+        this.memberId = memberId == null ? null : memberId.trim();
+    }
+
+    public String getAliPid() {
+        return aliPid;
+    }
+
+    public void setAliPid(String aliPid) {
+        this.aliPid = aliPid == null ? null : aliPid.trim();
+    }
+
+    public String getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(String storeId) {
+        this.storeId = storeId == null ? null : storeId.trim();
+    }
+
+    public String getAgentId() {
+        return agentId;
+    }
+
+    public void setAgentId(String agentId) {
+        this.agentId = agentId == null ? null : agentId.trim();
+    }
+
+    public String getAgentName() {
+        return agentName;
+    }
+
+    public void setAgentName(String agentName) {
+        this.agentName = agentName == null ? null : agentName.trim();
+    }
+
+    public Integer getStoreType() {
+        return storeType;
+    }
+
+    public void setStoreType(Integer storeType) {
+        this.storeType = storeType;
+    }
+
+    public Integer getPaymentType() {
+        return paymentType;
+    }
+
+    public void setPaymentType(Integer paymentType) {
+        this.paymentType = paymentType;
+    }
+
+    public String getMerchantCode() {
+        return merchantCode;
+    }
+
+    public void setMerchantCode(String merchantCode) {
+        this.merchantCode = merchantCode == null ? null : merchantCode.trim();
+    }
+
+    public String getMerchantCounterCode() {
+        return merchantCounterCode;
+    }
+
+    public void setMerchantCounterCode(String merchantCounterCode) {
+        this.merchantCounterCode = merchantCounterCode == null ? null : merchantCounterCode.trim();
+    }
+
+    public String getTheBranchCode() {
+        return theBranchCode;
+    }
+
+    public void setTheBranchCode(String theBranchCode) {
+        this.theBranchCode = theBranchCode == null ? null : theBranchCode.trim();
+    }
+
+    public String getSysId() {
+        return sysId;
+    }
+
+    public void setSysId(String sysId) {
+        this.sysId = sysId == null ? null : sysId.trim();
+    }
+
+    public String getHuifuId() {
+        return huifuId;
+    }
+
+    public void setHuifuId(String huifuId) {
+        this.huifuId = huifuId == null ? null : huifuId.trim();
+    }
+
+    public String getMerchantName() {
+        return merchantName;
+    }
+
+    public void setMerchantName(String merchantName) {
+        this.merchantName = merchantName == null ? null : merchantName.trim();
+    }
+
+    public String getStoreName() {
+        return storeName;
+    }
+
+    public void setStoreName(String storeName) {
+        this.storeName = storeName == null ? null : storeName.trim();
+    }
+
+    public Integer getAvailableTag() {
+        return availableTag;
+    }
+
+    public void setAvailableTag(Integer availableTag) {
+        this.availableTag = availableTag;
+    }
+
+    public String getPrivateKeyDougong() {
+        return privateKeyDougong;
+    }
+
+    public void setPrivateKeyDougong(String privateKeyDougong) {
+        this.privateKeyDougong = privateKeyDougong == null ? null : privateKeyDougong.trim();
+    }
+
+    public String getPublicKeyHuifu() {
+        return publicKeyHuifu;
+    }
+
+    public void setPublicKeyHuifu(String publicKeyHuifu) {
+        this.publicKeyHuifu = publicKeyHuifu == null ? null : publicKeyHuifu.trim();
+    }
+
+    public String getAppletId() {
+        return appletId;
+    }
+
+    public void setAppletId(String appletId) {
+        this.appletId = appletId == null ? null : appletId.trim();
+    }
+
+    public String getAppletSecret() {
+        return appletSecret;
+    }
+
+    public void setAppletSecret(String appletSecret) {
+        this.appletSecret = appletSecret == null ? null : appletSecret.trim();
+    }
+
+    public String getWechatSecret() {
+        return wechatSecret;
+    }
+
+    public void setWechatSecret(String wechatSecret) {
+        this.wechatSecret = wechatSecret == null ? null : wechatSecret.trim();
+    }
+
+    public String getDougongProductId() {
+        return dougongProductId;
+    }
+
+    public void setDougongProductId(String dougongProductId) {
+        this.dougongProductId = dougongProductId == null ? null : dougongProductId.trim();
+    }
+
+    public String getHostName() {
+        return hostName;
+    }
+
+    public void setHostName(String hostName) {
+        this.hostName = hostName;
+    }
+
+    public String getToken() {
+        return token;
+    }
+
+    public void setToken(String token) {
+        this.token = token;
+    }
+}

+ 2940 - 0
mp-service/src/main/java/com/qs/mp/pay/domain/PaymentConfigExample.java

@@ -0,0 +1,2940 @@
+package com.qs.mp.pay.domain;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class PaymentConfigExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    public PaymentConfigExample() {
+        oredCriteria = new ArrayList<>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(String value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(String value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(String value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(String value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(String value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(String value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLike(String value) {
+            addCriterion("id like", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotLike(String value) {
+            addCriterion("id not like", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<String> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<String> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(String value1, String value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(String value1, String value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataOrderIsNull() {
+            addCriterion("data_order is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataOrderIsNotNull() {
+            addCriterion("data_order is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataOrderEqualTo(Integer value) {
+            addCriterion("data_order =", value, "dataOrder");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataOrderNotEqualTo(Integer value) {
+            addCriterion("data_order <>", value, "dataOrder");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataOrderGreaterThan(Integer value) {
+            addCriterion("data_order >", value, "dataOrder");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataOrderGreaterThanOrEqualTo(Integer value) {
+            addCriterion("data_order >=", value, "dataOrder");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataOrderLessThan(Integer value) {
+            addCriterion("data_order <", value, "dataOrder");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataOrderLessThanOrEqualTo(Integer value) {
+            addCriterion("data_order <=", value, "dataOrder");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataOrderIn(List<Integer> values) {
+            addCriterion("data_order in", values, "dataOrder");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataOrderNotIn(List<Integer> values) {
+            addCriterion("data_order not in", values, "dataOrder");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataOrderBetween(Integer value1, Integer value2) {
+            addCriterion("data_order between", value1, value2, "dataOrder");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataOrderNotBetween(Integer value1, Integer value2) {
+            addCriterion("data_order not between", value1, value2, "dataOrder");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNull() {
+            addCriterion("create_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNotNull() {
+            addCriterion("create_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeEqualTo(Date value) {
+            addCriterion("create_time =", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotEqualTo(Date value) {
+            addCriterion("create_time <>", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThan(Date value) {
+            addCriterion("create_time >", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("create_time >=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThan(Date value) {
+            addCriterion("create_time <", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("create_time <=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIn(List<Date> values) {
+            addCriterion("create_time in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotIn(List<Date> values) {
+            addCriterion("create_time not in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeBetween(Date value1, Date value2) {
+            addCriterion("create_time between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("create_time not between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNull() {
+            addCriterion("update_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNotNull() {
+            addCriterion("update_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeEqualTo(Date value) {
+            addCriterion("update_time =", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotEqualTo(Date value) {
+            addCriterion("update_time <>", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThan(Date value) {
+            addCriterion("update_time >", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("update_time >=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThan(Date value) {
+            addCriterion("update_time <", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("update_time <=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIn(List<Date> values) {
+            addCriterion("update_time in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotIn(List<Date> values) {
+            addCriterion("update_time not in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
+            addCriterion("update_time between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("update_time not between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andMakePersonIsNull() {
+            addCriterion("make_person is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMakePersonIsNotNull() {
+            addCriterion("make_person is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMakePersonEqualTo(String value) {
+            addCriterion("make_person =", value, "makePerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andMakePersonNotEqualTo(String value) {
+            addCriterion("make_person <>", value, "makePerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andMakePersonGreaterThan(String value) {
+            addCriterion("make_person >", value, "makePerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andMakePersonGreaterThanOrEqualTo(String value) {
+            addCriterion("make_person >=", value, "makePerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andMakePersonLessThan(String value) {
+            addCriterion("make_person <", value, "makePerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andMakePersonLessThanOrEqualTo(String value) {
+            addCriterion("make_person <=", value, "makePerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andMakePersonLike(String value) {
+            addCriterion("make_person like", value, "makePerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andMakePersonNotLike(String value) {
+            addCriterion("make_person not like", value, "makePerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andMakePersonIn(List<String> values) {
+            addCriterion("make_person in", values, "makePerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andMakePersonNotIn(List<String> values) {
+            addCriterion("make_person not in", values, "makePerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andMakePersonBetween(String value1, String value2) {
+            addCriterion("make_person between", value1, value2, "makePerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andMakePersonNotBetween(String value1, String value2) {
+            addCriterion("make_person not between", value1, value2, "makePerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierIsNull() {
+            addCriterion("modifier is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierIsNotNull() {
+            addCriterion("modifier is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierEqualTo(String value) {
+            addCriterion("modifier =", value, "modifier");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierNotEqualTo(String value) {
+            addCriterion("modifier <>", value, "modifier");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierGreaterThan(String value) {
+            addCriterion("modifier >", value, "modifier");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierGreaterThanOrEqualTo(String value) {
+            addCriterion("modifier >=", value, "modifier");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierLessThan(String value) {
+            addCriterion("modifier <", value, "modifier");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierLessThanOrEqualTo(String value) {
+            addCriterion("modifier <=", value, "modifier");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierLike(String value) {
+            addCriterion("modifier like", value, "modifier");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierNotLike(String value) {
+            addCriterion("modifier not like", value, "modifier");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierIn(List<String> values) {
+            addCriterion("modifier in", values, "modifier");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierNotIn(List<String> values) {
+            addCriterion("modifier not in", values, "modifier");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierBetween(String value1, String value2) {
+            addCriterion("modifier between", value1, value2, "modifier");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierNotBetween(String value1, String value2) {
+            addCriterion("modifier not between", value1, value2, "modifier");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierTimeIsNull() {
+            addCriterion("modifier_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierTimeIsNotNull() {
+            addCriterion("modifier_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierTimeEqualTo(Date value) {
+            addCriterion("modifier_time =", value, "modifierTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierTimeNotEqualTo(Date value) {
+            addCriterion("modifier_time <>", value, "modifierTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierTimeGreaterThan(Date value) {
+            addCriterion("modifier_time >", value, "modifierTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("modifier_time >=", value, "modifierTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierTimeLessThan(Date value) {
+            addCriterion("modifier_time <", value, "modifierTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierTimeLessThanOrEqualTo(Date value) {
+            addCriterion("modifier_time <=", value, "modifierTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierTimeIn(List<Date> values) {
+            addCriterion("modifier_time in", values, "modifierTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierTimeNotIn(List<Date> values) {
+            addCriterion("modifier_time not in", values, "modifierTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierTimeBetween(Date value1, Date value2) {
+            addCriterion("modifier_time between", value1, value2, "modifierTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andModifierTimeNotBetween(Date value1, Date value2) {
+            addCriterion("modifier_time not between", value1, value2, "modifierTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLockedIsNull() {
+            addCriterion("locked is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andLockedIsNotNull() {
+            addCriterion("locked is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andLockedEqualTo(Integer value) {
+            addCriterion("locked =", value, "locked");
+            return (Criteria) this;
+        }
+
+        public Criteria andLockedNotEqualTo(Integer value) {
+            addCriterion("locked <>", value, "locked");
+            return (Criteria) this;
+        }
+
+        public Criteria andLockedGreaterThan(Integer value) {
+            addCriterion("locked >", value, "locked");
+            return (Criteria) this;
+        }
+
+        public Criteria andLockedGreaterThanOrEqualTo(Integer value) {
+            addCriterion("locked >=", value, "locked");
+            return (Criteria) this;
+        }
+
+        public Criteria andLockedLessThan(Integer value) {
+            addCriterion("locked <", value, "locked");
+            return (Criteria) this;
+        }
+
+        public Criteria andLockedLessThanOrEqualTo(Integer value) {
+            addCriterion("locked <=", value, "locked");
+            return (Criteria) this;
+        }
+
+        public Criteria andLockedIn(List<Integer> values) {
+            addCriterion("locked in", values, "locked");
+            return (Criteria) this;
+        }
+
+        public Criteria andLockedNotIn(List<Integer> values) {
+            addCriterion("locked not in", values, "locked");
+            return (Criteria) this;
+        }
+
+        public Criteria andLockedBetween(Integer value1, Integer value2) {
+            addCriterion("locked between", value1, value2, "locked");
+            return (Criteria) this;
+        }
+
+        public Criteria andLockedNotBetween(Integer value1, Integer value2) {
+            addCriterion("locked not between", value1, value2, "locked");
+            return (Criteria) this;
+        }
+
+        public Criteria andDelTagIsNull() {
+            addCriterion("del_tag is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDelTagIsNotNull() {
+            addCriterion("del_tag is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDelTagEqualTo(Integer value) {
+            addCriterion("del_tag =", value, "delTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andDelTagNotEqualTo(Integer value) {
+            addCriterion("del_tag <>", value, "delTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andDelTagGreaterThan(Integer value) {
+            addCriterion("del_tag >", value, "delTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andDelTagGreaterThanOrEqualTo(Integer value) {
+            addCriterion("del_tag >=", value, "delTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andDelTagLessThan(Integer value) {
+            addCriterion("del_tag <", value, "delTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andDelTagLessThanOrEqualTo(Integer value) {
+            addCriterion("del_tag <=", value, "delTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andDelTagIn(List<Integer> values) {
+            addCriterion("del_tag in", values, "delTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andDelTagNotIn(List<Integer> values) {
+            addCriterion("del_tag not in", values, "delTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andDelTagBetween(Integer value1, Integer value2) {
+            addCriterion("del_tag between", value1, value2, "delTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andDelTagNotBetween(Integer value1, Integer value2) {
+            addCriterion("del_tag not between", value1, value2, "delTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTagIsNull() {
+            addCriterion("check_tag is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTagIsNotNull() {
+            addCriterion("check_tag is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTagEqualTo(Integer value) {
+            addCriterion("check_tag =", value, "checkTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTagNotEqualTo(Integer value) {
+            addCriterion("check_tag <>", value, "checkTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTagGreaterThan(Integer value) {
+            addCriterion("check_tag >", value, "checkTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTagGreaterThanOrEqualTo(Integer value) {
+            addCriterion("check_tag >=", value, "checkTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTagLessThan(Integer value) {
+            addCriterion("check_tag <", value, "checkTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTagLessThanOrEqualTo(Integer value) {
+            addCriterion("check_tag <=", value, "checkTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTagIn(List<Integer> values) {
+            addCriterion("check_tag in", values, "checkTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTagNotIn(List<Integer> values) {
+            addCriterion("check_tag not in", values, "checkTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTagBetween(Integer value1, Integer value2) {
+            addCriterion("check_tag between", value1, value2, "checkTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTagNotBetween(Integer value1, Integer value2) {
+            addCriterion("check_tag not between", value1, value2, "checkTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckStatusIsNull() {
+            addCriterion("check_status is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckStatusIsNotNull() {
+            addCriterion("check_status is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckStatusEqualTo(String value) {
+            addCriterion("check_status =", value, "checkStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckStatusNotEqualTo(String value) {
+            addCriterion("check_status <>", value, "checkStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckStatusGreaterThan(String value) {
+            addCriterion("check_status >", value, "checkStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckStatusGreaterThanOrEqualTo(String value) {
+            addCriterion("check_status >=", value, "checkStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckStatusLessThan(String value) {
+            addCriterion("check_status <", value, "checkStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckStatusLessThanOrEqualTo(String value) {
+            addCriterion("check_status <=", value, "checkStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckStatusLike(String value) {
+            addCriterion("check_status like", value, "checkStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckStatusNotLike(String value) {
+            addCriterion("check_status not like", value, "checkStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckStatusIn(List<String> values) {
+            addCriterion("check_status in", values, "checkStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckStatusNotIn(List<String> values) {
+            addCriterion("check_status not in", values, "checkStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckStatusBetween(String value1, String value2) {
+            addCriterion("check_status between", value1, value2, "checkStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckStatusNotBetween(String value1, String value2) {
+            addCriterion("check_status not between", value1, value2, "checkStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTimeIsNull() {
+            addCriterion("check_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTimeIsNotNull() {
+            addCriterion("check_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTimeEqualTo(Date value) {
+            addCriterion("check_time =", value, "checkTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTimeNotEqualTo(Date value) {
+            addCriterion("check_time <>", value, "checkTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTimeGreaterThan(Date value) {
+            addCriterion("check_time >", value, "checkTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("check_time >=", value, "checkTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTimeLessThan(Date value) {
+            addCriterion("check_time <", value, "checkTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTimeLessThanOrEqualTo(Date value) {
+            addCriterion("check_time <=", value, "checkTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTimeIn(List<Date> values) {
+            addCriterion("check_time in", values, "checkTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTimeNotIn(List<Date> values) {
+            addCriterion("check_time not in", values, "checkTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTimeBetween(Date value1, Date value2) {
+            addCriterion("check_time between", value1, value2, "checkTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckTimeNotBetween(Date value1, Date value2) {
+            addCriterion("check_time not between", value1, value2, "checkTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckPersonIsNull() {
+            addCriterion("check_person is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckPersonIsNotNull() {
+            addCriterion("check_person is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckPersonEqualTo(String value) {
+            addCriterion("check_person =", value, "checkPerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckPersonNotEqualTo(String value) {
+            addCriterion("check_person <>", value, "checkPerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckPersonGreaterThan(String value) {
+            addCriterion("check_person >", value, "checkPerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckPersonGreaterThanOrEqualTo(String value) {
+            addCriterion("check_person >=", value, "checkPerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckPersonLessThan(String value) {
+            addCriterion("check_person <", value, "checkPerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckPersonLessThanOrEqualTo(String value) {
+            addCriterion("check_person <=", value, "checkPerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckPersonLike(String value) {
+            addCriterion("check_person like", value, "checkPerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckPersonNotLike(String value) {
+            addCriterion("check_person not like", value, "checkPerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckPersonIn(List<String> values) {
+            addCriterion("check_person in", values, "checkPerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckPersonNotIn(List<String> values) {
+            addCriterion("check_person not in", values, "checkPerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckPersonBetween(String value1, String value2) {
+            addCriterion("check_person between", value1, value2, "checkPerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andCheckPersonNotBetween(String value1, String value2) {
+            addCriterion("check_person not between", value1, value2, "checkPerson");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrintTagIsNull() {
+            addCriterion("print_tag is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrintTagIsNotNull() {
+            addCriterion("print_tag is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrintTagEqualTo(Integer value) {
+            addCriterion("print_tag =", value, "printTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrintTagNotEqualTo(Integer value) {
+            addCriterion("print_tag <>", value, "printTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrintTagGreaterThan(Integer value) {
+            addCriterion("print_tag >", value, "printTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrintTagGreaterThanOrEqualTo(Integer value) {
+            addCriterion("print_tag >=", value, "printTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrintTagLessThan(Integer value) {
+            addCriterion("print_tag <", value, "printTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrintTagLessThanOrEqualTo(Integer value) {
+            addCriterion("print_tag <=", value, "printTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrintTagIn(List<Integer> values) {
+            addCriterion("print_tag in", values, "printTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrintTagNotIn(List<Integer> values) {
+            addCriterion("print_tag not in", values, "printTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrintTagBetween(Integer value1, Integer value2) {
+            addCriterion("print_tag between", value1, value2, "printTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrintTagNotBetween(Integer value1, Integer value2) {
+            addCriterion("print_tag not between", value1, value2, "printTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andInvalidTagIsNull() {
+            addCriterion("invalid_tag is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andInvalidTagIsNotNull() {
+            addCriterion("invalid_tag is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andInvalidTagEqualTo(Integer value) {
+            addCriterion("invalid_tag =", value, "invalidTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andInvalidTagNotEqualTo(Integer value) {
+            addCriterion("invalid_tag <>", value, "invalidTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andInvalidTagGreaterThan(Integer value) {
+            addCriterion("invalid_tag >", value, "invalidTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andInvalidTagGreaterThanOrEqualTo(Integer value) {
+            addCriterion("invalid_tag >=", value, "invalidTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andInvalidTagLessThan(Integer value) {
+            addCriterion("invalid_tag <", value, "invalidTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andInvalidTagLessThanOrEqualTo(Integer value) {
+            addCriterion("invalid_tag <=", value, "invalidTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andInvalidTagIn(List<Integer> values) {
+            addCriterion("invalid_tag in", values, "invalidTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andInvalidTagNotIn(List<Integer> values) {
+            addCriterion("invalid_tag not in", values, "invalidTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andInvalidTagBetween(Integer value1, Integer value2) {
+            addCriterion("invalid_tag between", value1, value2, "invalidTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andInvalidTagNotBetween(Integer value1, Integer value2) {
+            addCriterion("invalid_tag not between", value1, value2, "invalidTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuIdIsNull() {
+            addCriterion("menu_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuIdIsNotNull() {
+            addCriterion("menu_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuIdEqualTo(String value) {
+            addCriterion("menu_id =", value, "menuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuIdNotEqualTo(String value) {
+            addCriterion("menu_id <>", value, "menuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuIdGreaterThan(String value) {
+            addCriterion("menu_id >", value, "menuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuIdGreaterThanOrEqualTo(String value) {
+            addCriterion("menu_id >=", value, "menuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuIdLessThan(String value) {
+            addCriterion("menu_id <", value, "menuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuIdLessThanOrEqualTo(String value) {
+            addCriterion("menu_id <=", value, "menuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuIdLike(String value) {
+            addCriterion("menu_id like", value, "menuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuIdNotLike(String value) {
+            addCriterion("menu_id not like", value, "menuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuIdIn(List<String> values) {
+            addCriterion("menu_id in", values, "menuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuIdNotIn(List<String> values) {
+            addCriterion("menu_id not in", values, "menuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuIdBetween(String value1, String value2) {
+            addCriterion("menu_id between", value1, value2, "menuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuIdNotBetween(String value1, String value2) {
+            addCriterion("menu_id not between", value1, value2, "menuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuNameIsNull() {
+            addCriterion("menu_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuNameIsNotNull() {
+            addCriterion("menu_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuNameEqualTo(String value) {
+            addCriterion("menu_name =", value, "menuName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuNameNotEqualTo(String value) {
+            addCriterion("menu_name <>", value, "menuName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuNameGreaterThan(String value) {
+            addCriterion("menu_name >", value, "menuName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuNameGreaterThanOrEqualTo(String value) {
+            addCriterion("menu_name >=", value, "menuName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuNameLessThan(String value) {
+            addCriterion("menu_name <", value, "menuName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuNameLessThanOrEqualTo(String value) {
+            addCriterion("menu_name <=", value, "menuName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuNameLike(String value) {
+            addCriterion("menu_name like", value, "menuName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuNameNotLike(String value) {
+            addCriterion("menu_name not like", value, "menuName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuNameIn(List<String> values) {
+            addCriterion("menu_name in", values, "menuName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuNameNotIn(List<String> values) {
+            addCriterion("menu_name not in", values, "menuName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuNameBetween(String value1, String value2) {
+            addCriterion("menu_name between", value1, value2, "menuName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMenuNameNotBetween(String value1, String value2) {
+            addCriterion("menu_name not between", value1, value2, "menuName");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksIsNull() {
+            addCriterion("remarks is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksIsNotNull() {
+            addCriterion("remarks is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksEqualTo(String value) {
+            addCriterion("remarks =", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksNotEqualTo(String value) {
+            addCriterion("remarks <>", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksGreaterThan(String value) {
+            addCriterion("remarks >", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksGreaterThanOrEqualTo(String value) {
+            addCriterion("remarks >=", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksLessThan(String value) {
+            addCriterion("remarks <", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksLessThanOrEqualTo(String value) {
+            addCriterion("remarks <=", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksLike(String value) {
+            addCriterion("remarks like", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksNotLike(String value) {
+            addCriterion("remarks not like", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksIn(List<String> values) {
+            addCriterion("remarks in", values, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksNotIn(List<String> values) {
+            addCriterion("remarks not in", values, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksBetween(String value1, String value2) {
+            addCriterion("remarks between", value1, value2, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksNotBetween(String value1, String value2) {
+            addCriterion("remarks not between", value1, value2, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantIdIsNull() {
+            addCriterion("merchant_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantIdIsNotNull() {
+            addCriterion("merchant_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantIdEqualTo(String value) {
+            addCriterion("merchant_id =", value, "merchantId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantIdNotEqualTo(String value) {
+            addCriterion("merchant_id <>", value, "merchantId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantIdGreaterThan(String value) {
+            addCriterion("merchant_id >", value, "merchantId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantIdGreaterThanOrEqualTo(String value) {
+            addCriterion("merchant_id >=", value, "merchantId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantIdLessThan(String value) {
+            addCriterion("merchant_id <", value, "merchantId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantIdLessThanOrEqualTo(String value) {
+            addCriterion("merchant_id <=", value, "merchantId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantIdLike(String value) {
+            addCriterion("merchant_id like", value, "merchantId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantIdNotLike(String value) {
+            addCriterion("merchant_id not like", value, "merchantId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantIdIn(List<String> values) {
+            addCriterion("merchant_id in", values, "merchantId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantIdNotIn(List<String> values) {
+            addCriterion("merchant_id not in", values, "merchantId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantIdBetween(String value1, String value2) {
+            addCriterion("merchant_id between", value1, value2, "merchantId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantIdNotBetween(String value1, String value2) {
+            addCriterion("merchant_id not between", value1, value2, "merchantId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdIsNull() {
+            addCriterion("app_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdIsNotNull() {
+            addCriterion("app_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdEqualTo(String value) {
+            addCriterion("app_id =", value, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdNotEqualTo(String value) {
+            addCriterion("app_id <>", value, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdGreaterThan(String value) {
+            addCriterion("app_id >", value, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdGreaterThanOrEqualTo(String value) {
+            addCriterion("app_id >=", value, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdLessThan(String value) {
+            addCriterion("app_id <", value, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdLessThanOrEqualTo(String value) {
+            addCriterion("app_id <=", value, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdLike(String value) {
+            addCriterion("app_id like", value, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdNotLike(String value) {
+            addCriterion("app_id not like", value, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdIn(List<String> values) {
+            addCriterion("app_id in", values, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdNotIn(List<String> values) {
+            addCriterion("app_id not in", values, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdBetween(String value1, String value2) {
+            addCriterion("app_id between", value1, value2, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppIdNotBetween(String value1, String value2) {
+            addCriterion("app_id not between", value1, value2, "appId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMemberIdIsNull() {
+            addCriterion("member_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMemberIdIsNotNull() {
+            addCriterion("member_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMemberIdEqualTo(String value) {
+            addCriterion("member_id =", value, "memberId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMemberIdNotEqualTo(String value) {
+            addCriterion("member_id <>", value, "memberId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMemberIdGreaterThan(String value) {
+            addCriterion("member_id >", value, "memberId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMemberIdGreaterThanOrEqualTo(String value) {
+            addCriterion("member_id >=", value, "memberId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMemberIdLessThan(String value) {
+            addCriterion("member_id <", value, "memberId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMemberIdLessThanOrEqualTo(String value) {
+            addCriterion("member_id <=", value, "memberId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMemberIdLike(String value) {
+            addCriterion("member_id like", value, "memberId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMemberIdNotLike(String value) {
+            addCriterion("member_id not like", value, "memberId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMemberIdIn(List<String> values) {
+            addCriterion("member_id in", values, "memberId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMemberIdNotIn(List<String> values) {
+            addCriterion("member_id not in", values, "memberId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMemberIdBetween(String value1, String value2) {
+            addCriterion("member_id between", value1, value2, "memberId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMemberIdNotBetween(String value1, String value2) {
+            addCriterion("member_id not between", value1, value2, "memberId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAliPidIsNull() {
+            addCriterion("ali_pid is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAliPidIsNotNull() {
+            addCriterion("ali_pid is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAliPidEqualTo(String value) {
+            addCriterion("ali_pid =", value, "aliPid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAliPidNotEqualTo(String value) {
+            addCriterion("ali_pid <>", value, "aliPid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAliPidGreaterThan(String value) {
+            addCriterion("ali_pid >", value, "aliPid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAliPidGreaterThanOrEqualTo(String value) {
+            addCriterion("ali_pid >=", value, "aliPid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAliPidLessThan(String value) {
+            addCriterion("ali_pid <", value, "aliPid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAliPidLessThanOrEqualTo(String value) {
+            addCriterion("ali_pid <=", value, "aliPid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAliPidLike(String value) {
+            addCriterion("ali_pid like", value, "aliPid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAliPidNotLike(String value) {
+            addCriterion("ali_pid not like", value, "aliPid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAliPidIn(List<String> values) {
+            addCriterion("ali_pid in", values, "aliPid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAliPidNotIn(List<String> values) {
+            addCriterion("ali_pid not in", values, "aliPid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAliPidBetween(String value1, String value2) {
+            addCriterion("ali_pid between", value1, value2, "aliPid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAliPidNotBetween(String value1, String value2) {
+            addCriterion("ali_pid not between", value1, value2, "aliPid");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreIdIsNull() {
+            addCriterion("store_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreIdIsNotNull() {
+            addCriterion("store_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreIdEqualTo(String value) {
+            addCriterion("store_id =", value, "storeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreIdNotEqualTo(String value) {
+            addCriterion("store_id <>", value, "storeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreIdGreaterThan(String value) {
+            addCriterion("store_id >", value, "storeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreIdGreaterThanOrEqualTo(String value) {
+            addCriterion("store_id >=", value, "storeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreIdLessThan(String value) {
+            addCriterion("store_id <", value, "storeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreIdLessThanOrEqualTo(String value) {
+            addCriterion("store_id <=", value, "storeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreIdLike(String value) {
+            addCriterion("store_id like", value, "storeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreIdNotLike(String value) {
+            addCriterion("store_id not like", value, "storeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreIdIn(List<String> values) {
+            addCriterion("store_id in", values, "storeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreIdNotIn(List<String> values) {
+            addCriterion("store_id not in", values, "storeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreIdBetween(String value1, String value2) {
+            addCriterion("store_id between", value1, value2, "storeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreIdNotBetween(String value1, String value2) {
+            addCriterion("store_id not between", value1, value2, "storeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentIdIsNull() {
+            addCriterion("agent_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentIdIsNotNull() {
+            addCriterion("agent_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentIdEqualTo(String value) {
+            addCriterion("agent_id =", value, "agentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentIdNotEqualTo(String value) {
+            addCriterion("agent_id <>", value, "agentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentIdGreaterThan(String value) {
+            addCriterion("agent_id >", value, "agentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentIdGreaterThanOrEqualTo(String value) {
+            addCriterion("agent_id >=", value, "agentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentIdLessThan(String value) {
+            addCriterion("agent_id <", value, "agentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentIdLessThanOrEqualTo(String value) {
+            addCriterion("agent_id <=", value, "agentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentIdLike(String value) {
+            addCriterion("agent_id like", value, "agentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentIdNotLike(String value) {
+            addCriterion("agent_id not like", value, "agentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentIdIn(List<String> values) {
+            addCriterion("agent_id in", values, "agentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentIdNotIn(List<String> values) {
+            addCriterion("agent_id not in", values, "agentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentIdBetween(String value1, String value2) {
+            addCriterion("agent_id between", value1, value2, "agentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentIdNotBetween(String value1, String value2) {
+            addCriterion("agent_id not between", value1, value2, "agentId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentNameIsNull() {
+            addCriterion("agent_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentNameIsNotNull() {
+            addCriterion("agent_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentNameEqualTo(String value) {
+            addCriterion("agent_name =", value, "agentName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentNameNotEqualTo(String value) {
+            addCriterion("agent_name <>", value, "agentName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentNameGreaterThan(String value) {
+            addCriterion("agent_name >", value, "agentName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentNameGreaterThanOrEqualTo(String value) {
+            addCriterion("agent_name >=", value, "agentName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentNameLessThan(String value) {
+            addCriterion("agent_name <", value, "agentName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentNameLessThanOrEqualTo(String value) {
+            addCriterion("agent_name <=", value, "agentName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentNameLike(String value) {
+            addCriterion("agent_name like", value, "agentName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentNameNotLike(String value) {
+            addCriterion("agent_name not like", value, "agentName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentNameIn(List<String> values) {
+            addCriterion("agent_name in", values, "agentName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentNameNotIn(List<String> values) {
+            addCriterion("agent_name not in", values, "agentName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentNameBetween(String value1, String value2) {
+            addCriterion("agent_name between", value1, value2, "agentName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAgentNameNotBetween(String value1, String value2) {
+            addCriterion("agent_name not between", value1, value2, "agentName");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreTypeIsNull() {
+            addCriterion("store_type is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreTypeIsNotNull() {
+            addCriterion("store_type is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreTypeEqualTo(Integer value) {
+            addCriterion("store_type =", value, "storeType");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreTypeNotEqualTo(Integer value) {
+            addCriterion("store_type <>", value, "storeType");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreTypeGreaterThan(Integer value) {
+            addCriterion("store_type >", value, "storeType");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreTypeGreaterThanOrEqualTo(Integer value) {
+            addCriterion("store_type >=", value, "storeType");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreTypeLessThan(Integer value) {
+            addCriterion("store_type <", value, "storeType");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreTypeLessThanOrEqualTo(Integer value) {
+            addCriterion("store_type <=", value, "storeType");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreTypeIn(List<Integer> values) {
+            addCriterion("store_type in", values, "storeType");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreTypeNotIn(List<Integer> values) {
+            addCriterion("store_type not in", values, "storeType");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreTypeBetween(Integer value1, Integer value2) {
+            addCriterion("store_type between", value1, value2, "storeType");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreTypeNotBetween(Integer value1, Integer value2) {
+            addCriterion("store_type not between", value1, value2, "storeType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPaymentTypeIsNull() {
+            addCriterion("payment_type is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPaymentTypeIsNotNull() {
+            addCriterion("payment_type is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPaymentTypeEqualTo(Integer value) {
+            addCriterion("payment_type =", value, "paymentType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPaymentTypeNotEqualTo(Integer value) {
+            addCriterion("payment_type <>", value, "paymentType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPaymentTypeGreaterThan(Integer value) {
+            addCriterion("payment_type >", value, "paymentType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPaymentTypeGreaterThanOrEqualTo(Integer value) {
+            addCriterion("payment_type >=", value, "paymentType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPaymentTypeLessThan(Integer value) {
+            addCriterion("payment_type <", value, "paymentType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPaymentTypeLessThanOrEqualTo(Integer value) {
+            addCriterion("payment_type <=", value, "paymentType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPaymentTypeIn(List<Integer> values) {
+            addCriterion("payment_type in", values, "paymentType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPaymentTypeNotIn(List<Integer> values) {
+            addCriterion("payment_type not in", values, "paymentType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPaymentTypeBetween(Integer value1, Integer value2) {
+            addCriterion("payment_type between", value1, value2, "paymentType");
+            return (Criteria) this;
+        }
+
+        public Criteria andPaymentTypeNotBetween(Integer value1, Integer value2) {
+            addCriterion("payment_type not between", value1, value2, "paymentType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCodeIsNull() {
+            addCriterion("merchant_code is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCodeIsNotNull() {
+            addCriterion("merchant_code is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCodeEqualTo(String value) {
+            addCriterion("merchant_code =", value, "merchantCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCodeNotEqualTo(String value) {
+            addCriterion("merchant_code <>", value, "merchantCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCodeGreaterThan(String value) {
+            addCriterion("merchant_code >", value, "merchantCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCodeGreaterThanOrEqualTo(String value) {
+            addCriterion("merchant_code >=", value, "merchantCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCodeLessThan(String value) {
+            addCriterion("merchant_code <", value, "merchantCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCodeLessThanOrEqualTo(String value) {
+            addCriterion("merchant_code <=", value, "merchantCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCodeLike(String value) {
+            addCriterion("merchant_code like", value, "merchantCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCodeNotLike(String value) {
+            addCriterion("merchant_code not like", value, "merchantCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCodeIn(List<String> values) {
+            addCriterion("merchant_code in", values, "merchantCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCodeNotIn(List<String> values) {
+            addCriterion("merchant_code not in", values, "merchantCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCodeBetween(String value1, String value2) {
+            addCriterion("merchant_code between", value1, value2, "merchantCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCodeNotBetween(String value1, String value2) {
+            addCriterion("merchant_code not between", value1, value2, "merchantCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCounterCodeIsNull() {
+            addCriterion("merchant_counter_code is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCounterCodeIsNotNull() {
+            addCriterion("merchant_counter_code is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCounterCodeEqualTo(String value) {
+            addCriterion("merchant_counter_code =", value, "merchantCounterCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCounterCodeNotEqualTo(String value) {
+            addCriterion("merchant_counter_code <>", value, "merchantCounterCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCounterCodeGreaterThan(String value) {
+            addCriterion("merchant_counter_code >", value, "merchantCounterCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCounterCodeGreaterThanOrEqualTo(String value) {
+            addCriterion("merchant_counter_code >=", value, "merchantCounterCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCounterCodeLessThan(String value) {
+            addCriterion("merchant_counter_code <", value, "merchantCounterCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCounterCodeLessThanOrEqualTo(String value) {
+            addCriterion("merchant_counter_code <=", value, "merchantCounterCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCounterCodeLike(String value) {
+            addCriterion("merchant_counter_code like", value, "merchantCounterCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCounterCodeNotLike(String value) {
+            addCriterion("merchant_counter_code not like", value, "merchantCounterCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCounterCodeIn(List<String> values) {
+            addCriterion("merchant_counter_code in", values, "merchantCounterCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCounterCodeNotIn(List<String> values) {
+            addCriterion("merchant_counter_code not in", values, "merchantCounterCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCounterCodeBetween(String value1, String value2) {
+            addCriterion("merchant_counter_code between", value1, value2, "merchantCounterCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantCounterCodeNotBetween(String value1, String value2) {
+            addCriterion("merchant_counter_code not between", value1, value2, "merchantCounterCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTheBranchCodeIsNull() {
+            addCriterion("the_branch_code is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTheBranchCodeIsNotNull() {
+            addCriterion("the_branch_code is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTheBranchCodeEqualTo(String value) {
+            addCriterion("the_branch_code =", value, "theBranchCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTheBranchCodeNotEqualTo(String value) {
+            addCriterion("the_branch_code <>", value, "theBranchCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTheBranchCodeGreaterThan(String value) {
+            addCriterion("the_branch_code >", value, "theBranchCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTheBranchCodeGreaterThanOrEqualTo(String value) {
+            addCriterion("the_branch_code >=", value, "theBranchCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTheBranchCodeLessThan(String value) {
+            addCriterion("the_branch_code <", value, "theBranchCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTheBranchCodeLessThanOrEqualTo(String value) {
+            addCriterion("the_branch_code <=", value, "theBranchCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTheBranchCodeLike(String value) {
+            addCriterion("the_branch_code like", value, "theBranchCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTheBranchCodeNotLike(String value) {
+            addCriterion("the_branch_code not like", value, "theBranchCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTheBranchCodeIn(List<String> values) {
+            addCriterion("the_branch_code in", values, "theBranchCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTheBranchCodeNotIn(List<String> values) {
+            addCriterion("the_branch_code not in", values, "theBranchCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTheBranchCodeBetween(String value1, String value2) {
+            addCriterion("the_branch_code between", value1, value2, "theBranchCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTheBranchCodeNotBetween(String value1, String value2) {
+            addCriterion("the_branch_code not between", value1, value2, "theBranchCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andSysIdIsNull() {
+            addCriterion("sys_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSysIdIsNotNull() {
+            addCriterion("sys_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSysIdEqualTo(String value) {
+            addCriterion("sys_id =", value, "sysId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSysIdNotEqualTo(String value) {
+            addCriterion("sys_id <>", value, "sysId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSysIdGreaterThan(String value) {
+            addCriterion("sys_id >", value, "sysId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSysIdGreaterThanOrEqualTo(String value) {
+            addCriterion("sys_id >=", value, "sysId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSysIdLessThan(String value) {
+            addCriterion("sys_id <", value, "sysId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSysIdLessThanOrEqualTo(String value) {
+            addCriterion("sys_id <=", value, "sysId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSysIdLike(String value) {
+            addCriterion("sys_id like", value, "sysId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSysIdNotLike(String value) {
+            addCriterion("sys_id not like", value, "sysId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSysIdIn(List<String> values) {
+            addCriterion("sys_id in", values, "sysId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSysIdNotIn(List<String> values) {
+            addCriterion("sys_id not in", values, "sysId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSysIdBetween(String value1, String value2) {
+            addCriterion("sys_id between", value1, value2, "sysId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSysIdNotBetween(String value1, String value2) {
+            addCriterion("sys_id not between", value1, value2, "sysId");
+            return (Criteria) this;
+        }
+
+        public Criteria andHuifuIdIsNull() {
+            addCriterion("huifu_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andHuifuIdIsNotNull() {
+            addCriterion("huifu_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andHuifuIdEqualTo(String value) {
+            addCriterion("huifu_id =", value, "huifuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andHuifuIdNotEqualTo(String value) {
+            addCriterion("huifu_id <>", value, "huifuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andHuifuIdGreaterThan(String value) {
+            addCriterion("huifu_id >", value, "huifuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andHuifuIdGreaterThanOrEqualTo(String value) {
+            addCriterion("huifu_id >=", value, "huifuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andHuifuIdLessThan(String value) {
+            addCriterion("huifu_id <", value, "huifuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andHuifuIdLessThanOrEqualTo(String value) {
+            addCriterion("huifu_id <=", value, "huifuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andHuifuIdLike(String value) {
+            addCriterion("huifu_id like", value, "huifuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andHuifuIdNotLike(String value) {
+            addCriterion("huifu_id not like", value, "huifuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andHuifuIdIn(List<String> values) {
+            addCriterion("huifu_id in", values, "huifuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andHuifuIdNotIn(List<String> values) {
+            addCriterion("huifu_id not in", values, "huifuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andHuifuIdBetween(String value1, String value2) {
+            addCriterion("huifu_id between", value1, value2, "huifuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andHuifuIdNotBetween(String value1, String value2) {
+            addCriterion("huifu_id not between", value1, value2, "huifuId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantNameIsNull() {
+            addCriterion("merchant_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantNameIsNotNull() {
+            addCriterion("merchant_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantNameEqualTo(String value) {
+            addCriterion("merchant_name =", value, "merchantName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantNameNotEqualTo(String value) {
+            addCriterion("merchant_name <>", value, "merchantName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantNameGreaterThan(String value) {
+            addCriterion("merchant_name >", value, "merchantName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantNameGreaterThanOrEqualTo(String value) {
+            addCriterion("merchant_name >=", value, "merchantName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantNameLessThan(String value) {
+            addCriterion("merchant_name <", value, "merchantName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantNameLessThanOrEqualTo(String value) {
+            addCriterion("merchant_name <=", value, "merchantName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantNameLike(String value) {
+            addCriterion("merchant_name like", value, "merchantName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantNameNotLike(String value) {
+            addCriterion("merchant_name not like", value, "merchantName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantNameIn(List<String> values) {
+            addCriterion("merchant_name in", values, "merchantName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantNameNotIn(List<String> values) {
+            addCriterion("merchant_name not in", values, "merchantName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantNameBetween(String value1, String value2) {
+            addCriterion("merchant_name between", value1, value2, "merchantName");
+            return (Criteria) this;
+        }
+
+        public Criteria andMerchantNameNotBetween(String value1, String value2) {
+            addCriterion("merchant_name not between", value1, value2, "merchantName");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreNameIsNull() {
+            addCriterion("store_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreNameIsNotNull() {
+            addCriterion("store_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreNameEqualTo(String value) {
+            addCriterion("store_name =", value, "storeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreNameNotEqualTo(String value) {
+            addCriterion("store_name <>", value, "storeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreNameGreaterThan(String value) {
+            addCriterion("store_name >", value, "storeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreNameGreaterThanOrEqualTo(String value) {
+            addCriterion("store_name >=", value, "storeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreNameLessThan(String value) {
+            addCriterion("store_name <", value, "storeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreNameLessThanOrEqualTo(String value) {
+            addCriterion("store_name <=", value, "storeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreNameLike(String value) {
+            addCriterion("store_name like", value, "storeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreNameNotLike(String value) {
+            addCriterion("store_name not like", value, "storeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreNameIn(List<String> values) {
+            addCriterion("store_name in", values, "storeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreNameNotIn(List<String> values) {
+            addCriterion("store_name not in", values, "storeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreNameBetween(String value1, String value2) {
+            addCriterion("store_name between", value1, value2, "storeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andStoreNameNotBetween(String value1, String value2) {
+            addCriterion("store_name not between", value1, value2, "storeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvailableTagIsNull() {
+            addCriterion("available_tag is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvailableTagIsNotNull() {
+            addCriterion("available_tag is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvailableTagEqualTo(Integer value) {
+            addCriterion("available_tag =", value, "availableTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvailableTagNotEqualTo(Integer value) {
+            addCriterion("available_tag <>", value, "availableTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvailableTagGreaterThan(Integer value) {
+            addCriterion("available_tag >", value, "availableTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvailableTagGreaterThanOrEqualTo(Integer value) {
+            addCriterion("available_tag >=", value, "availableTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvailableTagLessThan(Integer value) {
+            addCriterion("available_tag <", value, "availableTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvailableTagLessThanOrEqualTo(Integer value) {
+            addCriterion("available_tag <=", value, "availableTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvailableTagIn(List<Integer> values) {
+            addCriterion("available_tag in", values, "availableTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvailableTagNotIn(List<Integer> values) {
+            addCriterion("available_tag not in", values, "availableTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvailableTagBetween(Integer value1, Integer value2) {
+            addCriterion("available_tag between", value1, value2, "availableTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andAvailableTagNotBetween(Integer value1, Integer value2) {
+            addCriterion("available_tag not between", value1, value2, "availableTag");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrivateKeyDougongIsNull() {
+            addCriterion("private_key_dougong is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrivateKeyDougongIsNotNull() {
+            addCriterion("private_key_dougong is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrivateKeyDougongEqualTo(String value) {
+            addCriterion("private_key_dougong =", value, "privateKeyDougong");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrivateKeyDougongNotEqualTo(String value) {
+            addCriterion("private_key_dougong <>", value, "privateKeyDougong");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrivateKeyDougongGreaterThan(String value) {
+            addCriterion("private_key_dougong >", value, "privateKeyDougong");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrivateKeyDougongGreaterThanOrEqualTo(String value) {
+            addCriterion("private_key_dougong >=", value, "privateKeyDougong");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrivateKeyDougongLessThan(String value) {
+            addCriterion("private_key_dougong <", value, "privateKeyDougong");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrivateKeyDougongLessThanOrEqualTo(String value) {
+            addCriterion("private_key_dougong <=", value, "privateKeyDougong");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrivateKeyDougongLike(String value) {
+            addCriterion("private_key_dougong like", value, "privateKeyDougong");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrivateKeyDougongNotLike(String value) {
+            addCriterion("private_key_dougong not like", value, "privateKeyDougong");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrivateKeyDougongIn(List<String> values) {
+            addCriterion("private_key_dougong in", values, "privateKeyDougong");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrivateKeyDougongNotIn(List<String> values) {
+            addCriterion("private_key_dougong not in", values, "privateKeyDougong");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrivateKeyDougongBetween(String value1, String value2) {
+            addCriterion("private_key_dougong between", value1, value2, "privateKeyDougong");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrivateKeyDougongNotBetween(String value1, String value2) {
+            addCriterion("private_key_dougong not between", value1, value2, "privateKeyDougong");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublicKeyHuifuIsNull() {
+            addCriterion("public_key_huifu is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublicKeyHuifuIsNotNull() {
+            addCriterion("public_key_huifu is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublicKeyHuifuEqualTo(String value) {
+            addCriterion("public_key_huifu =", value, "publicKeyHuifu");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublicKeyHuifuNotEqualTo(String value) {
+            addCriterion("public_key_huifu <>", value, "publicKeyHuifu");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublicKeyHuifuGreaterThan(String value) {
+            addCriterion("public_key_huifu >", value, "publicKeyHuifu");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublicKeyHuifuGreaterThanOrEqualTo(String value) {
+            addCriterion("public_key_huifu >=", value, "publicKeyHuifu");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublicKeyHuifuLessThan(String value) {
+            addCriterion("public_key_huifu <", value, "publicKeyHuifu");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublicKeyHuifuLessThanOrEqualTo(String value) {
+            addCriterion("public_key_huifu <=", value, "publicKeyHuifu");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublicKeyHuifuLike(String value) {
+            addCriterion("public_key_huifu like", value, "publicKeyHuifu");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublicKeyHuifuNotLike(String value) {
+            addCriterion("public_key_huifu not like", value, "publicKeyHuifu");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublicKeyHuifuIn(List<String> values) {
+            addCriterion("public_key_huifu in", values, "publicKeyHuifu");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublicKeyHuifuNotIn(List<String> values) {
+            addCriterion("public_key_huifu not in", values, "publicKeyHuifu");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublicKeyHuifuBetween(String value1, String value2) {
+            addCriterion("public_key_huifu between", value1, value2, "publicKeyHuifu");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublicKeyHuifuNotBetween(String value1, String value2) {
+            addCriterion("public_key_huifu not between", value1, value2, "publicKeyHuifu");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletIdIsNull() {
+            addCriterion("applet_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletIdIsNotNull() {
+            addCriterion("applet_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletIdEqualTo(String value) {
+            addCriterion("applet_id =", value, "appletId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletIdNotEqualTo(String value) {
+            addCriterion("applet_id <>", value, "appletId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletIdGreaterThan(String value) {
+            addCriterion("applet_id >", value, "appletId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletIdGreaterThanOrEqualTo(String value) {
+            addCriterion("applet_id >=", value, "appletId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletIdLessThan(String value) {
+            addCriterion("applet_id <", value, "appletId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletIdLessThanOrEqualTo(String value) {
+            addCriterion("applet_id <=", value, "appletId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletIdLike(String value) {
+            addCriterion("applet_id like", value, "appletId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletIdNotLike(String value) {
+            addCriterion("applet_id not like", value, "appletId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletIdIn(List<String> values) {
+            addCriterion("applet_id in", values, "appletId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletIdNotIn(List<String> values) {
+            addCriterion("applet_id not in", values, "appletId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletIdBetween(String value1, String value2) {
+            addCriterion("applet_id between", value1, value2, "appletId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletIdNotBetween(String value1, String value2) {
+            addCriterion("applet_id not between", value1, value2, "appletId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletSecretIsNull() {
+            addCriterion("applet_secret is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletSecretIsNotNull() {
+            addCriterion("applet_secret is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletSecretEqualTo(String value) {
+            addCriterion("applet_secret =", value, "appletSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletSecretNotEqualTo(String value) {
+            addCriterion("applet_secret <>", value, "appletSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletSecretGreaterThan(String value) {
+            addCriterion("applet_secret >", value, "appletSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletSecretGreaterThanOrEqualTo(String value) {
+            addCriterion("applet_secret >=", value, "appletSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletSecretLessThan(String value) {
+            addCriterion("applet_secret <", value, "appletSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletSecretLessThanOrEqualTo(String value) {
+            addCriterion("applet_secret <=", value, "appletSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletSecretLike(String value) {
+            addCriterion("applet_secret like", value, "appletSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletSecretNotLike(String value) {
+            addCriterion("applet_secret not like", value, "appletSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletSecretIn(List<String> values) {
+            addCriterion("applet_secret in", values, "appletSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletSecretNotIn(List<String> values) {
+            addCriterion("applet_secret not in", values, "appletSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletSecretBetween(String value1, String value2) {
+            addCriterion("applet_secret between", value1, value2, "appletSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppletSecretNotBetween(String value1, String value2) {
+            addCriterion("applet_secret not between", value1, value2, "appletSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andWechatSecretIsNull() {
+            addCriterion("wechat_secret is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andWechatSecretIsNotNull() {
+            addCriterion("wechat_secret is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andWechatSecretEqualTo(String value) {
+            addCriterion("wechat_secret =", value, "wechatSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andWechatSecretNotEqualTo(String value) {
+            addCriterion("wechat_secret <>", value, "wechatSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andWechatSecretGreaterThan(String value) {
+            addCriterion("wechat_secret >", value, "wechatSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andWechatSecretGreaterThanOrEqualTo(String value) {
+            addCriterion("wechat_secret >=", value, "wechatSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andWechatSecretLessThan(String value) {
+            addCriterion("wechat_secret <", value, "wechatSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andWechatSecretLessThanOrEqualTo(String value) {
+            addCriterion("wechat_secret <=", value, "wechatSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andWechatSecretLike(String value) {
+            addCriterion("wechat_secret like", value, "wechatSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andWechatSecretNotLike(String value) {
+            addCriterion("wechat_secret not like", value, "wechatSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andWechatSecretIn(List<String> values) {
+            addCriterion("wechat_secret in", values, "wechatSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andWechatSecretNotIn(List<String> values) {
+            addCriterion("wechat_secret not in", values, "wechatSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andWechatSecretBetween(String value1, String value2) {
+            addCriterion("wechat_secret between", value1, value2, "wechatSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andWechatSecretNotBetween(String value1, String value2) {
+            addCriterion("wechat_secret not between", value1, value2, "wechatSecret");
+            return (Criteria) this;
+        }
+
+        public Criteria andDougongProductIdIsNull() {
+            addCriterion("dougong_product_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDougongProductIdIsNotNull() {
+            addCriterion("dougong_product_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDougongProductIdEqualTo(String value) {
+            addCriterion("dougong_product_id =", value, "dougongProductId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDougongProductIdNotEqualTo(String value) {
+            addCriterion("dougong_product_id <>", value, "dougongProductId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDougongProductIdGreaterThan(String value) {
+            addCriterion("dougong_product_id >", value, "dougongProductId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDougongProductIdGreaterThanOrEqualTo(String value) {
+            addCriterion("dougong_product_id >=", value, "dougongProductId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDougongProductIdLessThan(String value) {
+            addCriterion("dougong_product_id <", value, "dougongProductId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDougongProductIdLessThanOrEqualTo(String value) {
+            addCriterion("dougong_product_id <=", value, "dougongProductId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDougongProductIdLike(String value) {
+            addCriterion("dougong_product_id like", value, "dougongProductId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDougongProductIdNotLike(String value) {
+            addCriterion("dougong_product_id not like", value, "dougongProductId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDougongProductIdIn(List<String> values) {
+            addCriterion("dougong_product_id in", values, "dougongProductId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDougongProductIdNotIn(List<String> values) {
+            addCriterion("dougong_product_id not in", values, "dougongProductId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDougongProductIdBetween(String value1, String value2) {
+            addCriterion("dougong_product_id between", value1, value2, "dougongProductId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDougongProductIdNotBetween(String value1, String value2) {
+            addCriterion("dougong_product_id not between", value1, value2, "dougongProductId");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 33 - 0
mp-service/src/main/java/com/qs/mp/pay/mapper/PaymentConfigMapper.java

@@ -0,0 +1,33 @@
+package com.qs.mp.pay.mapper;
+
+
+import com.qs.mp.pay.domain.PaymentConfig;
+import com.qs.mp.pay.domain.PaymentConfigExample;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface PaymentConfigMapper {
+    long countByExample(PaymentConfigExample example);
+
+    int deleteByExample(PaymentConfigExample example);
+
+    int deleteByPrimaryKey(String id);
+
+    int insert(PaymentConfig record);
+
+    int insertSelective(PaymentConfig record);
+
+    List<PaymentConfig> selectByExample(PaymentConfigExample example);
+
+    PaymentConfig selectByPrimaryKey(String id);
+    String selectByHostName(String hostName);
+
+    int updateByExampleSelective(@Param("record") PaymentConfig record, @Param("example") PaymentConfigExample example);
+
+    int updateByExample(@Param("record") PaymentConfig record, @Param("example") PaymentConfigExample example);
+
+    int updateByPrimaryKeySelective(PaymentConfig record);
+
+    int updateByPrimaryKey(PaymentConfig record);
+}

+ 25 - 0
mp-service/src/main/java/com/qs/mp/pay/service/IWalletService.java

@@ -2,6 +2,7 @@ package com.qs.mp.pay.service;
 
 import com.alibaba.fastjson.JSONObject;
 import com.qs.mp.common.enums.BizTypeEnum;
+import com.qs.mp.common.exception.ServiceException;
 import com.qs.mp.pay.domain.PayOrder;
 
 /**
@@ -61,6 +62,30 @@ public interface IWalletService {
   JSONObject pay(BizTypeEnum bizType, String bizId, String openId, int money,
       String orderRemark, Integer appSource);
 
+  /**
+   * 斗拱支付宝订单支付
+   * @param bizType
+   * @param bizId
+   * @param openId
+   * @param money
+   * @param orderRemark
+   * @return
+   */
+  JSONObject dgAliPay(BizTypeEnum bizType, String bizId, String openId, int money,
+                          String orderRemark, String clientType, Integer appSource) throws ServiceException;
+
+  /**
+   * 斗拱微信订单支付
+   * @param bizType
+   * @param bizId
+   * @param openId
+   * @param money
+   * @param orderRemark
+   * @param appSource
+   * @return
+   */
+  JSONObject dgWxPay(BizTypeEnum bizType, String bizId, String openId, int money,
+                 String orderRemark, Integer appSource, String clientType) throws ServiceException;
 
   /**
    * 订单退款

+ 164 - 0
mp-service/src/main/java/com/qs/mp/pay/service/impl/DougongPayApi.java

@@ -0,0 +1,164 @@
+package com.qs.mp.pay.service.impl;
+
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.google.common.collect.Maps;
+import com.huifu.bspay.sdk.opps.client.BasePayClient;
+import com.huifu.bspay.sdk.opps.core.BasePay;
+import com.huifu.bspay.sdk.opps.core.config.MerConfig;
+import com.huifu.bspay.sdk.opps.core.request.*;
+import com.huifu.bspay.sdk.opps.core.utils.DateTools;
+import com.huifu.bspay.sdk.opps.core.utils.SequenceTools;
+import com.qs.mp.common.constant.Constants;
+import com.qs.mp.common.utils.KeyGenUtil;
+import com.qs.mp.pay.domain.DougongPayRequestParam;
+import com.qs.mp.pay.domain.PaymentConfig;
+import com.qs.mp.pay.domain.PaymentConfigExample;
+import com.qs.mp.pay.mapper.PaymentConfigMapper;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import com.qs.mp.common.exception.ServiceException;
+
+/**
+ * 商家的微信支付
+ */
+@Component
+public class DougongPayApi {
+    private static final Logger log = LoggerFactory.getLogger(DougongPayApi.class);
+    private static final String onlineEnvironment = "dev,prd,ali";
+    @Value("${pay.dgPay.dougongMiniNoticeUrl}")
+    private String dougongMiniNoticeUrl;
+    @Value("${pay.dgPay.dougongMiniRefundNoticeUrl}")
+    private String dougongMiniRefundNoticeUrl;
+    @Value("${pay.dgPay.dougongMerchantSubmitsBackPageUrl}")
+    private String dougongMerchantSubmitsBackPageUrl;
+    @Value("${pay.dgPay.dougongMerchantSubmitsAsyncReceiveUrl}")
+    private String dougongMerchantSubmitsAsyncReceiveUrl;
+    private static final String DOUGONG_SYS_ID_FENGYI = "6666000137086944";
+
+    @Resource
+    private PaymentConfigMapper paymentConfigMapper;
+
+    public List<PaymentConfig> getAvailablePaymentConfigList(){
+        PaymentConfigExample paymentConfigExample = new PaymentConfigExample();
+        PaymentConfigExample.Criteria criteria = paymentConfigExample.createCriteria();
+        criteria.andDelTagEqualTo(0);
+        criteria.andAvailableTagEqualTo(1);
+        return this.paymentConfigMapper.selectByExample(paymentConfigExample);
+    }
+
+    public Map<String, String> unifiedOrderDougong(DougongPayRequestParam dougongPayRequestParam, String tradeType, PaymentConfig paymentConfig) throws ServiceException{
+        //检测必填参数
+        if (StringUtils.isEmpty(dougongPayRequestParam.getTradesOrderId())) {
+            throw new ServiceException("缺少统一支付接口必填参数tradesOrderId!");
+        } else if (Objects.isNull(dougongPayRequestParam.getTotalFee())) {
+            throw new ServiceException("缺少统一支付接口必填参数total_fee!");
+        }
+
+        //关联参数
+        if ("JSAPI".equals(dougongPayRequestParam.getTradeType()) && (StringUtils.isEmpty(dougongPayRequestParam.getOpenid()) && StringUtils.isEmpty(dougongPayRequestParam.getSubOpenid()))) {
+            throw new ServiceException("统一支付接口中,缺少必填参数openid!trade_type为JSAPI时,openid为必填参数!");
+        }
+        if ("NATIVE".equals(dougongPayRequestParam.getTradeType()) && StringUtils.isEmpty(dougongPayRequestParam.getProductId())) {
+            throw new ServiceException("统一支付接口中,缺少必填参数product_id!trade_type为NATIVE时,product_id为必填参数!");
+        }
+        String orderFee = BigDecimal.valueOf(dougongPayRequestParam.getTotalFee()).divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP).toPlainString();
+        log.info("unifiedOrderDougong--orderFee::{},totalFee:{}",orderFee,dougongPayRequestParam.getTotalFee());
+        /**
+         * T_JSAPI: 微信公众号
+         * T_MINIAPP: 微信小程序
+         * A_JSAPI: 支付宝JS
+         * A_NATIVE: 支付宝正扫
+         * U_NATIVE: 银联正扫
+         * U_JSAPI: 银联JS
+         * D_NATIVE: 数字人民币正扫
+         */
+        log.info("dougong pay jspay api request:{}",dougongPayRequestParam.getTradesOrderId());
+//        List<PaymentConfig> paymentConfigList = getAvailablePaymentConfigList();
+//        PaymentConfig paymentConfig = CollectionUtil.isNotEmpty(paymentConfigList) ? RandomUtil.randomEle(paymentConfigList) : null;
+        long huifupayStart = System.currentTimeMillis();
+        String sysId = Objects.nonNull(paymentConfig) ? paymentConfig.getSysId() : "";
+        String huifuId = Objects.nonNull(paymentConfig) ? paymentConfig.getHuifuId() : "";
+        log.info("unifiedOrderDougong--sysId:{},huifuId:{}",sysId,huifuId);
+        BasePay.debug = false;
+        BasePay.prodMode = BasePay.MODE_PROD;
+        MerConfig merConfig = new MerConfig();
+        merConfig.setProcutId(Objects.nonNull(paymentConfig) ? paymentConfig.getDougongProductId() : "");
+        merConfig.setSysId(sysId);
+        merConfig.setRsaPrivateKey(Objects.nonNull(paymentConfig) ? paymentConfig.getPrivateKeyDougong() : "");
+        merConfig.setRsaPublicKey(Objects.nonNull(paymentConfig) ? paymentConfig.getPublicKeyHuifu() : "");
+
+        Map<String, Object> result = null;
+        try{
+            log.info("Dougong-pay-initWithMerConfig0");
+            BasePay.initWithMerConfig(merConfig);
+            log.info("Dougong-pay-initWithMerConfig1");
+            V2TradePaymentJspayRequest request = new V2TradePaymentJspayRequest();
+            request.setReqDate(DateTools.getCurrentDateYYYYMMDD());
+            request.setReqSeqId(SequenceTools.getReqSeqId32());
+            request.setHuifuId(huifuId);
+            request.setTradeType(tradeType);
+            log.info("unifiedOrderDougong--transAmt::{}",orderFee);
+            request.setTransAmt(orderFee);
+            JSONObject wxData = new JSONObject();
+            JSONObject aliPayData = new JSONObject();
+
+            wxData.put("openid",dougongPayRequestParam.getOpenid());
+            wxData.put("sub_openid",dougongPayRequestParam.getSubOpenid());
+//            wxData.put("sub_appid",wxRequestParam.getSubAppid());
+            wxData.put("sub_appid",dougongPayRequestParam.getAppid());
+
+            log.info("ali-buyer_id::{}",dougongPayRequestParam.getOpenid());
+            aliPayData.put("buyer_id",dougongPayRequestParam.getOpenid());
+
+            request.setGoodsDesc("ql-goods-" + KeyGenUtil.newKey());
+            Map<String, Object> extendInfoMap = Maps.newHashMap();
+
+            log.info("unifiedOrderDougong--notifyUrl::{},payStyle::{}",dougongMiniNoticeUrl,dougongPayRequestParam.getPayStyle());
+            extendInfoMap.put("notify_url",this.dougongMiniNoticeUrl);
+            if(Constants.DOUGONG_TRADE_TYPE_MINIAPP.equals(tradeType)){
+                extendInfoMap.put("wx_data",wxData.toString());
+            }else if(Constants.DOUGONG_TRADE_TYPE_ALINATIVE.equals(tradeType)){
+                extendInfoMap.put("alipay_data",aliPayData.toString());
+            }
+
+            extendInfoMap.put("remark","--");
+            extendInfoMap.put("goods_desc","门店消费");
+            request.setExtendInfo(extendInfoMap);
+            request.setReqSeqId(dougongPayRequestParam.getHuifuPayId());
+
+            log.info("Dougong-pay-request-params::{}",JSONUtil.toJsonStr(request));
+            result = BasePayClient.request(request,false);
+            log.info("微信小程序-斗拱扫台牌交易返回报文:{},请求耗时:{},tradesId:{},payStyle:{}",result,(System.currentTimeMillis() - huifupayStart),dougongPayRequestParam.getTradesOrderId(),dougongPayRequestParam.getPayStyle());
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+
+        log.info("微信小程序-斗拱扫台牌交易返回报文1:{}",result);
+        Map<String, String> payInfo = Maps.newHashMap();
+
+        if(Constants.DOUGONG_TRADE_TYPE_MINIAPP.equals(tradeType)){
+            payInfo.put("payInfo", result.get("pay_info").toString());
+            payInfo.put("respCode",result.get("resp_code").toString());
+            log.info("dougong pay info-wx:{}", payInfo);
+        }else if(Constants.DOUGONG_TRADE_TYPE_ALINATIVE.equals(tradeType)){
+            payInfo.put("payInfo", result.get("qr_code").toString());
+            payInfo.put("respCode",result.get("resp_code").toString());
+            log.info("dougong pay info-ali:{}", payInfo);
+        }
+
+        return payInfo;
+    }
+
+
+}

+ 329 - 4
mp-service/src/main/java/com/qs/mp/pay/service/impl/WalletServiceImpl.java

@@ -1,5 +1,8 @@
 package com.qs.mp.pay.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.RandomUtil;
+import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alipay.api.AlipayApiException;
@@ -9,6 +12,7 @@ import com.alipay.api.request.AlipayTradeCreateRequest;
 import com.alipay.api.response.AlipayTradeCreateResponse;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.google.common.collect.Maps;
 import com.eptok.yspay.opensdkjava.common.Constants;
 import com.eptok.yspay.opensdkjava.fund.MercFundApi;
 import com.eptok.yspay.opensdkjava.orderpay.AppPayApi;
@@ -21,6 +25,7 @@ import com.qs.mp.channel.domain.ChannelWithdraw;
 import com.qs.mp.channel.service.IChannelGoodsOrderService;
 import com.qs.mp.channel.service.IChannelGoodsSettleOrderService;
 import com.qs.mp.channel.service.IChannelOrderService;
+import com.qs.mp.common.constant.Constants;
 import com.qs.mp.channel.service.IChannelWithdrawService;
 import com.qs.mp.common.constant.YsPayMethodConstants;
 import com.qs.mp.common.constant.YsServerApiConstants;
@@ -36,12 +41,15 @@ import com.qs.mp.common.exception.ServiceException;
 import com.qs.mp.common.pulsar.PulsarClientService;
 import com.qs.mp.common.service.IYsCallLogService;
 import com.qs.mp.common.utils.DateUtils;
+import com.qs.mp.common.utils.KeyGenUtil;
 import com.qs.mp.common.utils.LogUtil;
 import com.qs.mp.common.utils.StringUtils;
 import com.qs.mp.common.utils.http.OkHttpUtil;
 import com.qs.mp.framework.domain.AsyncTask;
 import com.qs.mp.framework.service.IAsyncTaskService;
+import com.qs.mp.pay.domain.DougongPayRequestParam;
 import com.qs.mp.pay.domain.PayOrder;
+import com.qs.mp.pay.domain.PaymentConfig;
 import com.qs.mp.pay.service.IPayOrderService;
 import com.qs.mp.pay.service.IWalletService;
 import com.qs.mp.system.service.id.BizIdGenerator;
@@ -50,9 +58,9 @@ import com.qs.mp.user.service.IUserDeliverOrderService;
 import com.qs.mp.user.service.IUserTicketOrderService;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+
 import org.apache.pulsar.client.api.PulsarClientException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -61,7 +69,6 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
-import java.util.Objects;
 import org.springframework.transaction.annotation.Transactional;
 
 /**
@@ -101,6 +108,9 @@ public class WalletServiceImpl implements IWalletService {
   @Autowired
   private IChannelGoodsSettleOrderService settleOrderService;
 
+  @Autowired
+  private DougongPayApi dougongPayApi;
+
   @Autowired
   private IChannelWithdrawService channelWithdrawService;
 
@@ -427,6 +437,321 @@ public class WalletServiceImpl implements IWalletService {
 
   }
 
+  /**
+   * 斗拱支付宝支付
+   * @param bizType
+   * @param bizId
+   * @param openId
+   * @param money
+   * @param orderRemark
+   * @return
+   */
+  @Override
+  public JSONObject dgAliPay(BizTypeEnum bizType, String bizId, String openId, int money, String orderRemark, String clientType, Integer appSource) throws ServiceException {
+
+    JSONObject data = new JSONObject();
+
+    String appId = channelAppId;
+    String payShopNo = channelPayShopNo;
+    String paySign = channelPaySign;
+
+    AppSourceEnum appSourceEnum = AppSourceEnum.getByValue(appSource);
+    if (bizType == BizTypeEnum.TICKET_ORDER || bizType == BizTypeEnum.DELIVER_ORDER) {
+      appId = appSourceEnum.getAppId();
+      // 区分微信小程序
+      if (AppSourceEnum.MSDQ.equals(appSourceEnum)) {
+        payShopNo = msdqPayShopNo;
+        paySign = msdqPaySign;
+      } else {
+        payShopNo = userPayShopNo;
+        paySign = userPaySign;
+      }
+
+    }
+    JSONObject params = buildPayOrderReqData(payShopNo, paySign, money, openId, appId, orderRemark, PAY_RESOURCE, PAY_RESOURCE_TYPE);
+    //判断是否是0元订单
+    Map<String, String> payMap = Maps.newHashMap();
+    if(money == 0){//0元订单,直接返回,不需要进支付
+      String orderId = String.valueOf(bizIdGenerator.newId());
+      PayOrder payOrder = buildPayOrder(params);
+      payOrder.setOrderId(orderId);
+      payOrder.setBizType(bizType);
+      payOrder.setBizId(bizId);
+      payOrder.setOrderNo("");
+      payOrder.setOrderTime(DateUtils.getTime());
+      payOrder.setPayResource("1"); // 支付宝直连
+      payOrder.setTransTypeCode("1019"); // 支付宝小程序
+      payOrder.setTransactionAmount(money);
+      payOrder.setOrderRemark(orderRemark);
+      payOrder.setOrderName(orderRemark);
+      payOrder.setOrderStatus(PayOrderStatusEnum.WAIT.getValue());
+      boolean ret = payOrderService.save(payOrder);
+
+      if (!ret) {
+        LogUtil.error(logger, "支付订单数据库保存失败.");
+        throw new ServiceException("支付订单保存失败");
+      }else {
+        return data;
+      }
+
+    }
+
+    //发起支付
+    payMap = createJSAPIOrderDougong(money, openId, clientType, appId, bizType, bizId, orderRemark);
+    JSONObject json = (JSONObject) JSON.toJSON(payMap);
+    LogUtil.info(logger, "jsapiOrder--result::{}", json);
+
+    return data;
+
+  }
+
+
+
+  /**
+   * 斗拱微信支付
+   * @param bizType
+   * @param bizId
+   * @param openId
+   * @param money
+   * @param orderRemark
+   * @param appSource
+   * @return
+   */
+  @Override
+  public JSONObject dgWxPay(BizTypeEnum bizType, String bizId, String openId, int money,
+                        String orderRemark, Integer appSource, String clientType) throws ServiceException{
+    JSONObject data = new JSONObject();
+
+    String appId = channelAppId;
+    String payShopNo = channelPayShopNo;
+    String paySign = channelPaySign;
+
+    AppSourceEnum appSourceEnum = AppSourceEnum.getByValue(appSource);
+    if (bizType == BizTypeEnum.TICKET_ORDER || bizType == BizTypeEnum.DELIVER_ORDER) {
+      appId = appSourceEnum.getAppId();
+      // 区分微信小程序
+      if (AppSourceEnum.MSDQ.equals(appSourceEnum)) {
+        payShopNo = msdqPayShopNo;
+        paySign = msdqPaySign;
+      } else {
+        payShopNo = userPayShopNo;
+        paySign = userPaySign;
+      }
+
+    }
+    JSONObject params = buildPayOrderReqData(payShopNo, paySign, money, openId, appId, orderRemark, PAY_RESOURCE, PAY_RESOURCE_TYPE);
+    //判断是否是0元订单
+    Map<String, String> payMap = Maps.newHashMap();
+    if(money == 0){//0元订单,直接返回,不需要进支付
+
+      PayOrder payOrder = buildPayOrder(params);
+      payOrder.setOrderId(String.valueOf(bizIdGenerator.newId()));
+      payOrder.setOrderNo("");
+      payOrder.setCode("");
+      payOrder.setBizType(bizType);
+      payOrder.setBizId(bizId);
+      payOrder.setOrderStatus("");
+      boolean ret = payOrderService.save(payOrder);
+
+      if (!ret) {
+        LogUtil.error(logger, "支付订单数据库保存失败.");
+        throw new ServiceException("支付订单保存失败");
+      }else {
+        return data;
+      }
+
+    }
+
+    //发起支付
+    payMap = createJSAPIOrderDougong(money, openId, clientType, appId, bizType, bizId, orderRemark);
+    JSONObject json = (JSONObject) JSON.toJSON(payMap);
+    LogUtil.info(logger, "jsapiOrder--result::{}", json);
+
+    return data;
+
+  }
+
+
+  /**
+   * 根据类型调用斗拱支付
+   * @param payAmt
+   * @param openId
+   * @param clientType
+   * @param appId
+   * @return
+   * @throws Exception
+   */
+  public Map<String, String> createJSAPIOrderDougong(int payAmt,String openId, String clientType,String appId, BizTypeEnum bizType, String bizId, String orderRemark) throws ServiceException {
+    String tradeType;
+    if(Constants.PAY_STYLE_WX.equals(clientType)){
+      tradeType = Constants.DOUGONG_TRADE_TYPE_MINIAPP;
+      String payStyle = Constants.PAY_STYLE_WXMINI_DOUGONG;
+      return wxCreateJSAPIOrderWxminiDougong(payAmt,openId,tradeType,payStyle,appId, bizType, bizId, orderRemark);
+    }else if(Constants.PAY_STYLE_ALI.equals(clientType)){
+      tradeType = Constants.DOUGONG_TRADE_TYPE_ALIJS;
+      String payStyle = Constants.PAY_STYLE_ALIMINI_DOUGONG;
+      return aliCreateJSAPIOrderMiniDougong(payAmt,openId,tradeType,payStyle, bizType, bizId, orderRemark);
+    }
+    return Maps.newHashMap();
+  }
+
+
+  /**
+   * 创建JSAPI微信小程序支付
+   * @param payAmt
+   * @param code
+   * @param tradeType
+   * @param payStyle
+   * @param wxAppId
+   * @return
+   * @throws Exception
+   */
+  @Transactional
+  public Map<String, String> wxCreateJSAPIOrderWxminiDougong(int payAmt,String code, String tradeType,String payStyle,String wxAppId, BizTypeEnum bizType, String bizId, String orderRemark) throws ServiceException {
+
+    String orderId = String.valueOf(bizIdGenerator.newId());
+
+    DougongPayRequestParam wxRequestParam = new DougongPayRequestParam();
+    wxRequestParam.setTradesOrderId(orderId);
+    wxRequestParam.setTotalFee(payAmt);
+    wxRequestParam.setTradeType(Constants.PAY_STYLE_WXMINI_DOUGONG);
+    wxRequestParam.setOpenid(code);
+    List<PaymentConfig> paymentConfigList = dougongPayApi.getAvailablePaymentConfigList();
+    PaymentConfig paymentConfig = CollectionUtil.isNotEmpty(paymentConfigList) ? RandomUtil.randomEle(paymentConfigList) : null;
+
+    if(StringUtils.isEmpty(wxAppId)){
+      wxAppId = Objects.nonNull(paymentConfig) ? paymentConfig.getAppletId() : "";
+    }else{
+      final String appId0 = wxAppId;
+      paymentConfig = CollectionUtil.isNotEmpty(paymentConfigList) ? paymentConfigList.stream().filter(p->appId0.equals(p.getAppletId())).findFirst().orElse(null) : null;
+      LogUtil.info(logger,"wxCreateJSAPIOrderWxminiDougong--appId:{}",wxAppId);
+    }
+
+    wxRequestParam.setAppid(Objects.nonNull(paymentConfig) ? paymentConfig.getAppletId() : "");
+    wxRequestParam.setPayStyle(payStyle);
+
+
+    //汇付,斗拱共用这个字段
+    String huifuPayId = orderId + "D" + KeyGenUtil.newKeyTimestamp();
+    wxRequestParam.setHuifuPayId(huifuPayId);
+
+    Map<String, String> payMap;
+    try {
+      wxRequestParam.setMchId("");
+      LogUtil.info(logger,"dougong pay order:{}",orderId);
+      payMap = dougongPayApi.unifiedOrderDougong(wxRequestParam,tradeType,paymentConfig);
+      String jsonData = payMap.get("payInfo");
+      LogUtil.info(logger,"jsonData:{}", jsonData);
+      JSONObject payInfoJson = JSONObject.parseObject(jsonData);
+      String packageStr = payInfoJson.getString("package");
+      LogUtil.info(logger,"packageStr-->{}", packageStr);
+      String appId = payInfoJson.getString("appId");
+      String signType = payInfoJson.getString("signType");
+      String nonceStr = payInfoJson.getString("nonceStr");
+      String paySign = payInfoJson.getString("paySign");
+      String timeStamp = payInfoJson.getString("timeStamp");
+      payMap.put("package", packageStr);
+      payMap.put("appId", appId);
+      payMap.put("signType", signType);
+      payMap.put("nonceStr", nonceStr);
+      payMap.put("paySign", paySign);
+      payMap.put("timeStamp", timeStamp);
+      String respCode = payMap.get("respCode");
+      LogUtil.info(logger,"success status:{}", Constants.DOUGONG_ORDER_SUCCESS_CODE.equals(respCode));
+
+      if (Constants.DOUGONG_ORDER_SUCCESS_CODE.equals(respCode)) {
+
+        //插入支付订单记录
+        PayOrder payOrder = new PayOrder();
+        payOrder.setOrderId(orderId);
+        payOrder.setBizType(bizType);
+        payOrder.setBizId(bizId);
+        payOrder.setOrderNo(huifuPayId);
+        payOrder.setOrderTime(DateUtils.getTime());
+        payOrder.setPayResource("2"); // 微信支付
+        payOrder.setTransTypeCode("1019"); // 微信小程序
+        payOrder.setTransactionAmount(payAmt);
+        payOrder.setOrderRemark(orderRemark);
+        payOrder.setOrderName(orderRemark);
+        payOrder.setOrderStatus(PayOrderStatusEnum.WAIT.getValue());
+        boolean ret = payOrderService.save(payOrder);
+
+        if (!ret) {
+          LogUtil.error(logger, "支付订单数据库保存失败.");
+          throw new ServiceException("支付订单保存失败");
+        }
+
+      } else {
+        payMap.put("respCode","");
+      }
+
+    } catch (Exception e) {
+      LogUtil.error(logger,"Exception", e);
+      throw new ServiceException("微信斗拱预生成订单失败");
+    }
+    return payMap;
+  }
+
+
+  /**
+   * 创建JSAPI支付宝小程序支付
+   * @param payAmt
+   * @param code
+   * @param tradeType
+   * @param payStyle
+   * @return
+   * @throws Exception
+   */
+  @Transactional
+  public Map<String, String> aliCreateJSAPIOrderMiniDougong(int payAmt,String code, String tradeType,String payStyle, BizTypeEnum bizType, String bizId, String orderRemark) throws ServiceException {
+
+    String orderId = String.valueOf(bizIdGenerator.newId());
+
+    DougongPayRequestParam dougongPayRequestParam = new DougongPayRequestParam();
+    dougongPayRequestParam.setTradesOrderId(orderId);
+    dougongPayRequestParam.setTotalFee(payAmt);
+    List<PaymentConfig> paymentConfigList = dougongPayApi.getAvailablePaymentConfigList();
+    PaymentConfig paymentConfig = CollectionUtil.isNotEmpty(paymentConfigList) ? RandomUtil.randomEle(paymentConfigList) : null;
+
+    dougongPayRequestParam.setAppid(Objects.nonNull(paymentConfig) ? paymentConfig.getAliPid() : "");
+    dougongPayRequestParam.setTradeType(Constants.PAY_STYLE_ALIMINI_DOUGONG);
+    dougongPayRequestParam.setOpenid(code);
+    String huifuPayId = orderId + "D" + KeyGenUtil.newKeyTimestamp();
+    dougongPayRequestParam.setHuifuPayId(huifuPayId);
+
+
+    Map<String, String> payMap = null;
+    try {
+      dougongPayRequestParam.setMchId("");
+      payMap = dougongPayApi.unifiedOrderDougong(dougongPayRequestParam,tradeType,paymentConfig);
+      LogUtil.info(logger,"dougong-ali-pay result:{}", payMap.toString());
+      String jsonData = payMap.get("payInfo");
+      String respCode = payMap.get("respCode");
+      if(JSONUtil.isTypeJSON(jsonData)){
+        JSONObject payInfoJson = JSONObject.parseObject(jsonData);
+        String packageStr = payInfoJson.getString("package");
+        LogUtil.info(logger,"packageStr-->{}", packageStr);
+        String tradeNO = payInfoJson.getString("tradeNO");
+        String memberId = payInfoJson.getString("memberId");
+        LogUtil.info(logger,"dougong-ali payinfo--tradeNo:{},memberId:{}",tradeNO,memberId);
+        payMap.put("tradeNO", tradeNO);
+        LogUtil.info(logger, "success status:{},respCode:{}", Constants.DOUGONG_ORDER_SUCCESS_CODE.equals(respCode),respCode);
+      }else{
+        payMap.put("payInfo",jsonData);
+      }
+
+      LogUtil.info(logger, "支付宝小程序斗拱支付--即将更新订单信息:tradesId:{},payStyle:{},huifuMemberId:{}",orderId, payStyle, huifuPayId);
+      //后跟51原始订单号,value为list,list的值为huifu_pay_id过期时间4小时
+
+    } catch (Exception e) {
+      LogUtil.error(logger,"Exception", e);
+      throw new ServiceException("斗拱-支付宝小程序预生成订单失败");
+    }
+    return payMap;
+  }
+
+
+
   @Override
   public boolean refund(String bizId, Integer refundAmount, String remark) {
     // 获取支付成功的订单号

+ 788 - 0
mp-service/src/main/resources/mapper/pay/PaymentConfigMapper.xml

@@ -0,0 +1,788 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.bluesx.erp.mapper.PaymentConfigMapper">
+  <resultMap id="BaseResultMap" type="com.bluesx.erp.entity.PaymentConfig">
+    <id column="id" jdbcType="VARCHAR" property="id" />
+    <result column="data_order" jdbcType="INTEGER" property="dataOrder" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="make_person" jdbcType="VARCHAR" property="makePerson" />
+    <result column="modifier" jdbcType="VARCHAR" property="modifier" />
+    <result column="modifier_time" jdbcType="TIMESTAMP" property="modifierTime" />
+    <result column="locked" jdbcType="INTEGER" property="locked" />
+    <result column="del_tag" jdbcType="INTEGER" property="delTag" />
+    <result column="check_tag" jdbcType="INTEGER" property="checkTag" />
+    <result column="check_status" jdbcType="VARCHAR" property="checkStatus" />
+    <result column="check_time" jdbcType="TIMESTAMP" property="checkTime" />
+    <result column="check_person" jdbcType="VARCHAR" property="checkPerson" />
+    <result column="print_tag" jdbcType="INTEGER" property="printTag" />
+    <result column="invalid_tag" jdbcType="INTEGER" property="invalidTag" />
+    <result column="menu_id" jdbcType="VARCHAR" property="menuId" />
+    <result column="menu_name" jdbcType="VARCHAR" property="menuName" />
+    <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+    <result column="merchant_id" jdbcType="VARCHAR" property="merchantId" />
+    <result column="app_id" jdbcType="VARCHAR" property="appId" />
+    <result column="member_id" jdbcType="VARCHAR" property="memberId" />
+    <result column="ali_pid" jdbcType="VARCHAR" property="aliPid" />
+    <result column="store_id" jdbcType="VARCHAR" property="storeId" />
+    <result column="agent_id" jdbcType="VARCHAR" property="agentId" />
+    <result column="agent_name" jdbcType="VARCHAR" property="agentName" />
+    <result column="store_type" jdbcType="INTEGER" property="storeType" />
+    <result column="payment_type" jdbcType="INTEGER" property="paymentType" />
+    <result column="merchant_code" jdbcType="VARCHAR" property="merchantCode" />
+    <result column="merchant_counter_code" jdbcType="VARCHAR" property="merchantCounterCode" />
+    <result column="the_branch_code" jdbcType="VARCHAR" property="theBranchCode" />
+    <result column="sys_id" jdbcType="VARCHAR" property="sysId" />
+    <result column="huifu_id" jdbcType="VARCHAR" property="huifuId" />
+    <result column="merchant_name" jdbcType="VARCHAR" property="merchantName" />
+    <result column="store_name" jdbcType="VARCHAR" property="storeName" />
+    <result column="available_tag" jdbcType="INTEGER" property="availableTag" />
+    <result column="private_key_dougong" jdbcType="VARCHAR" property="privateKeyDougong" />
+    <result column="public_key_huifu" jdbcType="VARCHAR" property="publicKeyHuifu" />
+    <result column="applet_id" jdbcType="VARCHAR" property="appletId" />
+    <result column="applet_secret" jdbcType="VARCHAR" property="appletSecret" />
+    <result column="wechat_secret" jdbcType="VARCHAR" property="wechatSecret" />
+    <result column="dougong_product_id" jdbcType="VARCHAR" property="dougongProductId" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    id, data_order, create_time, update_time, make_person, modifier, modifier_time, locked, 
+    del_tag, check_tag, check_status, check_time, check_person, print_tag, invalid_tag, 
+    menu_id, menu_name, remarks, merchant_id, app_id, member_id, ali_pid, store_id, agent_id, 
+    agent_name, store_type, payment_type, merchant_code, merchant_counter_code, the_branch_code, 
+    sys_id, huifu_id, merchant_name, store_name, available_tag, private_key_dougong, 
+    public_key_huifu, applet_id, applet_secret, wechat_secret, dougong_product_id
+  </sql>
+  <select id="selectByExample" parameterType="com.bluesx.erp.entity.PaymentConfigExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from mp_payment_config
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from mp_payment_config
+    where id = #{id,jdbcType=VARCHAR}
+  </select>
+
+  <select id="selectByHostName" parameterType="java.lang.String" resultType="string">
+    select
+    token
+    from mp_payment_config
+    where host_name LIKE CONCAT('%', #{hostName}, '%')
+  </select>
+
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    delete from mp_payment_config
+    where id = #{id,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.bluesx.erp.entity.PaymentConfigExample">
+    delete from mp_payment_config
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.bluesx.erp.entity.PaymentConfig">
+    insert into mp_payment_config (id, data_order, create_time, 
+      update_time, make_person, modifier, 
+      modifier_time, locked, del_tag, 
+      check_tag, check_status, check_time, 
+      check_person, print_tag, invalid_tag, 
+      menu_id, menu_name, remarks, 
+      merchant_id, app_id, member_id, 
+      ali_pid, store_id, agent_id, 
+      agent_name, store_type, payment_type, 
+      merchant_code, merchant_counter_code, the_branch_code, 
+      sys_id, huifu_id, merchant_name, 
+      store_name, available_tag, private_key_dougong, 
+      public_key_huifu, applet_id, applet_secret, 
+      wechat_secret, dougong_product_id)
+    values (#{id,jdbcType=VARCHAR}, #{dataOrder,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, 
+      #{updateTime,jdbcType=TIMESTAMP}, #{makePerson,jdbcType=VARCHAR}, #{modifier,jdbcType=VARCHAR}, 
+      #{modifierTime,jdbcType=TIMESTAMP}, #{locked,jdbcType=INTEGER}, #{delTag,jdbcType=INTEGER}, 
+      #{checkTag,jdbcType=INTEGER}, #{checkStatus,jdbcType=VARCHAR}, #{checkTime,jdbcType=TIMESTAMP}, 
+      #{checkPerson,jdbcType=VARCHAR}, #{printTag,jdbcType=INTEGER}, #{invalidTag,jdbcType=INTEGER}, 
+      #{menuId,jdbcType=VARCHAR}, #{menuName,jdbcType=VARCHAR}, #{remarks,jdbcType=VARCHAR}, 
+      #{merchantId,jdbcType=VARCHAR}, #{appId,jdbcType=VARCHAR}, #{memberId,jdbcType=VARCHAR}, 
+      #{aliPid,jdbcType=VARCHAR}, #{storeId,jdbcType=VARCHAR}, #{agentId,jdbcType=VARCHAR}, 
+      #{agentName,jdbcType=VARCHAR}, #{storeType,jdbcType=INTEGER}, #{paymentType,jdbcType=INTEGER}, 
+      #{merchantCode,jdbcType=VARCHAR}, #{merchantCounterCode,jdbcType=VARCHAR}, #{theBranchCode,jdbcType=VARCHAR}, 
+      #{sysId,jdbcType=VARCHAR}, #{huifuId,jdbcType=VARCHAR}, #{merchantName,jdbcType=VARCHAR}, 
+      #{storeName,jdbcType=VARCHAR}, #{availableTag,jdbcType=INTEGER}, #{privateKeyDougong,jdbcType=VARCHAR}, 
+      #{publicKeyHuifu,jdbcType=VARCHAR}, #{appletId,jdbcType=VARCHAR}, #{appletSecret,jdbcType=VARCHAR}, 
+      #{wechatSecret,jdbcType=VARCHAR}, #{dougongProductId,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.bluesx.erp.entity.PaymentConfig">
+    insert into mp_payment_config
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="dataOrder != null">
+        data_order,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+      <if test="updateTime != null">
+        update_time,
+      </if>
+      <if test="makePerson != null">
+        make_person,
+      </if>
+      <if test="modifier != null">
+        modifier,
+      </if>
+      <if test="modifierTime != null">
+        modifier_time,
+      </if>
+      <if test="locked != null">
+        locked,
+      </if>
+      <if test="delTag != null">
+        del_tag,
+      </if>
+      <if test="checkTag != null">
+        check_tag,
+      </if>
+      <if test="checkStatus != null">
+        check_status,
+      </if>
+      <if test="checkTime != null">
+        check_time,
+      </if>
+      <if test="checkPerson != null">
+        check_person,
+      </if>
+      <if test="printTag != null">
+        print_tag,
+      </if>
+      <if test="invalidTag != null">
+        invalid_tag,
+      </if>
+      <if test="menuId != null">
+        menu_id,
+      </if>
+      <if test="menuName != null">
+        menu_name,
+      </if>
+      <if test="remarks != null">
+        remarks,
+      </if>
+      <if test="merchantId != null">
+        merchant_id,
+      </if>
+      <if test="appId != null">
+        app_id,
+      </if>
+      <if test="memberId != null">
+        member_id,
+      </if>
+      <if test="aliPid != null">
+        ali_pid,
+      </if>
+      <if test="storeId != null">
+        store_id,
+      </if>
+      <if test="agentId != null">
+        agent_id,
+      </if>
+      <if test="agentName != null">
+        agent_name,
+      </if>
+      <if test="storeType != null">
+        store_type,
+      </if>
+      <if test="paymentType != null">
+        payment_type,
+      </if>
+      <if test="merchantCode != null">
+        merchant_code,
+      </if>
+      <if test="merchantCounterCode != null">
+        merchant_counter_code,
+      </if>
+      <if test="theBranchCode != null">
+        the_branch_code,
+      </if>
+      <if test="sysId != null">
+        sys_id,
+      </if>
+      <if test="huifuId != null">
+        huifu_id,
+      </if>
+      <if test="merchantName != null">
+        merchant_name,
+      </if>
+      <if test="storeName != null">
+        store_name,
+      </if>
+      <if test="availableTag != null">
+        available_tag,
+      </if>
+      <if test="privateKeyDougong != null">
+        private_key_dougong,
+      </if>
+      <if test="publicKeyHuifu != null">
+        public_key_huifu,
+      </if>
+      <if test="appletId != null">
+        applet_id,
+      </if>
+      <if test="appletSecret != null">
+        applet_secret,
+      </if>
+      <if test="wechatSecret != null">
+        wechat_secret,
+      </if>
+      <if test="dougongProductId != null">
+        dougong_product_id,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=VARCHAR},
+      </if>
+      <if test="dataOrder != null">
+        #{dataOrder,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateTime != null">
+        #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="makePerson != null">
+        #{makePerson,jdbcType=VARCHAR},
+      </if>
+      <if test="modifier != null">
+        #{modifier,jdbcType=VARCHAR},
+      </if>
+      <if test="modifierTime != null">
+        #{modifierTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="locked != null">
+        #{locked,jdbcType=INTEGER},
+      </if>
+      <if test="delTag != null">
+        #{delTag,jdbcType=INTEGER},
+      </if>
+      <if test="checkTag != null">
+        #{checkTag,jdbcType=INTEGER},
+      </if>
+      <if test="checkStatus != null">
+        #{checkStatus,jdbcType=VARCHAR},
+      </if>
+      <if test="checkTime != null">
+        #{checkTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="checkPerson != null">
+        #{checkPerson,jdbcType=VARCHAR},
+      </if>
+      <if test="printTag != null">
+        #{printTag,jdbcType=INTEGER},
+      </if>
+      <if test="invalidTag != null">
+        #{invalidTag,jdbcType=INTEGER},
+      </if>
+      <if test="menuId != null">
+        #{menuId,jdbcType=VARCHAR},
+      </if>
+      <if test="menuName != null">
+        #{menuName,jdbcType=VARCHAR},
+      </if>
+      <if test="remarks != null">
+        #{remarks,jdbcType=VARCHAR},
+      </if>
+      <if test="merchantId != null">
+        #{merchantId,jdbcType=VARCHAR},
+      </if>
+      <if test="appId != null">
+        #{appId,jdbcType=VARCHAR},
+      </if>
+      <if test="memberId != null">
+        #{memberId,jdbcType=VARCHAR},
+      </if>
+      <if test="aliPid != null">
+        #{aliPid,jdbcType=VARCHAR},
+      </if>
+      <if test="storeId != null">
+        #{storeId,jdbcType=VARCHAR},
+      </if>
+      <if test="agentId != null">
+        #{agentId,jdbcType=VARCHAR},
+      </if>
+      <if test="agentName != null">
+        #{agentName,jdbcType=VARCHAR},
+      </if>
+      <if test="storeType != null">
+        #{storeType,jdbcType=INTEGER},
+      </if>
+      <if test="paymentType != null">
+        #{paymentType,jdbcType=INTEGER},
+      </if>
+      <if test="merchantCode != null">
+        #{merchantCode,jdbcType=VARCHAR},
+      </if>
+      <if test="merchantCounterCode != null">
+        #{merchantCounterCode,jdbcType=VARCHAR},
+      </if>
+      <if test="theBranchCode != null">
+        #{theBranchCode,jdbcType=VARCHAR},
+      </if>
+      <if test="sysId != null">
+        #{sysId,jdbcType=VARCHAR},
+      </if>
+      <if test="huifuId != null">
+        #{huifuId,jdbcType=VARCHAR},
+      </if>
+      <if test="merchantName != null">
+        #{merchantName,jdbcType=VARCHAR},
+      </if>
+      <if test="storeName != null">
+        #{storeName,jdbcType=VARCHAR},
+      </if>
+      <if test="availableTag != null">
+        #{availableTag,jdbcType=INTEGER},
+      </if>
+      <if test="privateKeyDougong != null">
+        #{privateKeyDougong,jdbcType=VARCHAR},
+      </if>
+      <if test="publicKeyHuifu != null">
+        #{publicKeyHuifu,jdbcType=VARCHAR},
+      </if>
+      <if test="appletId != null">
+        #{appletId,jdbcType=VARCHAR},
+      </if>
+      <if test="appletSecret != null">
+        #{appletSecret,jdbcType=VARCHAR},
+      </if>
+      <if test="wechatSecret != null">
+        #{wechatSecret,jdbcType=VARCHAR},
+      </if>
+      <if test="dougongProductId != null">
+        #{dougongProductId,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.bluesx.erp.entity.PaymentConfigExample" resultType="java.lang.Long">
+    select count(*) from mp_payment_config
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update mp_payment_config
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=VARCHAR},
+      </if>
+      <if test="record.dataOrder != null">
+        data_order = #{record.dataOrder,jdbcType=INTEGER},
+      </if>
+      <if test="record.createTime != null">
+        create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.updateTime != null">
+        update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.makePerson != null">
+        make_person = #{record.makePerson,jdbcType=VARCHAR},
+      </if>
+      <if test="record.modifier != null">
+        modifier = #{record.modifier,jdbcType=VARCHAR},
+      </if>
+      <if test="record.modifierTime != null">
+        modifier_time = #{record.modifierTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.locked != null">
+        locked = #{record.locked,jdbcType=INTEGER},
+      </if>
+      <if test="record.delTag != null">
+        del_tag = #{record.delTag,jdbcType=INTEGER},
+      </if>
+      <if test="record.checkTag != null">
+        check_tag = #{record.checkTag,jdbcType=INTEGER},
+      </if>
+      <if test="record.checkStatus != null">
+        check_status = #{record.checkStatus,jdbcType=VARCHAR},
+      </if>
+      <if test="record.checkTime != null">
+        check_time = #{record.checkTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.checkPerson != null">
+        check_person = #{record.checkPerson,jdbcType=VARCHAR},
+      </if>
+      <if test="record.printTag != null">
+        print_tag = #{record.printTag,jdbcType=INTEGER},
+      </if>
+      <if test="record.invalidTag != null">
+        invalid_tag = #{record.invalidTag,jdbcType=INTEGER},
+      </if>
+      <if test="record.menuId != null">
+        menu_id = #{record.menuId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.menuName != null">
+        menu_name = #{record.menuName,jdbcType=VARCHAR},
+      </if>
+      <if test="record.remarks != null">
+        remarks = #{record.remarks,jdbcType=VARCHAR},
+      </if>
+      <if test="record.merchantId != null">
+        merchant_id = #{record.merchantId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.appId != null">
+        app_id = #{record.appId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.memberId != null">
+        member_id = #{record.memberId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.aliPid != null">
+        ali_pid = #{record.aliPid,jdbcType=VARCHAR},
+      </if>
+      <if test="record.storeId != null">
+        store_id = #{record.storeId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.agentId != null">
+        agent_id = #{record.agentId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.agentName != null">
+        agent_name = #{record.agentName,jdbcType=VARCHAR},
+      </if>
+      <if test="record.storeType != null">
+        store_type = #{record.storeType,jdbcType=INTEGER},
+      </if>
+      <if test="record.paymentType != null">
+        payment_type = #{record.paymentType,jdbcType=INTEGER},
+      </if>
+      <if test="record.merchantCode != null">
+        merchant_code = #{record.merchantCode,jdbcType=VARCHAR},
+      </if>
+      <if test="record.merchantCounterCode != null">
+        merchant_counter_code = #{record.merchantCounterCode,jdbcType=VARCHAR},
+      </if>
+      <if test="record.theBranchCode != null">
+        the_branch_code = #{record.theBranchCode,jdbcType=VARCHAR},
+      </if>
+      <if test="record.sysId != null">
+        sys_id = #{record.sysId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.huifuId != null">
+        huifu_id = #{record.huifuId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.merchantName != null">
+        merchant_name = #{record.merchantName,jdbcType=VARCHAR},
+      </if>
+      <if test="record.storeName != null">
+        store_name = #{record.storeName,jdbcType=VARCHAR},
+      </if>
+      <if test="record.availableTag != null">
+        available_tag = #{record.availableTag,jdbcType=INTEGER},
+      </if>
+      <if test="record.privateKeyDougong != null">
+        private_key_dougong = #{record.privateKeyDougong,jdbcType=VARCHAR},
+      </if>
+      <if test="record.publicKeyHuifu != null">
+        public_key_huifu = #{record.publicKeyHuifu,jdbcType=VARCHAR},
+      </if>
+      <if test="record.appletId != null">
+        applet_id = #{record.appletId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.appletSecret != null">
+        applet_secret = #{record.appletSecret,jdbcType=VARCHAR},
+      </if>
+      <if test="record.wechatSecret != null">
+        wechat_secret = #{record.wechatSecret,jdbcType=VARCHAR},
+      </if>
+      <if test="record.dougongProductId != null">
+        dougong_product_id = #{record.dougongProductId,jdbcType=VARCHAR},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update mp_payment_config
+    set id = #{record.id,jdbcType=VARCHAR},
+      data_order = #{record.dataOrder,jdbcType=INTEGER},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      make_person = #{record.makePerson,jdbcType=VARCHAR},
+      modifier = #{record.modifier,jdbcType=VARCHAR},
+      modifier_time = #{record.modifierTime,jdbcType=TIMESTAMP},
+      locked = #{record.locked,jdbcType=INTEGER},
+      del_tag = #{record.delTag,jdbcType=INTEGER},
+      check_tag = #{record.checkTag,jdbcType=INTEGER},
+      check_status = #{record.checkStatus,jdbcType=VARCHAR},
+      check_time = #{record.checkTime,jdbcType=TIMESTAMP},
+      check_person = #{record.checkPerson,jdbcType=VARCHAR},
+      print_tag = #{record.printTag,jdbcType=INTEGER},
+      invalid_tag = #{record.invalidTag,jdbcType=INTEGER},
+      menu_id = #{record.menuId,jdbcType=VARCHAR},
+      menu_name = #{record.menuName,jdbcType=VARCHAR},
+      remarks = #{record.remarks,jdbcType=VARCHAR},
+      merchant_id = #{record.merchantId,jdbcType=VARCHAR},
+      app_id = #{record.appId,jdbcType=VARCHAR},
+      member_id = #{record.memberId,jdbcType=VARCHAR},
+      ali_pid = #{record.aliPid,jdbcType=VARCHAR},
+      store_id = #{record.storeId,jdbcType=VARCHAR},
+      agent_id = #{record.agentId,jdbcType=VARCHAR},
+      agent_name = #{record.agentName,jdbcType=VARCHAR},
+      store_type = #{record.storeType,jdbcType=INTEGER},
+      payment_type = #{record.paymentType,jdbcType=INTEGER},
+      merchant_code = #{record.merchantCode,jdbcType=VARCHAR},
+      merchant_counter_code = #{record.merchantCounterCode,jdbcType=VARCHAR},
+      the_branch_code = #{record.theBranchCode,jdbcType=VARCHAR},
+      sys_id = #{record.sysId,jdbcType=VARCHAR},
+      huifu_id = #{record.huifuId,jdbcType=VARCHAR},
+      merchant_name = #{record.merchantName,jdbcType=VARCHAR},
+      store_name = #{record.storeName,jdbcType=VARCHAR},
+      available_tag = #{record.availableTag,jdbcType=INTEGER},
+      private_key_dougong = #{record.privateKeyDougong,jdbcType=VARCHAR},
+      public_key_huifu = #{record.publicKeyHuifu,jdbcType=VARCHAR},
+      applet_id = #{record.appletId,jdbcType=VARCHAR},
+      applet_secret = #{record.appletSecret,jdbcType=VARCHAR},
+      wechat_secret = #{record.wechatSecret,jdbcType=VARCHAR},
+      dougong_product_id = #{record.dougongProductId,jdbcType=VARCHAR}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.bluesx.erp.entity.PaymentConfig">
+    update mp_payment_config
+    <set>
+      <if test="dataOrder != null">
+        data_order = #{dataOrder,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateTime != null">
+        update_time = #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="makePerson != null">
+        make_person = #{makePerson,jdbcType=VARCHAR},
+      </if>
+      <if test="modifier != null">
+        modifier = #{modifier,jdbcType=VARCHAR},
+      </if>
+      <if test="modifierTime != null">
+        modifier_time = #{modifierTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="locked != null">
+        locked = #{locked,jdbcType=INTEGER},
+      </if>
+      <if test="delTag != null">
+        del_tag = #{delTag,jdbcType=INTEGER},
+      </if>
+      <if test="checkTag != null">
+        check_tag = #{checkTag,jdbcType=INTEGER},
+      </if>
+      <if test="checkStatus != null">
+        check_status = #{checkStatus,jdbcType=VARCHAR},
+      </if>
+      <if test="checkTime != null">
+        check_time = #{checkTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="checkPerson != null">
+        check_person = #{checkPerson,jdbcType=VARCHAR},
+      </if>
+      <if test="printTag != null">
+        print_tag = #{printTag,jdbcType=INTEGER},
+      </if>
+      <if test="invalidTag != null">
+        invalid_tag = #{invalidTag,jdbcType=INTEGER},
+      </if>
+      <if test="menuId != null">
+        menu_id = #{menuId,jdbcType=VARCHAR},
+      </if>
+      <if test="menuName != null">
+        menu_name = #{menuName,jdbcType=VARCHAR},
+      </if>
+      <if test="remarks != null">
+        remarks = #{remarks,jdbcType=VARCHAR},
+      </if>
+      <if test="merchantId != null">
+        merchant_id = #{merchantId,jdbcType=VARCHAR},
+      </if>
+      <if test="appId != null">
+        app_id = #{appId,jdbcType=VARCHAR},
+      </if>
+      <if test="memberId != null">
+        member_id = #{memberId,jdbcType=VARCHAR},
+      </if>
+      <if test="aliPid != null">
+        ali_pid = #{aliPid,jdbcType=VARCHAR},
+      </if>
+      <if test="storeId != null">
+        store_id = #{storeId,jdbcType=VARCHAR},
+      </if>
+      <if test="agentId != null">
+        agent_id = #{agentId,jdbcType=VARCHAR},
+      </if>
+      <if test="agentName != null">
+        agent_name = #{agentName,jdbcType=VARCHAR},
+      </if>
+      <if test="storeType != null">
+        store_type = #{storeType,jdbcType=INTEGER},
+      </if>
+      <if test="paymentType != null">
+        payment_type = #{paymentType,jdbcType=INTEGER},
+      </if>
+      <if test="merchantCode != null">
+        merchant_code = #{merchantCode,jdbcType=VARCHAR},
+      </if>
+      <if test="merchantCounterCode != null">
+        merchant_counter_code = #{merchantCounterCode,jdbcType=VARCHAR},
+      </if>
+      <if test="theBranchCode != null">
+        the_branch_code = #{theBranchCode,jdbcType=VARCHAR},
+      </if>
+      <if test="sysId != null">
+        sys_id = #{sysId,jdbcType=VARCHAR},
+      </if>
+      <if test="huifuId != null">
+        huifu_id = #{huifuId,jdbcType=VARCHAR},
+      </if>
+      <if test="merchantName != null">
+        merchant_name = #{merchantName,jdbcType=VARCHAR},
+      </if>
+      <if test="storeName != null">
+        store_name = #{storeName,jdbcType=VARCHAR},
+      </if>
+      <if test="availableTag != null">
+        available_tag = #{availableTag,jdbcType=INTEGER},
+      </if>
+      <if test="privateKeyDougong != null">
+        private_key_dougong = #{privateKeyDougong,jdbcType=VARCHAR},
+      </if>
+      <if test="publicKeyHuifu != null">
+        public_key_huifu = #{publicKeyHuifu,jdbcType=VARCHAR},
+      </if>
+      <if test="appletId != null">
+        applet_id = #{appletId,jdbcType=VARCHAR},
+      </if>
+      <if test="appletSecret != null">
+        applet_secret = #{appletSecret,jdbcType=VARCHAR},
+      </if>
+      <if test="wechatSecret != null">
+        wechat_secret = #{wechatSecret,jdbcType=VARCHAR},
+      </if>
+      <if test="dougongProductId != null">
+        dougong_product_id = #{dougongProductId,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.bluesx.erp.entity.PaymentConfig">
+    update mp_payment_config
+    set data_order = #{dataOrder,jdbcType=INTEGER},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      update_time = #{updateTime,jdbcType=TIMESTAMP},
+      make_person = #{makePerson,jdbcType=VARCHAR},
+      modifier = #{modifier,jdbcType=VARCHAR},
+      modifier_time = #{modifierTime,jdbcType=TIMESTAMP},
+      locked = #{locked,jdbcType=INTEGER},
+      del_tag = #{delTag,jdbcType=INTEGER},
+      check_tag = #{checkTag,jdbcType=INTEGER},
+      check_status = #{checkStatus,jdbcType=VARCHAR},
+      check_time = #{checkTime,jdbcType=TIMESTAMP},
+      check_person = #{checkPerson,jdbcType=VARCHAR},
+      print_tag = #{printTag,jdbcType=INTEGER},
+      invalid_tag = #{invalidTag,jdbcType=INTEGER},
+      menu_id = #{menuId,jdbcType=VARCHAR},
+      menu_name = #{menuName,jdbcType=VARCHAR},
+      remarks = #{remarks,jdbcType=VARCHAR},
+      merchant_id = #{merchantId,jdbcType=VARCHAR},
+      app_id = #{appId,jdbcType=VARCHAR},
+      member_id = #{memberId,jdbcType=VARCHAR},
+      ali_pid = #{aliPid,jdbcType=VARCHAR},
+      store_id = #{storeId,jdbcType=VARCHAR},
+      agent_id = #{agentId,jdbcType=VARCHAR},
+      agent_name = #{agentName,jdbcType=VARCHAR},
+      store_type = #{storeType,jdbcType=INTEGER},
+      payment_type = #{paymentType,jdbcType=INTEGER},
+      merchant_code = #{merchantCode,jdbcType=VARCHAR},
+      merchant_counter_code = #{merchantCounterCode,jdbcType=VARCHAR},
+      the_branch_code = #{theBranchCode,jdbcType=VARCHAR},
+      sys_id = #{sysId,jdbcType=VARCHAR},
+      huifu_id = #{huifuId,jdbcType=VARCHAR},
+      merchant_name = #{merchantName,jdbcType=VARCHAR},
+      store_name = #{storeName,jdbcType=VARCHAR},
+      available_tag = #{availableTag,jdbcType=INTEGER},
+      private_key_dougong = #{privateKeyDougong,jdbcType=VARCHAR},
+      public_key_huifu = #{publicKeyHuifu,jdbcType=VARCHAR},
+      applet_id = #{appletId,jdbcType=VARCHAR},
+      applet_secret = #{appletSecret,jdbcType=VARCHAR},
+      wechat_secret = #{wechatSecret,jdbcType=VARCHAR},
+      dougong_product_id = #{dougongProductId,jdbcType=VARCHAR}
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+</mapper>

+ 6 - 0
pom.xml

@@ -273,6 +273,12 @@
                 <version>${mp.version}</version>
             </dependency>
 
+            <dependency>
+                <groupId>cn.hutool</groupId>
+                <artifactId>hutool-all</artifactId>
+                <version>5.8.20</version>
+            </dependency>
+
         </dependencies>
     </dependencyManagement>