package com.ruoyi.xq.manager; import com.ruoyi.xq.domain.VipPrice; import com.ruoyi.xq.dto.app.pay.ConsumeResp; import com.ruoyi.xq.enums.common.OrderTypeEnum; import com.ruoyi.xq.enums.pay.PlatformTypeEnum; import com.ruoyi.xq.mq.AmqpProducer; import com.ruoyi.xq.mq.handle.dto.CalculateSalesHandleDTO; import com.ruoyi.xq.service.UserExtendService; import com.ruoyi.xq.service.VipOrderService; import com.ruoyi.xq.service.VipPriceService; import com.ruoyi.xq.service.WxTransOrderService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Map; @Component @Slf4j public class PayManager { @Autowired private VipOrderService vipOrderService; @Autowired private UserExtendService userExtendService; @Autowired private AmqpProducer amqpProducer; @Autowired private VipPriceService vipPriceService; @Autowired private WxTransOrderService wxTransOrderService; public void callBack(String orderNo, Map params, String appId, PlatformTypeEnum payTypeEnum){ OrderTypeEnum orderTypeEnum = OrderNoUtil.getType(orderNo); if(orderTypeEnum == null){ log.error("订单类型有误!orderNo={}",orderNo); return; } switch (orderTypeEnum){ case VIP: ConsumeResp vipResp = vipOrderService.doSuccess(orderNo,params,appId,payTypeEnum); if(vipResp.isSuccess()){ try { // 用户消费统计 userExtendService.incsConsumeTotal(vipResp.getUserId(), vipResp.getPrice()); }catch (Exception e){ log.error("用户VIP消费统计",e); } try { if(vipResp.getConsumerId() != null){ CalculateSalesHandleDTO dto = new CalculateSalesHandleDTO(); dto.setConsumerLogId(vipResp.getConsumerId()); amqpProducer.sendCommonMq(dto); } }catch (Exception e){ log.error("RabbitMq 发送失败, 充值分销流程流转失败!",e); } try { if(vipResp.getVipId() != null){ VipPrice vipPrice = vipPriceService.getById(vipResp.getVipId()); if(vipPrice != null && vipPrice.getGiveWxTransNum() > 0){ } } }catch (Exception e){ log.error("开通会员赠送次数失败",e); } } break; case WX_TRANS: ConsumeResp consumeResp = wxTransOrderService.doSuccess(orderNo, params, appId, payTypeEnum); if(consumeResp.isSuccess()){ try { // 用户消费统计 userExtendService.incsConsumeTotal(consumeResp.getUserId(), consumeResp.getPrice()); }catch (Exception e){ log.error("用户微信交换次数消费统计",e); } } break; default: break; } } }