1
zj
2025-07-28 629ca0549a6b9115150963f9598cf8710bfdab75
src/main/java/com/nq/service/impl/PayServiceImpl.java
@@ -150,6 +150,19 @@
        paymentRecharge.setNotifyUrl(getOrderTime());
        paymentRecharge.setPayInfo(payResponse.toString());
        paymentRechargeService.save(paymentRecharge);
        UserRecharge userRecharge = new UserRecharge();
        userRecharge.setUserId(user.getId());
        userRecharge.setNickName(user.getRealName());
        userRecharge.setAgentId(user.getAgentId());
        userRecharge.setOrderSn(params.get("out_trade_no"));
        userRecharge.setPayChannel("Payment 1");
        userRecharge.setPayAmt(amount);
        userRecharge.setAddTime(new Date());
        userRecharge.setPayTime(new Date());
        userRecharge.setOrderStatus(Integer.valueOf(0));
        userRecharge.setPayId(1);
        userRechargeMapper.insert(userRecharge);
        return ServerResponse.createBySuccess(payResponse.getData().getUrl());
    }
@@ -910,30 +923,41 @@
            PrintWriter pw = response.getWriter();
            PaymentRecharge paymentRecharge = paymentRechargeService.getOne(new LambdaQueryWrapper<>(PaymentRecharge.class)
                    .eq(PaymentRecharge::getMchOrderNo, vo.getOut_trade_no())
                    .eq(PaymentRecharge::getOrderNo,vo.getOut_trade_no())
                    .eq(PaymentRecharge::getStatus,1)
                    .last("limit 1")
            );
            if(!vo.getStatus().equals("payin_ing")){
                log.error("充值2回调交易中:"+vo.toString());
                return;
            }
            if(!vo.getStatus().equals("payin_fail")){
                paymentRecharge.setStatus(2);
                paymentRecharge.setAmount(new BigDecimal(vo.getAccount_fee()));
                paymentRecharge.setPayInfo(vo.toString());
                paymentRechargeService.updateById(paymentRecharge);
                log.error("充值回调失败:"+vo.toString());
                return;
            }
            if(ObjectUtils.isEmpty(paymentRecharge)){
                log.info("未找到充值订单");
                pw.print("error 未找到充值订单");
                return;
            }
            UserRecharge userRecharge = userRechargeMapper.selectOne(new LambdaQueryWrapper<>(UserRecharge.class)
                    .eq(UserRecharge::getOrderSn, paymentRecharge.getOrderNo())
                    .eq(UserRecharge::getOrderStatus, 0).last(" limit 1"));
            if(ObjectUtils.isEmpty(userRecharge)){
                log.info("未找到充值记录订单");
                pw.print("error 未找到充值订单");
                return;
            }
            if(vo.getStatus().equals("payin_ing")){
                log.error("充值2回调交易中:"+vo.toString());
                return;
            }else if(vo.getStatus().equals("payin_fail")){
                paymentRecharge.setStatus(2);
                paymentRecharge.setAmount(new BigDecimal(vo.getAccount_fee()));
                paymentRecharge.setPayInfo(vo.toString());
                paymentRechargeService.updateById(paymentRecharge);
                userRecharge.setOrderStatus(2);
                userRechargeMapper.updateById(userRecharge);
                log.error("充值回调失败:"+vo.toString());
                return;
            }else if(!vo.getStatus().equals("payin_fail") && !vo.getStatus().equals("payin_ing") && !vo.getStatus().equals("payin_success")){
                log.error("充值回调失败----未知状态:"+vo.toString());
                return;
            }
            UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<>(UserAssets.class)
                    .eq(UserAssets::getUserId, paymentRecharge.getUserId())
                    .eq(UserAssets::getAccectType, "IN")
@@ -945,6 +969,10 @@
                paymentRecharge.setPayInfo(vo.toString());
                paymentRechargeService.updateById(paymentRecharge);
            }
            userRecharge.setOrderStatus(1);
            userRechargeMapper.updateById(userRecharge);
            log.info("充值回调----完成");
            pw.print("success");
            pw.flush();