liulin
2025-07-04 aeb4cfb13598be28bcb941343cd4c1dc1d48ee82
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());