KKSU
2025-02-10 d52904be5cc576bd0559241cdba963a0b61dc6ee
src/main/java/cc/mrbird/febs/pay/controller/FIUUController.java
@@ -15,6 +15,7 @@
import cc.mrbird.febs.mall.entity.MallOrderItem;
import cc.mrbird.febs.mall.mapper.MallMemberMapper;
import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
import cc.mrbird.febs.pay.model.FIUUInitChargeRequest;
import cc.mrbird.febs.pay.model.FIUUInitPayRequest;
@@ -49,6 +50,9 @@
    @Resource
    private IMallMoneyFlowService mallMoneyFlowService;
    @Resource
    private IApiMallMemberWalletService memberWalletService;
    @Resource
    private MallMemberMapper mallMemberMapper;
@@ -181,19 +185,23 @@
        log.info("notify status: {}", status);
        // 4. 根据状态码更新订单
        if ("00".equals(status)) {
            // 可选:记录交易ID防止重复处理
            log.info("Payment succeeded for order: {}", orderId);
            MallMoneyFlow mallMoneyFlow = mallMoneyFlowService.getBaseMapper().selectOne(new LambdaQueryWrapper<MallMoneyFlow>().eq(MallMoneyFlow::getOrderNo, orderId));
            if (mallMoneyFlow != null) {
                // 更新订单状态为已支付
                mallMoneyFlow.setStatus(2);
                mallMoneyFlowService.getBaseMapper().updateById(mallMoneyFlow);
                memberWalletService.addBalance(mallMoneyFlow.getAmount(),mallMoneyFlow.getMemberId());
            }else{
                MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(Long.parseLong(orderId));
                if(mallOrderInfo != null){
                    // 支付成功,更新订单状态
                    updateOrderStatus(orderId, status, amount, paydate, tranID);
                }
            }
            MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(Long.parseLong(orderId));
            if(mallOrderInfo != null){
                // 支付成功,更新订单状态
                updateOrderStatus(orderId, status, amount, paydate, tranID);
            }
            // 可选:记录交易ID防止重复处理
            log.info("Payment succeeded for order: {}", orderId);
        } else {
            // 支付失败或待处理
            log.warn("Payment failed/pending for order: {}", orderId);