From ddd4919fdd5c5dd4fc96eb99e590403cad58bbd7 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期六, 03 六月 2023 02:03:18 +0800 Subject: [PATCH] 更新支付 --- user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java | 165 +++++++++++++++++++++++++++++++++--------------------- 1 files changed, 101 insertions(+), 64 deletions(-) diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java index 5e7ddfb..8535c55 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java @@ -1009,7 +1009,7 @@ accountChangeDetail.setChangeType(7); accountChangeDetail.setOrderId(order.getId()); accountChangeDetail.setExplain("优惠券收入"); - driver.setCouponBalance(driver.getCouponBalance() + coupon.getCouponPreferentialAmount()); + driver.setCommission(driver.getCommission() + coupon.getCouponPreferentialAmount()); accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); driverService.updateById(driver); accountChangeDetailService.insert(accountChangeDetail); @@ -1077,10 +1077,27 @@ payMoney = payMoney - coupon.getCouponPreferentialAmount(); order.setCouponId(coupon.getId()); order.setDiscountedPrice(coupon.getCouponPreferentialAmount()); + + Driver driver = driverService.selectById(order.getDriverId()); + AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); + accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3)); + accountChangeDetail.setUserType(2); + accountChangeDetail.setUserId(order.getDriverId()); + accountChangeDetail.setCreateTime(new Date()); + accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); + accountChangeDetail.setType(1); + accountChangeDetail.setChangeType(7); + accountChangeDetail.setOrderId(order.getId()); + accountChangeDetail.setExplain("优惠券收入"); + driver.setCommission(driver.getCommission() + coupon.getCouponPreferentialAmount()); + accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); + driverService.updateById(driver); + accountChangeDetailService.insert(accountChangeDetail); } } order.setPayType(1); order.setPayMoney(payMoney); + order.setBalancePayment(payMoney > appUser.getAccountBalance() ? appUser.getAccountBalance() : payMoney); payMoney = payMoney > appUser.getAccountBalance() ? payMoney - appUser.getAccountBalance() : 0D; @@ -1110,7 +1127,7 @@ paymentOrder.setPayType("WX_MINI"); paymentOrder.setTransferType("0"); paymentOrder.setAsynSplitFlag("1"); - paymentOrder.setAppid(""); + paymentOrder.setAppid(appletsAppid); paymentOrder.setOpenid(appUser.getOpenid()); paymentOrder.setTerminalIp(InetAddress.getLocalHost().getHostAddress()); List<PaymentOrderGood> goodsDetail = new ArrayList<>(); @@ -1121,7 +1138,7 @@ paymentOrder.setFrontUrl(callbackPath + "/base/order/orderPayCallback"); paymentOrder.setNotifyUrl(callbackPath + "/base/order/orderPayCallback"); paymentOrder.setParameter1(order.getId().toString()); - paymentOrder.setParameter2(payMoney.toString()); + paymentOrder.setParameter2(accountChangeDetail.getId().toString()); TrhRequest<PaymentOrder> request = new TrhRequest(); InterfaceResponse execute = request.execute(paymentOrder, PaymentOrder.SERVICE_CODE); @@ -1176,7 +1193,7 @@ Double m = accountChangeDetail.getOldData() - accountChangeDetail.getNewData(); AppUser appUser1 = appUserService.selectById(order1.getUserId()); appUser1.setAccountBalance(appUser1.getAccountBalance() + m); - appUserService.updateById(appUser1) + appUserService.updateById(appUser1); accountChangeDetailService.deleteById(accountChangeDetail.getId()); break; } @@ -1191,17 +1208,17 @@ } }).start(); } - - - return ResultUtil.success(payCode); + }else{ + order.setPayType(2); + order.setPayMoney(payMoney); + order.setPayTime(new Date()); + order.setState(108); + this.updateById(order); - + //处理佣金和收入记录 + saveCommission(order); } -// order.setPayTime(new Date()); -// this.updateById(order); - - return ResultUtil.success(); } @@ -1384,11 +1401,11 @@ } break; }else{ - num1_ -= surplusDividedAmount; ResultUtil zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver1.getMerchantNumber(), surplusDividedAmount, callbackPath + "/base/order/zhaunzhangCallback"); if(10000 == zhaunzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(0D); rechargeRecordService.updateById(rechargeRecord); + num1_ -= surplusDividedAmount; }else{ break; } @@ -1446,11 +1463,11 @@ } break; }else{ - num5_ -= surplusDividedAmount; ResultUtil zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver1.getMerchantNumber(), surplusDividedAmount, callbackPath + "/base/order/zhaunzhangCallback"); if(10000 == zhaunzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(0D); rechargeRecordService.updateById(rechargeRecord); + num5_ -= surplusDividedAmount; }else{ break; } @@ -1497,11 +1514,11 @@ } break; }else{ - num6_ -= surplusDividedAmount; ResultUtil zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver2.getMerchantNumber(), surplusDividedAmount, callbackPath + "/base/order/zhaunzhangCallback"); if(10000 == zhaunzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(0D); rechargeRecordService.updateById(rechargeRecord); + num6_ -= surplusDividedAmount; }else{ break; } @@ -1549,11 +1566,11 @@ } break; }else{ - num7_ -= surplusDividedAmount; ResultUtil zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver3.getMerchantNumber(), surplusDividedAmount, callbackPath + "/base/order/zhaunzhangCallback"); if(10000 == zhaunzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(0D); rechargeRecordService.updateById(rechargeRecord); + num7_ -= surplusDividedAmount; }else{ break; } @@ -1603,11 +1620,11 @@ } break; }else{ - num3_1 -= surplusDividedAmount; ResultUtil zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver1.getMerchantNumber(), surplusDividedAmount, callbackPath + "/base/order/zhaunzhangCallback"); if(10000 == zhaunzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(0D); rechargeRecordService.updateById(rechargeRecord); + num3_1 -= surplusDividedAmount; }else{ break; } @@ -1654,11 +1671,11 @@ } break; }else{ - num4_1 -= surplusDividedAmount; ResultUtil zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver2.getMerchantNumber(), surplusDividedAmount, callbackPath + "/base/order/zhaunzhangCallback"); if(10000 == zhaunzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(0D); rechargeRecordService.updateById(rechargeRecord); + num4_1 -= surplusDividedAmount; }else{ break; } @@ -1708,11 +1725,11 @@ } break; }else{ - num2_1 -= surplusDividedAmount; ResultUtil zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver1.getMerchantNumber(), surplusDividedAmount, callbackPath + "/base/order/zhaunzhangCallback"); if(10000 == zhaunzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(0D); rechargeRecordService.updateById(rechargeRecord); + num2_1 -= surplusDividedAmount; }else{ break; } @@ -1749,11 +1766,11 @@ } break; }else{ - num3_1 -= surplusDividedAmount; ResultUtil zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), agent.getMerchantNumber(), surplusDividedAmount, callbackPath + "/base/order/zhaunzhangCallback"); if(10000 == zhaunzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(0D); rechargeRecordService.updateById(rechargeRecord); + num3_1 -= surplusDividedAmount; }else{ break; } @@ -1783,9 +1800,8 @@ accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setExplain("订单收入"); accountChangeDetail.setCreateTime(new Date()); - driver.setCommission(driver.getCommission() + payMoney + order.getDiscountedPrice() + order.getDiscountAmount()); if(null != order.getCouponId()){ - driver.setCouponBalance(driver.getCouponBalance() + order.getDiscountedPrice()); + driver.setCommission(driver.getCommission() + order.getDiscountedPrice()); //补贴中分账 Double discountedPrice = order.getDiscountedPrice(); List<RechargeRecord> rechargeRecords = rechargeRecordService.selectList(new EntityWrapper<RechargeRecord>().eq("type", 4).eq("payStatus", 2).gt("surplusDividedAmount", 0).orderBy("createTime")); @@ -1799,11 +1815,11 @@ } break; }else{ - discountedPrice -= surplusDividedAmount; ResultUtil zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver.getMerchantNumber(), surplusDividedAmount, callbackPath + "/base/order/zhaunzhangCallback"); if(10000 == zhaunzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(0D); rechargeRecordService.updateById(rechargeRecord); + discountedPrice -= surplusDividedAmount; }else{ break; } @@ -1812,7 +1828,20 @@ } if(null != order.getDiscountAmount() && 0 < order.getDiscountAmount()){ - driver.setCouponBalance(driver.getCouponBalance() + order.getDiscountAmount()); + accountChangeDetail = new AccountChangeDetail(); + accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3)); + accountChangeDetail.setUserType(2); + accountChangeDetail.setUserId(order.getDriverId()); + accountChangeDetail.setCreateTime(new Date()); + accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); + accountChangeDetail.setType(1); + accountChangeDetail.setChangeType(7); + accountChangeDetail.setOrderId(order.getId()); + accountChangeDetail.setExplain("折扣优惠收入"); + driver.setCommission(driver.getCommission() + order.getDiscountAmount()); + accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); + driverService.updateById(driver); + accountChangeDetailService.insert(accountChangeDetail); //补贴中分账 Double discountedPrice = order.getDiscountAmount(); List<RechargeRecord> rechargeRecords = rechargeRecordService.selectList(new EntityWrapper<RechargeRecord>().eq("type", 4).eq("payStatus", 2).gt("surplusDividedAmount", 0).orderBy("createTime")); @@ -1826,11 +1855,11 @@ } break; }else{ - discountedPrice -= surplusDividedAmount; ResultUtil zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver.getMerchantNumber(), surplusDividedAmount, callbackPath + "/base/order/zhaunzhangCallback"); if(10000 == zhaunzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(0D); rechargeRecordService.updateById(rechargeRecord); + discountedPrice -= surplusDividedAmount; }else{ break; } @@ -1868,11 +1897,11 @@ } break; }else{ - payMoney -= surplusDividedAmount; ResultUtil fengzhang = fengzhang(1, driver.getId(), driver.getMerchantNumber(), order.getId().longValue(), order.getOrderNo(), surplusDividedAmount, 1); if(10000 == fengzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(0D); rechargeRecordService.updateById(rechargeRecord); + payMoney -= surplusDividedAmount; }else{ break; } @@ -1897,11 +1926,11 @@ } break; }else{ - payMoney -= surplusDividedAmount; ResultUtil fengzhang = fengzhang(3, null, "553021440975", order.getId().longValue(), order.getOrderNo(), surplusDividedAmount, 1); if(10000 == fengzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(0D); rechargeRecordService.updateById(rechargeRecord); + payMoney -= surplusDividedAmount; }else{ break; } @@ -1911,62 +1940,70 @@ } if(order.getPayType() == 4){//微信+余额(使用用户的充值数据分账) - List<RechargeRecord> rechargeRecords = rechargeRecordService.selectList(new EntityWrapper<RechargeRecord>().eq("type", 1).eq("userId", order.getUserId()) - .eq("payStatus", 2).gt("surplusDividedAmount", 0).orderBy("createTime")); - for (RechargeRecord rechargeRecord : rechargeRecords) { - Double surplusDividedAmount = rechargeRecord.getSurplusDividedAmount(); - if(surplusDividedAmount.compareTo(payMoney) >= 0){ - //分账司机收入 - ResultUtil fengzhang = fengzhang(1, driver.getId(), driver.getMerchantNumber(), order.getId().longValue(), order.getOrderNo(), payMoney, 1); - if(10000 == fengzhang.getCode()){ - rechargeRecord.setSurplusDividedAmount(rechargeRecord.getSurplusDividedAmount() - payMoney); - rechargeRecordService.updateById(rechargeRecord); - } - break; - }else{ - payMoney -= surplusDividedAmount; - ResultUtil fengzhang = fengzhang(1, driver.getId(), driver.getMerchantNumber(), order.getId().longValue(), order.getOrderNo(), surplusDividedAmount, 1); - if(10000 == fengzhang.getCode()){ - rechargeRecord.setSurplusDividedAmount(0D); - rechargeRecordService.updateById(rechargeRecord); - }else{ - break; - } + Double xj = order.getPayMoney() - order.getBalancePayment(); + if(xj > 0){ + //分账司机收入 + fengzhang(1, driver.getId(), driver.getMerchantNumber(), order.getId().longValue(), order.getOrderNo(), payMoney, 1); + + if(payMoney.compareTo(order.getPayMoney()) < 0){//司机获取部分需将剩余的分给平台 + Double money = order.getPayMoney() - payMoney + order.getDiscountedPrice(); + fengzhang(3, null, "553021440975", order.getId().longValue(), order.getOrderNo(), money, 1); } - } - - - - if(payMoney.compareTo(order.getPayMoney()) < 0){//司机获取部分需将剩余的分给平台 - Double money = order.getPayMoney() - payMoney; - - List<RechargeRecord> rechargeRecords1 = rechargeRecordService.selectList(new EntityWrapper<RechargeRecord>().eq("type", 1).eq("userId", order.getUserId()) + }else{ + Double balancePayment = order.getBalancePayment(); + List<RechargeRecord> rechargeRecords = rechargeRecordService.selectList(new EntityWrapper<RechargeRecord>().eq("type", 1).eq("userId", order.getUserId()) .eq("payStatus", 2).gt("surplusDividedAmount", 0).orderBy("createTime")); - for (RechargeRecord rechargeRecord : rechargeRecords1) { + for (RechargeRecord rechargeRecord : rechargeRecords) { Double surplusDividedAmount = rechargeRecord.getSurplusDividedAmount(); - if(surplusDividedAmount.compareTo(money) >= 0){ + if(surplusDividedAmount.compareTo(balancePayment) >= 0){ //分账司机收入 - ResultUtil fengzhang = fengzhang(3, null, "553021440975", order.getId().longValue(), order.getOrderNo(), money, 1); + ResultUtil fengzhang = fengzhang(1, driver.getId(), driver.getMerchantNumber(), order.getId().longValue(), order.getOrderNo(), balancePayment, 1); if(10000 == fengzhang.getCode()){ - rechargeRecord.setSurplusDividedAmount(rechargeRecord.getSurplusDividedAmount() - money); + rechargeRecord.setSurplusDividedAmount(rechargeRecord.getSurplusDividedAmount() - balancePayment); rechargeRecordService.updateById(rechargeRecord); } break; }else{ - payMoney -= surplusDividedAmount; - ResultUtil fengzhang = fengzhang(3, null, "553021440975", order.getId().longValue(), order.getOrderNo(), surplusDividedAmount, 1); + ResultUtil fengzhang = fengzhang(1, driver.getId(), driver.getMerchantNumber(), order.getId().longValue(), order.getOrderNo(), surplusDividedAmount, 1); if(10000 == fengzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(0D); rechargeRecordService.updateById(rechargeRecord); + balancePayment -= surplusDividedAmount; }else{ break; } } } + + if(payMoney.compareTo(order.getPayMoney()) < 0){//司机获取部分需将剩余的分给平台 + Double money = order.getPayMoney() - payMoney; + + List<RechargeRecord> rechargeRecords1 = rechargeRecordService.selectList(new EntityWrapper<RechargeRecord>().eq("type", 1).eq("userId", order.getUserId()) + .eq("payStatus", 2).gt("surplusDividedAmount", 0).orderBy("createTime")); + for (RechargeRecord rechargeRecord : rechargeRecords1) { + Double surplusDividedAmount = rechargeRecord.getSurplusDividedAmount(); + if(surplusDividedAmount.compareTo(money) >= 0){ + //分账司机收入 + ResultUtil fengzhang = fengzhang(3, null, "553021440975", order.getId().longValue(), order.getOrderNo(), money, 1); + if(10000 == fengzhang.getCode()){ + rechargeRecord.setSurplusDividedAmount(rechargeRecord.getSurplusDividedAmount() - money); + rechargeRecordService.updateById(rechargeRecord); + } + break; + }else{ + ResultUtil fengzhang = fengzhang(3, null, "553021440975", order.getId().longValue(), order.getOrderNo(), surplusDividedAmount, 1); + if(10000 == fengzhang.getCode()){ + rechargeRecord.setSurplusDividedAmount(0D); + rechargeRecordService.updateById(rechargeRecord); + payMoney -= surplusDividedAmount; + }else{ + break; + } + } + } + } } } - - } -- Gitblit v1.7.1