From 168d852672f8f671a01d6f0f053349d0d321ec7c Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 03 一月 2024 11:43:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java                            |  385 +++++++
 cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java                                               |   70 +
 cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth_info.html          |  283 +++++
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/TBankService.java                         |   17 
 cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java                            |    7 
 cloud-server-other/pom.xml                                                                                          |    2 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java                            |   38 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/OperatorAuthAlipay.java                     |  103 +
 cloud-server-activity/src/main/resources/sharding-jdbc.properties                                                   |    4 
 cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/Store.java                               |    5 
 cloud-server-other/src/main/resources/mapper/SiteMapper.xml                                                         |    3 
 cloud-server-other/src/main/java/com/dsh/other/mapper/SiteMapper.java                                               |    2 
 cloud-server-competition/src/main/resources/sharding-jdbc.properties                                                |    4 
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java                        |   36 
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java                  |    1 
 cloud-server-management/src/main/java/com/dsh/course/mapper/TOperatorAuthMapper.java                                |    3 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AliPayProperties.java                         |   38 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IOperatorAuthService.java                 |    3 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TStoredValueConfigController.java |    1 
 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java                        |    3 
 cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java                 |   25 
 cloud-server-competition/src/main/java/com/dsh/competition/feignclient/other/StoreClient.java                       |    7 
 cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java                                           |   63 +
 cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java                             |    4 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java       |    1 
 cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java                                    |   32 
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java                 |   29 
 cloud-server-management/src/main/java/com/dsh/course/mapper/BankMapper.java                                         |    9 
 cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java                                   |    5 
 cloud-server-account/src/main/java/com/dsh/account/feignclient/other/StoreClient.java                               |    7 
 cloud-server-course/src/main/java/com/dsh/course/feignclient/other/model/Store.java                                 |    4 
 cloud-server-course/pom.xml                                                                                         |    2 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/BankServiceImpl.java                 |   12 
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java                            |    5 
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java                     |    8 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportion.html                   |   10 
 cloud-server-course/src/main/java/com/dsh/course/util/PayMoneyUtil.java                                             |   64 +
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/SaticScheduleTask.java                        |  315 +++--
 cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java                                       |   13 
 cloud-server-account/src/main/resources/sharding-jdbc.properties                                                    |    4 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java           |  491 +++++---
 cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java                          |   10 
 cloud-server-course/src/main/resources/sharding-jdbc.properties                                                     |    4 
 cloud-server-management/src/main/resources/mapper/BankMapper.xml                                                    |    5 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html                          |   11 
 cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java                                   |   68 +
 cloud-server-competition/pom.xml                                                                                    |    3 
 cloud-server-other/src/main/java/com/dsh/other/service/ISiteService.java                                            |    2 
 cloud-server-course/src/main/java/com/dsh/course/feignclient/other/StoreClient.java                                 |    6 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AliPayMsgConfig.java                          |   90 +
 cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js                                  |   16 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java       |   11 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html               |  346 ++----
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java                            |   21 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorAuthServiceImpl.java        |    3 
 cloud-server-management/src/main/resources/mapper/TOperatorMapper.xml                                               |    3 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java                     |   10 
 cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js                          |  325 +++---
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorUserServiceImpl.java        |   47 
 cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java                    |    2 
 60 files changed, 2,245 insertions(+), 856 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/StoreClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/StoreClient.java
index 081a5d7..e3bb3b9 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/StoreClient.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/StoreClient.java
@@ -13,10 +13,15 @@
 @FeignClient(value = "mb-cloud-other")
 public interface StoreClient {
 
+    /**
+     * 根据运营商id获取对应运营商商户号
+     * @return
+     */
+    @PostMapping("/base/getSMIDByOperatorId")
+    String getSMIDByOperatorId(Integer id);
 
     @PostMapping("/store/queryByStoreId")
     OperatorUser queryByStoreId(Integer storeId);
-
 
     /**
      * 获取门店列表
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/Store.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/Store.java
index cc1aa66..95cb58e 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/Store.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/Store.java
@@ -87,4 +87,9 @@
      * 状态(1=正常,2=冻结,3=删除)
      */
     private Integer state;
+    /**
+     * 运营商id
+     */
+    private Integer operatorId;
+
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
index 39e2c5b..ca8c34c 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
@@ -288,9 +288,9 @@
         return ResultUtil.success();
     }
 
