From c36b79ea63fe43aa77ab74508505b727e4976a01 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期一, 06 十一月 2023 16:01:04 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 54 ++++++++++++++++++++++++++++-------------------------- 1 files changed, 28 insertions(+), 26 deletions(-) diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java index f686694..c107a78 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -1897,10 +1898,14 @@ } this.saveOrUpdate(order); // 订单金额大于0时进行分账 - if (order.getOnlinePayMoney().compareTo(BigDecimal.ZERO)>0) { + OrderPayment orderPayment = orderPaymentService.getOne(new QueryWrapper<OrderPayment>() + .eq("order_id", order.getOrderId()).eq("pay_status", 2) + .eq("del_flag", 0)); + BigDecimal bigDecimal = orderPayment.getPayMoney().subtract(orderPayment.getFeeAmount()).setScale(2, BigDecimal.ROUND_HALF_EVEN); + if (bigDecimal.compareTo(BigDecimal.ZERO)>0) { // TODO: 2023/10/17 更换分账渠道(汇付天下) // submitProfitSharing(orderId, order.getOrderNo(), order.getShopId(), order.getOnlinePayMoney(),order.getOrderFrom()); - submitProfitSharing1(orderId, order.getOrderNo(), order.getShopId(), order.getOnlinePayMoney(),order.getOrderFrom()); + submitProfitSharing1(orderId, order.getOrderNo(), order.getShopId(), bigDecimal, order.getOrderFrom()); } //创建支付记录 if(merVerifyOrderDto.getRelPayMoney().compareTo(BigDecimal.ZERO)>0){ @@ -2083,7 +2088,7 @@ if(proportionPercent.compareTo(BigDecimal.ZERO)>0){ PaymentDelaytransHFTXVo result = new PaymentDelaytransHFTXVo(); // 计算分成金额 - int amount = orderMoney.multiply(proportionPercent).setScale(0, RoundingMode.UP).intValue(); + int amount = orderMoney.multiply(new BigDecimal(100)).setScale(0, RoundingMode.HALF_EVEN).intValue(); BigDecimal multiply = orderMoney.multiply(proportionPercent.divide(new BigDecimal(100))).setScale(2, RoundingMode.HALF_EVEN); log.info("订单分账:{} 分账金额: {}", orderNo, amount); if (amount > 0) { @@ -2100,16 +2105,21 @@ //分账对象 JSONArray acctInfos = new JSONArray(); - JSONObject jsonObject = new JSONObject(); - jsonObject.put("div_amt", String.format("%.2f", multiply.doubleValue())); - jsonObject.put("huifu_id", vo.getHuifuId()); - acctInfos.add(jsonObject); + if(multiply.compareTo(BigDecimal.ZERO) > 0){ + JSONObject jsonObject = new JSONObject(); + jsonObject.put("div_amt", String.format("%.2f", multiply.doubleValue())); + jsonObject.put("huifu_id", vo.getHuifuId()); + acctInfos.add(jsonObject); + } //平台商户 - double pt_amount = orderMoney.subtract(multiply).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); - JSONObject jsonObject1 = new JSONObject(); - jsonObject1.put("div_amt", String.format("%.2f", pt_amount)); - jsonObject1.put("huifu_id", "6666000141216769"); - acctInfos.add(jsonObject1); + BigDecimal pt_amount = orderMoney.subtract(multiply).setScale(2, RoundingMode.HALF_EVEN); + if(pt_amount.compareTo(BigDecimal.ZERO) > 0){ + JSONObject jsonObject1 = new JSONObject(); + jsonObject1.put("div_amt", String.format("%.2f", pt_amount.doubleValue())); + jsonObject1.put("huifu_id", "6666000141216769"); + acctInfos.add(jsonObject1); + } + R<PaymentDelaytransHFTXVo> hftxVoR = HuiFuTianXiaUtil.paymentDelaytrans(request.getOutOrderNo(), org_req_date, outTradeNo, acctInfos); if(hftxVoR.getCode() != 200){ throw new ServiceException(hftxVoR.getMsg()); @@ -5117,7 +5127,7 @@ @Override @Transactional @GlobalTransactional(rollbackFor = Exception.class) - public void payBack(PartnerTransactionsResult transaction) { + public void payBack(PartnerTransactionsResult transaction, BigDecimal feeAmount) { log.info("订单支付回调---"+transaction.toString()); // Order order = this.getById(orderId); // 更新订单状态 outTradeNo @@ -5171,12 +5181,8 @@ goodsTotalChangeDto.setChangeType(1); goodsTotalChangeDto.setChangeNum(orderGoods.getBuyNum()); goodsTotalChangeDto.setMoney(orderGoods.getGoodsReceivableMoney()); - Integer bugGoodsNum = orderMapper.countUserBuyGoodsNum(order.getUserId(), orderGoods.getGoodsId()); - if (bugGoodsNum == null || bugGoodsNum < 1) { - goodsTotalChangeDto.setPersonNum(1); - }else{ - goodsTotalChangeDto.setPersonNum(0); - } + Integer bugGoodsNum = orderMapper.countUserBuyGoodsNum(orderGoods.getGoodsId()); + goodsTotalChangeDto.setPersonNum(bugGoodsNum); goodsTotalChangeDtoList.add(goodsTotalChangeDto); } //更新商品统计 @@ -5251,7 +5257,7 @@ profitsSharingService.applyProfitSharing(request);*/ } //修改支付记录生成支付记录 - orderPaymentService.updatePaySuccess(transaction.getOutTradeNo(), transaction.getTransactionId()); + orderPaymentService.updatePaySuccess(transaction.getOutTradeNo(), feeAmount, transaction.getTransactionId()); PayRecord payRecord = new PayRecord(); payRecord.setDelFlag(0); payRecord.setOrderId(orderId); @@ -5382,12 +5388,8 @@ goodsTotalChangeDto.setChangeType(2); goodsTotalChangeDto.setChangeNum(orderGoods.getBuyNum()); goodsTotalChangeDto.setMoney(orderGoods.getGoodsReceivableMoney()); - Integer bugGoodsNum = orderMapper.countUserBuyGoodsNum(order.getUserId(), orderGoods.getGoodsId()); - if (bugGoodsNum == null || bugGoodsNum <= orderGoods.getBuyNum()) { - goodsTotalChangeDto.setPersonNum(1); - }else{ - goodsTotalChangeDto.setPersonNum(0); - } + Integer bugGoodsNum = orderMapper.countUserBuyGoodsNum(orderGoods.getGoodsId()); + goodsTotalChangeDto.setPersonNum(bugGoodsNum); goodsTotalChangeDtoList.add(goodsTotalChangeDto); } remoteGoodsService.changeGoodsTotal(goodsTotalChangeDtoList); -- Gitblit v1.7.1