puzhibing
2023-06-09 79e8abf8fb0e451fe151af6350d655f9c92727fd
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");