|
@@ -1,10 +1,18 @@
|
|
|
package com.fdkankan.ucenter.mq.consumer;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.fdkankan.ucenter.entity.IncrementOrder;
|
|
|
+import com.fdkankan.ucenter.entity.User;
|
|
|
+import com.fdkankan.ucenter.entity.UserIncrement;
|
|
|
import com.fdkankan.ucenter.httpClient.vo.PayOrderVo;
|
|
|
+import com.fdkankan.ucenter.pay.paypal.sdk.AutoPaypalVo;
|
|
|
import com.fdkankan.ucenter.pay.strategy.impl.DownloadOrderImpl;
|
|
|
import com.fdkankan.ucenter.pay.strategy.impl.EntityOrderImpl;
|
|
|
import com.fdkankan.ucenter.pay.strategy.impl.IncrementOrderImpl;
|
|
|
+import com.fdkankan.ucenter.service.IIncrementOrderService;
|
|
|
+import com.fdkankan.ucenter.service.IMailTemplateService;
|
|
|
+import com.fdkankan.ucenter.service.IUserIncrementService;
|
|
|
+import com.fdkankan.ucenter.service.IUserService;
|
|
|
import com.rabbitmq.client.Channel;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang.StringEscapeUtils;
|
|
@@ -22,30 +30,61 @@ public class AutoOrderConsumer {
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
- IncrementOrderImpl incrementOrder;
|
|
|
+ IUserIncrementService userIncrementService;
|
|
|
@Autowired
|
|
|
- DownloadOrderImpl downloadOrder;
|
|
|
+ IMailTemplateService mailTemplateService;
|
|
|
@Autowired
|
|
|
- EntityOrderImpl entityOrder;
|
|
|
+ IUserService userService;
|
|
|
|
|
|
|
|
|
@RabbitListener(
|
|
|
- queuesToDeclare = @Queue("${queue.orderPay.autoorder-payResult:autoorder-payResult}")
|
|
|
+ queuesToDeclare = @Queue("${queue.pay.auto-paypal:pay-auto-paypal}")
|
|
|
)
|
|
|
public void consumerQueue(Channel channel, Message message) {
|
|
|
try {
|
|
|
String messageId = message.getMessageProperties().getMessageId();
|
|
|
String msg = new String(message.getBody(), StandardCharsets.UTF_8);
|
|
|
- log.info("接受下单结果mq--messageId:{},msg:{}",messageId,msg);
|
|
|
+ log.info("autoPaypal-result-mq--messageId:{},msg:{}",messageId,msg);
|
|
|
|
|
|
channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
|
|
|
|
|
|
- PayOrderVo order = JSONObject.parseObject(msg, PayOrderVo.class);
|
|
|
+ AutoPaypalVo order = JSONObject.parseObject(msg, AutoPaypalVo.class);
|
|
|
if(order == null){
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ UserIncrement increment = userIncrementService.getByAutoOrderSn(order.getOrderSn());
|
|
|
+ if(increment == null){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ User user = userService.getById(increment.getUserId());
|
|
|
+
|
|
|
+ switch (order.getEventType()){
|
|
|
+ case "PAYMENT.SALE.COMPLETED" : //每日扣款
|
|
|
+ //Enum: "completed" "partially_refunded" "pending" "refunded" "denied"
|
|
|
+ switch (order.getState()){
|
|
|
+ case "completed" : //扣款完成
|
|
|
+ userIncrementService.delay(increment);
|
|
|
+ break;
|
|
|
+ case "partially_refunded" :
|
|
|
+ break;
|
|
|
+ case "pending" : //等待
|
|
|
+ break;
|
|
|
+ case "refunded" : //退还
|
|
|
+ break;
|
|
|
+ case "denied" : //支付失败
|
|
|
+ if(user != null){
|
|
|
+ mailTemplateService.sendPayErrorMail(user.getUserName());
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "BILLING.SUBSCRIPTION.CANCELLED" : //取消订阅
|
|
|
+ userIncrementService.cancelSubscriptions(increment);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
}catch (Exception e){
|