From 774c0b57de71a09c1965a89a1a08f9196b23fcd5 Mon Sep 17 00:00:00 2001
From: liulin <lin.liu@88.com>
Date: 星期五, 04 七月 2025 16:45:25 +0800
Subject: [PATCH] 修改支付接口

---
 src/main/java/com/lunhan/water/service/PaymentServices.java |   47 +++++++++++++++++++++++++++++++----------------
 1 files changed, 31 insertions(+), 16 deletions(-)

diff --git a/src/main/java/com/lunhan/water/service/PaymentServices.java b/src/main/java/com/lunhan/water/service/PaymentServices.java
index 11b0c75..aeb01f1 100644
--- a/src/main/java/com/lunhan/water/service/PaymentServices.java
+++ b/src/main/java/com/lunhan/water/service/PaymentServices.java
@@ -75,12 +75,12 @@
     @Transactional(rollbackFor = Exception.class)
     public ExecutedResult<Map<String, Object>> weiXinPay(LoginUserDTO loginUser, ReqCreatePay request) {
         //判断token是否存在,如果不存在,说明重复提交订单
-        String redisToken = redisTemplate.opsForValue().get(request.getPayToken()).toString();
-        if (StringUtil.isNullOrEmpty(redisToken)) {
-            throw new RuntimeException("请勿重复提交充值订单!");
-        }
-        //删除token
-        redisTemplate.delete(request.getPayToken());
+//        String redisToken = redisTemplate.opsForValue().get(request.getPayToken()).toString();
+//        if (StringUtil.isNullOrEmpty(redisToken)) {
+//            throw new RuntimeException("请勿重复提交充值订单!");
+//        }
+//        //删除token
+//        redisTemplate.delete(request.getPayToken());
 
         EBusinessType type = EBusinessType.getByValue(request.getBusinessType());
         if (Objects.isNull(type)) {
@@ -112,6 +112,18 @@
                 request.setBusinessComment("用户充值");
                 //添加充值记录
                 RechargeRecordsPO item = new RechargeRecordsPO();
+                item.setUserId(user.getId());
+                //将充值金额转换为水量
+                List<SysDictDataPO> feesAmount = sysDictDataMapper.getListByType("fees_amount");
+                if(ListUtil.isNotNullOrEmpty(feesAmount)){
+                    SysDictDataPO sysDictDataPO = feesAmount.get(0);
+                    BigDecimal bigDecimal = request.getTradeAmount().multiply(new BigDecimal(sysDictDataPO.getDictValue())).setScale(2, BigDecimal.ROUND_DOWN);
+                    item.setRechargeWater(bigDecimal);
+                }else {
+                    //默认单价
+                    BigDecimal bigDecimal =request.getTradeAmount().multiply(new BigDecimal(3)).setScale(2, BigDecimal.ROUND_DOWN);
+                    item.setRechargeWater(bigDecimal);
+                }
                 item.setRechargeOrder(request.getBusinessNo());
                 item.setRechargeType(ERechargeType.MOBILE.getDesc());
                 item.setPaymentMethod(EPayType.WX_PAY.getDesc());
@@ -382,29 +394,32 @@
                         rechargeOrderMapper.updateById(rechargeOrderPO);
                         //修改用户余额
                         UserLoginPO user = userLoginMapper.getById(rechargeOrderPO.getUserId());
-                        UserLoginPO userLoginPO = new UserLoginPO();
-                        userLoginPO.setId(user.getId());
+
                         //将充值金额转换为水量
+                        BigDecimal afterMoney=BigDecimal.ZERO;
+                        BigDecimal bigDecimal=BigDecimal.ZERO;
+                        BigDecimal beforeMoney=user.getBalance();
                         List<SysDictDataPO> feesAmount = sysDictDataMapper.getListByType("fees_amount");
                         if(ListUtil.isNotNullOrEmpty(feesAmount)){
                             SysDictDataPO sysDictDataPO = feesAmount.get(0);
-                            BigDecimal bigDecimal = trade.getTradeAmount().multiply(new BigDecimal(sysDictDataPO.getDictValue())).setScale(2, BigDecimal.ROUND_DOWN);
-                            userLoginPO.setBalance(bigDecimal);
+                             bigDecimal = trade.getTradeAmount().multiply(new BigDecimal(sysDictDataPO.getDictValue())).setScale(2, BigDecimal.ROUND_DOWN);
+                            afterMoney=user.getBalance().add(bigDecimal);
                         }else {
                             //默认单价
-                            BigDecimal bigDecimal = trade.getTradeAmount().multiply(new BigDecimal(3)).setScale(2, BigDecimal.ROUND_DOWN);
-                            userLoginPO.setBalance(bigDecimal);
+                             bigDecimal= trade.getTradeAmount().multiply(new BigDecimal(3)).setScale(2, BigDecimal.ROUND_DOWN);
+                             afterMoney=user.getBalance().add(bigDecimal);
                         }
-                        int modify = userLoginMapper.updateById(userLoginPO);
+                        user.setBalance(afterMoney);
+                        int modify = userLoginMapper.updateById(user);
                         //添加资金明细记录
                         UserCapitalChangePO changePO = new UserCapitalChangePO();
                         changePO.setUserId(user.getId());
                         changePO.setBusiness(ECapitalChange.MOBILE_Recharge.getValue());
                         changePO.setBusinessName(ECapitalChange.MOBILE_Recharge.getDesc());
                         changePO.setBusinessCode(recordsPO.getRechargeOrder());
-                        changePO.setChangeMoney(paidAmount);
-                        changePO.setBeforeMoney(user.getBalance());
-                        changePO.setAfterMoney(userLoginPO.getBalance());
+                        changePO.setChangeMoney(bigDecimal);
+                        changePO.setBeforeMoney(beforeMoney);
+                        changePO.setAfterMoney(afterMoney);
                         changePO.setDescription("微信充值");
                         changePO.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
                         changePO.setCreateUser("0");

--
Gitblit v1.9.3