lyhzzz 1 éve
szülő
commit
916fa9aef2

+ 15 - 7
src/main/java/com/fdkankan/ucenter/mq/consumer/AutoOrderConsumer.java

@@ -23,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.nio.charset.StandardCharsets;
+import java.util.List;
 
 @Slf4j
 @Component
@@ -53,18 +54,20 @@ public class AutoOrderConsumer {
                 return;
             }
 
-            UserIncrement increment = userIncrementService.getByAutoOrderSn(order.getOrderSn());
-            if(increment == null){
+            List<UserIncrement> increments = userIncrementService.getByAutoOrderSn(order.getOrderSn());
+            if(increments == null || increments.size()<=0){
+                log.info("autoPaypal-result-mq-userIncrementIsEmpty");
                 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);
+                            for (UserIncrement increment : increments) {
+                                userIncrementService.delay(increment);
+                            }
                             break;
                         case "partially_refunded" :
                             break;
@@ -73,14 +76,19 @@ public class AutoOrderConsumer {
                         case "refunded" :       //退还
                             break;
                         case "denied" :         //支付失败
-                            if(user != null){
-                                mailTemplateService.sendPayErrorMail(user.getUserName());
+                            for (UserIncrement increment : increments) {
+                                User user = userService.getById(increment.getUserId());
+                                if(user != null){
+                                    mailTemplateService.sendPayErrorMail(user.getUserName());
+                                }
                             }
                             break;
                     }
                     break;
                 case "BILLING.SUBSCRIPTION.CANCELLED" :     //取消订阅
-                    userIncrementService.cancelSubscriptions(increment);
+                    for (UserIncrement increment : increments) {
+                        userIncrementService.cancelSubscriptions(increment);
+                    }
                     break;
                 default:
                     break;

+ 15 - 6
src/main/java/com/fdkankan/ucenter/pay/strategy/impl/IncrementOrderImpl.java

@@ -50,10 +50,16 @@ public class IncrementOrderImpl implements OrderStrategy {
         if(incrementType == null){
             throw new Exception("更新增值权益订单失败");
         }
+        Integer expired = 0;
+        Date date =  new Date();
+        if(responseIncrementOrder.getAutoPay() == 1){
+            expired = 1;
+        }
         if(responseIncrementOrder.getIncrementId() == null){
             //新的增值权益套餐方案
-            Date date = null;
-            date = DateUserUtil.getDateTime(new Date(),incrementType,responseIncrementOrder.getMonthQy()).toDate();
+            if(responseIncrementOrder.getAutoPay() != 1){
+                date = DateUserUtil.getDateTime(new Date(),incrementType,responseIncrementOrder.getMonthQy()).toDate();
+            }
 
             if(responseIncrementOrder.getCount() > 0){
                 for(int i = 0, len = responseIncrementOrder.getCount(); i < len; i++){
@@ -63,7 +69,7 @@ public class IncrementOrderImpl implements OrderStrategy {
                     userIncrementEntity.setOrderSn(orderSn);
                     userIncrementEntity.setIncrementStartTime(DateUserUtil.getDate(new Date()));
                     userIncrementEntity.setIncrementEndTime(DateUserUtil.getDate(date));
-                    userIncrementEntity.setIsExpired(0);
+                    userIncrementEntity.setIsExpired(expired);
                     userIncrementEntity.setIncrementTypeId(responseIncrementOrder.getIncrementType());
                     userIncrementEntity.setMemberLevels(responseIncrementOrder.getMemberLevels());
                     if(responseIncrementOrder.getAutoPay() == 1){
@@ -74,11 +80,14 @@ public class IncrementOrderImpl implements OrderStrategy {
             }
         }else {
             userIncrementEntity = userIncrementService.getById(responseIncrementOrder.getIncrementId());
-            DateTime date = DateUserUtil.getDateTime(DateUserUtil.getDate(userIncrementEntity.getIncrementEndTime()),incrementType,responseIncrementOrder.getMonthQy());
-            userIncrementEntity.setIncrementEndTime(DateUserUtil.getDate(date.toDate()));
+            if(responseIncrementOrder.getAutoPay() != 1){
+                date = DateUserUtil.getDateTime(DateUserUtil.getDate(userIncrementEntity.getIncrementEndTime()),incrementType,responseIncrementOrder.getMonthQy()).toDate();
+            }
+
+            userIncrementEntity.setIncrementEndTime(DateUserUtil.getDate(date));
             userIncrementEntity.setOrderSn(userIncrementEntity.getOrderSn() + "," + orderSn);
             userIncrementEntity.setUpdateTime(DateUserUtil.getDate(new Date()));
-            userIncrementEntity.setIsExpired(0);
+            userIncrementEntity.setIsExpired(expired);
             if(responseIncrementOrder.getAutoPay() == 1){
                 userIncrementEntity.setSubscriptionOrder(responseIncrementOrder.getOrderSn());
             }

+ 1 - 1
src/main/java/com/fdkankan/ucenter/service/IUserIncrementService.java

@@ -47,7 +47,7 @@ public interface IUserIncrementService extends IService<UserIncrement> {
 
     HashMap<String, List<Long>> getByOrderSnList(Set<String> orderSn);
 
-    UserIncrement getByAutoOrderSn(String orderSn);
+    List<UserIncrement> getByAutoOrderSn(String orderSn);
 
     void delay(UserIncrement increment);
 

+ 4 - 2
src/main/java/com/fdkankan/ucenter/service/impl/UserIncrementServiceImpl.java

@@ -419,8 +419,10 @@ public class UserIncrementServiceImpl extends ServiceImpl<IUserIncrementMapper,
     }
 
     @Override
-    public UserIncrement getByAutoOrderSn(String orderSn) {
-        return null;
+    public List<UserIncrement> getByAutoOrderSn(String orderSn) {
+        LambdaQueryWrapper<UserIncrement> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(UserIncrement::getSubscriptionOrder,orderSn);
+        return this.list(wrapper);
     }
 
     /**