Administrator
2026-06-16 cc81b498b57c8e67c03d5c335afd1fa63e4cabfb
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -5,6 +5,7 @@
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.common.properties.XcxProperties;
import cc.mrbird.febs.common.utils.*;
import cc.mrbird.febs.mall.controller.dependentStation.constant.OrderConstants;
import cc.mrbird.febs.mall.conversion.MallGoodsCommentConversion;
import cc.mrbird.febs.mall.conversion.MallOrderInfoConversion;
import cc.mrbird.febs.mall.conversion.MallOrderRefundConversion;
@@ -71,6 +72,7 @@
    private final RedisUtils redisUtils;
    private final AgentProducer agentProducer;
    private final ApiChatPayService apiChatPayService;
    private final IPayService payService;
    private final IXcxPayService iXcxPayService;
    private final IMallAchieveService mallAchieveService;
@@ -175,8 +177,8 @@
        orderInfo.setLatitude(address.getLatitude());
        orderInfo.setLongitude(address.getLongitude());
        this.baseMapper.updateById(orderInfo);
        //过期时间修改成24小时
        agentProducer.sendOrderCancelDelayMsg(orderInfo.getId(),  24 * 60 * 60 * 1000L);
        //过期时间修改成30分钟
        agentProducer.sendOrderCancelDelayMsg(orderInfo.getId(),  30 * 60 * 1000L);
        return orderInfo.getId();
    }
@@ -475,6 +477,36 @@
        map.put("wxResultStr", wxResultStr);
        return map;
    }
    /**
     * 处理支付订单的请求
     *
     * @param payDto 包含支付订单所需信息的DTO
     * @return 返回支付结果的AjaxResult对象
     */
    @Override
    @Transactional
    public FebsResponse payOrderByCoin(ApiOrderPayDto payDto) {
        // 获取当前的用户
        Long memberId = LoginUserUtil.getLoginUser().getId();
        // 提取订单ID和支付类型
        Long orderId = payDto.getOrderId();
        Integer payType = payDto.getPayType();
        // 验证订单是否存在
        MallOrderInfo orderInfo =
                ValidateEntityUtils.ensureColumnReturnEntity(orderId, MallOrderInfo::getId, this.baseMapper::selectOne, "Order does not exist");
        ValidateEntityUtils.ensureEqual(memberId,orderInfo.getMemberId(),"Order does not exist");
        ValidateEntityUtils.ensureEqual(OrderStatusEnum.WAIT_PAY.getValue(),orderInfo.getStatus(),"The order status is not pending payment");
        // 根据支付类型调用相应的支付方法
        if(OrderConstants.PAY_TYPE_USDT == payType){
            return apiChatPayService.usPay(orderInfo);
        }
        // 如果支付类型不匹配或支付过程中出现异常,返回错误信息
        return new FebsResponse().fail().message("Order exception, please contact us");
    }
    private String balancePay(MallOrderInfo orderInfo, String tradePwd, String field) {
@@ -782,7 +814,7 @@
                mallGoodsComment.setSkuName(mallGoodsSku.getSkuName());
                mallGoodsComment.setStyleId(mallGoodsSku.getStyleId());
                mallGoodsComment.setStyleName(mallGoodsSku.getStyleName());
                mallGoodsComment.setShowState(MallGoodsComment.SHOW_STATE_ENABLE);
                mallGoodsComment.setShowState(MallGoodsComment.SHOW_STATE_DISABLED);
                mallGoodsCommentMapper.insert(mallGoodsComment);
            }
        }
@@ -790,7 +822,7 @@
    @Autowired
    private WeixinServiceUtil weixinServiceUtil;
    private final XcxProperties xcxProperties = SpringContextHolder.getBean(XcxProperties.class);
    private final XcxProperties xcxProperties;
    @Override
    @Transactional