-
+    private String smid = "2088330203191220";//平台支付宝商户号
     private ResultUtil AlipayPayment(String code, BigDecimal amount) {
-        ResultUtil alipay = payMoneyUtil.alipay("玩湃币充值", "玩湃币充值", "", code, amount.toString(),
+        ResultUtil alipay = payMoneyUtil.alipay(smid,"玩湃币充值", "玩湃币充值", "", code, amount.toString(),
                 "/base/recharge/alipayRechargeCallback");
         if (alipay.getCode() == 200) {
             new Thread(new Runnable() {
@@ -328,8 +328,14 @@
                                 if ("TRADE_CLOSED".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus) || num == 10) {
                                     records.setState(3);
                                     rereMapper.deleteById(records.getId());
+                                    if ("TRADE_FINISHED".equals(tradeStatus)) {
+                                        // todo 资金结算
+                                        payMoneyUtil.confirm(smid,code,tradeNo,amount.toString());
+                                        break;
+                                    }
                                     break;
                                 }
+
                                 if ("TRADE_SUCCESS".equals(tradeStatus)) {
                                     records.setAppUserId(null);
                                     records.setPayStatus(2);
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
index 5043af1..979be10 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -1369,7 +1369,7 @@
                 return ResultUtil.success(returnId);
             }
             //积分+现金
-            if(coupon.getRedemptionMethod() == 1){
+            if(coupon.getRedemptionMethod() == 2){
                 userCouponPaymentClient.addUserCouponPayment(userCouponPayment);
                 try {
                     if(exchangeType.getPayType() == 1){
@@ -1707,11 +1707,12 @@
      * @return
      * @throws Exception
      */
+    private String smid = "2088330203191220";//平台支付宝商户号
     public ResultUtil aliPaymentCoupon(String body, UserCouponPayment userCouponPayment) throws Exception {
         String code = userCouponPayment.getCode();
         Double cash = userCouponPayment.getCash();
 
-        ResultUtil alipay = payMoneyUtil.alipay(body, body, "", code, cash.toString(), "/base/coupon/aliPaymentCouponCallback");
+        ResultUtil alipay = payMoneyUtil.alipay(smid, body, "",String.valueOf(userCouponPayment.getId()), code, cash.toString(), "/base/coupon/aliPaymentCouponCallback");
         if (alipay.getCode() == 200) {
             new Thread(new Runnable() {
                 @Override
@@ -1744,6 +1745,10 @@
                                     //有待支付的订单,这里不处理
                                     userCouponPayment1.setStatus(-1);
                                     userCouponPaymentClient.updateUserCouponPayment(userCouponPayment1);
+                                    if ("TRADE_FINISHED".equals(s)) {
+                                        // todo 资金结算
+
+                                    }
                                     break;
                                 }
                                 if ("TRADE_SUCCESS".equals(s)) {
@@ -1751,22 +1756,23 @@
                                     userCouponPayment1.setPaymentTime(new Date());
                                     userCouponPayment1.setOrderNumber(tradeNo);
                                     userCouponPaymentClient.updateUserCouponPayment(userCouponPayment1);
-
                                     UserCoupon userCoupon = new UserCoupon();
                                     userCoupon.setCouponId(userCouponPayment1.getCouponId());
                                     userCoupon.setUserId(userCouponPayment1.getUserId());
                                     userCoupon.setStatus(1);
                                     userCoupon.setInsertTime(new Date());
                                     userConponClient.insertToAppuserCoupon(userCoupon);
-
                                     if(null != userCouponPayment1.getIntegral() && 0 != userCouponPayment1.getIntegral()){
                                         //扣积分
                                         TAppUser user = appUserService.getById(userCouponPayment1.getUserId());
                                         user.setIntegral(user.getIntegral() - userCouponPayment1.getIntegral().intValue());
                                         appUserService.updateById(user);
                                     }
+                                    payMoneyUtil.confirm(smid,code,tradeNo,cash.toString());
                                     break;
+
                                 }
+
                                 if ("WAIT_BUYER_PAY".equals(s)) {
                                     num++;
                                 }
@@ -1838,7 +1844,7 @@
     }
 
     private ResultUtil AlipayPayment(BigDecimal cash, String code, Long returnId) {
-        ResultUtil alipay = payMoneyUtil.alipay("优惠卷", "优惠卷", String.valueOf(returnId), code, cash.toString(),
+        ResultUtil alipay = payMoneyUtil.alipay(smid,"优惠卷", "优惠卷", String.valueOf(returnId), code, cash.toString(),
                 "/base/pointMer/exchangeGoodPaymentAliCallback");
         if (alipay.getCode() == 200) {
             new Thread(new Runnable() {
@@ -1886,6 +1892,11 @@
                                     moneyOut(tradeNo, tradeNo);
                                     break;
                                 }
+                                if ("TRADE_FINISHED".equals(tradeStatus)) {
+                                    // todo 资金结算
+                                    payMoneyUtil.confirm(smid,code,tradeNo,cash.toString());
+                                    break;
+                                }
 //                                if("REFUND".equals(tradeStatus) || "NOTPAY".equals(tradeStatus) || "CLOSED".equals(tradeStatus) || "REVOKED".equals(tradeStatus) || "PAYERROR".equals(tradeStatus) || num == 10){
 //                                    mcClient.deletePaymentRecord(code);
 //                                    break;
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
index f0f8c64..6fabab4 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
@@ -104,6 +104,8 @@
     @Resource
     private ParticipantClient participantClient;
 
+    @Autowired
+    private CoursePackageClient coursePackageClient;
 
     @Autowired
     private PayMoneyUtil payMoneyUtil;
@@ -474,9 +476,24 @@
         }
         return weixinpay;
     }
-
+    private String smid = "2088330203191220";//平台支付宝商户号
     public ResultUtil AlipayPayment(String code, BigDecimal amount, Integer hour) {
-        ResultUtil alipay = payMoneyUtil.alipay("课包续费", "课包续费", "", code, amount.toString(),
+        TCoursePackagePayment coursePackagePayment = couPayClient.getCoursePackagePaymentByCode(code);
+        Integer coursePackageId = coursePackagePayment.getCoursePackageId();
+        // 判断这个课包是属于哪个运营商的
+        CoursePackage coursePackage = coursePackageClient.queryCoursePackageById(coursePackageId);
+        Integer storeId = coursePackage.getStoreId();
+        Store store = storeClient.queryStoreById(storeId);
+        String smid1= "";
+        if (store.getOperatorId()==null){
+            // 平台
+            smid1 = smid;
+        }else{
+            String smidByOperatorId = storeClient.getSMIDByOperatorId(store.getOperatorId());
+            smid1 = smidByOperatorId;
+        }
+
+        ResultUtil alipay = payMoneyUtil.alipay(smid1,"课包续费", "课包续费", "", code, amount.toString(),
                 "/base/coursePackage/alipayPaymentCallback");
         if (alipay.getCode() == 200) {
             new Thread(new Runnable() {
@@ -494,7 +511,6 @@
                                 break;
                             }
                             AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code);
-
                             if (resultUtil.getCode().equals("10000") && coursePackagePayment.getPayStatus() == 1) {
                                 /**
                                  * WAIT_BUYER_PAY(交易创建,等待买家付款)、
@@ -519,8 +535,20 @@
                                     coursePackagePayment.setLaveClassHours(hour);
                                     coursePackagePayment.setOrderNumber(tradeNo);
                                     couPayClient.updatePaymentCoursePackage(coursePackagePayment);
-
-
+                                    Integer coursePackageId = coursePackagePayment.getCoursePackageId();
+                                    // 判断这个课包是属于哪个运营商的
+                                    CoursePackage coursePackage = coursePackageClient.queryCoursePackageById(coursePackageId);
+                                    Integer storeId = coursePackage.getStoreId();
+                                    Store store = storeClient.queryStoreById(storeId);
+                                    String smid1= "";
+                                    if (store.getOperatorId()==null){
+                                        // 平台
+                                        smid1 = smid;
+                                    }else{
+                                        String smidByOperatorId = storeClient.getSMIDByOperatorId(store.getOperatorId());
+                                        smid1 = smidByOperatorId;
+                                    }
+                                    payMoneyUtil.confirm(smid1,code,tradeNo,amount.toString());
                                     break;
                                 }
                                 if ("WAIT_BUYER_PAY".equals(tradeStatus)) {
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
index f74c4f8..e8b4200 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
@@ -169,9 +169,14 @@
      * @return
      * @throws Exception
      */
+    private String smid = "2088330203191220";//平台支付宝商户号
     public ResultUtil alipay(VipPayment vipPayment) throws Exception {
         String code = vipPayment.getCode();
-        ResultUtil alipay = payMoneyUtil.alipay("购买年度会员", "购买年度会员", vipPayment.getAppUserId() + "", code, vipPayment.getAmount().toString(),
+        String amount = vipPayment.getAmount().toString();
+        ResultUtil alipay = payMoneyUtil.alipay
+                (smid,"购买年度会员", "购买年度会员",
+                        vipPayment.getAppUserId() + "",
+                        code, vipPayment.getAmount().toString(),
                 "/base/appUser/addVipPaymentAliCallback");
         if (alipay.getCode() == 200) {
             new Thread(new Runnable() {
@@ -204,6 +209,7 @@
                                 if ("TRADE_CLOSED".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus)) {
                                     vipPayment1.setState(3);
                                     VipPaymentServiceImpl.this.updateById(vipPayment1);
+
                                     return;
                                 }
                                 if ("TRADE_SUCCESS".equals(tradeStatus)) {
@@ -226,6 +232,8 @@
                                     // 注册会员送券 先判断是否有注册送券类型的优惠券 判断优惠券状态 审核是否通过 是否删除 是否在有效期内 是否领取数量达上限
                                     List<Long> longs = userConponClient.queryCouponByUser(appUser.getId());
                                     redisUtil.setStrValue("VIP_P_" + vipPayment1.getAppUserId(), JSON.toJSONString(longs), 3600);
+                                    // 如果交易结束 将当前订单金额分配到商户
+                                    payMoneyUtil.confirm(smid,vipPayment.getCode(),tradeNo,amount);
                                     return;
                                 }
                                 if ("WAIT_BUYER_PAY".equals(tradeStatus)) {
diff --git a/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java b/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
index 1133e92..045db5c 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
@@ -71,6 +71,7 @@
     private String appid = "";//微信appid
 
     private String appletsAppid = "";//微信小程序appid
+    private String smid = "2088330203191220";//平台支付宝商户号
 
     private String mchId = "";//微信商户号
 
@@ -90,7 +91,7 @@
     /**
      * 支付宝支付
      */
-    public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
+    public ResultUtil  alipay(String smid,String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
 //        //构造client
 //        CertAlipayRequest certAlipayRequest = new CertAlipayRequest ();
 //        //设置网关地址
@@ -142,7 +143,6 @@
 //            e.printStackTrace();
 //        }
 
-
         //实例化客户端
         AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2");
         //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
@@ -156,8 +156,21 @@
         model.setTotalAmount(amount);//付款金额
         model.setProductCode("QUICK_MSECURITY_PAY");
         model.setPassbackParams(passbackParams);//自定义参数
-
-
+        SettleInfo settleInfo = new SettleInfo();
+        settleInfo.setSettlePeriodTime("3d");
+        SettleDetailInfo settleDetailInfo = new SettleDetailInfo();
+        settleDetailInfo.setTransInType("defaultSettle");
+        settleDetailInfo.setAmount(amount);
+        List<SettleDetailInfo> settleDetailInfos = new ArrayList<>();
+        settleDetailInfos.add(settleDetailInfo);
+        settleInfo.setSettleDetailInfos(settleDetailInfos);
+        model.setSettleInfo(settleInfo);
+        SubMerchant subMerchant = new SubMerchant();
+        subMerchant.setMerchantId(smid);
+        model.setSubMerchant(subMerchant);
+        ExtendParams extendParams = new ExtendParams();
+        extendParams.setRoyaltyFreeze("true");// 冻结资金 用于后续分账处理
+        model.setExtendParams(extendParams);
         //分账
 //        Integer    coursePackagePayments = coursePackageClient.queryByCode(outTradeNo);
 //        Integer paymentCompetitions = competitionsClient.queryByCode(outTradeNo);
@@ -245,7 +258,47 @@
         System.err.print(alipay_trade_precreate_response.getString("qr_code"));
         return ResultUtil.success(alipay_trade_precreate_response.getString("qr_code"));
     }
-
+    // 直付通模式 alipay.trade.settle.confirm(统一收单确认结算接口)
+    public ResultUtil confirm(String smid1,String code, String outTradeNo, String amount) {
+        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
+                aliAppid,
+                appPrivateKey,
+                "json",
+                "GBK",
+                alipay_public_key,
+                "RSA2");
+        AlipayTradeSettleConfirmRequest request = new AlipayTradeSettleConfirmRequest();
+        request.setBizContent("{" +
+                "  \"out_request_no\":\""+code+"\"," +
+                "  \"trade_no\":\""+outTradeNo+"\"," +
+                "  \"settle_info\":{" +
+                "    \"settle_detail_infos\":[" +
+                "      {" +
+                "        \"trans_in_type\":\"defaultSettle\"," +
+                "        \"settle_entity_id\":\""+smid1+"\"," +
+                "        \"settle_entity_type\":\"SecondMerchant\"," +
+                "        \"amount\":"+amount+"," +
+                "      }" +
+                "    ]" +
+                "  }," +
+                "  \"extend_params\":{" +
+                "    \"royalty_freeze\":\"false\"" +
+                "  }" +
+                "}");
+        AlipayTradeSettleConfirmResponse response = null;
+        try {
+            response = alipayClient.execute(request);
+        } catch (AlipayApiException e) {
+            e.printStackTrace();
+        }
+        if(response.isSuccess()){
+            System.out.println("调用成功");
+            return ResultUtil.success();
+        } else {
+            System.out.println("调用失败");
+            return ResultUtil.error("出现问题啦");
+        }
+    }
 
     /**
      * 支付成功后的回调处理逻辑
diff --git a/cloud-server-account/src/main/resources/sharding-jdbc.properties b/cloud-server-account/src/main/resources/sharding-jdbc.properties
index 5c8b0e0..920a1eb 100644
--- a/cloud-server-account/src/main/resources/sharding-jdbc.properties
+++ b/cloud-server-account/src/main/resources/sharding-jdbc.properties
@@ -14,9 +14,9 @@
 datasource.names=master0
 datasource.master0.type=com.alibaba.druid.pool.DruidDataSource
 datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver
-datasource.master0.url=jdbc:mysql://127.0.0.1:3306/playpai_account?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
+datasource.master0.url=jdbc:mysql://192.168.110.110/playpai_account?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
 datasource.master0.username=root
-datasource.master0.password=playpai2023!
+datasource.master0.password=123456
 datasource.master0.maxActive=20
 datasource.master0.maxWait=60000
 datasource.master0.minIdle=5
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
index 7709f2d..a276027 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -926,14 +926,11 @@
                         String endDate = dateFormat.format(end);
                         detailsResponse.setStartTime(startDate);
                         detailsResponse.setEndTime(startDate);
-
                         Date now = new Date();
                         Calendar cal1 = Calendar.getInstance();
                         cal1.setTime(pointsMerchandise.getInsertTime());
-
                         Calendar cal2 = Calendar.getInstance();
                         cal2.setTime(now);
-
                         // Compare the year, month, and day of the two Calendar instances
                         boolean isSameDate = cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) &&
                                 cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH) &&
diff --git a/cloud-server-activity/src/main/resources/sharding-jdbc.properties b/cloud-server-activity/src/main/resources/sharding-jdbc.properties
index 7f8645e..2a2b63f 100644
--- a/cloud-server-activity/src/main/resources/sharding-jdbc.properties
+++ b/cloud-server-activity/src/main/resources/sharding-jdbc.properties
@@ -14,9 +14,9 @@
 datasource.names=master0
 datasource.master0.type=com.alibaba.druid.pool.DruidDataSource
 datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver
-datasource.master0.url=jdbc:mysql://127.0.0.1:3306/playpai_activity?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
+datasource.master0.url=jdbc:mysql://192.168.110.110/playpai_activity?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
 datasource.master0.username=root
-datasource.master0.password=playpai2023!
+datasource.master0.password=123456
 datasource.master0.maxActive=20
 datasource.master0.maxWait=60000
 datasource.master0.minIdle=5
diff --git a/cloud-server-competition/pom.xml b/cloud-server-competition/pom.xml
index 81dc2e7..14a4946 100644
--- a/cloud-server-competition/pom.xml
+++ b/cloud-server-competition/pom.xml
@@ -89,10 +89,11 @@
             <artifactId>dom4j</artifactId>
             <version>1.6.1</version>
         </dependency>
+
         <dependency>
             <groupId>com.alipay.sdk</groupId>
             <artifactId>alipay-sdk-java</artifactId>
-            <version>4.8.10.ALL</version>
+            <version>4.38.10.ALL</version>
         </dependency>
     </dependencies>
 
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
index 21c51fa..1ad835f 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
@@ -755,9 +755,7 @@
                     String refund_id = map.get("refund_id");
                     paymentCompetition.setRefundOrderNo(refund_id);
                     paymentCompetitionService.updateById(paymentCompetition);
-
                     storeClient.addBackRecord(paymentCompetition.getAmount() + "_" + paymentCompetition.getAppUserId());
-
 
                 }
                 if (paymentCompetition.getPayType() == 2) {//支付宝支付
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/other/StoreClient.java b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/other/StoreClient.java
index 91719ff..9e9a07d 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/other/StoreClient.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/other/StoreClient.java
@@ -13,7 +13,12 @@
  */
 @FeignClient("mb-cloud-other")
 public interface StoreClient {
-
+    /**
+     * 根据运营商id获取对应运营商商户号
+     * @return
+     */
+    @PostMapping("/base/getSMIDByOperatorId")
+    String getSMIDByOperatorId(Integer id);
 
     /**
      * 根据名称模糊搜索门店
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java
index b1d0666..06518cc 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java
@@ -85,7 +85,7 @@
     private String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAouYvZ1v4RiydwNOnGcU0Hb4hQu0x6XUooaE2Bi6/atNOobtFdunnATGP6OMOW7yF9DpP8qH5mbFXAiaQD721y/7qlayI50UcV4mngRU4ZcaAVE3bp721Eg2H85RISa+Tb1CiOh+pc9p4l5UBseKsvB2ruHHForfZDPI8FL7AVUKBYCQPsa4zL6KAO2C6KULaTg/lCa+bYQKU0n9ca569VtdsqJUyxB9eSZjVd+9nKl62FLqp2NELGj7cXqiVBgDnBnVS5ZUO3mrBM5z/AxQbw3RwE3JqdkhzUA1BFjejAlT2zIGNOjUFagF8ao0wGElYfuk0bum6Hz5qWAt02QdNNwIDAQAB";//支付宝应用公钥
 
     private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥
-
+    private String smid = "2088330203191220";//平台支付宝商户号
 
     /**
      * 获取赛事列表
@@ -300,7 +300,16 @@
         }
 
         if (paymentCompetitionVo.getPayType() == 2) {//支付宝
-            return aliPaymentCompetition(code, money);
+            // 判断当前赛事属于哪个运营商
+            Competition byId = competitionService.getById(paymentCompetitionVo.getId());
+            Integer operatorId = byId.getOperatorId();
+            if (operatorId == null ){
+                // 说明是平台
+                return aliPaymentCompetition(smid,code, money);
+            }
+            // 获取该运营商的商户号
+            String smid = storeClient.getSMIDByOperatorId(operatorId);
+            return aliPaymentCompetition(smid,code, money);
         }
         if (paymentCompetitionVo.getPayType() == 3) {//玩湃币
             appUser.setPlayPaiCoins(appUser.getPlayPaiCoins() - money.intValue());
@@ -418,8 +427,9 @@
      * @return
      * @throws Exception
      */
-    public ResultUtil aliPaymentCompetition(String code, BigDecimal money) throws Exception {
-        ResultUtil alipay = payMoneyUtil.alipay("报名赛事", "", "", code, money.toString(), "/base/competition/aliPaymentCompetitionCallback");
+    public ResultUtil aliPaymentCompetition(String smid,String code, BigDecimal money) throws Exception {
+        ResultUtil alipay = payMoneyUtil.alipay
+                (smid,"报名赛事", "", "", code, money.toString(), "/base/competition/aliPaymentCompetitionCallback");
         if (alipay.getCode() == 200) {
             new Thread(new Runnable() {
                 @Override
@@ -453,6 +463,7 @@
                                     paymentCompetition.setAppUserId(null);
                                     paymentCompetition.setState(3);
                                     userCompetitionService.remove(new QueryWrapper<UserCompetition>().eq("paymentCompetitionId", paymentCompetition.getId()));
+
                                     break;
                                 }
                                 if ("TRADE_SUCCESS".equals(s)) {
@@ -461,12 +472,10 @@
                                     paymentCompetition.setPayTime(new Date());
                                     paymentCompetition.setPayOrderNo(tradeNo);
                                     paymentCompetitionService.updateById(paymentCompetition);
-
+                                    // 结算资金到商户账号
+                                    payMoneyUtil.confirm(smid,code,tradeNo,money.toString());
                                     //分账
-
-
 //                                    moneyOut(tradeNo, tradeNo,code);
-
                                     break;
                                 }
                                 if ("WAIT_BUYER_PAY".equals(s)) {
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java b/cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java
index e85dd04..3c5e8eb 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java
@@ -6,7 +6,7 @@
 import com.alipay.api.AlipayClient;
 import com.alipay.api.CertAlipayRequest;
 import com.alipay.api.DefaultAlipayClient;
-import com.alipay.api.domain.AlipayTradeAppPayModel;
+import com.alipay.api.domain.*;
 import com.alipay.api.request.*;
 import com.alipay.api.response.*;
 import com.dsh.competition.util.httpClinet.HttpClientUtil;
@@ -71,7 +71,7 @@
     /**
      * 支付宝支付
      */
-    public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
+    public ResultUtil alipay(String smid,String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
 //        //构造client
 //        CertAlipayRequest certAlipayRequest = new CertAlipayRequest ();
 //        //设置网关地址
@@ -137,8 +137,24 @@
         model.setTotalAmount(amount);//付款金额
         model.setProductCode("QUICK_MSECURITY_PAY");
         model.setPassbackParams(passbackParams);//自定义参数
+        SettleInfo settleInfo = new SettleInfo();
+        settleInfo.setSettlePeriodTime("3d");
+        SettleDetailInfo settleDetailInfo = new SettleDetailInfo();
+        settleDetailInfo.setTransInType("defaultSettle");
+        settleDetailInfo.setAmount(amount);
+        List<SettleDetailInfo> settleDetailInfos = new ArrayList<>();
+        settleDetailInfos.add(settleDetailInfo);
+        settleInfo.setSettleDetailInfos(settleDetailInfos);
+        model.setSettleInfo(settleInfo);
+        SubMerchant subMerchant = new SubMerchant();
+        subMerchant.setMerchantId(smid);
+        model.setSubMerchant(subMerchant);
+        ExtendParams extendParams = new ExtendParams();
+        extendParams.setRoyaltyFreeze("true");// 冻结资金 用于后续分账处理
+        model.setExtendParams(extendParams);
         request.setBizModel(model);
         request.setNotifyUrl(callbackPath + notifyUrl);
+
         try {
             //这里和普通的接口调用不同,使用的是sdkExecute
             AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
@@ -273,6 +289,54 @@
         }
     }
 
+    /**
+     * 统一确认结算接口
+     * @param smid
+     * @param code
+     * @param outTradeNo
+     * @param amount
+     * @return
+     */
+    public ResultUtil confirm(String smid,String code, String outTradeNo, String amount) {
+        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
+                aliAppid,
+                appPrivateKey,
+                "json",
+                "GBK",
+                alipay_public_key,
+                "RSA2");
+        AlipayTradeSettleConfirmRequest request = new AlipayTradeSettleConfirmRequest();
+        request.setBizContent("{" +
+                "  \"out_request_no\":\""+code+"\"," +
+                "  \"trade_no\":\""+outTradeNo+"\"," +
+                "  \"settle_info\":{" +
+                "    \"settle_detail_infos\":[" +
+                "      {" +
+                "        \"trans_in_type\":\"defaultSettle\"," +
+                "        \"settle_entity_id\":\""+smid+"\"," +
+                "        \"settle_entity_type\":\"SecondMerchant\"," +
+                "        \"amount\":"+amount+"," +
+                "      }" +
+                "    ]" +
+                "  }," +
+                "  \"extend_params\":{" +
+                "    \"royalty_freeze\":\"false\"" +
+                "  }" +
+                "}");
+        AlipayTradeSettleConfirmResponse response = null;
+        try {
+            response = alipayClient.execute(request);
+        } catch (AlipayApiException e) {
+            e.printStackTrace();
+        }
+        if(response.isSuccess()){
+            System.out.println("调用成功");
+            return ResultUtil.success();
+        } else {
+            System.out.println("调用失败");
+            return ResultUtil.error("出现问题啦");
+        }
+    }
 
     /**
      * 微信统一下单
diff --git a/cloud-server-competition/src/main/resources/sharding-jdbc.properties b/cloud-server-competition/src/main/resources/sharding-jdbc.properties
index ae42f8b..d16fa36 100644
--- a/cloud-server-competition/src/main/resources/sharding-jdbc.properties
+++ b/cloud-server-competition/src/main/resources/sharding-jdbc.properties
@@ -14,9 +14,9 @@
 datasource.names=master0
 datasource.master0.type=com.alibaba.druid.pool.DruidDataSource
 datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver
-datasource.master0.url=jdbc:mysql://127.0.0.1:3306/playpai_competition?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
+datasource.master0.url=jdbc:mysql://192.168.110.110/playpai_competition?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
 datasource.master0.username=root
-datasource.master0.password=playpai2023!
+datasource.master0.password=123456
 datasource.master0.maxActive=20
 datasource.master0.maxWait=60000
 datasource.master0.minIdle=5
diff --git a/cloud-server-course/pom.xml b/cloud-server-course/pom.xml
index 518fb93..f84b131 100644
--- a/cloud-server-course/pom.xml
+++ b/cloud-server-course/pom.xml
@@ -122,7 +122,7 @@
         <dependency>
             <groupId>com.alipay.sdk</groupId>
             <artifactId>alipay-sdk-java</artifactId>
-            <version>4.8.10.ALL</version>
+            <version>4.38.10.ALL</version>
         </dependency>
         <dependency>
             <groupId>com.huaweicloud</groupId>
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
index 1d0f34f..e9c6c2d 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
@@ -293,7 +293,6 @@
         }
     }
 
-
     /**
      * 根据id获取课程数据
      *
@@ -500,14 +499,12 @@
 
     @PostMapping("/course/auditDiscount")
     public Boolean auditDiscount(@RequestBody AuditDiscount auditDiscount) {
-
         List<TCoursePackageDiscount> list = discountService.list(new LambdaQueryWrapper<TCoursePackageDiscount>()
                 .eq(TCoursePackageDiscount::getCoursePackageId, auditDiscount.getId()));
         for (TCoursePackageDiscount tCoursePackageDiscount : list) {
             tCoursePackageDiscount.setAuditStatus(auditDiscount.getType());
             tCoursePackageDiscount.setAuditRemark(auditDiscount.getText());
         }
-
         return discountService.updateBatchById(list);
     }
 
@@ -525,8 +522,6 @@
             selectDto.setValue(String.valueOf(coursePackagePaymentConfig.getClassHours()));
             integerList.add(selectDto);
         }
-
-
         return integerList;
     }
 
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java
index 74c3169..597b4f1 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java
@@ -242,8 +242,6 @@
                 StoreOfCourseVo courseVo = new StoreOfCourseVo();
                 courseVo.setCourseId(coursePackage.getId());
                 courseVo.setName(coursePackage.getName() + "(" + store.getName() + ")");
-
-
                 String classStartTime = coursePackage.getClassStartTime();
                 String classEndTime = coursePackage.getClassEndTime();
                 ArrayList<String> classTime = new ArrayList<>();
@@ -255,11 +253,8 @@
                         classTime.add(s);
                     }
                 }
-
 //                coursePackageInfo.setTimes(classTime);
                 String classTimeAsString = String.join("|", classTime);
-
-
                 courseVo.setClassStartTime(classTimeAsString);
                 courseVo.setCoverDrawing(coursePackage.getCoverDrawing());
                 courseVo.setApplicantsNumber(count);
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
index ba122dc..3908b88 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -768,7 +768,6 @@
         return lisco;
     }
 
-
     @PostMapping("/base/coursePack/continuingCourse")
     public StudentOfCourseVo getStudentCourse(@RequestBody GetStudentCourse getStudentCourse) {
         StudentOfCourseVo courseVo = new StudentOfCourseVo();
@@ -777,7 +776,6 @@
                 .eq("coursePackageId", getStudentCourse.getCourseId())
                 .eq("studentId", getStudentCourse.getStuId()));
         if (tCoursePackagePayments.size() > 0) {
-
             List<CourseHoursType> typeList = new ArrayList<>();
             tCoursePackagePayments.forEach(cou -> {
                 CourseHoursType hoursType = new CourseHoursType();
@@ -788,7 +786,6 @@
             TCoursePackagePayment tCoursePackagePayment = tCoursePackagePayments.get(0);
             courseVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId());
             courseVo.setTypeList(typeList);
-
             TCoursePackage coursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId());
             courseVo.setPackageImg(coursePackage.getCoverDrawing());
             courseVo.setCourseName(coursePackage.getName());
@@ -1826,7 +1823,6 @@
                 // 其他星期减一即可得到1-6的数字表示
                 dayOfWeek -= 1;
             }
-            // todo
             if (weeks.contains(String.valueOf(dayOfWeek))){
                 // 限时折扣判断是否在有效期
                 try {
@@ -2434,7 +2430,6 @@
         coursePackagePayment.setAppUserId(null);
         packagePaymentService.updateById(coursePackagePayment);
     }
-
 
     /**
      * 修改数据
@@ -3052,10 +3047,7 @@
         weekData.add(count2);
         weekData.add(count1);
         weekData.add(count);
-
         map.put("weekData", weekData);
-
-
         LocalDateTime currentDateTime = LocalDateTime.now();
         List<Integer> amountByDay = new ArrayList<>(Collections.nCopies(7, 0));
         for (CoursePackageStudent coursePackageStudent : list) {
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java
index b7a6ba6..f620bc1 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java
@@ -55,7 +55,6 @@
         return coursePackageSchedulingService.getById(id);
     }
 
-
     @ResponseBody
     @PostMapping("/coursePackageScheduling/queryCoursePackageSchedulingsById")
     public List<CoursePackageScheduling> queryCoursePackageSchedulingsById(@RequestBody Long id) {
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java
index bb2888b..c8d81b5 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java
@@ -51,7 +51,6 @@
                     .eq("studentId", course.getStuId())
                     .eq("appUserId", course.getAppUserId())
                     .eq("signInOrNot", 1));
-
             if (coursePackageStudents.size() > 0) {
                 List<CancelledClasses> list = caccService.list(new QueryWrapper<CancelledClasses>()
                         .eq("coursePackageId", course.getCourseId()));
@@ -64,7 +63,6 @@
         }
         return sult;
     }
-
     @Autowired
     private CourseCounsumService courseCounsumService;
 
@@ -73,7 +71,6 @@
         courseCounsumService.save(courseCounsum);
     }
 
-
     @PostMapping("/base/courseRecord/cancelCourseData")
     public Integer cancelCourseRecordClass(@RequestBody Integer courseRecordId) {
         int sult = 0;
@@ -81,7 +78,6 @@
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd");
         SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
         String tis = simpleDateFormat.format(new Date());
-
         if (ToolUtil.isNotEmpty(packageStudent)) {
             TCoursePackage coursePackage = tcpService.getById(packageStudent.getCoursePackageId());
             String startTime = tis + " " + coursePackage.getClassStartTime();
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
index 1e18d25..33021bf 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
@@ -52,7 +52,6 @@
     private TCoursePackageService coursePackageService;
     @Resource
     private CoursePackageStudentMapper cpsMapper;
-
     //获取退费记录
     @RequestMapping("/getRefund")
     @ResponseBody
@@ -60,20 +59,14 @@
         // 查询已通过申请的退费记录
         return counsumService.getRefund();
     }
-
-
     @Resource
     private CoursePackageSchedulingMapper coursePackageSchedulingService;
-
-
     @RequestMapping("/getStudentTotal")
     @ResponseBody
     public List<Map<String, Object>> get(@RequestBody StudentQeryDto studentQeryDto) {
         List<Map<String, Object>> pays = paymentService.getStudentTotal(studentQeryDto);
         return pays;
-
     }
-
 
     @RequestMapping("/bypac")
     @ResponseBody
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/other/StoreClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/other/StoreClient.java
index d12cc4f..33df8b0 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/other/StoreClient.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/other/StoreClient.java
@@ -16,10 +16,12 @@
 @FeignClient("mb-cloud-other")
 public interface StoreClient {
 
-
     /**
-     * 根据管理员id获取
+     * 根据运营商id获取对应运营商商户号
+     * @return
      */
+    @PostMapping("/base/getSMIDByOperatorId")
+    String getSMIDByOperatorId(Integer id);
     /**
      * 根据名称模糊搜索门店
      *
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/other/model/Store.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/other/model/Store.java
index dfd38a7..efcdff4 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/other/model/Store.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/other/model/Store.java
@@ -24,6 +24,10 @@
      */
     private Integer cityManagerId;
     /**
+     * 运营商id
+     */
+    private Integer operatorId;
+    /**
      * 省
      */
     private String province;
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
index d8fc6ed..21f0578 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -948,11 +948,22 @@
         }
         return weixinpay;
     }
-
+    private String smid = "2088330203191220";//平台支付宝商户号
 
     public ResultUtil AlipayPayment(String code, BigDecimal request) {
         TCoursePackagePaymentMapper baseMapper1 = this.baseMapper;
-        ResultUtil alipay = payMoneyUtil.alipay("课包购买", "课包购买", "", code, request.toString(),
+        TCoursePackagePayment coursePackagePayment = baseMapper1.getCoursePackagePaymentByCode(code);
+        // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号
+        Integer coursePackageId = coursePackagePayment.getCoursePackageId();
+        TCoursePackage byId = coursePackageService.getById(coursePackageId);
+        Store store = storeClient.queryStoreById(byId.getStoreId());
+        String smid1="";
+        if (store.getOperatorId() == null ){
+            smid1 = smid;
+        }else{
+            smid1 = storeClient.getSMIDByOperatorId(store.getOperatorId());
+        }
+        ResultUtil alipay = payMoneyUtil.alipay(smid1,"课包购买", "课包购买", "", code, request.toString(),
                 "/base/coursePackage/alipayRegisteredCoursesCallback");
         if (alipay.getCode() == 200) {
             new Thread(new Runnable() {
@@ -984,12 +995,24 @@
                                 if ("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10) {
                                     coursePackagePayment.setState(3);
                                     baseMapper1.deleteById(coursePackagePayment.getId());
+
                                     break;
                                 }
                                 if ("TRADE_SUCCESS".equals(s)) {
                                     coursePackagePayment.setPayStatus(2);
                                     coursePackagePayment.setOrderNumber(tradeNo);
                                     baseMapper1.updateById(coursePackagePayment);
+                                        // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号
+                                        Integer coursePackageId = coursePackagePayment.getCoursePackageId();
+                                        TCoursePackage byId = coursePackageService.getById(coursePackageId);
+                                        Store store = storeClient.queryStoreById(byId.getStoreId());
+                                        if (store.getOperatorId()== null ){
+                                            // 说明是平台的门店
+                                            payMoneyUtil.confirm(smid,code,tradeNo,request.toString());
+                                        }else{
+                                            String smid = storeClient.getSMIDByOperatorId(store.getOperatorId());
+                                            payMoneyUtil.confirm(smid,code,tradeNo,request.toString());
+                                        }
                                     break;
                                 }
                                 if ("WAIT_BUYER_PAY".equals(s)) {
@@ -1010,7 +1033,7 @@
         TCoursePackagePayment packagePayment = this.baseMapper.selectOne(new QueryWrapper<TCoursePackagePayment>()
                 .eq("code", code));
         if (appUser.getPlayPaiCoins() < wpGold) {
-            return ResultUtil.error("玩牌币不足!");
+            return ResultUtil.error("玩湃币不足!");
         }
         packagePayment.setPayStatus(2);
         packagePayment.setPayUserId(appUser.getId());
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
index e140bb1..1d0b910 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -1041,7 +1041,7 @@
         return weixinpay;
     }
 
-
+    private String smid = "2088330203191220";//平台支付宝商户号
     /**
      * 课程支付宝支付
      *
@@ -1055,6 +1055,7 @@
         CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getById(paymentCourseVo.getCoursePackagePaymentConfigId());
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
         String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
+        String smid1="";
         //生成支付订单
         if (paymentCourseVo.getOrderId()==null){
             CoursePackageOrder coursePackageOrder = new CoursePackageOrder();
@@ -1083,8 +1084,18 @@
             coursePackageOrder.setPayUserId(uid);
             coursePackageOrderService.updateById(coursePackageOrder);
         }
-
-        ResultUtil alipay = payMoneyUtil.alipay("购买课程", "购买课程", coursePackagePaymentConfig.getId().toString(), code, paymentPrice.toString(), "/base/course/aliPaymentCourseCallback");
+        // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号
+        Integer coursePackageId = paymentCourseVo.getId();
+        TCoursePackage byId = coursePackageService.getById(coursePackageId);
+        Store store = storeClient.queryStoreById(byId.getStoreId());
+        if (store.getOperatorId() == null ){
+            smid1 = smid;
+        }else{
+            smid1 = storeClient.getSMIDByOperatorId(store.getOperatorId());
+        }
+        ResultUtil alipay = payMoneyUtil.alipay(smid1,"购买课程", "购买课程",
+                coursePackagePaymentConfig.getId().toString(),
+                code, paymentPrice.toString(), "/base/course/aliPaymentCourseCallback");
         if (alipay.getCode() == 200) {
             String finalCode = code;
             new Thread(new Runnable() {
@@ -1092,7 +1103,6 @@
                 public void run() {
                     try {
                         Thread.sleep(1000);
-
                         int num = 1;
                         int wait = 0;
                         while (num <= 10) {
@@ -1128,7 +1138,23 @@
                                     coursePackageOrderService.updateById(coursePackageOrder1);
                                     addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig);
                                     moneyOut(tradeNo,tradeNo,finalCode);
-                                    break;
+                                    // 根据课程id 查询这个课程属于哪个门店 属于哪个运营商
+                                    Integer id = paymentCourseVo.getId();
+                                    TCoursePackage byId = coursePackageService.getById(id);
+                                    Integer storeId = byId.getStoreId();
+                                    Store store = storeClient.queryStoreById(storeId);
+                                    Integer operatorId = store.getOperatorId();
+                                    if (operatorId==null){
+                                        String smid ="2088330203191220";
+                                            // 说明是平台的
+                                            payMoneyUtil.confirm(smid,finalCode,tradeNo,paymentPrice.toString());
+                                        break;
+                                    }else{
+                                        // 当前课程不属于门店 查询这个课程属于哪个门店 属于哪个运营商
+                                        String smidByOperatorId = storeClient.getSMIDByOperatorId(operatorId);
+                                        payMoneyUtil.confirm(smidByOperatorId,finalCode,tradeNo,paymentPrice.toString());
+                                        break;
+                                    }
                                 }
                                 if ("WAIT_BUYER_PAY".equals(s)) {
                                     num++;
diff --git a/cloud-server-course/src/main/java/com/dsh/course/util/PayMoneyUtil.java b/cloud-server-course/src/main/java/com/dsh/course/util/PayMoneyUtil.java
index a568526..5272413 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/util/PayMoneyUtil.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/util/PayMoneyUtil.java
@@ -6,7 +6,7 @@
 import com.alipay.api.AlipayClient;
 import com.alipay.api.CertAlipayRequest;
 import com.alipay.api.DefaultAlipayClient;
-import com.alipay.api.domain.AlipayTradeAppPayModel;
+import com.alipay.api.domain.*;
 import com.alipay.api.request.*;
 import com.alipay.api.response.*;
 import com.dsh.course.util.httpClinet.HttpClientUtil;
@@ -54,6 +54,7 @@
     private String appid = "wx82f853a410b0c7c0";//微信appid
 
     private String appletsAppid = "";//微信小程序appid
+    private String smid = "2088330203191220";//平台支付宝商户号
 
     private String mchId = "1501481761";//微信商户号
 
@@ -69,11 +70,50 @@
 
     private String certPath = "C:\\cert\\1523106371_20211206_cert\\apiclient_cert.p12";//微信证书
 
-
+    public ResultUtil confirm(String smid,String code, String outTradeNo, String amount) {
+        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
+                aliAppid,
+                appPrivateKey,
+                "json",
+                "GBK",
+                alipay_public_key,
+                "RSA2");
+        AlipayTradeSettleConfirmRequest request = new AlipayTradeSettleConfirmRequest();
+        request.setBizContent("{" +
+                "  \"out_request_no\":\""+code+"\"," +
+                "  \"trade_no\":\""+outTradeNo+"\"," +
+                "  \"settle_info\":{" +
+                "    \"settle_detail_infos\":[" +
+                "      {" +
+                "        \"trans_in_type\":\"defaultSettle\"," +
+                "        \"settle_entity_id\":\""+smid+"\"," +
+                "        \"settle_entity_type\":\"SecondMerchant\"," +
+                "        \"amount\":"+amount+"," +
+                "      }" +
+                "    ]" +
+                "  }," +
+                "  \"extend_params\":{" +
+                "    \"royalty_freeze\":\"true\"" +
+                "  }" +
+                "}");
+        AlipayTradeSettleConfirmResponse response = null;
+        try {
+            response = alipayClient.execute(request);
+        } catch (AlipayApiException e) {
+            e.printStackTrace();
+        }
+        if(response.isSuccess()){
+            System.out.println("调用成功");
+            return ResultUtil.success();
+        } else {
+            System.out.println("调用失败");
+            return ResultUtil.error("出现问题啦");
+        }
+    }
     /**
      * 支付宝支付
      */
-    public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
+    public ResultUtil alipay(String smid,String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
 //        //构造client
 //        CertAlipayRequest certAlipayRequest = new CertAlipayRequest ();
 //        //设置网关地址
@@ -124,8 +164,6 @@
 //        }  catch (AlipayApiException e ) {
 //            e.printStackTrace();
 //        }
-
-
         //实例化客户端
         AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2");
         //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
@@ -139,9 +177,23 @@
         model.setTotalAmount(amount);//付款金额
         model.setProductCode("QUICK_MSECURITY_PAY");
         model.setPassbackParams(passbackParams);//自定义参数
+        SettleInfo settleInfo = new SettleInfo();
+        settleInfo.setSettlePeriodTime("3d");
+        SettleDetailInfo settleDetailInfo = new SettleDetailInfo();
+        settleDetailInfo.setTransInType("defaultSettle");
+        settleDetailInfo.setAmount(amount);
+        List<SettleDetailInfo> settleDetailInfos = new ArrayList<>();
+        settleDetailInfos.add(settleDetailInfo);
+        settleInfo.setSettleDetailInfos(settleDetailInfos);
+        model.setSettleInfo(settleInfo);
+        SubMerchant subMerchant = new SubMerchant();
+        subMerchant.setMerchantId(smid);
+        model.setSubMerchant(subMerchant);
+        ExtendParams extendParams = new ExtendParams();
+        extendParams.setRoyaltyFreeze("true");// 冻结资金 用于后续分账处理
+        model.setExtendParams(extendParams);
         request.setBizModel(model);
         request.setNotifyUrl(callbackPath + notifyUrl);
-
         try {
             //这里和普通的接口调用不同,使用的是sdkExecute
             AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
diff --git a/cloud-server-course/src/main/resources/sharding-jdbc.properties b/cloud-server-course/src/main/resources/sharding-jdbc.properties
index 02b67d5..c467a6f 100644
--- a/cloud-server-course/src/main/resources/sharding-jdbc.properties
+++ b/cloud-server-course/src/main/resources/sharding-jdbc.properties
@@ -14,9 +14,9 @@
 datasource.names=master0
 datasource.master0.type=com.alibaba.druid.pool.DruidDataSource
 datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver
-datasource.master0.url=jdbc:mysql://127.0.0.1:3306/playpai_course?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
+datasource.master0.url=jdbc:mysql://192.168.110.110:3306/playpai_course?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
 datasource.master0.username=root
-datasource.master0.password=playpai2023!
+datasource.master0.password=123456
 datasource.master0.maxActive=20
 datasource.master0.maxWait=60000
 datasource.master0.minIdle=5
diff --git a/cloud-server-management/src/main/java/com/dsh/course/mapper/BankMapper.java b/cloud-server-management/src/main/java/com/dsh/course/mapper/BankMapper.java
new file mode 100644
index 0000000..f4093bd
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/mapper/BankMapper.java
@@ -0,0 +1,9 @@
+package com.dsh.course.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.guns.modular.system.model.Bank;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface BankMapper extends BaseMapper<Bank> {
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/mapper/TOperatorAuthMapper.java b/cloud-server-management/src/main/java/com/dsh/course/mapper/TOperatorAuthMapper.java
index b87b6b6..8d4a30c 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/mapper/TOperatorAuthMapper.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/mapper/TOperatorAuthMapper.java
@@ -3,6 +3,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dsh.guns.modular.system.model.OperatorAuth;
+import com.dsh.guns.modular.system.model.OperatorAuthAlipay;
 import com.dsh.guns.modular.system.model.TTurn;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -15,6 +16,6 @@
  * @since 2023-09-19
  */
 @Mapper
-public interface TOperatorAuthMapper extends BaseMapper<OperatorAuth> {
+public interface TOperatorAuthMapper extends BaseMapper<OperatorAuthAlipay> {
 
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AliPayMsgConfig.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AliPayMsgConfig.java
new file mode 100644
index 0000000..1778705
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AliPayMsgConfig.java
@@ -0,0 +1,90 @@
+package com.dsh.guns.modular.system.api;
+
+import cn.hutool.core.io.FileUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.alipay.api.msg.AlipayMsgClient;
+import com.alipay.api.msg.MsgHandler;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.guns.modular.system.model.OperatorAuthAlipay;
+import com.dsh.guns.modular.system.model.OperatorUser;
+import com.dsh.guns.modular.system.service.IOperatorAuthService;
+import com.dsh.guns.modular.system.service.IOperatorUserService;
+import com.dsh.guns.modular.system.service.IUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
+
+@Component
+@Configuration
+@EnableConfigurationProperties({AliPayProperties.class})
+public class AliPayMsgConfig {
+    @Autowired
+    private IOperatorAuthService operatorAuthService;
+    @Autowired
+    private IOperatorUserService operatorUserService;
+    @Autowired
+    private IUserService userService;
+    private AliPayProperties aliPay;
+    public AliPayMsgConfig(AliPayProperties aliPay) {
+        this.aliPay = aliPay;
+    }
+    @Bean
+    public AlipayMsgClient alipayMsgClient() throws Exception {
+        AlipayMsgClient alipayMsgClient = AlipayMsgClient.getInstance(aliPay.getAppId());
+        alipayMsgClient.setConnector("openchannel.alipay.com");
+        alipayMsgClient.setSecurityConfig(aliPay.getSignType(), aliPay.getAppPrivateKey(), aliPay.getAlipay_public_key());
+        alipayMsgClient.setCharset(aliPay.getChartSet());
+        alipayMsgClient.setMessageHandler(new MsgHandler() {
+            /**
+             * 客户端接收到消息后回调此方法
+             *  @param  msgApi 接收到的消息的消息api名
+             *  @param  msgId 接收到的消息的消息id
+             *  @param  bizContent 接收到的消息的内容,json格式
+             */
+            @Override
+            public void onMessage (String msgApi, String msgId, String bizContent) {
+                System.err.println("消息对象"+msgApi);
+                System.err.println("id"+msgId);
+                System.err.println("内容"+bizContent);
+                if (msgApi.equals("ant.merchant.expand.indirect.zft.passed")){
+                    // 审核通过
+                    JSONObject json = JSONObject.parseObject(bizContent);
+                    String smid = json.getString("smid");
+                    String order_id = json.getString("order_id");
+                    OperatorAuthAlipay orderNo = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>()
+                            .eq("orderNo", order_id));
+                    if (orderNo!=null){
+                        Integer operatorId = orderNo.getOperatorId();
+                        OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
+                                .eq("operatorId", operatorId));
+                        if (operatorId1!=null){
+                            operatorId1.setAlipayNum(smid);
+                            operatorId1.setAlipayAudit(2);
+                        }
+                    }
+                }else if (msgApi.equals("ant.merchant.expand.indirect.zft.rejected")){
+                    // 审核拒绝
+                    JSONObject json = JSONObject.parseObject(bizContent);
+                    String reason = json.getString("reason");
+                    String order_id = json.getString("order_id");
+                    OperatorAuthAlipay orderNo = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>()
+                            .eq("orderNo", order_id));
+                    if (orderNo!=null){
+                        orderNo.setRefuseReason(reason);
+                        Integer operatorId = orderNo.getOperatorId();
+                        OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
+                                .eq("operatorId", operatorId));
+                        if (operatorId1!=null){
+                            operatorId1.setAlipayAudit(3);
+                        }
+                    }
+                }
+
+            }
+        });
+        alipayMsgClient.connect();
+        return alipayMsgClient;
+    }
+ }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AliPayProperties.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AliPayProperties.java
new file mode 100644
index 0000000..da58467
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AliPayProperties.java
@@ -0,0 +1,38 @@
+package com.dsh.guns.modular.system.api;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+@Data
+@ConfigurationProperties(prefix = "alipay")
+public class AliPayProperties {
+    /**
+     * 加签类型
+     */
+    private String signType = "RSA2";
+    /**
+     * 应用id
+     */
+    private String appId = "2021004105665036";
+    /**
+     * 请求使用的编码格式,如utf-8,gbk,gb2312等
+     */
+    private String chartSet = "utf-8";
+
+    private String appPrivateKey="MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";
+    private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥
+    /**
+     * 应用公钥证书路径
+     */
+    private String appCertPublicKeyPath;
+
+    /**
+     * 支付宝公钥证书路径
+     */
+    private String aliPayCertPublicKeyPath;
+
+    /**
+     * 支付宝根证书路径
+     */
+    private String aliPayRootCertPath;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/SaticScheduleTask.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/SaticScheduleTask.java
index 2fbe5e5..7f58c9b 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/SaticScheduleTask.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/SaticScheduleTask.java
@@ -8,19 +8,24 @@
 import com.alipay.api.domain.PrivilegeBenefit;
 import com.alipay.api.request.AlipayMerchantIndirectAuthorderCloseRequest;
 import com.alipay.api.request.AlipayMerchantIndirectAuthorderQuerystatusRequest;
+import com.alipay.api.request.AntMerchantExpandIndirectZftorderQueryRequest;
 import com.alipay.api.response.AlipayMerchantIndirectAuthorderCloseResponse;
 import com.alipay.api.response.AlipayMerchantIndirectAuthorderQuerystatusResponse;
+import com.alipay.api.response.AntMerchantExpandIndirectZftorderQueryResponse;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.dsh.guns.modular.system.model.OperatorAuth;
+import com.dsh.guns.modular.system.model.OperatorAuthAlipay;
 import com.dsh.guns.modular.system.model.OperatorUser;
 import com.dsh.guns.modular.system.model.User;
 import com.dsh.guns.modular.system.service.IOperatorAuthService;
 import com.dsh.guns.modular.system.service.IOperatorUserService;
 import com.dsh.guns.modular.system.service.IUserService;
+import com.dsh.guns.modular.system.util.PayMoneyUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
+import sun.applet.Main;
 
 import java.time.LocalDateTime;
 import java.util.List;
@@ -34,131 +39,199 @@
     private IOperatorUserService operatorUserService;
     @Autowired
     private IUserService userService;
+    @Autowired
+    private PayMoneyUtil payMoneyUtil;
+    private String appPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";//支付宝开发者应用私钥
+    private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥
+    private String aliAppid = "2021004105665036";//支付宝appid
     // 一个小时执行一次
-    @Scheduled(fixedRate=6000)
+    @Scheduled(fixedRate=60000)
     private void configureTasks() {
-        System.err.println("执行定时任务时间: " + LocalDateTime.now());
-        // 回查商户认证单审核状态 查询除了审核通过以外的认证单
-        List<OperatorAuth> list = operatorAuthService.list(new QueryWrapper<OperatorAuth>().ne("orderStatus", "AUDIT_PASS"));
-        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","2021003199648333",
-                "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCXnbOiY2VkKb5ubpcwKqzmqbKotpKGA79yn2aQeZiTWhqmLdCKjVp64naGpnOQEC7hDZluOO1crWHVhIEp7XGIEVawA7mb/dBbzo4wQQYVtLX6iEZViYk/mA7G59S/lvsLVi+jkVGlx2Co8JhvkTRtCEFgUnVA9o2jKy5BIEwrusNuDjrn5X+3ZvfZJN/iV0yzhzXynzioZt/DIcdODOVPUrem8T/5ifJ6ydSKIumgquBKyQnFOj+LRt5qMioBVzLnod0S/6kKMoNVN3/qx/PHRaeHbrF7I67IpGNROg0D9C4d9xXbGhSqQciXitLVnNzWuCov4Ie5nT5VCg9RjXyVAgMBAAECggEAf5rU81lgnnqbseoWCQ4B02kD2wc+Lti8qsYJ1pLgnTP6td5dZB8wBbjQNOem35sfOX7uoVv8OkIa00/gPd9/7BtbsGySLP3j/UDNX0N60Y30k1VajOdiwklCNpor7swtog75rVrDMxmo+sb0JQI684E9NMpxsSlRcAEJvvpl4W7LkhfJZyCUNXPAAh9SOkFOeaXATueEQ57V5vpeKM2JRJy//1P1LS2c/quLRIPqaTYgVAvxfdAYQvvP0vPijxHtxJlDxPa8xBCv7D46d+HeIA6X5ZkoTKLYbe2D36utP8rqGsXw1EyrYyuq6HdEAi/I4YXvWyLsXuQTSACSp+piAQKBgQD6am94xyQ4CRiMA/T1kvPPkXD+y/1Sbr3+T1S6X4naAGdkZS+TbPaWEddd2Huml6q+C2UcGhQpupBkbk88Nbs94jOulsfF6b24nOo1xH5z/BtS0kYuYaNLhebJtzrR9gupT1Uv0q+QybWZ3hQswOK0vwpkDk9DOysFynfMyXXlwQKBgQCa/z3oZ4iYZpTLNdRhMS0u593Jq8MDemimBJGEXPvDBByyE5Ohf22UqP5MjS1euosAQSva+/HmKeEigLgjoQTo29mA1nzPe0AKN3huWbqPIOdeIOA694Nj6ooOPS8iDMjKu61wPz/rZ57bv41LsPXr0y4UsU30JWg2rzgRnGgT1QKBgH30c0VIxUr6KEKk6t1qoP/SpAdFC5Ie6am0tWVZELl6Yob47kk1EYLCTpWBghB1UQhuKtlLtMCYenBJm8kpLZke4ef7J1jBDRCCvLt2rjQgpo2t/mbt7XjbTQ5A/3EEVTFAGhUH4A7vpkxSi8tG6cEIJm3VVMD4TdeH02JKIucBAoGAA0v+kxzwqN01uQTSGackIOVJsGp44XAPHcjnF3uq10EVIyyLbVn6iLj3f8VY+7TYFA9O0X+ea5jkcwlt4UQhiJp0i+sECJ3EhPMdGqvJ7hVzFmt4mYh+QPfSK+9dO0ouUzGexM5zm5w+osn2RW/kKzn4tvP2hoTtLIyZkrZS+GkCgYAQGKe84pXggSIPwztg0aBJUC9b4fXe3PR4DFTM85lBUKYJnQGRzf6NDCD83hwJoNdnyZkztyK72LDOn2NOzPfYcfUl6MQFPovXeMWaVidRfo4ZgyFA/C1egduebaIkXE+DpGhiy7alQ4k+LxUfy6oJBT9Sq8oq7EVBEkeff3p66g==","json","GBK",
-                "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB","RSA2");
-        for (OperatorAuth operatorAuth : list) {
-        // 第三步:查询申请单审核结果
-        AlipayMerchantIndirectAuthorderQuerystatusRequest request1 = new AlipayMerchantIndirectAuthorderQuerystatusRequest();
-        request1.setBizContent("{" +
-                "  \"order_no\":\""+operatorAuth.getOrderNo()+"\"," +
-                "  \"out_biz_no\":\""+operatorAuth.getOutBizNo()+"\"," +
-                "}");
-        AlipayMerchantIndirectAuthorderQuerystatusResponse response1 = null;
-        try {
-            response1 = alipayClient.execute(request1);
-        } catch (AlipayApiException e) {
-            e.printStackTrace();
-        }
-        if(response1.isSuccess()){
-            System.out.println("调用成功");
-        } else {
-            System.out.println("调用失败");
-        }
-            JSONObject json = JSONObject.parseObject(response1.getBody());
-            JSONObject sign = json.getJSONObject("alipay_merchant_indirect_authorder_querystatus_response");
-            String orderNo = sign.getString("order_no");
-            String order_status = sign.getString("order_status");
-            operatorAuth.setOrderStatus(order_status);
-            operatorAuth.setOrderNo(orderNo);
-            // 失败原因
-            JSONArray verify_list = sign.getJSONArray("verify_list");
-            StringBuilder reason = new StringBuilder("");
-            // 失败原因
-            if (verify_list!=null){
-                for (int i = 0; i < verify_list.size(); i++) {
-                    JSONObject jsonObject = verify_list.getJSONObject(i);
-                    String fail_reason = jsonObject.getString("fail_reason");
-                    reason.append(fail_reason+",");
-                }
-                String res = reason.toString();
-                String substring = res.substring(0, res.length() - 1);
-                operatorAuth.setRefuseReason(substring);
-                operatorAuthService.updateById(operatorAuth);
-                // 获取运营商的管理员id
-
-/**
- * 状态 1=审核中(AUDITING)、2=待联系人确认(CONTACT_CONFIRM),
- * 3=待法人确认(LEGAL_CONFIRM)、4=审核通过(AUDIT_PASS)、
- * 5=审核失败(AUDIT_REJECT)、6=已冻结(AUDIT_FREEZE)、
- * 7=已撤回(CANCELED)、8=联系人处理中(CONTACT_PROCESSING)
- */
-            }
-            Integer operatorId = operatorAuth.getOperatorId();
-            User one = userService.getOne(new QueryWrapper<User>().eq("objectId", operatorId)
-                    .eq("objectType", 2));
-            OperatorUser userId = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
-                    .eq("userId", one.getId()));
-            if (userId!=null){
-                switch (order_status){
-                    case "AUDITING":
-                        userId.setAlipayAudit(1);
-                        break;
-                    case "CONTACT_CONFIRM":
-                        userId.setAlipayAudit(2);
-                        break;
-                    case "LEGAL_CONFIRM":
-                        userId.setAlipayAudit(3);
-                        break;
-                    case "AUDIT_PASS":
-                        userId.setAlipayAudit(4);
-                        break;
-                    case "AUDIT_REJECT":
-                        userId.setAlipayAudit(5);
-                        break;
-                    case "AUDIT_FREEZE":
-                        userId.setAlipayAudit(6);
-                        break;
-                    case "CANCELED":
-                        userId.setAlipayAudit(7);
-                        break;
-                    case "CONTACT_PROCESSING":
-                        userId.setAlipayAudit(8);
-                        break;
-                }
-                operatorUserService.updateById(userId);
-            }
-            // 审核通过
-            String qr_code = sign.getString("qr_code");
-            if (qr_code!=null&& (!qr_code.equals(""))){
-                // 将二维码链接保存起来
-                operatorAuth.setQrCode(qr_code);
-                operatorAuthService.updateById(operatorAuth);
-            }
-//            if (operatorAuth.getOrderStatus().equals("AUDIT_REJECT")
-//            || operatorAuth.getOrderStatus().equals("AUDIT_FREEZE")
-//                    || operatorAuth.getOrderStatus().equals("CANCELED")){
-//                // 未通过审核 撤销申请单
-//                AlipayClient alipayClient1 = new DefaultAlipayClient
-//                        ("https://openapi.alipay.com/gateway.do",
-//                                "2021004123692417","MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCq1V7akWZ/V9mr8NGW2CihIbY93M7M33LpVM5y63qEuN7yqyJV197WT6c7uHBcttY6cJLawXLihgC8KF6ZzdXWbm4n4RiigxIaz9LbSVBjYplkNgG2rg7W7dB8wrrqcwBQU0n+pFX3KWJkHRXDugqE21VCGgzySKQBkhiztmTI/z039PdWp2RTGLiL/OuwVrPjQv3He2orYIZgADWid0mtZXCEFosDkaQDTEqCfuDEuMouEiaIk/lw0ZWxiR1Fvfr82nO0r94lM/CC1wNRif2+2ESR+YystsWQPm16eRgS3wAQz2cOTP4L5VNKNzcUAgxTQK3Bj8GvqrYUUlcC7VCTAgMBAAECggEAPKmYDTUkmIOxoATb6BzKEK3P8Re/t7CBNaoPxW8pCog7YyCyCJmnX6LZV7Oe8s1aNVZUT6nyCc5b5HTRYvxcutBr/W1JOiwg+bRiw8u86A3TOmqTITOdwWShbCwaA7binaN12x6wCByB+9r4J5Cgu5zHIbnubvqsgoJGk0ppb5XbyYkikOAXPHli4PUe4GOorSuhRdq3XlGWiMwh4yt48kF4vP+2ByuDOYQU6LjGs0wn/5LpN+ReLdXTab65Cz7WYTDrTndyIrhFg7cyT5m2gtiJuEgIJ45uaaeGNIecV6JSnRsEv4YD4m+I58yhyyvw9zd0Z5qP04QNjy7OK2UeQQKBgQD/EJpaVv0RR83Z6Hp2YVrPoiMz279U5bgkBbcxgr9GR2YYE3rrHqBdqch1Uitu+g6LIC+SDtib7yG9C7EqPHB3fsfEw8NtL54gy3OFbCcH3lqFxgtrCpQ2SIXQjd8932TpzcMdD6jzyUoSraT+lgkf2MgjqFiMbNVg50lGDyWujQKBgQCrdbXTttuazdwU0pdRFCuTz42iIJSZtHFUPvmbrBy7LFQ8NTN76dqLM1RUH7gJukPc4+Ax+DfpDgHZ4nQ2KSk9FweLqKSf10kojibKpc3nkgDRtUtSTar8fZn9VKTuXK1Ho0LUkjDlHjlEwUuf/Ef+IdjzXDJ2UPWHp2YzxvNDnwKBgBWGtjAnpUX/FF1upF83Si251lS7GAO3O3o2zUYtba0lu3UOt9H+DLS67oMQQ0AjdHTDa6BdBmTqoqNMyE/zN96t4Xg2uViOqz7DTOWWwhiE6IjftPj8tJN8PWbjglK7ds3QosXiG3UvqMO4yfL+gJiieAmiXI7FZKDABEwYXSrFAoGASXVe91vKbmJwPgOTjMsleGhd9+4ZfFjQjRWF/2oXzSFK3Zi1fAtO9ICDSp9kS9afqI2AyifcXF8B8AWTYHj2EBRDyVPxZAHqeBOfDwdGVkY5T59qq9JWxWJSjTSsjOrr2ltaEJSpmh/+zTQ7YEnH1ltOBcWkYQiCiSHxKZG9O2UCgYBfBTkjktzv81SnW47d0qRwmiXrcyObmXTe5fIW9e6KaB0SnzcVvoCmm7TTk+Bm4WqNmfb5k8U6J22vdxB1TPlRksnY+VZDM0Grv/xUII9G8oVQ4+NiE5XvQ7+nc5EBJ12of6GxE7/yXZiDld62q2sFZgrFzhvvHV+IADsu/VdIEw==",
-//                                "json","GBK",
-//                                "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApCzq4BIE4gMdEXxIAAUbiMpSytkzp+LVLVsBtji87rFGfWUcnrr3NKftaw0WtRu+36d1nDVOWW4CmgsOPyj1GOFoTcJOR/BqyIriwyLxpuMS8qgOqGJZXi+W4Nw2AJL6iMVwY2eI8F1G10gACK2I9TNJRzHh3tMTA6ItysbGoekRDtn6Xrkh5V6cyHQjLw0Q6MJK/68XT6/LWzarDEEYrSnIevOydMY32ptAgm5fp/h08M2khCmI6CuMWKmc87dPpd2krGVTALqprAQvB74AIqO+5DE0fN4LoitOYXAtWDCEF4kHN0hQUygIEGCwtMgEVzkf92VLlCX35YtDhWd1yQIDAQAB","RSA2");
-//                AlipayMerchantIndirectAuthorderCloseRequest request = new AlipayMerchantIndirectAuthorderCloseRequest();
-//                request.setBizContent("{" +
-//                        "  \"order_no\":\""+operatorAuth.getOrderNo()+"\"," +
-//                        "  \"out_biz_no\":\""+operatorAuth.getOutBizNo()+"\"" +
-//                        "}");
-//                AlipayMerchantIndirectAuthorderCloseResponse response = null;
-//                try {
-//                    response = alipayClient1.execute(request);
-//                } catch (AlipayApiException e) {
-//                    e.printStackTrace();
-//                }
-//                if(response.isSuccess()){
-//                    System.out.println("撤销申请单调用成功");
-//                } else {
-//                    System.out.println("撤销申请单调用失败");
-//                }
+//        payMoneyUtil.getMessage();
+//        List<OperatorAuthAlipay> list = operatorAuthService.list(new QueryWrapper<OperatorAuthAlipay>());
+//        for (OperatorAuthAlipay operatorAuthAlipay : list) {
+//            System.err.println("执行定时任务时间: " + LocalDateTime.now());
+//            AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
+//                    aliAppid,
+//                    appPrivateKey, "json", "GBK",
+//                    alipay_public_key,
+//                    "RSA2");
+//            AntMerchantExpandIndirectZftorderQueryRequest request = new AntMerchantExpandIndirectZftorderQueryRequest();
+//            request.setBizContent("{" +
+//                    "  \"order_id\":\"" + operatorAuthAlipay.getOrderNo() + "\"," +
+//                    "  \"external_id\":\"" + operatorAuthAlipay.getOutBizNo() + "\"" +
+//                    "}");
+//            AntMerchantExpandIndirectZftorderQueryResponse response = null;
+//            try {
+//                response = alipayClient.execute(request);
+//            } catch (AlipayApiException e) {
+//                e.printStackTrace();
 //            }
+//            if (response.isSuccess()) {
+//                System.out.println("调用成功");
+//                JSONObject json = JSONObject.parseObject(response.getBody());
+//                System.err.println(json);
+//                JSONObject sign = json.getJSONObject("ant_merchant_expand_indirect_zftorder_query_response");
+//                JSONArray orders = sign.getJSONArray("orders");
+//                    JSONObject order = orders.getJSONObject(0);
+//                    // 提取订单信息
+//                    String reason = order.getString("reason");
+//                    String smid = order.getString("smid");
+//                    String merchantName = order.getString("merchant_name");
+//                    String applyTime = order.getString("apply_time");
+//                    String externalId = order.getString("external_id");
+//                    String orderId = order.getString("order_id");
+//                    String applyType = order.getString("apply_type");
+//                    String status = order.getString("status");
+//                    // 打印订单信息
+//                    System.out.println("Reason: " + reason);
+//                    System.out.println("Merchant Name: " + merchantName);
+//                    System.out.println("Apply Time: " + applyTime);
+//                    System.out.println("External ID: " + externalId);
+//                    System.out.println("Order ID: " + orderId);
+//                    System.out.println("Apply Type: " + applyType);
+//                    System.out.println("Status: " + status);
+//            } else {
+//                System.out.println("调用失败");
+//            }
+//        }
 
-        }
+
+
+//        // 回查商户认证单审核状态 查询除了审核通过以外的认证单
+//        List<OperatorAuthAlipay> list = operatorAuthService.list(new QueryWrapper<OperatorAuthAlipay>().ne("orderStatus", "AUDIT_PASS"));
+//        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","2021003199648333",
+//                "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCXnbOiY2VkKb5ubpcwKqzmqbKotpKGA79yn2aQeZiTWhqmLdCKjVp64naGpnOQEC7hDZluOO1crWHVhIEp7XGIEVawA7mb/dBbzo4wQQYVtLX6iEZViYk/mA7G59S/lvsLVi+jkVGlx2Co8JhvkTRtCEFgUnVA9o2jKy5BIEwrusNuDjrn5X+3ZvfZJN/iV0yzhzXynzioZt/DIcdODOVPUrem8T/5ifJ6ydSKIumgquBKyQnFOj+LRt5qMioBVzLnod0S/6kKMoNVN3/qx/PHRaeHbrF7I67IpGNROg0D9C4d9xXbGhSqQciXitLVnNzWuCov4Ie5nT5VCg9RjXyVAgMBAAECggEAf5rU81lgnnqbseoWCQ4B02kD2wc+Lti8qsYJ1pLgnTP6td5dZB8wBbjQNOem35sfOX7uoVv8OkIa00/gPd9/7BtbsGySLP3j/UDNX0N60Y30k1VajOdiwklCNpor7swtog75rVrDMxmo+sb0JQI684E9NMpxsSlRcAEJvvpl4W7LkhfJZyCUNXPAAh9SOkFOeaXATueEQ57V5vpeKM2JRJy//1P1LS2c/quLRIPqaTYgVAvxfdAYQvvP0vPijxHtxJlDxPa8xBCv7D46d+HeIA6X5ZkoTKLYbe2D36utP8rqGsXw1EyrYyuq6HdEAi/I4YXvWyLsXuQTSACSp+piAQKBgQD6am94xyQ4CRiMA/T1kvPPkXD+y/1Sbr3+T1S6X4naAGdkZS+TbPaWEddd2Huml6q+C2UcGhQpupBkbk88Nbs94jOulsfF6b24nOo1xH5z/BtS0kYuYaNLhebJtzrR9gupT1Uv0q+QybWZ3hQswOK0vwpkDk9DOysFynfMyXXlwQKBgQCa/z3oZ4iYZpTLNdRhMS0u593Jq8MDemimBJGEXPvDBByyE5Ohf22UqP5MjS1euosAQSva+/HmKeEigLgjoQTo29mA1nzPe0AKN3huWbqPIOdeIOA694Nj6ooOPS8iDMjKu61wPz/rZ57bv41LsPXr0y4UsU30JWg2rzgRnGgT1QKBgH30c0VIxUr6KEKk6t1qoP/SpAdFC5Ie6am0tWVZELl6Yob47kk1EYLCTpWBghB1UQhuKtlLtMCYenBJm8kpLZke4ef7J1jBDRCCvLt2rjQgpo2t/mbt7XjbTQ5A/3EEVTFAGhUH4A7vpkxSi8tG6cEIJm3VVMD4TdeH02JKIucBAoGAA0v+kxzwqN01uQTSGackIOVJsGp44XAPHcjnF3uq10EVIyyLbVn6iLj3f8VY+7TYFA9O0X+ea5jkcwlt4UQhiJp0i+sECJ3EhPMdGqvJ7hVzFmt4mYh+QPfSK+9dO0ouUzGexM5zm5w+osn2RW/kKzn4tvP2hoTtLIyZkrZS+GkCgYAQGKe84pXggSIPwztg0aBJUC9b4fXe3PR4DFTM85lBUKYJnQGRzf6NDCD83hwJoNdnyZkztyK72LDOn2NOzPfYcfUl6MQFPovXeMWaVidRfo4ZgyFA/C1egduebaIkXE+DpGhiy7alQ4k+LxUfy6oJBT9Sq8oq7EVBEkeff3p66g==","json","GBK",
+//                "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB","RSA2");
+//        for (OperatorAuthAlipay operatorAuth : list) {
+//        // 第三步:查询申请单审核结果
+//        AlipayMerchantIndirectAuthorderQuerystatusRequest request1 = new AlipayMerchantIndirectAuthorderQuerystatusRequest();
+//        request1.setBizContent("{" +
+//                "  \"order_no\":\""+"202312011045284847"+"\"," +
+//                "  \"out_biz_no\":\""+"83972149e3f84216ad2654a1571963f4"+"\"," +
+//                "}");
+//        AlipayMerchantIndirectAuthorderQuerystatusResponse response1 = null;
+//        try {
+//            response1 = alipayClient.execute(request1);
+//        } catch (AlipayApiException e) {
+//            e.printStackTrace();
+//        }
+//        if(response1.isSuccess()){
+//            System.out.println("调用成功");
+//        } else {
+//            System.out.println("调用失败");
+//        }
+//            JSONObject json = JSONObject.parseObject(response1.getBody());
+//            JSONObject sign = json.getJSONObject("alipay_merchant_indirect_authorder_querystatus_response");
+//            String orderNo = sign.getString("order_no");
+//            String order_status = sign.getString("order_status");
+////            operatorAuth.setOrderStatus(order_status);
+//            operatorAuth.setOrderNo(orderNo);
+//            System.err.println("审核状态:"+order_status);
+//
+//            // 失败原因
+//            JSONArray verify_list = sign.getJSONArray("verify_list");
+//            StringBuilder reason = new StringBuilder("");
+//            // 失败原因
+//            if (verify_list!=null){
+//                for (int i = 0; i < verify_list.size(); i++) {
+//                    JSONObject jsonObject = verify_list.getJSONObject(i);
+//                    String fail_reason = jsonObject.getString("fail_reason");
+//                    reason.append(fail_reason+",");
+//                }
+//                String res = reason.toString();
+//                String substring = res.substring(0, res.length() - 1);
+//                operatorAuth.setRefuseReason(substring);
+//                operatorAuthService.updateById(operatorAuth);
+///**
+// * 状态 1=审核中(AUDITING)、2=待联系人确认(CONTACT_CONFIRM),
+// * 3=待法人确认(LEGAL_CONFIRM)、4=审核通过(AUDIT_PASS)、
+// * 5=审核失败(AUDIT_REJECT)、6=已冻结(AUDIT_FREEZE)、
+// * 7=已撤回(CANCELED)、8=联系人处理中(CONTACT_PROCESSING)
+// */
+//            }else{
+//                operatorAuth.setRefuseReason(null);
+//            }
+//            Integer operatorId = operatorAuth.getOperatorId();
+//            User one = userService.getOne(new QueryWrapper<User>().eq("objectId", operatorId)
+//                    .eq("objectType", 2));
+//            OperatorUser userId = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
+//                    .eq("userId", one.getId()));
+////            if (userId!=null){
+////                switch (order_status){
+////                    case "AUDITING":
+//////                        operatorAuth.setOrderStatus("AUDITING");
+////                        userId.setAlipayAudit(1);
+////                        break;
+////                    case "CONTACT_CONFIRM":
+////                        operatorAuth.setOrderStatus("CONTACT_CONFIRM");
+////                        userId.setAlipayAudit(2);
+////                        break;
+////                    case "LEGAL_CONFIRM":
+////                        operatorAuth.setOrderStatus("LEGAL_CONFIRM");
+////                        userId.setAlipayAudit(3);
+////                        break;
+////                    case "AUDIT_PASS":
+////                        operatorAuth.setOrderStatus("AUDIT_PASS");
+////                        userId.setAlipayAudit(4);
+////                        break;
+////                    case "AUDIT_REJECT":
+////                        operatorAuth.setOrderStatus("AUDIT_REJECT");
+////                        userId.setAlipayAudit(5);
+////                        break;
+////                    case "AUDIT_FREEZE":
+////                        operatorAuth.setOrderStatus("AUDIT_FREEZE");
+////                        userId.setAlipayAudit(6);
+////                        break;
+////                    case "CANCELED":
+////                        operatorAuth.setOrderStatus("CANCELED");
+////                        userId.setAlipayAudit(7);
+////                        break;
+////                    case "CONTACT_PROCESSING":
+////                        operatorAuth.setOrderStatus("CONTACT_PROCESSING");
+////                        userId.setAlipayAudit(8);
+////                        break;
+////                }
+////                operatorUserService.updateById(userId);
+////            }
+//            // 审核通过
+//            String qr_code = sign.getString("qr_code");
+////            operatorAuth.setQrCode(qr_code);
+//            operatorAuthService.updateById(operatorAuth);
+//            System.err.println("二维码"+qr_code);
+////            if (operatorAuth.getOrderStatus().equals("AUDIT_REJECT")
+////            || operatorAuth.getOrderStatus().equals("AUDIT_FREEZE")
+////                    || operatorAuth.getOrderStatus().equals("CANCELED")){
+////                // 未通过审核 撤销申请单
+////                AlipayClient alipayClient1 = new DefaultAlipayClient
+////                        ("https://openapi.alipay.com/gateway.do",
+////                                "2021004123692417","MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCq1V7akWZ/V9mr8NGW2CihIbY93M7M33LpVM5y63qEuN7yqyJV197WT6c7uHBcttY6cJLawXLihgC8KF6ZzdXWbm4n4RiigxIaz9LbSVBjYplkNgG2rg7W7dB8wrrqcwBQU0n+pFX3KWJkHRXDugqE21VCGgzySKQBkhiztmTI/z039PdWp2RTGLiL/OuwVrPjQv3He2orYIZgADWid0mtZXCEFosDkaQDTEqCfuDEuMouEiaIk/lw0ZWxiR1Fvfr82nO0r94lM/CC1wNRif2+2ESR+YystsWQPm16eRgS3wAQz2cOTP4L5VNKNzcUAgxTQK3Bj8GvqrYUUlcC7VCTAgMBAAECggEAPKmYDTUkmIOxoATb6BzKEK3P8Re/t7CBNaoPxW8pCog7YyCyCJmnX6LZV7Oe8s1aNVZUT6nyCc5b5HTRYvxcutBr/W1JOiwg+bRiw8u86A3TOmqTITOdwWShbCwaA7binaN12x6wCByB+9r4J5Cgu5zHIbnubvqsgoJGk0ppb5XbyYkikOAXPHli4PUe4GOorSuhRdq3XlGWiMwh4yt48kF4vP+2ByuDOYQU6LjGs0wn/5LpN+ReLdXTab65Cz7WYTDrTndyIrhFg7cyT5m2gtiJuEgIJ45uaaeGNIecV6JSnRsEv4YD4m+I58yhyyvw9zd0Z5qP04QNjy7OK2UeQQKBgQD/EJpaVv0RR83Z6Hp2YVrPoiMz279U5bgkBbcxgr9GR2YYE3rrHqBdqch1Uitu+g6LIC+SDtib7yG9C7EqPHB3fsfEw8NtL54gy3OFbCcH3lqFxgtrCpQ2SIXQjd8932TpzcMdD6jzyUoSraT+lgkf2MgjqFiMbNVg50lGDyWujQKBgQCrdbXTttuazdwU0pdRFCuTz42iIJSZtHFUPvmbrBy7LFQ8NTN76dqLM1RUH7gJukPc4+Ax+DfpDgHZ4nQ2KSk9FweLqKSf10kojibKpc3nkgDRtUtSTar8fZn9VKTuXK1Ho0LUkjDlHjlEwUuf/Ef+IdjzXDJ2UPWHp2YzxvNDnwKBgBWGtjAnpUX/FF1upF83Si251lS7GAO3O3o2zUYtba0lu3UOt9H+DLS67oMQQ0AjdHTDa6BdBmTqoqNMyE/zN96t4Xg2uViOqz7DTOWWwhiE6IjftPj8tJN8PWbjglK7ds3QosXiG3UvqMO4yfL+gJiieAmiXI7FZKDABEwYXSrFAoGASXVe91vKbmJwPgOTjMsleGhd9+4ZfFjQjRWF/2oXzSFK3Zi1fAtO9ICDSp9kS9afqI2AyifcXF8B8AWTYHj2EBRDyVPxZAHqeBOfDwdGVkY5T59qq9JWxWJSjTSsjOrr2ltaEJSpmh/+zTQ7YEnH1ltOBcWkYQiCiSHxKZG9O2UCgYBfBTkjktzv81SnW47d0qRwmiXrcyObmXTe5fIW9e6KaB0SnzcVvoCmm7TTk+Bm4WqNmfb5k8U6J22vdxB1TPlRksnY+VZDM0Grv/xUII9G8oVQ4+NiE5XvQ7+nc5EBJ12of6GxE7/yXZiDld62q2sFZgrFzhvvHV+IADsu/VdIEw==",
+////                                "json","GBK",
+////                                "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApCzq4BIE4gMdEXxIAAUbiMpSytkzp+LVLVsBtji87rFGfWUcnrr3NKftaw0WtRu+36d1nDVOWW4CmgsOPyj1GOFoTcJOR/BqyIriwyLxpuMS8qgOqGJZXi+W4Nw2AJL6iMVwY2eI8F1G10gACK2I9TNJRzHh3tMTA6ItysbGoekRDtn6Xrkh5V6cyHQjLw0Q6MJK/68XT6/LWzarDEEYrSnIevOydMY32ptAgm5fp/h08M2khCmI6CuMWKmc87dPpd2krGVTALqprAQvB74AIqO+5DE0fN4LoitOYXAtWDCEF4kHN0hQUygIEGCwtMgEVzkf92VLlCX35YtDhWd1yQIDAQAB","RSA2");
+////                AlipayMerchantIndirectAuthorderCloseRequest request = new AlipayMerchantIndirectAuthorderCloseRequest();
+////                request.setBizContent("{" +
+////                        "  \"order_no\":\""+operatorAuth.getOrderNo()+"\"," +
+////                        "  \"out_biz_no\":\""+operatorAuth.getOutBizNo()+"\"" +
+////                        "}");
+////                AlipayMerchantIndirectAuthorderCloseResponse response = null;
+////                try {
+////                    response = alipayClient1.execute(request);
+////                } catch (AlipayApiException e) {
+////                    e.printStackTrace();
+////                }
+////                if(response.isSuccess()){
+////                    System.out.println("撤销申请单调用成功");
+////                } else {
+////                    System.out.println("撤销申请单调用失败");
+////                }
+////            }
+
+//        }
     }
 
+    public static void main(String[] args) {
+        String s = "{\"sign\":\"Q8wa/EiKqeRiatW3mDhPA3Ia1jYXK6c8CxlhTQb0o9XHui16UURb7oiqnoS+P22q3a3POjmuhl/Rwm6MBGzp8RNcXwoWTExNq29OR/jZ6SU9HWiOUewv0/kGgNj4WHpbGbVqaoaW3/Q6w0IhCSRT3GAsULHPBeWQ2HyrScl549y/mwsI6bX132S9dHJ5O7we4Oho0pDWrQfE+daP4p+y1HVGeD6WGBq5HjXIuqNmE/ZrRFc/R+8baMwRQgECeohKhpPs9Ov1xuzeq/wuk/NuDG9YbE/+cKs/Kkg3fYIPM1CsIwvam3wP2iYhTaUlEYidt++EwJ2QVIB3OD5So5aKdg==\",\"ant_merchant_expand_indirect_zftorder_query_response\":{\"msg\":\"Success\",\"code\":\"10000\",\"orders\":[{\"reason\":\"公安网校验失败\",\"merchant_name\":\"成都玩湃生活体育发展有限公司\",\"apply_time\":\"2023-12-20 18:36:26\",\"external_id\":\"273c5a8ad59f4e5397253045af1de8fe\",\"order_id\":\"2023122000502000000005299341\",\"apply_type\":\"ZHIFUTONG_CREATE\",\"status\":\"-1\"}]}}";
+
+
+    }
 }
\ No newline at end of file
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java
index 6e7ae25..359427c 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java
@@ -9,9 +9,11 @@
 import com.alipay.api.request.AlipayMerchantIndirectAuthorderCreateRequest;
 import com.alipay.api.request.AlipayMerchantIndirectAuthorderQuerystatusRequest;
 import com.alipay.api.request.AntMerchantExpandIndirectImageUploadRequest;
+import com.alipay.api.request.AntMerchantExpandIndirectZftCreateRequest;
 import com.alipay.api.response.AlipayMerchantIndirectAuthorderCreateResponse;
 import com.alipay.api.response.AlipayMerchantIndirectAuthorderQuerystatusResponse;
 import com.alipay.api.response.AntMerchantExpandIndirectImageUploadResponse;
+import com.alipay.api.response.AntMerchantExpandIndirectZftCreateResponse;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -24,17 +26,22 @@
 import com.dsh.guns.modular.system.model.*;
 import com.dsh.guns.modular.system.service.*;
 
+import com.dsh.guns.modular.system.util.PayMoneyUtil;
 import com.dsh.guns.modular.system.util.ResultUtil;
 
+import com.github.binarywang.wxpay.service.BankService;
 import com.mysql.cj.x.protobuf.MysqlxExpr;
 import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
+import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 
 import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 
@@ -51,17 +58,21 @@
     @Autowired
     private TOperatorCityService operatorCityService;
     @Autowired
+    private IOperatorAuthService operatorAuthService;
+    @Autowired
     private IOperatorUserService operatorUserService;
     @Autowired
     private IUserService userService;
     @Autowired
     private ICityService cityService;
     @Autowired
-    private IOperatorAuthService operatorAuthService;
+    private PayMoneyUtil payMoneyUtil;
+
     @Autowired
     private IStoreService storeService;
-
-
+    private String appPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";//支付宝开发者应用私钥
+    private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥
+    private String aliAppid = "2021004105665036";//支付宝appid
     /**
      * 根据运营商id查询所有门店
      */
@@ -69,6 +80,7 @@
     @ResponseBody
     public List<TStore> getStores(Integer id)
     {
+        payMoneyUtil.getMessage();
         return storeService.list(new QueryWrapper<TStore>()
                 .eq("operatorId",id)
                 .ne("state",3));
@@ -149,6 +161,7 @@
         page.setRecords(list);
         return super.packForBT(page);
     }
+
     /**
      * 跳转运营商商户去认证页面
      */
@@ -159,63 +172,170 @@
         User byId = userService.getById(data.getUserId());
         model.addAttribute("user",byId);
         List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
-        model.addAttribute("provinceList",list);
+        model.addAttribute("list",list);
         model.addAttribute("data",data);
-        OperatorAuth info = operatorAuthService.getOne(new QueryWrapper<OperatorAuth>().eq("operatorId", id));
+        OperatorAuthAlipay info = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>().eq("operatorId", id));
         model.addAttribute("item",info);
+
         if (info==null){
-            OperatorAuth operatorAuth = new OperatorAuth();
+            OperatorAuthAlipay operatorAuth = new OperatorAuthAlipay();
             model.addAttribute("item",operatorAuth);
             model.addAttribute("bodyType",0);
             model.addAttribute("code",null);
             model.addAttribute("reasons",null);
             // 0不显示二维码
             model.addAttribute("type",0);
-
         }else{
-            if (info.getOrderStatus().equals("AUDIT_PASS")){
-                // 通过才展示二维码
-                model.addAttribute("type",1);
-            }else{
-                model.addAttribute("type",0);
-            }
-            model.addAttribute("code",info.getQrCode());
-            model.addAttribute("item",info);
             model.addAttribute("bodyType",info.getBodyType());
-            if (info.getRefuseReason()!=null && (!info.getRefuseReason().equals(""))){
-                model.addAttribute("reasons",info.getRefuseReason());
-            }else{
-                model.addAttribute("reasons",null);
-            }
+            model.addAttribute("accountType",info.getAccountType());
+            model.addAttribute("useType",info.getUseType());
+            model.addAttribute("cardType",info.getCardType());
+            model.addAttribute("reasons",info.getRefuseReason());
+//            TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, info.getCityCode()));
+//            List<TCity> district = cityService.list(new QueryWrapper<TCity>().eq("parent_id", one.getId()));
+//            model.addAttribute("district",district);
+//            if (info.getOrderStatus().equals("AUDIT_PASS")||info.getOrderStatus().equals("LEGAL_CONFIRM")||info.getOrderStatus().equals("CONTACT_CONFIRM")){
+//                // 通过才展示二维码
+//                model.addAttribute("type",1);
+//            }else{
+//                model.addAttribute("type",0);
+//            }
+//            model.addAttribute("code",info.getQrCode());
+//            model.addAttribute("item",info);
+//            model.addAttribute("bodyType",info.getBodyType());
+//            if (info.getRefuseReason()!=null && (!info.getRefuseReason().equals(""))){
+//                model.addAttribute("reasons",info.getRefuseReason());
+//            }else{
+//                model.addAttribute("reasons",null);
+//            }
 
 
         }
         return PREFIX + "OperatorUser_proportionAuth.html";
     }
+    /**
+     * 跳转运营商商户去认证页面 详情页面
+     */
+    @RequestMapping("/proportionAuth1/{id}")
+    public String proportionAuth1(Model model,@PathVariable("id") Integer id) {
+        model.addAttribute("id",id);
+        TOperator data = operatorService.getById(id);
+        User byId = userService.getById(data.getUserId());
+        model.addAttribute("user",byId);
 
+        model.addAttribute("data",data);
+        OperatorAuthAlipay info = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>()
+                .eq("operatorId", id));
+        model.addAttribute("item",info);
+        List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
+        model.addAttribute("list1",list1);
+        if (StringUtils.hasLength(info.getProvince())){
+            // 获取银行开户省
+            List<TCity> list4 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
+            // 获取银行开户市
+            TCity city = cityService.getOne(new QueryWrapper<TCity>().eq("code", info.getProvinceCode()));
+            List<TCity> list5 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, city.getId()));
+            model.addAttribute("list4",list4);
+            model.addAttribute("list5",list5);
+        }else{
+            List<TCity> list6 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
+            model.addAttribute("list4",list6);
+        }
+
+
+
+        model.addAttribute("bodyType",info.getBodyType());
+        model.addAttribute("accountType",info.getAccountType());
+        model.addAttribute("useType",info.getUseType());
+        model.addAttribute("cardType",info.getCardType());
+        model.addAttribute("reasons",info.getRefuseReason());
+
+
+
+//            TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, info.getCityCode()));
+//            List<TCity> district = cityService.list(new QueryWrapper<TCity>().eq("parent_id", one.getId()));
+//            model.addAttribute("district",district);
+//            if (info.getOrderStatus().equals("AUDIT_PASS")||info.getOrderStatus().equals("LEGAL_CONFIRM")||info.getOrderStatus().equals("CONTACT_CONFIRM")){
+//                // 通过才展示二维码
+//                model.addAttribute("type",1);
+//            }else{
+//                model.addAttribute("type",0);
+//            }
+//            model.addAttribute("code",info.getQrCode());
+//            model.addAttribute("item",info);
+//            model.addAttribute("bodyType",info.getBodyType());
+//            if (info.getRefuseReason()!=null && (!info.getRefuseReason().equals(""))){
+//                model.addAttribute("reasons",info.getRefuseReason());
+//            }else{
+//                model.addAttribute("reasons",null);
+//            }
+
+        return PREFIX + "OperatorUser_proportionAuth_info.html";
+    }
+    /**
+     * 根据所选市 获取区
+     */
+    @RequestMapping(value = "/getDistrict")
+    @ResponseBody
+    public Object onChange(String cityCode) {
+        try {
+            TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, cityCode));
+            List<TCity> parent_id = cityService.list(new QueryWrapper<TCity>().eq("parent_id", one.getId()));
+            return parent_id;
+        }catch (Exception e){
+            e.printStackTrace();
+            return ERROR;
+        }
+    }
+    public static void main(String[] args) {
+        String bankName = "中国工商银行"; // 要转换为简写的银行名称
+
+        Pattern pattern = Pattern.compile("([\\u4e00-\\u9fa5]+)(?=\\s+[A-Za-z]+$)");
+        Matcher matcher = pattern.matcher(bankName);
+        if (matcher.find()) {
+            System.out.println(matcher.group()); // 输出结果:"工商银行" -> "ICBC"
+        } else {
+            System.out.println("无法识别该银行名称!");
+        }
+    }
     /**
      * 支付宝商户认证提交
      */
     @RequestMapping(value = "/auth")
     @ResponseBody
-    public Object auth(String beneficiaryEnd,String businessEnd,String legalEnd, String name,String phone,String number
-            ,Integer operatorId,String bodyType,Integer type,String businessName,String businessNumber,
-                       String legalRepresentative,String registerAddress,String businessTerm,String businessPicture,
-                       String legalPerson,String legalNumber,String legalPhone,String legalEmail,String legalTerm,
-                       String legalAddress,String legalFront,String legalBack,Integer accountType,String bank,
-                       String accountName,String province,String provinceCode,String city,String cityCode,
-                       String bankName,String bankNumber,String isBeneficiary,String beneficiary,String beneficiaryPhone,
-                       String beneficiaryNumber,String beneficiaryAddress,String beneficiaryTerm,String beneficiaryFront,String beneficiaryBack,
-                       String remark) {
+    public Object auth(Integer operatorId,String bodyType,String businessName,String aliasName,String businessNumber,
+                       String license,String name,String phone,String shopProvinceCode,String shopProvince,String shopCityCode,
+                       String shopCity, String shopDistrictCode,String shopDistrict,String registerAddress,String legalPerson,
+                       String leagleNumber,String legalFront,String legalBack,String accountType,String alipayAccount,
+                       String bankCard,String useType,String cardType,String bankName,String bankNameTwo,
+                       String accountName,String provinceCode,String province,String cityCode,String city,String zfbAccount,
+                       String iqImage) {
         UUID uuid = UUID.randomUUID();
-        OperatorAuth data = operatorAuthService.getOne(new QueryWrapper<OperatorAuth>().eq("operatorId", operatorId));
-        OperatorAuth operatorAuth = new OperatorAuth();
+        // 通过运营商id查询
+        TOperator byId = operatorService.getById(operatorId);
+        Integer userId1 = byId.getUserId();
+        OperatorUser userId2 = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
+                .eq("userId", userId1));
+        // 0未认证 1待审核 2通过 3驳回
+        userId2.setAlipayAudit(1);
+        operatorUserService.updateById(userId2);
+        OperatorAuthAlipay data = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>().eq("operatorId", operatorId));
+        String group="ABC";
+//        if(StringUtils.hasLength(bankName)){
+//            Pattern pattern = Pattern.compile(".*[\\u4e00-\\u9fa5]+"); // 只保留汉字部分
+//            Matcher matcher = pattern.matcher(bankName);
+//            group = matcher.group();
+//            if (matcher.find()) {
+//                System.out.println("银行名称简写为:" + matcher.group());
+//            } else {
+//                System.out.println("无法获取到银行名称简写!");
+//                return 5007;
+//            }
+//        }
+
+        OperatorAuthAlipay operatorAuth = new OperatorAuthAlipay();
         if (data!=null){
             operatorAuth.setId(data.getId());
-            if(businessPicture==null || businessPicture.equals("")){
-                operatorAuth.setBusinessPicture(data.getBusinessPicture());
-                businessPicture = data.getBusinessPicture();
-            }
             if(legalFront==null || legalFront.equals("")){
                 legalFront = data.getLegalFront();
                 operatorAuth.setLegalFront(data.getLegalFront());
@@ -224,16 +344,21 @@
                 legalBack = data.getLegalBack();
                 operatorAuth.setLegalBack(data.getLegalBack());
             }
-            if(beneficiaryFront==null || beneficiaryFront.equals("")){
-                beneficiaryFront = data.getBeneficiaryFront();
-                operatorAuth.setBeneficiaryFront(data.getBeneficiaryFront());
+            if(iqImage==null || iqImage.equals("")){
+                iqImage = data.getIqImage();
+                operatorAuth.setIqImage(data.getIqImage());
             }
-            if(beneficiaryBack==null || beneficiaryBack.equals("")){
-                beneficiaryBack = data.getBeneficiaryBack();
-                operatorAuth.setBeneficiaryBack(data.getBeneficiaryBack());
+
+            if(license==null || license.equals("")){
+                license = data.getCertImage();
+                operatorAuth.setCertImage(data.getCertImage());
             }
         }else{
-            if(businessPicture==null || businessPicture.equals("")){
+            operatorAuth.setLegalFront(legalFront);
+            operatorAuth.setLegalBack(legalBack);
+            operatorAuth.setIqImage(iqImage);
+            operatorAuth.setCertImage(license);
+            if(license==null || license.equals("")){
                 // 未上传营业执照
                 return 5001;
             }
@@ -245,196 +370,173 @@
                 // 未上传法人身份证背面照
                 return 5003;
             }
-            if (businessPicture!=null && businessPicture.equals("ENTERPRISE")){
-                if(beneficiaryFront==null || beneficiaryFront.equals("")){
-                    // 未上传受益人身份证正面照
-                    return 5004;
-                }
-                if(beneficiaryBack==null || beneficiaryBack.equals("")){
-                    // 未上传受益人身份证背面照
-                    return 5005;
-                }
-            }
         }
         String numericUUID = uuid.toString().replaceAll("-", "");
+        operatorAuth.setOutBizNo(numericUUID);
+        operatorAuth.setOperatorId(operatorId);
+        operatorAuth.setRegisterAddress(registerAddress);
+        operatorAuth.setAliasName(aliasName);
+        operatorAuth.setBodyType(bodyType);
         operatorAuth.setName(name);
         operatorAuth.setPhone(phone);
-        operatorAuth.setNumber(number);
-        operatorAuth.setBusinessEnd(businessEnd);
-        operatorAuth.setLegalEnd(legalEnd);
-        operatorAuth.setBeneficiaryEnd(beneficiaryEnd);
-        operatorAuth.setOperatorId(operatorId);
-        operatorAuth.setBodyType(bodyType);
-        operatorAuth.setType(type);
         operatorAuth.setBusinessName(businessName);
         operatorAuth.setBusinessNumber(businessNumber);
-        operatorAuth.setLegalRepresentative(legalRepresentative);
-        operatorAuth.setRegisterAddress(registerAddress);
-        operatorAuth.setBusinessTerm(businessTerm);
-        operatorAuth.setOutBizNo(numericUUID);
-        operatorAuth.setBusinessPicture(businessPicture);
+        operatorAuth.setCertImage(license);
         operatorAuth.setLegalPerson(legalPerson);
-        operatorAuth.setLeagleNumber(legalNumber);
-        operatorAuth.setLegalPhone(legalPhone);
-        operatorAuth.setLegalEmail(legalEmail);
-        operatorAuth.setLegalTerm(legalTerm);
-        operatorAuth.setLegalAddress(legalAddress);
         operatorAuth.setLegalFront(legalFront);
         operatorAuth.setLegalBack(legalBack);
+        operatorAuth.setLeagleNumber(leagleNumber);
         operatorAuth.setAccountType(accountType);
-        operatorAuth.setBank(bank);
+        operatorAuth.setBankName(bankName);
         operatorAuth.setAccountName(accountName);
+        operatorAuth.setBankCard(bankCard);
         operatorAuth.setProvince(province);
         operatorAuth.setProvinceCode(provinceCode);
         operatorAuth.setCity(city);
         operatorAuth.setCityCode(cityCode);
-        operatorAuth.setBankName(bankName);
-        operatorAuth.setBankNumber(bankNumber);
+        operatorAuth.setShopCity(shopCity);
+        operatorAuth.setShopProvince(shopProvince);
+        operatorAuth.setShopProvinceCode(shopProvinceCode);
+        operatorAuth.setShopCityCode(shopCityCode);
+        operatorAuth.setProvince(province);
+        operatorAuth.setProvinceCode(provinceCode);
+        operatorAuth.setShopDistrict(shopDistrict);
+        operatorAuth.setShopDistrictCode(shopDistrictCode);
+        operatorAuth.setAlipayAccount(alipayAccount);
+        operatorAuth.setUseType(useType);
+        operatorAuth.setCardType(cardType);
+        operatorAuth.setBankNameTwo(bankNameTwo);
         operatorAuth.setAuditState(0);
-        operatorAuth.setIsBeneficiary(isBeneficiary);
-        operatorAuth.setBeneficiary(beneficiary);
-        operatorAuth.setBeneficiaryNumber(beneficiaryNumber);
-        operatorAuth.setBeneficiaryAddress(beneficiaryAddress);
-        operatorAuth.setBeneficiaryTerm(beneficiaryTerm);
-        operatorAuth.setBeneficiaryFront(beneficiaryFront);
-        operatorAuth.setBeneficiaryBack(beneficiaryBack);
         operatorAuth.setRefuseReason("");
-        operatorAuth.setRemark(remark);
-
-
+        operatorAuth.setZfbAccount(zfbAccount);
         // 将图片上传至阿里存储
         // 营业执照
-        String string = uploadImg(businessPicture).toString();
+        String string = uploadImg(license).toString();
         // 法人身份证正面照
         legalFront = uploadImg(legalFront).toString();
         // 法人身份证背面照
         legalBack = uploadImg(legalBack).toString();
-
-        if (bodyType.equals("ENTERPRISE")){
-            // 受益人身份证正面照
-            beneficiaryFront=uploadImg(beneficiaryFront).toString();
-            // 受益人身份证背面照
-            beneficiaryBack=uploadImg(beneficiaryBack).toString();
-        }
-
-
-        //第二步:提交申请单
-        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","2021003199648333",
-                "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCXnbOiY2VkKb5ubpcwKqzmqbKotpKGA79yn2aQeZiTWhqmLdCKjVp64naGpnOQEC7hDZluOO1crWHVhIEp7XGIEVawA7mb/dBbzo4wQQYVtLX6iEZViYk/mA7G59S/lvsLVi+jkVGlx2Co8JhvkTRtCEFgUnVA9o2jKy5BIEwrusNuDjrn5X+3ZvfZJN/iV0yzhzXynzioZt/DIcdODOVPUrem8T/5ifJ6ydSKIumgquBKyQnFOj+LRt5qMioBVzLnod0S/6kKMoNVN3/qx/PHRaeHbrF7I67IpGNROg0D9C4d9xXbGhSqQciXitLVnNzWuCov4Ie5nT5VCg9RjXyVAgMBAAECggEAf5rU81lgnnqbseoWCQ4B02kD2wc+Lti8qsYJ1pLgnTP6td5dZB8wBbjQNOem35sfOX7uoVv8OkIa00/gPd9/7BtbsGySLP3j/UDNX0N60Y30k1VajOdiwklCNpor7swtog75rVrDMxmo+sb0JQI684E9NMpxsSlRcAEJvvpl4W7LkhfJZyCUNXPAAh9SOkFOeaXATueEQ57V5vpeKM2JRJy//1P1LS2c/quLRIPqaTYgVAvxfdAYQvvP0vPijxHtxJlDxPa8xBCv7D46d+HeIA6X5ZkoTKLYbe2D36utP8rqGsXw1EyrYyuq6HdEAi/I4YXvWyLsXuQTSACSp+piAQKBgQD6am94xyQ4CRiMA/T1kvPPkXD+y/1Sbr3+T1S6X4naAGdkZS+TbPaWEddd2Huml6q+C2UcGhQpupBkbk88Nbs94jOulsfF6b24nOo1xH5z/BtS0kYuYaNLhebJtzrR9gupT1Uv0q+QybWZ3hQswOK0vwpkDk9DOysFynfMyXXlwQKBgQCa/z3oZ4iYZpTLNdRhMS0u593Jq8MDemimBJGEXPvDBByyE5Ohf22UqP5MjS1euosAQSva+/HmKeEigLgjoQTo29mA1nzPe0AKN3huWbqPIOdeIOA694Nj6ooOPS8iDMjKu61wPz/rZ57bv41LsPXr0y4UsU30JWg2rzgRnGgT1QKBgH30c0VIxUr6KEKk6t1qoP/SpAdFC5Ie6am0tWVZELl6Yob47kk1EYLCTpWBghB1UQhuKtlLtMCYenBJm8kpLZke4ef7J1jBDRCCvLt2rjQgpo2t/mbt7XjbTQ5A/3EEVTFAGhUH4A7vpkxSi8tG6cEIJm3VVMD4TdeH02JKIucBAoGAA0v+kxzwqN01uQTSGackIOVJsGp44XAPHcjnF3uq10EVIyyLbVn6iLj3f8VY+7TYFA9O0X+ea5jkcwlt4UQhiJp0i+sECJ3EhPMdGqvJ7hVzFmt4mYh+QPfSK+9dO0ouUzGexM5zm5w+osn2RW/kKzn4tvP2hoTtLIyZkrZS+GkCgYAQGKe84pXggSIPwztg0aBJUC9b4fXe3PR4DFTM85lBUKYJnQGRzf6NDCD83hwJoNdnyZkztyK72LDOn2NOzPfYcfUl6MQFPovXeMWaVidRfo4ZgyFA/C1egduebaIkXE+DpGhiy7alQ4k+LxUfy6oJBT9Sq8oq7EVBEkeff3p66g==","json","GBK",
-                "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB","RSA2");
-        AlipayMerchantIndirectAuthorderCreateRequest request = new AlipayMerchantIndirectAuthorderCreateRequest();
+        operatorAuthService.saveOrUpdate(operatorAuth);
+        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
+                aliAppid,
+                appPrivateKey,
+                "json","GBK",
+                alipay_public_key,
+                "RSA2");
+        AntMerchantExpandIndirectZftCreateRequest request = new AntMerchantExpandIndirectZftCreateRequest();
         String param = "{" +
-                "  \"out_biz_no\":\""+uuid+"\"," +
-                "  \"contact_person_info\":{" +
-                "    \"contact_name\":\""+name+"\"," +
-                "    \"contact_phone_no\":\""+phone+"\"," +
-                "    \"contact_card_no\":\""+number+"\"," +
-                "    \"contact_cert_type\":\"RESIDENT\"" +
-                "  }," +
-                "  \"auth_identity_info\":{" +
-                "    \"identity_type\":\""+bodyType+"\"," +
-                "    \"is_financial_org\":false," +
-                "    \"certificate_type\":\"BUSINESS_CERT\"," +
-                "    \"certificate_info\":{" +
-                "      \"cert_no\":\""+businessNumber+"\"," +
-                "      \"cert_image\":\""+string+"\"," +
-                "      \"merchant_name\":\""+businessName+"\"," +
-                "      \"legal_person_name\":\""+legalRepresentative+"\"," +
-                "      \"register_address\":\""+registerAddress+"\"," +
-                "      \"effect_time\":\""+businessTerm+"\"," +
-                "      \"expire_time\":\""+businessEnd+"\"" +
-                "    }," +
-                "    }," +
-                "  \"legal_person_info\":{" +
-                "    \"card_type\":\"RESIDENT\"," +
-                "    \"person_name\":\""+legalRepresentative+"\"," +
-                "    \"card_no\":\""+legalNumber+"\"," +
-                "    \"effect_time\":\""+legalTerm+"\"," +
-                "    \"expire_time\":\""+legalEnd+"\"," +
-                "    \"card_front_img\":\""+legalFront+"\"," +
-                "    \"card_back_img\":\""+legalBack+"\"," +
-                "    \"is_benefit_person\":"+isBeneficiary+"" +
-                "  },";
-        String bene = "  \"benefit_person_info\":{" +
-                "    \"person_name\":\""+beneficiary+"\"," +
-                "    \"card_no\":\""+beneficiaryNumber+"\"," +
-                "    \"card_type\":\"RESIDENT\"," +
-                "    \"effect_time\":\""+beneficiaryTerm+"\"," +
-                "    \"expire_time\":\""+beneficiaryEnd+"\"," +
-                "    \"card_front_img\":\""+beneficiaryFront+"\"," +
-                "    \"card_back_img\":\""+beneficiaryBack+"\"" +
-                "  },";
-        if (bodyType.equals("ENTERPRISE")){
-            request.setBizContent(param
-                    + bene+
-                    "}");
-        }else{
-            request.setBizContent(param
-                    +
-                    "}");
-        }
+                "  \"external_id\":\""+numericUUID+"\"," +
+                "  \"merchant_type\":\""+bodyType+"\"," +
+                "  \"name\":\""+businessName+"\"," +
+                "  \"alias_name\":\""+aliasName+"\"," +
+                "  \"mcc\":\"B0068\"," +
+                "  \"cert_no\":\""+businessNumber+"\"," +
+                "  \"cert_type\":\"201\"," +
+                "  \"cert_image\":\""+string+"\"," +
+                "  \"legal_name\":\""+legalPerson+"\"," +
+                "  \"legal_cert_no\":\""+leagleNumber+"\"," +
+                "  \"legal_cert_front_image\":\""+legalFront+"\"," +
+                "  \"legal_cert_back_image\":\""+legalBack+"\"," +
+                "  \"contact_infos\":[" +
+                "    {" +
+                "      \"name\":\""+name+"\"," +
+                "      \"mobile\":\""+phone+"\"," +
+                "    }" +
+                "  ],";
 
-        AlipayMerchantIndirectAuthorderCreateResponse response = null;
+        // todo 拼接
+        String biz_cards="  \"biz_cards\":[" +
+                "    {" +
+                "      \"account_holder_name\":\""+accountName+"\"," +
+                "      \"account_no\":\""+bankCard+"\"," +
+                "      \"account_inst_province\":\""+province+"\"," +
+                "      \"account_inst_city\":\""+city+"\"," +
+                "      \"account_branch_name\":\""+bankNameTwo+"\"," +
+                "      \"usage_type\":\""+useType+"\"," +
+                "      \"account_type\":\""+cardType+"\"," +
+                "      \"account_inst_name\":\""+bankName+"\"," +
+                "      \"account_inst_id\":\""+group+"\"," +
+                "    }" +
+                "  ]," ;
+        // 结算类型 支付宝账户 / 银行卡
+        String type ;
+        // 结算类型为支付宝 填写支付宝账号 结算类型为银行卡填写银行卡号
+        String account;
+        if (StringUtils.hasLength(alipayAccount)){
+            type =  accountType;
+            account = alipayAccount;
+        }else{
+            type = accountType;
+            account = bankCard;
+        }
+        String res=
+                "  \"service\":[" +
+                "    \"app支付\"" +
+                "  ]," +
+                "  \"alipay_logon_id\":" +
+                "    \""+zfbAccount+"\"" +
+                "  ," +
+                "  \"sites\":[" +
+                "    {" +
+                "      \"site_type\":\"02\"," +
+                "      \"site_name\":\"玩湃生活\"," +
+                "      \"tiny_app_id\":\"wx82f853a410b0c7c0\"" +
+                "    }" +
+                "  ]," +
+                "  \"cert_name\":\""+businessName+"\","+
+        "  \"binding_alipay_logon_id\":\""+zfbAccount+"\","+
+         "  \"default_settle_rule\":{" +
+                "    \"default_settle_type\":\""+type+"\"," +
+                "    \"default_settle_target\":\""+account+"\"" +
+                "  }" +
+                "}";
+        if (accountType.equals("bankCard")){
+            request.setBizContent(param
+                    + biz_cards+res);
+        }
+        AntMerchantExpandIndirectZftCreateResponse response = null;
         try {
             response = alipayClient.execute(request);
         } catch (AlipayApiException e) {
             e.printStackTrace();
         }
         if(response.isSuccess()){
-            System.out.println("上传认证单");
+            System.out.println("调用成功");
             JSONObject json = JSONObject.parseObject(response.getBody());
-            JSONObject json1 = json.getJSONObject("alipay_merchant_indirect_authorder_create_response");
-            String order_no = json1.getString("order_no");
-            String order_status = json1.getString("order_status");
-//            // 申请单号
-//            String orderNo = r.getString("order_no");
-            /**
-             * 状态 审核中(AUDITING)、待联系人确认(CONTACT_CONFIRM),
-             * 待法人确认(LEGAL_CONFIRM)、审核通过(AUDIT_PASS)、
-             * 审核失败(AUDIT_REJECT)、已冻结(AUDIT_FREEZE)、
-             * 已撤回(CANCELED)、联系人处理中(CONTACT_PROCESSING)
-             */
-//            String orderStatus = r.getString("order_status");
+            JSONObject json1 = json.getJSONObject("ant_merchant_expand_indirect_zft_create_response");
+            String order_no = json1.getString("order_id");
+            System.err.println("订单号"+order_no);
             operatorAuth.setOrderNo(order_no);
-            operatorAuth.setOrderStatus(order_status);
-
-
+            operatorAuth.setRefuseReason("");
             operatorAuthService.saveOrUpdate(operatorAuth);
-            // 通过运营商id找到用户id
-            TOperator byId = operatorService.getById(operatorId);
-            if (byId!=null){
-                Integer userId = byId.getUserId();
-                OperatorUser userId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("userId", userId));
-                if (userId1!=null){
-                    // 设置为审核中状态
-                    userId1.setAlipayAudit(1);
-                    if (bodyType.equals("ENTERPRISE")){
-                        userId1.setAlipayType(2);
-                    }else{
-                        userId1.setAlipayType(1);
-                    }
-//                    userId1.setWechatAudit(1);
-                    operatorUserService.updateById(userId1);
-                    operatorAuth.setQrCode(null);
-                    operatorAuthService.saveOrUpdate(operatorAuth);
-                    // 根据选择类型修改认证类型
-
-                }
+            Integer userId = operatorService.getById(operatorId).getUserId();
+            OperatorUser user = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("userId", userId));
+            user.setAlipayAudit(1);
+            // 01是企业
+            if (bodyType.equals("01")){
+                user.setAlipayType(2);
+            }else{
+                user.setAlipayType(1);
             }
+            operatorUserService.saveOrUpdate(user);
         } else {
-            System.out.println("调用失败");
+            if (response.getCode().equals("40004")){
+                String subMsg = response.getSubMsg();
+                return ResultUtil.error(subMsg);
+            }
         }
-        return SUCCESS_TIP;
+        return ResultUtil.success();
     }
     public static Object uploadImg(String img){
-        String privateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCXnbOiY2VkKb5ubpcwKqzmqbKotpKGA79yn2aQeZiTWhqmLdCKjVp64naGpnOQEC7hDZluOO1crWHVhIEp7XGIEVawA7mb/dBbzo4wQQYVtLX6iEZViYk/mA7G59S/lvsLVi+jkVGlx2Co8JhvkTRtCEFgUnVA9o2jKy5BIEwrusNuDjrn5X+3ZvfZJN/iV0yzhzXynzioZt/DIcdODOVPUrem8T/5ifJ6ydSKIumgquBKyQnFOj+LRt5qMioBVzLnod0S/6kKMoNVN3/qx/PHRaeHbrF7I67IpGNROg0D9C4d9xXbGhSqQciXitLVnNzWuCov4Ie5nT5VCg9RjXyVAgMBAAECggEAf5rU81lgnnqbseoWCQ4B02kD2wc+Lti8qsYJ1pLgnTP6td5dZB8wBbjQNOem35sfOX7uoVv8OkIa00/gPd9/7BtbsGySLP3j/UDNX0N60Y30k1VajOdiwklCNpor7swtog75rVrDMxmo+sb0JQI684E9NMpxsSlRcAEJvvpl4W7LkhfJZyCUNXPAAh9SOkFOeaXATueEQ57V5vpeKM2JRJy//1P1LS2c/quLRIPqaTYgVAvxfdAYQvvP0vPijxHtxJlDxPa8xBCv7D46d+HeIA6X5ZkoTKLYbe2D36utP8rqGsXw1EyrYyuq6HdEAi/I4YXvWyLsXuQTSACSp+piAQKBgQD6am94xyQ4CRiMA/T1kvPPkXD+y/1Sbr3+T1S6X4naAGdkZS+TbPaWEddd2Huml6q+C2UcGhQpupBkbk88Nbs94jOulsfF6b24nOo1xH5z/BtS0kYuYaNLhebJtzrR9gupT1Uv0q+QybWZ3hQswOK0vwpkDk9DOysFynfMyXXlwQKBgQCa/z3oZ4iYZpTLNdRhMS0u593Jq8MDemimBJGEXPvDBByyE5Ohf22UqP5MjS1euosAQSva+/HmKeEigLgjoQTo29mA1nzPe0AKN3huWbqPIOdeIOA694Nj6ooOPS8iDMjKu61wPz/rZ57bv41LsPXr0y4UsU30JWg2rzgRnGgT1QKBgH30c0VIxUr6KEKk6t1qoP/SpAdFC5Ie6am0tWVZELl6Yob47kk1EYLCTpWBghB1UQhuKtlLtMCYenBJm8kpLZke4ef7J1jBDRCCvLt2rjQgpo2t/mbt7XjbTQ5A/3EEVTFAGhUH4A7vpkxSi8tG6cEIJm3VVMD4TdeH02JKIucBAoGAA0v+kxzwqN01uQTSGackIOVJsGp44XAPHcjnF3uq10EVIyyLbVn6iLj3f8VY+7TYFA9O0X+ea5jkcwlt4UQhiJp0i+sECJ3EhPMdGqvJ7hVzFmt4mYh+QPfSK+9dO0ouUzGexM5zm5w+osn2RW/kKzn4tvP2hoTtLIyZkrZS+GkCgYAQGKe84pXggSIPwztg0aBJUC9b4fXe3PR4DFTM85lBUKYJnQGRzf6NDCD83hwJoNdnyZkztyK72LDOn2NOzPfYcfUl6MQFPovXeMWaVidRfo4ZgyFA/C1egduebaIkXE+DpGhiy7alQ4k+LxUfy6oJBT9Sq8oq7EVBEkeff3p66g==";
-        String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";
+        String appPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";//支付宝开发者应用私钥
+        String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥
+        String aliAppid = "2021004105665036";//支付宝appid
         AlipayConfig alipayConfig = new AlipayConfig();
         alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do");
-        alipayConfig.setAppId("2021003199648333");
-        alipayConfig.setPrivateKey(privateKey);
+        alipayConfig.setAppId(aliAppid);
+        alipayConfig.setPrivateKey(appPrivateKey);
         alipayConfig.setFormat("json");
-        alipayConfig.setAlipayPublicKey(alipayPublicKey);
+        alipayConfig.setAlipayPublicKey(alipay_public_key);
         alipayConfig.setCharset("UTF8");
         alipayConfig.setSignType("RSA2");
         AlipayClient alipayClient = null;
@@ -475,15 +577,10 @@
      */
     @RequestMapping(value = "/proportion")
     @ResponseBody
-    public Object auth(Integer operatorIdOne ,String alipayProportion,String alipayNum,String wechatProportion,
-                       String wechatNum) {
-        Integer id1 = operatorService.getOne(new QueryWrapper<TOperator>().eq("id", operatorIdOne))
-                .getUserId();
-        OperatorUser id = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("userId", id1));
+    public Object auth(Integer operatorIdOne ,String alipayProportion,String wechatProportion) {
+        OperatorUser id = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("operatorId", operatorIdOne));
         id.setAlipayProportion(alipayProportion);
         id.setWechatProportion(wechatProportion);
-        id.setAlipayNum(alipayNum);
-        id.setWechatNum(wechatNum);
         operatorUserService.updateById(id);
         return SUCCESS_TIP;
     }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java
index de62eb5..6f35ce3 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java
@@ -68,7 +68,6 @@
     }
 
 
-
     /**
      * 获取运营商列表
      */
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
index fd80080..0e8cd59 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
@@ -431,11 +431,11 @@
     @ResponseBody
     public Object onChange(Integer oneId) {
         System.out.println("======"+oneId);
-        List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getOperatorId, oneId).eq(TOperatorCity::getType, 2));
+        List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>()
+                .eq(TOperatorCity::getOperatorId, oneId).eq(TOperatorCity::getType, 2));
             if (list.size()!=0){
                 return list;
             }
-
         try {
             TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, oneId));
             return cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId()));
@@ -444,6 +444,13 @@
             return ERROR;
         }
     }
+
+    @RequestMapping(value = "/onChange3")
+    @ResponseBody
+    public Object onChange3(String oneId) {
+        TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, oneId));
+        return cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId()));
+    }
     @RequestMapping(value = "/oneChangeNext")
     @ResponseBody
     public Object oneChangeNext(Integer oneId) {
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TStoredValueConfigController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TStoredValueConfigController.java
index 4cb4650..9017240 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TStoredValueConfigController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TStoredValueConfigController.java
@@ -26,7 +26,6 @@
 @Controller
 @RequestMapping("/storeValueConfig")
 public class TStoredValueConfigController {
-
     private String PREFIX = "/system/storeValueConfig/";
     @Autowired
     private StoreValueConfigClient storeValueConfigClient;
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/OperatorAuthAlipay.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/OperatorAuthAlipay.java
new file mode 100644
index 0000000..5701c0c
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/OperatorAuthAlipay.java
@@ -0,0 +1,103 @@
+package com.dsh.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * 支付宝认证
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_operator_auth_alipay")
+public class OperatorAuthAlipay {
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    @TableField(value = "operatorId")
+    private Integer operatorId;
+    @TableField(value = "bodyType")
+    private String bodyType;
+    @TableField(value = "registerAddress")
+    private String registerAddress;
+    @TableField(value = "inDoorImages")
+    private String inDoorImages;
+    @TableField(value = "outDoorImages")
+    private String outDoorImages;
+    @TableField(value = "aliasName")
+    private String aliasName;
+    @TableField(value = "businessName")
+    private String businessName;
+    @TableField(value = "businessNumber")
+    private String businessNumber;
+    @TableField(value = "certImage")
+    private String certImage;
+    @TableField(value = "legalPerson")
+    private String legalPerson;
+    @TableField(value = "leagleNumber")
+    private String leagleNumber;
+    @TableField(value = "legalFront")
+    private String legalFront;
+    @TableField(value = "legalBack")
+    private String legalBack;
+    @TableField(value = "accountType")
+    private String accountType;
+    @TableField(value = "province")
+    private String province;
+    @TableField(value = "provinceCode")
+    private String provinceCode;
+    @TableField(value = "city")
+    private String city;
+    @TableField(value = "cityCode")
+    private String cityCode;
+    @TableField(value = "bankName")
+    private String bankName;
+    @TableField(value = "accountName")
+    private String accountName;
+    @TableField(value = "bankCard")
+    private String bankCard;
+    @TableField(value = "refuseReason")
+    private String refuseReason;
+    @TableField(value = "smid")
+    private String smid;
+    @TableField(value = "auditState")
+    private Integer auditState;
+    @TableField(value = "outBizNo")
+    private String outBizNo;
+    @TableField(value = "name")
+    private String name;
+    @TableField(value = "phone")
+    private String phone;
+    @TableField(value = "orderNo")
+    private String orderNo;
+    @TableField(value = "shopProvince")
+    private String shopProvince;
+    @TableField(value = "shopProvinceCode")
+    private String shopProvinceCode;
+    @TableField(value = "shopCity")
+    private String shopCity;
+    @TableField(value = "shopCityCode")
+    private String shopCityCode;
+    @TableField(value = "shopDistrictCode")
+    private String shopDistrictCode;
+    @TableField(value = "shopDistrict")
+    private String shopDistrict;
+    @TableField(value = "certName")
+    private String certName;
+    @TableField(value = "alipayAccount")
+    private String alipayAccount;
+    @TableField(value = "iqImage")
+    private String iqImage;
+    @TableField(value = "useType")
+    private String useType;
+    @TableField(value = "cardType")
+    private String cardType;
+    @TableField(value = "bankNameTwo")
+    private String bankNameTwo;
+    @TableField(value = "zfbAccount")
+    private String zfbAccount;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IOperatorAuthService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IOperatorAuthService.java
index d572aa2..656a506 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IOperatorAuthService.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IOperatorAuthService.java
@@ -2,11 +2,12 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.dsh.guns.modular.system.model.OperatorAuth;
+import com.dsh.guns.modular.system.model.OperatorAuthAlipay;
 import com.dsh.guns.modular.system.model.TSite;
 
 /**
  * @author zhibing.pu
  * @Date 2023/8/1 17:49
  */
-public interface IOperatorAuthService extends IService<OperatorAuth> {
+public interface IOperatorAuthService extends IService<OperatorAuthAlipay> {
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/TBankService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/TBankService.java
new file mode 100644
index 0000000..5e88704
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/TBankService.java
@@ -0,0 +1,17 @@
+package com.dsh.guns.modular.system.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.guns.modular.system.model.Bank;
+
+/**
+ * <p>
+ * 银行 服务类
+ * </p>
+ *
+ * @author administrator
+ * @since 2023-10-09
+ */
+public interface TBankService extends IService<Bank> {
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/BankServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/BankServiceImpl.java
new file mode 100644
index 0000000..b1af254
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/BankServiceImpl.java
@@ -0,0 +1,12 @@
+package com.dsh.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.course.mapper.BankMapper;
+import com.dsh.guns.modular.system.model.Bank;
+import org.springframework.stereotype.Service;
+
+@Service
+public class BankServiceImpl extends ServiceImpl<BankMapper, Bank> implements IService<Bank> {
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorAuthServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorAuthServiceImpl.java
index 172150e..c85504e 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorAuthServiceImpl.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorAuthServiceImpl.java
@@ -5,6 +5,7 @@
 import com.dsh.course.mapper.TOperatorAuthMapper;
 import com.dsh.course.mapper.TTurnMapper;
 import com.dsh.guns.modular.system.model.OperatorAuth;
+import com.dsh.guns.modular.system.model.OperatorAuthAlipay;
 import com.dsh.guns.modular.system.model.TTurn;
 import com.dsh.guns.modular.system.service.IOperatorAuthService;
 import com.dsh.guns.modular.system.service.TTurnService;
@@ -19,6 +20,6 @@
  * @since 2023-09-19
  */
 @Service
-public class TOperatorAuthServiceImpl extends ServiceImpl<TOperatorAuthMapper, OperatorAuth> implements IOperatorAuthService {
+public class TOperatorAuthServiceImpl extends ServiceImpl<TOperatorAuthMapper, OperatorAuthAlipay> implements IOperatorAuthService {
 
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorUserServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorUserServiceImpl.java
index 0808124..4f67843 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorUserServiceImpl.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorUserServiceImpl.java
@@ -49,30 +49,35 @@
     @Autowired
     private WeChatUtil weChatUtil;
 
+//    @Override
+//    public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) {
+//
+//        OperatorAuthAlipay shopAuthentication = new OperatorAuth();
+//
+//        if(mgtShopAuthDto.getBlBusinessFoeverFlag()!=null&&mgtShopAuthDto.getBlBusinessFoeverFlag()==1){
+//            mgtShopAuthDto.setBlBusinessDeanline("长期");
+//        }
+//        if(mgtShopAuthDto.getLpIcForeverFlag()!=null&&mgtShopAuthDto.getLpIcForeverFlag()==1){
+//            mgtShopAuthDto.setLpIcEndDate("长期");
+//        }
+//        BeanUtils.copyProperties(mgtShopAuthDto , shopAuthentication);
+//        TOperator operator = operatorMapper.selectById(shopAuthentication.getOperatorId());
+//        String applyNumber = UUIDUtil.getNativeUUID().replace("-","");
+//        shopAuthentication.setOutBizNo(applyNumber);
+//        ApplymentsResult applymentsResult;
+//        try {
+//            applymentsResult = weChatUtil.ecommerceApply(shopAuthentication,applyNumber,operator);
+//        } catch (Exception e) {
+//            throw new ServiceException(e.getMessage());
+//        }
+//        shopAuthentication.setOrderStatus("AUDITING");
+//        shopAuthentication.setOrderNo(applymentsResult.getApplymentId());
+//        operatorAuthService.saveOrUpdate(shopAuthentication);
+//    }
+
     @Override
     public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) {
 
-        OperatorAuth shopAuthentication = new OperatorAuth();
-
-        if(mgtShopAuthDto.getBlBusinessFoeverFlag()!=null&&mgtShopAuthDto.getBlBusinessFoeverFlag()==1){
-            mgtShopAuthDto.setBlBusinessDeanline("长期");
-        }
-        if(mgtShopAuthDto.getLpIcForeverFlag()!=null&&mgtShopAuthDto.getLpIcForeverFlag()==1){
-            mgtShopAuthDto.setLpIcEndDate("长期");
-        }
-        BeanUtils.copyProperties(mgtShopAuthDto , shopAuthentication);
-        TOperator operator = operatorMapper.selectById(shopAuthentication.getOperatorId());
-        String applyNumber = UUIDUtil.getNativeUUID().replace("-","");
-        shopAuthentication.setOutBizNo(applyNumber);
-        ApplymentsResult applymentsResult;
-        try {
-            applymentsResult = weChatUtil.ecommerceApply(shopAuthentication,applyNumber,operator);
-        } catch (Exception e) {
-            throw new ServiceException(e.getMessage());
-        }
-        shopAuthentication.setOrderStatus("AUDITING");
-        shopAuthentication.setOrderNo(applymentsResult.getApplymentId());
-        operatorAuthService.saveOrUpdate(shopAuthentication);
     }
 
     @Override
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java
new file mode 100644
index 0000000..8c82471
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java
@@ -0,0 +1,385 @@
+package com.dsh.guns.modular.system.util;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alipay.api.AlipayApiException;
+import com.alipay.api.AlipayClient;
+import com.alipay.api.CertAlipayRequest;
+import com.alipay.api.DefaultAlipayClient;
+import com.alipay.api.domain.AlipayTradeAppPayModel;
+import com.alipay.api.msg.AlipayMsgClient;
+import com.alipay.api.msg.MsgHandler;
+import com.alipay.api.request.*;
+import com.alipay.api.response.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.guns.modular.system.model.OperatorAuthAlipay;
+import com.dsh.guns.modular.system.model.OperatorUser;
+import com.dsh.guns.modular.system.service.IOperatorAuthService;
+import com.dsh.guns.modular.system.service.IOperatorUserService;
+import org.apache.commons.lang3.StringUtils;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.Element;
+import org.dom4j.io.SAXReader;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.*;
+import java.util.*;
+/**
+ * 第三方支付工具类
+ */
+@Component
+public class PayMoneyUtil {
+    private String aliAppid = "2021004105665036";//支付宝appid
+
+    private String appPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";//支付宝开发者应用私钥
+
+    private String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAouYvZ1v4RiydwNOnGcU0Hb4hQu0x6XUooaE2Bi6/atNOobtFdunnATGP6OMOW7yF9DpP8qH5mbFXAiaQD721y/7qlayI50UcV4mngRU4ZcaAVE3bp721Eg2H85RISa+Tb1CiOh+pc9p4l5UBseKsvB2ruHHForfZDPI8FL7AVUKBYCQPsa4zL6KAO2C6KULaTg/lCa+bYQKU0n9ca569VtdsqJUyxB9eSZjVd+9nKl62FLqp2NELGj7cXqiVBgDnBnVS5ZUO3mrBM5z/AxQbw3RwE3JqdkhzUA1BFjejAlT2zIGNOjUFagF8ao0wGElYfuk0bum6Hz5qWAt02QdNNwIDAQAB";//支付宝应用公钥
+
+    private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥
+
+    private String appid = "";//微信appid
+
+    private String appletsAppid = "";//微信小程序appid
+
+    private String mchId = "";//微信商户号
+
+    private String key = "";//微信商户号
+
+    private String callbackPath = "http://221.182.45.100:56666/account";//支付回调网关地址
+
+    private String app_cert_path = "C:/cert/alipay/user/app_cert_path.crt";//应用公钥证书路径
+
+    private String alipay_cert_path = "C:/cert/alipay/user/alipay_cert_path.crt";//支付宝公钥证书文件路径
+
+    private String alipay_root_cert_path = "C:/cert/alipay/user/alipay_root_cert_path.crt";//支付宝CA根证书文件路径
+
+    private String certPath = "C:\\cert\\1523106371_20211206_cert\\apiclient_cert.p12";//微信证书
+    String signType =  "RSA2" ;
+    String serverHost =  "openchannel.alipay.com" ;
+
+    @Autowired
+    private IOperatorAuthService operatorAuthService;
+    @Autowired
+    private IOperatorUserService operatorUserService;
+
+
+
+
+    /**
+     * 处理直付通审核通过和拒绝消息
+     */
+    public void getMessage() {
+        System.err.println("进入");
+        final AlipayMsgClient alipayMsgClient = AlipayMsgClient.getInstance(aliAppid);
+        try {
+            alipayMsgClient.setConnector(serverHost);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        alipayMsgClient.setSecurityConfig(signType, appPrivateKey, alipay_public_key);
+        try {
+            alipayMsgClient.connect();
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+        alipayMsgClient.setMessageHandler( new  MsgHandler() {
+            /**
+             * 客户端接收到消息后回调此方法
+             *  @param  msgApi 接收到的消息的消息api名
+             *  @param  msgId 接收到的消息的消息id
+             *  @param  bizContent 接收到的消息的内容,json格式
+             */
+            public   void   onMessage (String msgApi, String msgId, String bizContent)   {
+                // 直付通进件审核通过
+                if (StringUtils.equals(msgApi,"ant.merchant.expand.indirect.zft.passed")){
+                    // 修改运营商状态 将返回的商户号填入运营商
+                    System.out.println( "receive message. msgApi:"  + msgApi +  " msgId:"  + msgId +  " bizContent:"  + bizContent);
+                    JSONObject json = JSONObject.parseObject(bizContent);
+                    // 商户号
+                    String smid = json.getString("smid");
+                    // 审核备注信息
+                    String memo = json.getString("memo");
+                    // 订单id
+                    String orderId = json.getString("order_id");
+                    // 通过订单id查询
+                    OperatorAuthAlipay auth = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>()
+                            .eq("orderNo",orderId));
+                    auth.setSmid(smid);
+                    auth.setAuditState(2);
+                    auth.setRefuseReason(memo);
+                    operatorAuthService.updateById(auth);
+                    Integer operatorId = auth.getOperatorId();
+                    OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
+                            .eq("operatorId", operatorId));
+                    operatorId1.setAlipayNum(smid);
+                    operatorId1.setAlipayAudit(2);
+                    operatorUserService.updateById(operatorId1);
+                }
+                // 直付通进件审核失败
+                if (StringUtils.equals(msgApi,"ant.merchant.expand.indirect.zft.rejected")){
+                    JSONObject json = JSONObject.parseObject(bizContent);
+                    // 商户号
+                    String orderId = json.getString("order_id");
+                    // 官方拒绝理由
+                    String reason = json.getString("reason");
+                    // 通过订单id查询
+                    OperatorAuthAlipay auth = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>()
+                            .eq("orderNo",orderId));
+                    auth.setAuditState(3);
+                    auth.setRefuseReason(reason);
+                    operatorAuthService.updateById(auth);
+                    Integer operatorId = auth.getOperatorId();
+                    OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
+                            .eq("operatorId", operatorId));
+                    operatorId1.setAlipayAudit(3);
+                    operatorUserService.updateById(operatorId1);
+                }
+            }
+        });
+    }
+    /**
+     * 支付宝支付
+     */
+    public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
+//        //构造client
+//        CertAlipayRequest certAlipayRequest = new CertAlipayRequest ();
+//        //设置网关地址
+//        certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do");
+//        //设置应用Id
+//        certAlipayRequest.setAppId(aliAppid);
+//        //设置应用私钥
+//        certAlipayRequest.setPrivateKey(appPrivateKey);
+//        //设置请求格式,固定值json
+//        certAlipayRequest.setFormat("json");
+//        //设置字符集
+//        certAlipayRequest.setCharset("UTF-8");
+//        //设置签名类型
+//        certAlipayRequest.setSignType("RSA2");
+//        //设置应用公钥证书路径
+//        certAlipayRequest.setCertPath(app_cert_path);
+//        //设置支付宝公钥证书路径
+//        certAlipayRequest.setAlipayPublicCertPath(alipay_cert_path);
+//        //设置支付宝根证书路径
+//        certAlipayRequest.setRootCertPath(alipay_root_cert_path);
+//        //构造client
+//        AlipayClient alipayClient = null;
+//        try {
+//            alipayClient = new DefaultAlipayClient(certAlipayRequest);
+//        } catch (AlipayApiException e) {
+//            e.printStackTrace();
+//        }
+//        //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
+//        AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest ();
+//        //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
+//        AlipayTradeAppPayModel model = new AlipayTradeAppPayModel ();
+//        model.setBody(body);
+//        model.setSubject (subject);
+//        model.setOutTradeNo (outTradeNo);
+//        model.setTimeoutExpress ("30m" );
+//        model.setTotalAmount (amount);
+//        model.setProductCode ( "QUICK_MSECURITY_PAY" );
+//        model.setPassbackParams(passbackParams);//自定义参数
+//        request.setBizModel ( model );
+//        request.setNotifyUrl (callbackPath + notifyUrl);
+//        try  {
+//            //这里和普通的接口调用不同,使用的是sdkExecute
+//            AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
+//            Map<String, String> map = new HashMap<>();
+//            map.put("orderString", response.getBody());
+//            System.out.println(map);//就是orderString 可以直接给客户端请求,无需再做处理。
+//            return ResultUtil.success(map);
+//        }  catch (AlipayApiException e ) {
+//            e.printStackTrace();
+//        }
+
+
+        //实例化客户端
+        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2");
+        //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
+        AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
+        //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
+        AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
+        model.setBody(body);//对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。
+        model.setSubject(subject);//商品的标题/交易标题/订单标题/订单关键字等。
+        model.setOutTradeNo(outTradeNo);//商户网站唯一订单号
+        model.setTimeoutExpress("30m");
+        model.setTotalAmount(amount);//付款金额
+        model.setProductCode("QUICK_MSECURITY_PAY");
+        model.setPassbackParams(passbackParams);//自定义参数
+
+
+        //分账
+//        Integer    coursePackagePayments = coursePackageClient.queryByCode(outTradeNo);
+//        Integer paymentCompetitions = competitionsClient.queryByCode(outTradeNo);
+//        Integer siteBookings = siteClient.queryByCode(outTradeNo);
+//        List<Integer> stores = new ArrayList<>();
+//        stores.add(coursePackagePayments);
+//        stores.add(paymentCompetitions);
+//        stores.add(siteBookings);
+//
+//        OperatorUser operatorUser = siteClient.queryOperator(stores);
+//
+//        String alipayProportion = operatorUser.getAlipayProportion();
+//        String alipayNum = operatorUser.getAlipayNum();
+//
+//        ExtendParams extendParams = new ExtendParams();
+////        extendParams.setSysServiceProviderId("YOUR_SERVICE_PROVIDER_ID");
+//        model.setExtendParams(extendParams);
+//
+//        RoyaltyInfo royaltyInfo = new RoyaltyInfo();
+////        royaltyInfo.setRoyaltyType("transfer");
+//
+//
+//        RoyaltyDetailInfos royaltyDetailInfo1 = new RoyaltyDetailInfos();
+//        royaltyDetailInfo1.setTransOutType("userId");
+//        royaltyDetailInfo1.setTransOut(aliAppid);
+//        royaltyDetailInfo1.setTransInType("loginName");
+//        royaltyDetailInfo1.setTransIn("18398968484");
+//
+//        royaltyDetailInfo1.setDesc("分账描述1");
+//        royaltyDetailInfo1.setAmountPercentage(alipayProportion);
+//        List<RoyaltyDetailInfos> royaltyDetailInfos = new ArrayList<>();
+//
+//
+//
+//        royaltyInfo.setRoyaltyDetailInfos(royaltyDetailInfos);
+//        model.setRoyaltyInfo(royaltyInfo);
+//        System.err.println("=================="+royaltyInfo);
+        //
+        request.setBizModel(model);
+        request.setNotifyUrl(callbackPath + notifyUrl);
+        try {
+            //这里和普通的接口调用不同,使用的是sdkExecute
+            AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
+            Map<String, String> map = new HashMap<>();
+            map.put("orderString", response.getBody());
+            map.put("returnId", passbackParams);
+            System.out.println(map);//就是orderString 可以直接给客户端请求,无需再做处理。
+            return ResultUtil.success(map);
+        } catch (AlipayApiException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
+
+
+    /**
+     * 支付宝查询订单支付状态
+     *
+     * @param out_trade_no
+     * @return
+     * @throws Exception
+     */
+    public AlipayTradeQueryResponse queryALIOrder(String out_trade_no) throws Exception {
+        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2");
+        AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
+        request.setBizContent("{" +
+                "  \"out_trade_no\":\"" + out_trade_no + "\"" +
+                "}");
+        AlipayTradeQueryResponse response = alipayClient.execute(request);
+        return response;
+
+    }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    /**
+     * 获取请求内容
+     *
+     * @param request
+     * @return
+     * @throws IOException
+     */
+    private String getParam(HttpServletRequest request) throws IOException {
+        // 读取参数
+        InputStream inputStream;
+        StringBuilder sb = new StringBuilder();
+        inputStream = request.getInputStream();
+        String s;
+        BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
+        while ((s = in.readLine()) != null) {
+            sb.append(s);
+        }
+        in.close();
+        inputStream.close();
+        return sb.toString();
+    }
+
+
+
+
+
+
+
+//    public static void main(String[] ages){
+//        PayMoneyUtil payMoneyUtil = new PayMoneyUtil();
+//        ResultUtil ce = payMoneyUtil.alipay("测试", "测试", "", "121456457", "10", "http://123.com");
+//        System.err.println(ce);
+//        ResultUtil resultUtil = null;
+//        try {
+//            resultUtil = payMoneyUtil.queryALIOrder("121456457");
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//        System.err.println(resultUtil);
+//    }
+
+
+    /**
+     * xml转map
+     *
+     * @param xml
+     * @param charset
+     * @return
+     * @throws UnsupportedEncodingException
+     * @throws DocumentException
+     */
+    public static Map<String, String> xmlToMap(String xml, String charset) throws UnsupportedEncodingException, DocumentException {
+
+        Map<String, String> respMap = new HashMap<String, String>();
+
+        SAXReader reader = new SAXReader();
+        Document doc = reader.read(new ByteArrayInputStream(xml.getBytes(charset)));
+        Element root = doc.getRootElement();
+        xmlToMap(root, respMap);
+        return respMap;
+    }
+
+    public static Map<String, String> xmlToMap(Element tmpElement, Map<String, String> respMap) {
+        if (tmpElement.isTextOnly()) {
+            respMap.put(tmpElement.getName(), tmpElement.getText());
+            return respMap;
+        }
+
+        @SuppressWarnings("unchecked")
+        Iterator<Element> eItor = tmpElement.elementIterator();
+        while (eItor.hasNext()) {
+            Element element = eItor.next();
+            xmlToMap(element, respMap);
+        }
+        return respMap;
+    }
+}
diff --git a/cloud-server-management/src/main/resources/mapper/BankMapper.xml b/cloud-server-management/src/main/resources/mapper/BankMapper.xml
new file mode 100644
index 0000000..19b899c
--- /dev/null
+++ b/cloud-server-management/src/main/resources/mapper/BankMapper.xml
@@ -0,0 +1,5 @@
+<?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.dsh.course.mapper.BankMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/cloud-server-management/src/main/resources/mapper/TOperatorMapper.xml b/cloud-server-management/src/main/resources/mapper/TOperatorMapper.xml
index 780ffae..cf50d24 100644
--- a/cloud-server-management/src/main/resources/mapper/TOperatorMapper.xml
+++ b/cloud-server-management/src/main/resources/mapper/TOperatorMapper.xml
@@ -15,7 +15,8 @@
     </update>
 
     <select id="listAll" resultType="java.util.Map">
-        select t1.id as id, t1.name as name,t1.type as `type`,t1.state as state,t1.status as status,t2.name as userName,t2.phone as phone from t_operator t1
+        select t1.id as id, t1.name as name,t1.type as `type`,t1.state as state,t1.status as status,t2.name as userName,t2.phone as phone
+        from t_operator t1
         left join sys_user t2 on t1.userId = t2.id
         where 1=1
         <if test="userName != null and userName != ''">
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportion.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportion.html
index 45d9478..cee9c86 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportion.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportion.html
@@ -49,20 +49,14 @@
                 <input hidden id="id" value="${id}">
                 <div class="col-lg-6" style="">
                     <div class="form-group" >
-                        <label class="col-sm-3 control-label">*支付宝商户号:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" id="alipayNum" value="${alipayNum}"  placeholder="请输入" type="text">
-                        </div>
+
                         <label class="col-sm-3 control-label">*支付宝分账比例(%):</label>
                         <div class="col-sm-9">
                             <input style="width: 300px" class="form-control" id="alipayProportion" value="${alipayProportion}"  placeholder="请输入" type="number">
                         </div>
                     </div>
                     <div class="form-group" >
-                        <label class="col-sm-3 control-label">*微信商户号:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" id="wechatNum" value="${wechatNum}"  placeholder="请输入" type="text">
-                        </div>
+
                         <label class="col-sm-3 control-label">*微信分账比例(%):</label>
                         <div class="col-sm-9">
                             <input style="width: 300px" class="form-control" id="wechatProportion" value="${wechatProportion}"  placeholder="请输入" type="number">
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html
index a3b2079..10faf49 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html
@@ -51,7 +51,6 @@
                 <span>管理员姓名:</span><span>${user.name}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                 <span>管理员电话:</span><span>${user.phone}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
             </div>
-
             <h2>商户号信息</h2>
             </br>
             </br>
@@ -60,196 +59,142 @@
                 <div class="col-lg-6" style="">
                     <div class="form-group">
                         <label class="col-sm-4 control-label" >
-                            主体类型:<input checked type="radio" name="bodyType" value="ENTERPRISE" onclick="updateHalf(2)">企业
-                            <input  type="radio" name="bodyType" value="IND_BIZ" onclick="updateHalf(1)">个人
-
+                            商户类型:<input checked type="radio" name="bodyType" value="01" onclick="updateHalf(2)">企业
+                            <input  type="radio" name="bodyType" value="07" onclick="updateHalf(1)">个人
                         </label>
                     </div>
                     <div class="form-group" >
+                        <label class="col-sm-3 control-label">*商户名称(一般与证件名称相同):</label>
+                        <div class="col-sm-9">
+                            <input style="width: 300px" class="form-control" value="" id="businessName"  placeholder="请输入商户名称" type="text">
+                        </div>
+                    </div>
+                    <div class="form-group" >
+                        <label class="col-sm-3 control-label">*商户别名(支付宝账单显示的商户名称):</label>
+                        <div class="col-sm-9">
+                            <input style="width: 300px" class="form-control" value="" id="aliasName"  placeholder="请输入商户别名" type="text">
+                        </div>
+                    </div>
+
+                    <div class="form-group" >
                         <label class="col-sm-3 control-label">*联系人姓名:</label>
                         <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" value="${item.name}" id="name"  placeholder="请输入" type="text">
+                            <input style="width: 300px" class="form-control" value="" id="name"  placeholder="请输入" type="text">
                         </div>
                     </div>
                     <div class="form-group" >
                         <label class="col-sm-3 control-label">*联系人电话:</label>
                         <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" value="${item.phone}" id="phone"  placeholder="请输入" type="text">
+                            <input style="width: 300px" class="form-control" value="" id="phone"  placeholder="请输入" type="text">
                         </div>
                     </div>
-                    <div class="form-group" >
-                        <label class="col-sm-3 control-label">*联系人身份证号:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" value="${item.number}" id="number"  placeholder="请输入" type="text">
+                        <div class="form-group" >
+                            <label class="col-sm-3 control-label">*法人姓名:</label>
+                            <div class="col-sm-9" >
+                                <input style="width: 300px" class="form-control" id="legalPerson" value=""  placeholder="请输入" type="text">
+                            </div>
                         </div>
-                    </div>
-                    <div class="form-group" >
-                        <label class="col-sm-3 control-label">*法定代表人姓名:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" id="lrName" value="${item.legalPerson}"  placeholder="请输入" type="text">
+                        <div class="form-group">
+                            <label class="col-sm-3 control-label">*法人身份证号:</label>
+                            <div class="col-sm-9">
+                                <input style="width: 300px" class="form-control" value="" id="leagleNumber"  placeholder="请输入" type="text">
+                            </div>
                         </div>
-                    </div>
-                </div>
-                <div class="col-lg-6" style="">
-                    <div class="form-group" >
-                        <label class="col-sm-3 control-label">*营业执照商户名称:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" value="${item.businessName}"  id="merchantName"  placeholder="请输入" type="text">
+                        <div class="form-group">
+                            <#avatar id="IDCardImg" name="*法人身份证正面照" avatarImg="" />
                         </div>
-                    </div>
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">*营业证照生效时间:</label>
-                        <div class="col-sm-9" style="display: flex">
-                            <input style="width: 300px" class="form-control" id="tradeTime" value="${item.businessTerm}" name="tradeTime" type="date">
+                        <div class="form-group">
+                            <#avatar id="IDCardImg1" name="*法人身份证背面照" avatarImg="" />
                         </div>
-                    </div>
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">*营业证照过期时间:</label>
-                        <div class="col-sm-9" style="display: flex">
-                            <input style="width: 300px" class="form-control" id="endTime" value="${item.businessEnd}" name="endTime" type="date">
-                            <input type="checkbox" style="margin-left: 10px" id="tradeE" value="0" onchange="TSite.tradeYse(this)">长期</input>
-                        </div>
-                    </div>
-                    <div class="form-group" >
-                        <label class="col-sm-3 control-label">*营业执照注册号:</label>
-                        <div class="col-sm-9" >
-                            <input style="width: 300px" class="form-control" id="licenseRegistration" value="${item.businessNumber}"  placeholder="请输入" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group" >
-                        <label class="col-sm-3 control-label">*注册地址:</label>
-                        <div class="col-sm-9" >
-                            <input style="width: 300px" class="form-control" id="registerAddress" value="${item.registerAddress}"  placeholder="请输入" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group">
-                        <#avatar id="license" name="*营业执照" avatarImg="${item.businessPicture}" />
-                    </div>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-lg-6" style="">
-                    <div class="form-group" >
-                        <label class="col-sm-3 control-label">*法人姓名:</label>
-                        <div class="col-sm-9" >
-                            <input style="width: 300px" class="form-control" id="legalPerson" value="${item.legalPerson}"  placeholder="请输入" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group" >
-                        <label class="col-sm-3 control-label">*法人手机号:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" id="legalPhone" value="${item.legalPhone}"  placeholder="请输入" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">*法人身份证开始时间:</label>
-                        <div class="col-sm-9" style="display: flex">
-                            <input style="width: 300px" class="form-control" id="IDCardTime" value="${item.legalTerm}" name="IDCardTime" type="date">
-                        </div>
-                    </div>
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">*法人身份证结束时间:</label>
-                        <div class="col-sm-9" style="display: flex">
-                            <input style="width: 300px" class="form-control" value="${item.legalEnd}" id="IDCardEnd" name="IDCardTime" type="date">
-                            <input type="checkbox" style="margin-left: 10px" id="IDCardE" value="0" onchange="TSite.tradeYse(this)">长期</input>
-                        </div>
-                    </div>
-                    <div class="form-group">
-                        <#avatar id="IDCardImg" name="*法人身份证正面照" avatarImg="${item.legalFront}" />
-                    </div>
-                </div>
-                <div class="col-lg-6" style="">
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">*法人身份证号:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" value="${item.leagleNumber}" id="lIDNumber"  placeholder="请输入" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group" >
-                        <label class="col-sm-3 control-label">*法人邮箱:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" value="${item.legalEmail}" id="lEmail"  placeholder="请输入" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group" >
-                        <label class="col-sm-3 control-label">*法人身份证地址:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" value="${item.legalAddress}" id="lIDAddress"  placeholder="请输入" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group">
-                        <#avatar id="IDCardImg1" name="*法人身份证背面照" avatarImg="${item.legalBack}" />
-                    </div>
-                </div>
-            </div>
 
-            <div class="row" id="benefit">
+                    <div class="form-group" >
+                        <label class="col-sm-3 control-label">*签约支付宝账号:</label>
+                        <div class="col-sm-9" >
+                            <input style="width: 300px" class="form-control" id="zfbAccount" value="${item.zfbAccount}"  placeholder="请输入" type="text">
+                        </div>
+                    </div>
+                </div>
                 <div class="col-lg-6" style="">
+                    <div class="form-group" >
+                        <label class="col-sm-3 control-label">*营业执照编号:</label>
+                        <div class="col-sm-9" >
+                            <input style="width: 300px" class="form-control" id="businessNumber" value=""  placeholder="请输入" type="text">
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <#avatar id="license" name="*营业执照" avatarImg="${item.certImage}" />
+                    </div>
                     <div class="form-group">
                         <label class="col-sm-4 control-label" >
-                            法人是否为受益人:<input type="radio" checked name="type" value="true">是
-                            <input checked type="radio" name="type" value="false">否
+                            结算账户类型:<input checked type="radio" name="accountType" value="bankCard" onclick="updateHalf(3)">银行卡
+                            <input  type="radio" name="accountType" value="alipayAccount" onclick="updateHalf(4)">支付宝账号
                         </label>
                     </div>
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">*受益人姓名:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" value="${item.beneficiary}" id="bName" name="bName" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">*受益人身份证地址:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" id="bAddress" value="${item.beneficiaryAddress}"  placeholder="请输入" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">*受益人身份证有效期:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" value="${item.beneficiaryTerm}" id="bTime" name="bTime" type="date">
-                        </div>
-                    </div>
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">*受益人身份证结束时间:</label>
-                        <div class="col-sm-9" style="display: flex">
-                            <input style="width: 300px" class="form-control" id="bEnd" value="${item.beneficiaryEnd}" name="IDCardTime" type="date">
-                            <input type="checkbox" style="margin-left: 10px" id="bIDCardT" value="0" onchange="TSite.tradeYse(this)">长期</input>
-                        </div>
-                    </div>
-                    <div class="form-group">
-                        <#avatar id="bImg1" avatarImg="${item.beneficiaryFront}" name="*受益人身份证正面照" />
-                    </div>
-                </div>
-                <div class="col-lg-6" >
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">*受益人身份证号:</label>
+                    <div class="form-group" hidden id="aliNumber">
+                        <label class="col-sm-3 control-label">*支付宝账号:</label>
                         <div class="col-sm-9" >
-                            <input style="width: 300px" class="form-control" id="bIDNumber" value="${item.beneficiaryNumber}"  placeholder="请输入" type="text">
+                            <input style="width: 300px" class="form-control" id="alipayAccount" value=""  placeholder="请输入" type="text">
                         </div>
                     </div>
-                    <div class="form-group">
-                        <#avatar id="bImg2" avatarImg="${item.beneficiaryBack}" name="*受益人身份证背面照" />
-                    </div>
-                </div>
-            </div>
-            @if(reasons != null){
-            <div class="row" id="reasons">
-                <div class="col-lg-6" >
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">*拒绝理由:</label>
-                        <div class="col-sm-9">
-                            <h3 style="color: red">${item.refuseReason}</h3>
+                    <div id="banks">
+                        <div class="form-group" >
+                            <label class="col-sm-3 control-label">*银行卡号:</label>
+                            <div class="col-sm-9" >
+                                <input style="width: 300px" class="form-control" id="bankCard" value=""  placeholder="请输入" type="text">
+                            </div>
+                        </div>
+                        <div class="form-group">
+                            <label class="col-sm-4 control-label" >
+                                账号使用类型:<input checked type="radio" name="useType" value="01" >对公
+                                <input  type="radio" name="useType" value="02" >对私
+                            </label>
+                        </div>
+                        <div class="form-group">
+                            <label class="col-sm-4 control-label" >
+                                银行卡类型:<input checked type="radio" name="cardType" value="DC" onclick="updateHalf(2)">借记卡
+                                <input  type="radio" name="cardType" value="CC" onclick="updateHalf(1)">信用卡
+                            </label>
+                        </div>
+                        <div class="form-group">
+                            <label class="col-sm-3 control-label">*开户银行:</label>
+                            <div class="col-sm-9">
+                                <input style="width: 300px" class="form-control" id="bankName" value=""  placeholder="请输入(例:中国农业银行)" type="text">
+                            </div>
+                        </div>
+                        <div class="form-group" >
+                            <label class="col-sm-3 control-label">*开户支行名称:</label>
+                            <div class="col-sm-9" >
+                                <input style="width: 300px" class="form-control" id="bankName1" value=""  placeholder="请输入" type="text">
+                            </div>
+                        </div>
+                        <div class="form-group" >
+                            <label class="col-sm-3 control-label">*开户名称:</label>
+                            <div class="col-sm-9" >
+                                <input style="width: 300px" class="form-control" id="bankUserName" value=""  placeholder="请输入" type="text">
+                            </div>
+                        </div>
+                        <div class="form-group" id="provinceCode">
+                            <label class="col-sm-3 control-label">*开户行所在省:</label>
+                            <div class="col-sm-9">
+                                <select style="width: 300px" class="form-control" id="pCode" name="pCode" onchange="TSite.oneChange2(this)">
+                                    <option value="">请选择省</option>
+                                    @for(obj in list){
+                                    <option style="width: 300px" value="${obj.code}">${obj.name}</option>
+                                    @}
+                                </select>
+                            </div>
+                        </div>
+                        <div class="form-group" id="cityCode">
+                            <label class="col-sm-3 control-label">*开户行所在市:</label>
+                            <div class="col-sm-9">
+                                <select style="width: 300px" class="form-control" id="cCode" name="cCode" >
+                                    <option value="">请选择市</option>
+                                </select>
+                            </div>
                         </div>
                     </div>
                 </div>
             </div>
-            @}
-            @if(code != null){
-            @if(type==1){
-            <label class="col-sm-3 control-label">请使用手机支付宝扫描下方二维码完成进一步认证</label>
-            <img src="${code}">
-            @}
-            @}
             <div class="form-group">
                 <div class="row btn-group-m-t">
                     <div class="col-sm-10 col-sm-offset-5" >
@@ -268,77 +213,16 @@
 <link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
 <script>
     function updateHalf(e) {
-        if(e==1){
-            console.log("隐藏")
-            $("#benefit").hide()
-        }else {
+        if(e==3){
             console.log("展示")
-            $("#benefit").show()
+            $("#banks").show()
+            $("#aliNumber").hide()
+        }else if (e==4){
+            // 结算到支付宝账号
+            console.log("隐藏")
+            $("#banks").hide()
+            $("#aliNumber").show()
         }
-    }
-    window.onload = function(){
-        if ("${item.orderStatus}"=="AUDIT_PASS"){
-            $("#reasons").hide()
-        }else{
-            $("#reasons").show()
-        }
-        if ("${item.orderStatus}"==null){
-            $("#reasons").hide()
-        }
-        console.log("${bodyType}")
-        var OBJradio=document.getElementsByName("bodyType")
-        var type=document.getElementsByName("type")
-        console.log("回显")
-        if ("${bodyType}" != 0){
-            console.log("进入")
-            if("${bodyType}"=="ENTERPRISE"){
-                OBJradio[0].checked=true
-                $("#benefit").show()
-                // 受益人身份证有效期
-                var IDCardE = document.getElementById("IDCardE");
-                var IDCardEnd = document.getElementById('IDCardEnd');
-                if ("${item.legalEnd}" == "forever"){
-                    IDCardE.checked=true;
-                    IDCardEnd.disabled = true;
-                    IDCardEnd.value="";
-                }
-                if ("${item.isBeneficiary}" == "true"){
-                    type[0].checked=true
-                }else{
-                    type[1].checked=true
-                }
-            }else {
-                OBJradio[1].checked=true
-                $("#benefit").hide()
-            }
-        }
-
-        // 营业执照有效结束期
-        var bunessTime = document.getElementById("tradeE");
-        var endTime = document.getElementById('endTime');
-        if ("${item.businessEnd}" == "forever"){
-            bunessTime.checked=true;
-            endTime.disabled = true;
-            endTime.value="";
-        }
-        // 法人身份证有效期
-        var IDCardE = document.getElementById("IDCardE");
-        var IDCardEnd = document.getElementById('IDCardEnd');
-        if ("${item.legalEnd}" == "forever"){
-            IDCardE.checked=true;
-            IDCardEnd.disabled = true;
-            IDCardEnd.value="";
-        }
-        // 受益人身份证有效期
-        var bEnd = document.getElementById("bEnd");
-        var bIDCardT = document.getElementById('bIDCardT');
-        if ("${item.beneficiaryEnd}" == "forever"){
-            bIDCardT.checked=true;
-            bEnd.disabled = true;
-            bEnd.value="";
-        }
-
-
     }
 </script>
 @}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth_info.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth_info.html
new file mode 100644
index 0000000..11420bb
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth_info.html
@@ -0,0 +1,283 @@
+@layout("/common/_container.html"){
+<style>
+    .avatar-uploader .el-upload {
+        border: 1px dashed #d9d9d9;
+        border-radius: 6px;
+        cursor: pointer;
+        position: relative;
+        height: 100px;
+        width: 100px;
+        overflow: hidden;
+    }
+
+    .avatar-uploader .el-upload:hover {
+        border-color: #409EFF;
+    }
+    .avatar-uploader-icon {
+        font-size: 28px;
+        color: #8c939d;
+        width: 100px;
+        height: 100px;
+        line-height: 100px;
+        margin-top: 32px;
+        text-align: center;
+    }
+    .avatar {
+        width: 100px;
+        height: 100px;
+        display: block;
+    }
+
+    .col-sm-12 {
+        margin-top: 20px;
+    }
+
+    .col-sm-12 select {
+        height: 33px;
+    }
+    #app1{
+        margin-left: 255px;
+    }
+
+
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <div class="form-horizontal" id="carInfoForm">
+            <h2>商户信息</h2>
+            <div style="display: flex">
+                <span>运营商名称:</span><span>${data.name}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                <span>管理员姓名:</span><span>${user.name}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                <span>管理员电话:</span><span>${user.phone}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+            </div>
+            <h2>商户号信息</h2>
+            </br>
+            </br>
+            <input hidden id="id" value="${id}">
+            <div class="row">
+                <div class="col-lg-6" style="">
+                    <div class="form-group">
+                        <label class="col-sm-4 control-label" >
+                            商户类型:<input checked type="radio" name="bodyType" value="01" onclick="updateHalf(2)">企业
+                            <input  type="radio" name="bodyType" value="07" onclick="updateHalf(1)">个人
+                        </label>
+                    </div>
+                    <div class="form-group" >
+                        <label class="col-sm-3 control-label">*商户名称(一般与证件名称相同):</label>
+                        <div class="col-sm-9">
+                            <input style="width: 300px" class="form-control" value="${item.businessName}" id="businessName"  placeholder="请输入商户名称" type="text">
+                        </div>
+                    </div>
+                    <div class="form-group" >
+                        <label class="col-sm-3 control-label">*商户别名(支付宝账单显示的商户名称):</label>
+                        <div class="col-sm-9">
+                            <input style="width: 300px" class="form-control" value="${item.aliasName}" id="aliasName"  placeholder="请输入商户别名" type="text">
+                        </div>
+                    </div>
+
+                    <div class="form-group" >
+                        <label class="col-sm-3 control-label">*联系人姓名:</label>
+                        <div class="col-sm-9">
+                            <input style="width: 300px" class="form-control" value="${item.name}" id="name"  placeholder="请输入" type="text">
+                        </div>
+                    </div>
+                    <div class="form-group" >
+                        <label class="col-sm-3 control-label">*联系人电话:</label>
+                        <div class="col-sm-9">
+                            <input style="width: 300px" class="form-control" value="${item.phone}" id="phone"  placeholder="请输入" type="text">
+                        </div>
+                    </div>
+                        <div class="form-group" >
+                            <label class="col-sm-3 control-label">*法人姓名:</label>
+                            <div class="col-sm-9" >
+                                <input style="width: 300px" class="form-control" id="legalPerson" value="${item.legalPerson}"  placeholder="请输入" type="text">
+                            </div>
+                        </div>
+                        <div class="form-group">
+                            <label class="col-sm-3 control-label">*法人身份证号:</label>
+                            <div class="col-sm-9">
+                                <input style="width: 300px" class="form-control" value="${item.leagleNumber}" id="leagleNumber"  placeholder="请输入" type="text">
+                            </div>
+                        </div>
+                        <div class="form-group">
+                            <#avatar id="IDCardImg" name="*法人身份证正面照" avatarImg="${item.legalFront}" />
+                        </div>
+                        <div class="form-group">
+                            <#avatar id="IDCardImg1" name="*法人身份证背面照" avatarImg="${item.legalBack}" />
+                        </div>
+
+                    <div class="form-group" >
+                        <label class="col-sm-3 control-label">*签约支付宝账号:</label>
+                        <div class="col-sm-9" >
+                            <input style="width: 300px" class="form-control" id="zfbAccount" value="${item.zfbAccount}"  placeholder="请输入" type="text">
+                        </div>
+                    </div>
+                </div>
+                <div class="col-lg-6" style="">
+                    <div class="form-group" >
+                        <label class="col-sm-3 control-label">*营业执照编号:</label>
+                        <div class="col-sm-9" >
+                            <input style="width: 300px" class="form-control" id="businessNumber" value="${item.businessNumber}"  placeholder="请输入" type="text">
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <#avatar id="license" name="*营业执照" avatarImg="${item.certImage}" />
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-4 control-label" >
+                            结算账户类型:<input checked type="radio" name="accountType" value="bankCard" onclick="updateHalf(3)">银行卡
+                            <input  type="radio" name="accountType" value="alipayAccount" onclick="updateHalf(4)">支付宝账号
+                        </label>
+                    </div>
+                    <div class="form-group" hidden id="aliNumber">
+                        <label class="col-sm-3 control-label">*支付宝账号:</label>
+                        <div class="col-sm-9" >
+                            <input style="width: 300px" class="form-control" id="alipayAccount" value="${item.alipayAccount}"  placeholder="请输入" type="text">
+                        </div>
+                    </div>
+                    <div id="banks">
+                        <div class="form-group" >
+                            <label class="col-sm-3 control-label">*银行卡号:</label>
+                            <div class="col-sm-9" >
+                                <input style="width: 300px" class="form-control" id="bankCard" value="${item.bankCard}"  placeholder="请输入" type="text">
+                            </div>
+                        </div>
+                        <div class="form-group">
+                            <label class="col-sm-4 control-label" >
+                                账号使用类型:<input checked type="radio" name="useType" value="01" >对公
+                                <input  type="radio" name="useType" value="02" >对私
+                            </label>
+                        </div>
+                        <div class="form-group">
+                            <label class="col-sm-4 control-label" >
+                                银行卡类型:<input checked type="radio" name="cardType" value="DC" onclick="updateHalf(2)">借记卡
+                                <input  type="radio" name="cardType" value="CC" onclick="updateHalf(1)">信用卡
+                            </label>
+                        </div>
+                        <div class="form-group">
+                            <label class="col-sm-3 control-label">*开户银行:</label>
+                            <div class="col-sm-9">
+                                <input style="width: 300px" class="form-control" id="bankName" value="${item.bankName}"  placeholder="请输入(例:中国农业银行)" type="text">
+                            </div>
+                        </div>
+                        <div class="form-group" >
+                            <label class="col-sm-3 control-label">*开户支行名称:</label>
+                            <div class="col-sm-9" >
+                                <input style="width: 300px" class="form-control" id="bankName1" value="${item.bankNameTwo}"  placeholder="请输入" type="text">
+                            </div>
+                        </div>
+                        <div class="form-group" >
+                            <label class="col-sm-3 control-label">*开户名称:</label>
+                            <div class="col-sm-9" >
+                                <input style="width: 300px" class="form-control" id="bankUserName" value="${item.accountName}"  placeholder="请输入" type="text">
+                            </div>
+                        </div>
+                        <div class="form-group" id="provinceCode">
+                            <label class="col-sm-3 control-label">*开户行所在省:</label>
+                            <div class="col-sm-9">
+                                <select style="width: 300px" class="form-control" id="pCode" name="pCode" onchange="TSite.oneChange2(this)">
+                                    @for(obj in list4){
+                                    <option style="width: 300px" value="${obj.code}" ${obj.code == item.provinceCode ? 'selected=selected' : ''}>${obj.name}</option>
+                                    @}
+                                </select>
+                            </div>
+                        </div>
+                        <div class="form-group" id="cityCode">
+                            <label class="col-sm-3 control-label">*开户行所在市:</label>
+                            <div class="col-sm-9">
+                                <select style="width: 300px" class="form-control" id="cCode" name="cCode" >
+                                    @for(obj in list5){
+                                    <option style="width: 300px" value="${obj.code}" ${obj.code == item.cityCode ? 'selected=selected' : ''}>${obj.name}</option>
+                                    @}
+                                </select>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            @if(reasons != null && reasons!=""){
+            <div class="row" id="reasons">
+                <div class="col-lg-6" >
+                    <div class="form-group">
+                        <label class="col-sm-3 control-label">*拒绝理由:</label>
+                        <div class="col-sm-9">
+                            <h3 style="color: red">${item.refuseReason}</h3>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            @}
+            <div class="form-group">
+                <div class="row btn-group-m-t">
+                    <div class="col-sm-10 col-sm-offset-5" >
+                        <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSite.addSubmit()"/>
+                        <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSite.close()"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<script src="${ctxPath}/modular/system/operatorUser/operatorUser.js"></script>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+<script>
+    function updateHalf(e) {
+        if(e==3){
+            console.log("展示")
+            $("#banks").show()
+            $("#aliNumber").hide()
+        }else if (e==4){
+            // 结算到支付宝账号
+            console.log("隐藏")
+            $("#banks").hide()
+            $("#aliNumber").show()
+        }
+    }
+    window.onload = function(){
+        console.log("${accountType}")
+        console.log("${useType}")
+        console.log("${cardType}")
+        var accountType = "${accountType}";
+        var useType = "${useType}";
+        var cardType = "${cardType}";
+        var OBJradio=document.getElementsByName("bodyType")
+        var type=document.getElementsByName("type")
+        if("${bodyType}"=="01"){
+            OBJradio[0].checked=true
+        }else {
+            OBJradio[1].checked=true
+        }
+        // 如果结算账户选择银行卡
+        var OBJradio1=document.getElementsByName("accountType")
+        if (accountType!="alipayAccount"){
+            $("#aliNumber").hide();
+            OBJradio1[0].checked=true
+            $("#banks").show();
+        }else{
+            OBJradio1[1].checked=true
+            $("#aliNumber").show();
+            $("#banks").hide();
+        }
+        // 账户使用类型
+        var OBJradio2=document.getElementsByName("useType")
+        if (useType=="01"){
+            OBJradio2[0].checked=true
+        }else{
+            OBJradio2[1].checked=true
+        }
+        // 银行卡类型
+        var OBJradio3=document.getElementsByName("cardType")
+        if (cardType=="DC"){
+            OBJradio3[0].checked=true
+        }else{
+            OBJradio3[1].checked=true
+        }
+
+    }
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html
index adb41d3..f34b0b5 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html
@@ -9,7 +9,6 @@
                 <div class="row row-lg">
                     <div class="col-sm-12">
                         <div class="row">
-
                             <div class="col-sm-3">
                                 <#NameCon id="name" name="管理员姓名:" />
                             </div>
@@ -44,7 +43,6 @@
                                     </select>
                                 </div>
                             </div>
-
                             <div class="col-sm-3">
                                 <div class="input-group">
                                     <div class="input-group-btn open">
@@ -56,13 +54,8 @@
                                         <option value="">全部</option>
                                         <option value="0">未认证</option>
                                         <option value="1">审核中</option>
-                                        <option value="2">待联系人确认</option>
-                                        <option value="3">待法人确认</option>
-                                        <option value="4">审核通过</option>
-                                        <option value="5">审核失败</option>
-                                        <option value="6">已冻结</option>
-                                        <option value="7">已撤回</option>
-                                        <option value="8">联系人处理中</option>
+                                        <option value="2">审核通过</option>
+                                        <option value="3">审核失败</option>
                                     </select>
                                 </div>
                             </div>
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js b/cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js
index 72f8003..e376ae5 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js
@@ -96,6 +96,22 @@
     }
 };
 /**
+ * 商户号认证页面回显
+ */
+TSite.auth1 = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: "商户认证详情",
+            area: ['100%', '100%'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/operator/proportionAuth1/' + TSite.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+/**
  * 分账比例
  */
 TSite.proportion = function () {
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js b/cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js
index 2c02a4b..c9b08b3 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js
@@ -40,7 +40,7 @@
         {title: '分账比例', field: 'proportion', visible: true, align: 'center', valign: 'middle'},
         {title: '审核状态', field: 'audit', visible: true, align: 'center', valign: 'middle',
             formatter:function (data) {
-                return {0:"未认证",1:"审核中",2:"待联系人确认",3:"待法人确认",4:"审核通过",5:"审核失败",6:"已冻结",7:"已撤回",8:"联系人处理中"}[data]
+                return {0:"未认证",1:"待审核",2:"审核通过",3:"审核失败"}[data]
             }
         },
         {title: '操作', field: 'audit', visible: true, align: 'center', valign: 'middle',
@@ -50,7 +50,7 @@
                     var str = '<button class="btn btn-outline btn-primary" onclick="TSite.auth('+row.operatorId+')" >去认证</button>'
                     btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="" onfocus="TUser.tooltip()">' + str + '</p>']
                 }else {
-                    var str = '<button class="btn btn-outline btn-primary" onclick="TSite.auth(' + row.operatorId + ')" >详情</button>'
+                    var str = '<button class="btn btn-outline btn-primary" onclick="TSite.auth1(' + row.operatorId + ')" >详情</button>'
                     btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="" onfocus="TUser.tooltip()">' + str + '</p>']
                 }
                 return btn;
@@ -71,13 +71,28 @@
         this.layerIndex = index;
     }
 };
+/**
+ * 商户号认证页面回显
+ */
+TSite.auth1 = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: "商户认证详情",
+            area: ['100%', '100%'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/operator/proportionAuth1/' + TSite.seItem.operatorId
+        });
+        this.layerIndex = index;
+    }
+};
 TSite.proportion = function () {
     var selected = $('#' + this.id).bootstrapTable('getSelections');
     if(selected.length >1 ){
         Feng.info("只能选择一个运营商商户设置分账比例!");
     }else {
         if (this.check()) {
-
             var index = layer.open({
                 type: 2,
                 title: "认证",
@@ -93,23 +108,12 @@
 TSite.commit = function(){
     var alipayProportion  = $("#alipayProportion").val();
     var wechatProportion  = $("#wechatProportion").val();
-    if($("#alipayNum").val()=='' ){
+    if($("#alipayProportion").val()=='' ){
         Feng.info("请输入支付宝分账比例")
         return;
     }
-    if($("#wechatNum").val()=='' ){
+    if($("#wechatProportion").val()=='' ){
         Feng.info("请输入微信分账比例")
-        return;
-    }
-    if (Number(alipayProportion)+Number(wechatProportion)!=100){
-        Feng.info("总比例应该是100%,当前比例:"+Number(Number(alipayProportion)+Number(wechatProportion)));
-        return;
-    }
-
-    var ali = $("#alipayProportion").val()
-    var wechat = $("#wechatProportion").val()
-    if(Number(ali)+Number(wechat)!=100){
-        Feng.success("总比例需为100%!");
         return;
     }
     //提交信息
@@ -127,14 +131,78 @@
     ajax.set("wechatNum",        $("#wechatNum").val()    );
     ajax.start();
 };
-
+// 银行卡使用
+TSite.oneChange2 = function (e) {
+    var oneId=$(e).val();
+    console.log(oneId)
+    console.log("!!!!!!!!!!!!!")
+    var ajax = new $ax(Feng.ctxPath + "/tCompetition/onChange3", function(data){
+        if(data!=null){
+            var content='<option value="">选择市</option>';
+            $.each(data, function(k,v) {
+                content += "<option value='"+v.code+"'>"+v.name+"</option>";
+            });
+            $("#cCode").empty().append(content);
+        }
+    });
+    ajax.set("oneId",oneId);
+    ajax.start();
+};
+// 经营地址使用
+TSite.oneChange6 = function (e) {
+    var oneId=$(e).val();
+    console.log(oneId)
+    console.log("!!!!!!!!!!!!!")
+    var ajax = new $ax(Feng.ctxPath + "/tCompetition/onChange3", function(data){
+        if(data!=null){
+            var content='<option value="">选择市</option>';
+            $.each(data, function(k,v) {
+                content += "<option value='"+v.code+"'>"+v.name+"</option>";
+            });
+            $("#bcCode").empty().append(content);
+        }
+    });
+    ajax.set("oneId",oneId);
+    ajax.start();
+};
+// 经营地址使用
+TSite.twoChange = function (e) {
+    var oneId=$(e).val();
+    console.log(oneId)
+    console.log("!!!!!!!!!!!!!")
+    var ajax = new $ax(Feng.ctxPath + "/operator/getDistrict", function(data){
+        if(data!=null){
+            var content='<option value="">选择区(县)</option>';
+            $.each(data, function(k,v) {
+                content += "<option value='"+v.code+"'>"+v.name+"</option>";
+            });
+            $("#bdCode").empty().append(content);
+        }
+    });
+    ajax.set("cityCode",oneId);
+    ajax.start();
+};
 TSite.addSubmit = function(){
-
     var bodyType = $("input[name='bodyType']:checked").val();
-    var accountType = $("input[name='accountType']:checked").val();
     var type = $("input[name='type']:checked").val();
     if (bodyType=="" || null == bodyType){
         Feng.error("请选择主体类型");
+        return;
+    }
+    if ("" == $("#businessName").val() ){
+        Feng.error("请输入商户名称");
+        return;
+    }
+    if ("" == $("#aliasName").val() ){
+        Feng.error("请输入商户别名");
+        return;
+    }
+    if ("" == $("#businessNumber").val() ){
+        Feng.error("请输入营业执照编号");
+        return;
+    }
+    if ("" == $("#businessNumber").val() ){
+        Feng.error("请上传营业执照");
         return;
     }
     if ("" == $("#name").val() ){
@@ -145,186 +213,119 @@
         Feng.error("请输入联系人电话");
         return;
     }
-    if ("" == $("#number").val() ){
-        Feng.error("请输入联系人身份证号");
-        return;
-    }
-    var platform = $("input[name='platform']:checked").val();
-
-    if ("" == $("#merchantName").val() ){
-        Feng.error("请输入营业执照商户名称");
-        return;
-    }
-    if ("" == $("#lrName").val() ){
-        Feng.error("请输入法定代表人姓名");
-        return;
-    }
-    var tradeT = document.getElementById("tradeE");
-    if (!tradeT.checked){
-        if ("" == $("#endTime").val() || null == $("#endTime").val()){
-            Feng.error("请输入营业证照过期时间");
-            return;
-        }
-    }
-    if ("" == $("#tradeTime").val() || null == $("#tradeTime").val()){
-        Feng.error("请输入营业执照生效期间");
-        return;
-    }
-    if ("" == $("#licenseRegistration").val() ){
-        Feng.error("请输入营业执照注册号");
-        return;
-    }
-    if ("" == $("#registerAddress").val() ){
-        Feng.error("请输入注册地址");
-        return;
-    }
     if ("" == $("#legalPerson").val()){
         Feng.error("请输入法人姓名");
         return;
-    }if ("" == $("#legalPhone").val()){
-        Feng.error("请输入法人手机号");
-        return;
     }
-    var IDCardT = document.getElementById("IDCardE");
-    if (!IDCardT.checked){
-        if ("" == $("#IDCardTime").val() || null == $("#IDCardTime").val()){
-            Feng.error("请输入法人身份证结束时间");
-            return;
-        }
-    }
-    if ("" == $("#IDCardTime").val()){
-        Feng.error("请输入法人身份证开始时间");
-        return;
-    }
+
     if ("" == $("#lIDNumber").val()){
         Feng.error("请输入法人身份证号");
         return;
-    }if ("" == $("#lEmail").val()){
-        Feng.error("请输入法人邮箱");
-        return;
-    }if ("" == $("#lIDAddress").val()){
-        Feng.error("请输入法人身份证地址");
+    }
+    if ("" == $("#zfbAccount").val()){
+        Feng.error("请输入签约支付宝账号");
         return;
     }
-    if(bodyType=="ENTERPRISE"){
-        if ("" == $("#bName").val()){
-            Feng.error("请输入受益人姓名");
+    // 结算账户类型
+    var accountType = $("input[name='accountType']:checked").val();
+    // 结算到银行卡
+    if (accountType == "bankCard"){
+        if ("" == $("#bankCard").val()){
+            Feng.error("请输入银行卡号");
             return;
         }
-        if ("" == $("#bAddress").val()){
-            Feng.error("请输入受益人身份证地址");
+        if ("" == $("#bankName").val()){
+            Feng.error("请选择开户银行");
             return;
         }
-        var bIDCardT = document.getElementById("bIDCardT");
-        if (!bIDCardT.checked){
-            if ("" == $("#bEnd").val()){
-                Feng.error("请输入受益人身份证结束时间");
-                return;
-            }
-        }
-        if ("" == $("#bTime").val()){
-            Feng.error("请输入受益人身份证开始时间");
+        if ("" == $("#bankName1").val()){
+            Feng.error("请输入开户支行名称");
             return;
         }
-
-        if ("" == $("#bIDNumber").val()){
-            Feng.error("请输入受益人身份证号");
+        if ("" == $("#bankUserName").val()){
+            Feng.error("请输入开户名称");
             return;
         }
-
+        if ("" == $("#pCode").val()){
+            Feng.error("请选择开户银行所在省");
+            return;
+        }
+        if ("" == $("#cCode").val()){
+            Feng.error("请选择开户银行所在市");
+            return;
+        }
+    }else{
+        // 结算到支付宝
+        if ("" == $("#alipayAccount").val()){
+            Feng.error("请输入支付宝账号");
+            return;
+        }
     }
+
 
     //提交信息
     var ajax = new $ax(Feng.ctxPath + "/operator/auth", function(data){
         if (data==5001){
             Feng.error("未上传营业执照!");
+            return;
         }else if(data==5002){
             Feng.error("未上传法人身份证正面照!");
+            return;
         }else if(data==5003){
             Feng.error("未上传法人身份证背面照!");
-        }else if(data==5004){
-            Feng.error("未上传受益人身份证正面照!");
-        }else if(data==5005){
-            Feng.error("未上传受益人身份证背面照!");
+            return;
+        }else if(data==5007){
+            Feng.error("输入的开户银行名称有误!");
+            return;
+        } else if (data.code==500){
+            console.log(data)
+            Feng.error("认证失败:"+data.msg);
+            return;
         }else{
-            Feng.success("操作成功!");
+            Feng.success("认证成功!请等待支付宝审核");
             window.parent.TSite.table.refresh();
             TSite.close();
         }
     },function(data){
         Feng.error("操作失败!");
     });
-    ajax.set("operatorId",        $("#id").val()    );
-    ajax.set("bodyType",        bodyType    );
-    ajax.set("type",        platform    );
-    ajax.set("businessName",        $("#merchantName").val()    );
-    ajax.set("businessNumber",        $("#licenseRegistration").val()    );
-    ajax.set("legalRepresentative",        $("#lrName").val()    );
-    ajax.set("registerAddress",        $("#registerAddress").val()    );
-    if ($("#endTime").val()==""){
-        ajax.set("businessEnd","forever");
-    }else{
-        ajax.set("businessEnd",$("#endTime").val());
-    }
-    if ($("#IDCardEnd").val()==""){
-        ajax.set("legalEnd","forever");
-        ajax.set("lpIcForeverFlag", 0);
-    }else{
-        ajax.set("legalEnd",$("#IDCardEnd").val());
-        ajax.set("lpIcForeverFlag", 1);
-    }
-
-    if(bodyType=="ENTERPRISE"){
-        if ($("#bEnd").val()==""){
-            console.log("永远")
-            ajax.set("beneficiaryEnd","forever");
-
-        }else{
-            console.log("嗯嗯嗯")
-            ajax.set("beneficiaryEnd",$("#bEnd").val());
-        }
-    }
-
-    var tradeT = document.getElementById('tradeE');
-    if (tradeT.checked) {
-        endTime.disabled = true;
-        endTime.value="";
-        ajax.set("blBusinessFoeverFlag", 1);
-    } else {
-        ajax.set("blBusinessFoeverFlag", 0);
-        endTime.disabled = false;
-    }
-    ajax.set("businessTerm",        $("#tradeTime").val()    );
+    ajax.set("operatorId",        $("#id").val());
+    ajax.set("bodyType",        bodyType );
+    ajax.set("businessName",        $("#businessName").val());
+    ajax.set("aliasName",        $("#aliasName").val());
+    ajax.set("businessNumber",        $("#businessNumber").val()    );
+    ajax.set("license",        $("#license").val()    );
     ajax.set("name",        $("#name").val()    );
     ajax.set("phone",        $("#phone").val()    );
-    ajax.set("number",        $("#number").val()    );
-    ajax.set("businessPicture",        $("#license").val()    );
+    ajax.set("shopProvinceCode",        $("#bpCode").val()    );
+    ajax.set("shopProvince",        $('#bpCode option:selected').text());
+    ajax.set("shopCityCode",        $("#bcCode").val()    );
+    ajax.set("shopCity",        $('#bcCode option:selected').text());
+    ajax.set("shopDistrictCode",        $("#bdCode").val()    );
+    ajax.set("shopDistrict",        $('#bdCode option:selected').text());
+    ajax.set("registerAddress",        $("#registerAddress").val()    );
     ajax.set("legalPerson",        $("#legalPerson").val()    );
-    ajax.set("legalNumber",        $("#lIDNumber").val()    );
-    ajax.set("legalPhone",        $("#legalPhone").val()    );
-    ajax.set("legalEmail",        $("#lEmail").val()    );
-    ajax.set("legalTerm",        $("#IDCardTime").val()    );
-    ajax.set("legalAddress",        $("#lIDAddress").val()    );
+    ajax.set("leagleNumber",        $("#leagleNumber").val()    );
     ajax.set("legalFront",        $("#IDCardImg").val()    );
     ajax.set("legalBack",        $("#IDCardImg1").val()    );
     ajax.set("accountType",        accountType    );
-    ajax.set("bank",        $("#bank").val()    );
-    ajax.set("accountName",        $("#backUserName").val()    );
-    ajax.set("province",        $('#pCode option:selected').text()   );
+    ajax.set("alipayAccount",        $("#alipayAccount").val()    );
+    ajax.set("bankCard",        $("#bankCard").val()    );
+    // 结算账户类型
+    var useType = $("input[name='useType']:checked").val();
+    ajax.set("useType",        useType    );
+    // 银行卡类型
+    var cardType = $("input[name='cardType']:checked").val();
+    ajax.set("cardType",        cardType    );
+    ajax.set("bankName",        $("#bankName").val()    );
+    ajax.set("bankNameTwo",        $("#bankName1").val()    );
+    ajax.set("accountName",        $("#bankUserName").val()    );
     ajax.set("provinceCode",        $("#pCode").val()    );
-    ajax.set("city",        $('#cCode option:selected').text()    );
+    ajax.set("province",        $('#pCode option:selected').text());
     ajax.set("cityCode",        $("#cCode").val()    );
-    ajax.set("bankName",        $("#backName").val()    );
-    ajax.set("bankNumber",        $("#backNumber").val()    );
-    ajax.set("isBeneficiary",        type    );
-    ajax.set("beneficiary",        $("#bName").val()    );
-    ajax.set("beneficiaryPhone",        $("#bPhone").val()    );
-    ajax.set("beneficiaryNumber",        $("#bIDNumber").val()    );
-    ajax.set("beneficiaryAddress",        $("#bAddress").val()    );
-    ajax.set("beneficiaryTerm",        $("#bTime").val()    );
-    ajax.set("beneficiaryFront",        $("#bImg1").val()    );
-    ajax.set("beneficiaryBack",        $("#bImg2").val()    );
-    ajax.set("remark",        $("#remark").val()    );
+    ajax.set("city",        $('#cCode option:selected').text());
+    ajax.set("iqImage",        $("#iqImage").val()    );
+    ajax.set("zfbAccount",        $("#zfbAccount").val()    );
     ajax.start();
 };
 /**
@@ -435,7 +436,6 @@
 
 
 $(function () {
-
     var defaultColunms = TSite.initColumn();
     var table = new BSTable(TSite.id, "/operatorUser/listAll", defaultColunms);
     table.setPaginationType("client");
@@ -446,6 +446,9 @@
     var c4 = new $WebUpload("bImg1");
     var c5 = new $WebUpload("bImg2");
     var c6 = new $WebUpload("Img");
+    var inDoorImages = new $WebUpload("inDoorImages");
+    var outDoorImages = new $WebUpload("outDoorImages");
+    var iqImage = new $WebUpload("iqImage");
     c1.setUploadBarId("progressBar");
     c1.init();
     c2.setUploadBarId("progressBar");
@@ -458,4 +461,10 @@
     c5.init();
     c6.setUploadBarId("progressBar");
     c6.init();
+    inDoorImages.setUploadBarId("progressBar");
+    inDoorImages.init();
+    outDoorImages.setUploadBarId("progressBar");
+    outDoorImages.init();
+    iqImage.setUploadBarId("progressBar");
+    iqImage.init();
 });
diff --git a/cloud-server-other/pom.xml b/cloud-server-other/pom.xml
index a0a4e2b..178af5d 100644
--- a/cloud-server-other/pom.xml
+++ b/cloud-server-other/pom.xml
@@ -104,7 +104,7 @@
         <dependency>
             <groupId>com.alipay.sdk</groupId>
             <artifactId>alipay-sdk-java</artifactId>
-            <version>4.8.10.ALL</version>
+            <version>4.38.10.ALL</version>
         </dependency>
     </dependencies>
 
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
index 59e44a1..b17ef77 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
@@ -66,6 +66,15 @@
     private CityManagerClient cityManagerClient;
 
     /**
+     * 通过运营商id查询运营商对应的支付宝商户号
+     */
+    @RequestMapping("/base/getSMIDByOperatorId")
+    @ResponseBody
+    public String getSMIDByOperatorId(Integer id) {
+        // 获取运营商的管理员
+        return siteService.getSMIDByOperatorId(id);
+    }
+    /**
      * 获取所有场地
      */
     @RequestMapping("/base/site/getList")
@@ -340,7 +349,6 @@
         }
     }
 
-
     /**
      * 预约场地支付宝回调
      *
@@ -356,7 +364,8 @@
             if (null != map) {
                 String code = map.get("out_trade_no");
                 String trade_no = map.get("trade_no");
-                SiteBooking siteBooking = siteBookingService.getOne(new QueryWrapper<SiteBooking>().eq("orderNo", code).eq("state", 1));
+                SiteBooking siteBooking = siteBookingService.getOne(new QueryWrapper<SiteBooking>()
+                        .eq("orderNo", code).eq("state", 1));
                 if (siteBooking.getStatus() == 0) {
                     siteBooking.setPayTime(new Date());
                     siteBooking.setStatus(1);
diff --git a/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteMapper.java b/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteMapper.java
index 8d4b6ca..c677a2c 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteMapper.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteMapper.java
@@ -48,4 +48,6 @@
 
     List<TSiteDTO> listExipre(@Param("query") ExpireSiteSearchVO vo);
 
+    String getSMIDByOperatorId(@Param("id")Integer id);
+
 }
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/ISiteService.java b/cloud-server-other/src/main/java/com/dsh/other/service/ISiteService.java
index 004f19f..15295f6 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/ISiteService.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/ISiteService.java
@@ -101,4 +101,6 @@
 
     Object changeState(SiteChangeStateVO vo);
 
+    String getSMIDByOperatorId(Integer id);
+
 }
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
index c35c64a..361a4e5 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
@@ -522,7 +522,7 @@
         return weixinpay;
     }
 
-
+    private String smid = "2088330203191220";//平台支付宝商户号
     /**
      * 课程支付宝支付
      *
@@ -533,7 +533,18 @@
     public ResultUtil aliPaymentSite(Double paymentPrice, SiteBooking siteBooking) throws Exception {
         String code = siteBooking.getOrderNo();
         Integer id = siteBooking.getId();
-        ResultUtil alipay = payMoneyUtil.alipay("预约场地", "预约场地", id.toString(), code, paymentPrice.toString(), "/base/site/aliPaymentSiteCallback");
+        // 判断预约的门店 属于哪个运营商
+        Integer storeId = siteBooking.getStoreId();
+        Store byId = storeService.getById(storeId);
+        Integer operatorId = byId.getOperatorId();
+        String smid1 = "";
+        if (operatorId == null ){
+            // 平台的门店
+            smid1 = smid;
+        }else{
+            smid1 = siteService.getSMIDByOperatorId(operatorId);
+        }
+        ResultUtil alipay = payMoneyUtil.alipay(smid1,"预约场地", "预约场地", id.toString(), code, paymentPrice.toString(), "/base/site/aliPaymentSiteCallback");
         System.out.println("预约场地----" + alipay.getCode());
         if (alipay.getCode() == 200) {
             new Thread(new Runnable() {
@@ -572,6 +583,18 @@
                                     siteBooking.setPayOrderNo(tradeNo);
                                     siteBookingService.updateById(siteBooking);
                                     System.err.println("======完成支付");
+                                    // 判断预约的门店 属于哪个运营商
+                                    Integer storeId = siteBooking.getStoreId();
+                                    Store byId = storeService.getById(storeId);
+                                    Integer operatorId = byId.getOperatorId();
+                                    String smid1 = "";
+                                    if (operatorId == null ){
+                                        // 平台的门店
+                                        smid1 = smid;
+                                    }else{
+                                        smid1 = siteService.getSMIDByOperatorId(operatorId);
+                                    }
+                                    payMoneyUtil.confirm(smid1,code,tradeNo,paymentPrice.toString());
                                     break;
                                 }
                                 if ("WAIT_BUYER_PAY".equals(s)) {
@@ -892,4 +915,9 @@
         return siteMapper.changeState(siteIds, type);
 
     }
+
+    @Override
+    public String getSMIDByOperatorId(Integer id) {
+        return siteMapper.getSMIDByOperatorId(id);
+    }
 }
diff --git a/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java b/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java
index fad56b9..b5519f5 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java
@@ -6,10 +6,9 @@
 import com.alipay.api.AlipayClient;
 import com.alipay.api.CertAlipayRequest;
 import com.alipay.api.DefaultAlipayClient;
-import com.alipay.api.domain.AlipayTradeAppPayModel;
-import com.alipay.api.domain.ExtendParams;
-import com.alipay.api.domain.RoyaltyDetailInfos;
-import com.alipay.api.domain.RoyaltyInfo;
+import com.alipay.api.domain.*;
+import com.alipay.api.msg.AlipayMsgClient;
+import com.alipay.api.msg.MsgHandler;
 import com.alipay.api.request.*;
 import com.alipay.api.response.*;
 import lombok.Synchronized;
@@ -72,12 +71,54 @@
     private String certPath = "C:\\cert\\1523106371_20211206_cert\\apiclient_cert.p12";//微信证书
 
 
+
+
+    public ResultUtil confirm(String smid,String code, String outTradeNo, String amount) {
+
+        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
+                aliAppid,
+                appPrivateKey,
+                "json",
+                "GBK",
+                alipay_public_key,
+                "RSA2");
+        AlipayTradeSettleConfirmRequest request = new AlipayTradeSettleConfirmRequest();
+        request.setBizContent("{" +
+                "  \"out_request_no\":\""+code+"\"," +
+                "  \"trade_no\":\""+outTradeNo+"\"," +
+                "  \"settle_info\":{" +
+                "    \"settle_detail_infos\":[" +
+                "      {" +
+                "        \"trans_in_type\":\"defaultSettle\"," +
+                "        \"settle_entity_id\":\""+smid+"\"," +
+                "        \"settle_entity_type\":\"SecondMerchant\"," +
+                "        \"amount\":"+amount+"," +
+                "      }" +
+                "    ]" +
+                "  }," +
+                "  \"extend_params\":{" +
+                "    \"royalty_freeze\":\"true\"" +
+                "  }" +
+                "}");
+        AlipayTradeSettleConfirmResponse response = null;
+        try {
+            response = alipayClient.execute(request);
+        } catch (AlipayApiException e) {
+            e.printStackTrace();
+        }
+        if(response.isSuccess()){
+            System.out.println("调用成功");
+            return ResultUtil.success();
+        } else {
+            System.out.println("调用失败");
+            return ResultUtil.error("出现问题啦");
+        }
+    }
     /**
      * 支付宝支付
      */
-
-    public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
-//        //构造client
+    public ResultUtil alipay(String smid,String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
+////        //构造client
 //        CertAlipayRequest certAlipayRequest = new CertAlipayRequest ();
 //        //设置网关地址
 //        certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do");
@@ -142,6 +183,21 @@
         model.setTotalAmount(amount);//付款金额
         model.setProductCode("QUICK_MSECURITY_PAY");
         model.setPassbackParams(passbackParams);//自定义参数
+        SettleInfo settleInfo = new SettleInfo();
+        settleInfo.setSettlePeriodTime("3d");
+        SettleDetailInfo settleDetailInfo = new SettleDetailInfo();
+        settleDetailInfo.setTransInType("defaultSettle");
+        settleDetailInfo.setAmount(amount);
+        List<SettleDetailInfo> settleDetailInfos = new ArrayList<>();
+        settleDetailInfos.add(settleDetailInfo);
+        settleInfo.setSettleDetailInfos(settleDetailInfos);
+        model.setSettleInfo(settleInfo);
+        SubMerchant subMerchant = new SubMerchant();
+        subMerchant.setMerchantId(smid);
+        model.setSubMerchant(subMerchant);
+        ExtendParams extendParams = new ExtendParams();
+        extendParams.setRoyaltyFreeze("true");// 冻结资金 用于后续分账处理
+        model.setExtendParams(extendParams);
         request.setBizModel(model);
         request.setNotifyUrl(callbackPath + notifyUrl);
 
diff --git a/cloud-server-other/src/main/resources/mapper/SiteMapper.xml b/cloud-server-other/src/main/resources/mapper/SiteMapper.xml
index 8a54140..68abd26 100644
--- a/cloud-server-other/src/main/resources/mapper/SiteMapper.xml
+++ b/cloud-server-other/src/main/resources/mapper/SiteMapper.xml
@@ -141,4 +141,7 @@
 
         ORDER BY insertTime desc
     </select>
+    <select id="getSMIDByOperatorId" resultType="java.lang.String">
+        select alipayNum from t_operator_user where operatorId = #{id}
+    </select>
 </mapper>

--
Gitblit v1.7.1