86 lines
3.3 KiB
Java
86 lines
3.3 KiB
Java
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<String,String> 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;
|
||
}
|
||
}
|
||
}
|