From be685d4901f4dbb8ffc1b39c5fd87794c1a5c04e Mon Sep 17 00:00:00 2001 From: liulin <lin.liu@88.com> Date: 星期五, 04 七月 2025 16:37:50 +0800 Subject: [PATCH] 修改支付接口 --- src/main/java/com/lunhan/water/service/PaymentServices.java | 43 ++++++++++++++++++++++++++++--------------- 1 files changed, 28 insertions(+), 15 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..09b6f3d 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,30 @@ 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; 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.setChangeMoney(bigDecimal); changePO.setBeforeMoney(user.getBalance()); - changePO.setAfterMoney(userLoginPO.getBalance()); + changePO.setAfterMoney(afterMoney); changePO.setDescription("微信充值"); changePO.setCreateTime(LocalDateTimeUtil.nowTimeStamp()); changePO.setCreateUser("0"); -- Gitblit v1.9.3