From 831e3312572cf29dd91cbd882ef3dce809ac852d Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 14 六月 2023 20:58:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/1.1' into 1.1

---
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/CashWithdrawalServiceImpl.java |   58 ++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 38 insertions(+), 20 deletions(-)

diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/CashWithdrawalServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/CashWithdrawalServiceImpl.java
index 5d425b6..5500602 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/CashWithdrawalServiceImpl.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/CashWithdrawalServiceImpl.java
@@ -89,13 +89,15 @@
         accountChangeDetail.setUserId(driver.getId());
         accountChangeDetail.setType(1);
         accountChangeDetail.setChangeType(type == 1 ? 4 : 6);
-        accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission());
         if(type == 1){
+            accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance());
             driver.setBalance(driver.getBalance() - money);
+            accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance());
         }else{
+            accountChangeDetail.setOldData(driver.getCommission() + driver.getCouponBalance());
             driver.setCommission(driver.getCommission() - money);
+            accountChangeDetail.setNewData(driver.getCouponBalance() + driver.getCommission());
         }
-        accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission());
         accountChangeDetail.setExplain(type == 1 ? "账户余额提现" : "佣金余额提现");
         driverService.updateById(driver);
         accountChangeDetailService.saveData(accountChangeDetail);
@@ -103,22 +105,38 @@
 
         if(type == 1){//余额提现,调用分账接口 -->确认收货--->提现
             fenzhang(driver, money, cashWithdrawal, 1);
-        }else{//佣金提现,调用充值接口数据进行分账
-            fenzhang(driver, money, cashWithdrawal, 2);
+        }else{//佣金提现,直接提现到银行卡
+            Withdraw withdraw = new Withdraw();
+            withdraw.setUserId(driver.getMerchantNumber());
+            withdraw.setAmount(String.valueOf(Double.valueOf(money * 100).intValue()));
+            withdraw.setOrderName("账户余额提现");
+            withdraw.setRemark("账户余额提现");
+            withdraw.setNotifyUrl(callbackPath + "/base/driver/withdrawCashCallback");
+            withdraw.setParameter1(cashWithdrawal.getId().toString());
+            TrhRequest<Withdraw> request1 = new TrhRequest();
+            InterfaceResponse execute = request1.execute(withdraw, Withdraw.SERVICE_CODE);//结算(提现)
+            if("0000".equals(execute.getCode())){
+                JSONObject jsonObject1 = JSON.parseObject(execute.getResult());
+                String merOrderId1 = jsonObject1.getString("merOrderId");
+                Integer status = jsonObject1.getInteger("status");//0:待处理;1:成功;2:失败
+                if(1 == status){
+                    cashWithdrawal.setOrderNumber(merOrderId1);
+                    cashWithdrawal.setState(2);
+                    this.updateById(cashWithdrawal);
+                }
+                if(2 == status){
+                    System.err.println("结算接口异常【提现】:" + jsonObject1.getString("statusMsg"));
+                }
+            }else{
+                System.err.println("结算接口异常【提现】:" + execute.getMsg());
+            }
         }
-
-//        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
-//        String outDetailNo = sdf.format(new Date()) + cashWithdrawal.getId();
-//
-//        String s = payMoneyUtil.weixinTransferMoney(outDetailNo, money, driver.getOpenid(), driver.getName(), "【超省新代驾】提现付款!");
-//        if(ToolUtil.isEmpty(s)){
-//            return ResultUtil.error("提现异常,请联系管理员");
-//        }
-//        cashWithdrawal.setState(2);
-//        cashWithdrawal.setOrderNumber(s);
-//        this.updateById(cashWithdrawal);
         return ResultUtil.success();
     }
+
+
+
+
 
 
     /**
@@ -161,7 +179,7 @@
                 List<PamentOrderUser> splitList = new ArrayList<>();
                 PamentOrderUser pamentOrderUser = new PamentOrderUser();
                 pamentOrderUser.setSplitUserId(driver.getMerchantNumber());
-                pamentOrderUser.setSplitAmount(amount.toString());
+                pamentOrderUser.setSplitAmount(String.valueOf(Double.valueOf(amount * 100).intValue()));
                 pamentOrderUser.setSplitType("1");
                 splitList.add(pamentOrderUser);
                 complete.setSplitList(splitList);
@@ -213,7 +231,7 @@
                 List<PamentOrderUser> splitList = new ArrayList<>();
                 PamentOrderUser pamentOrderUser = new PamentOrderUser();
                 pamentOrderUser.setSplitUserId(driver.getMerchantNumber());
-                pamentOrderUser.setSplitAmount(surplusDividedAmount.toString());
+                pamentOrderUser.setSplitAmount(String.valueOf(Double.valueOf(surplusDividedAmount * 100).intValue()));
                 pamentOrderUser.setSplitType("1");
                 splitList.add(pamentOrderUser);
                 complete.setSplitList(splitList);
@@ -263,11 +281,11 @@
         Receive receive = new Receive();
         receive.setOriginalMerOrderId(rechargeRecord.getOrderNumber());
         receive.setAsynMerOrderId(divisionRecord.getMerOrderId());
-        receive.setRcvAmount(divisionRecord.getAmount().toString());
+        receive.setRcvAmount(String.valueOf(Double.valueOf(divisionRecord.getAmount() * 100).intValue()));
         List<ReceiveUser> splitList = new ArrayList<>();
         ReceiveUser receiveUser = new ReceiveUser();
         receiveUser.setSplitUserId(driver.getMerchantNumber());
-        receiveUser.setRcvSplitAmount(divisionRecord.getAmount().toString());
+        receiveUser.setRcvSplitAmount(String.valueOf(Double.valueOf(divisionRecord.getAmount() * 100).intValue()));
         splitList.add(receiveUser);
         receive.setSplitList(splitList);
         TrhRequest<Receive> request = new TrhRequest();
@@ -278,7 +296,7 @@
             if(ToolUtil.isNotEmpty(merOrderId)){
                 Withdraw withdraw = new Withdraw();
                 withdraw.setUserId(driver.getMerchantNumber());
-                withdraw.setAmount(divisionRecord.getAmount().toString());
+                withdraw.setAmount(String.valueOf(Double.valueOf(divisionRecord.getAmount() * 100).intValue()));
                 withdraw.setOrderName("账户余额提现");
                 withdraw.setRemark("账户余额提现");
                 withdraw.setNotifyUrl(callbackPath + "/base/driver/withdrawCashCallback");

--
Gitblit v1.7.1