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 | 60 +++++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 45 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 3e3a839..aeb01f1 100644 --- a/src/main/java/com/lunhan/water/service/PaymentServices.java +++ b/src/main/java/com/lunhan/water/service/PaymentServices.java @@ -20,6 +20,7 @@ import com.lunhan.water.entity.request.pay.ReqPayRefund; import com.lunhan.water.repository.impl.*; +import com.lunhan.water.repository.mapper.SysDictTypeMapper; import com.lunhan.water.repository.po.*; import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Autowired; @@ -33,6 +34,7 @@ import java.nio.charset.StandardCharsets; import java.time.LocalDateTime; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Objects; @@ -58,6 +60,10 @@ private TradeRecordMapperImpl tradeRecordDao; @Autowired private RedisTemplate<String, Object> redisTemplate; + @Autowired + private SysDictTypeMapperImpl sysDictTypeMapper; + @Autowired + private SysDictDataMapperImpl sysDictDataMapper; /** @@ -69,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)) { @@ -106,12 +112,24 @@ 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()); item.setRechargeStatus(EYesOrNo.NO.getValue()); item.setRechargeAmount(request.getTradeAmount()); - item.setComment("水卡充值"); + item.setComment("余额充值"); item.setCreateTime(LocalDateTimeUtil.nowTimeStamp()); item.setCreateUser(loginUser.getUserId()); item.setCreateUserName(loginUser.getNickName()); @@ -376,20 +394,32 @@ rechargeOrderMapper.updateById(rechargeOrderPO); //修改用户余额 UserLoginPO user = userLoginMapper.getById(rechargeOrderPO.getUserId()); - UserLoginPO userLoginPO = new UserLoginPO(); - userLoginPO.setId(user.getId()); - //余额加上交易金额=充值后的余额 - userLoginPO.setBalance(userLoginPO.getBalance().add(trade.getTradeAmount())); - int modify = userLoginMapper.updateById(userLoginPO); + + //将充值金额转换为水量 + 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 = trade.getTradeAmount().multiply(new BigDecimal(sysDictDataPO.getDictValue())).setScale(2, BigDecimal.ROUND_DOWN); + afterMoney=user.getBalance().add(bigDecimal); + }else { + //默认单价 + bigDecimal= trade.getTradeAmount().multiply(new BigDecimal(3)).setScale(2, BigDecimal.ROUND_DOWN); + afterMoney=user.getBalance().add(bigDecimal); + } + 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