Эх сурвалжийг харах

fix 未发车订单状态兼容

zoujiajian 2 жил өмнө
parent
commit
231803b3f4

+ 25 - 15
netflix-service/src/main/java/com/cyksj/service/mange/impl/CmsOrderDonServiceImpl.java

@@ -466,8 +466,32 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
         relation.setNewRelationId(newRelation.getId());
         relation.setNewRelationId(newRelation.getId());
         relationClearService.clearTicket(relation, source);
         relationClearService.clearTicket(relation, source);
 
 
+        if (plusPurchaseSkuRelation != null && plus_relationList != null) {
+            plus_relationList.remove(relationId);
+            plus_relationList.add(newRelation.getId());
+            plusPurchaseSkuRelation.setRelationIds(plus_relationList.toString());
+            orderDiscountPlusPurchaseSkuRelationMapper.updateById(plusPurchaseSkuRelation);
+        }
+
+        if (source != null && source == UserTicketClearedRecord.Source.abnormal) {
+            //将用户异常订单关闭
+            workOrderMapper.update(null, Wrappers.lambdaUpdate(WorkOrder.class)
+                    .set(WorkOrder::getStatus, WorkOrder.Status.close)
+                    .eq(WorkOrder::getStatus, WorkOrder.Status.waiting)
+                    .eq(WorkOrder::getUserId, userId)
+                    .eq(WorkOrder::getRelationId, relationId));
+        }
+
         if ((newRelation.getStartTime() == null || newRelation.getExpiryTime() == null)) {
         if ((newRelation.getStartTime() == null || newRelation.getExpiryTime() == null)) {
             List<OrderDon> orderDonList = orderDonMapper.selectList(Wrappers.lambdaQuery(OrderDon.class).eq(OrderDon::getUserId, userId).eq(OrderDon::getRelationId, relationId).eq(OrderDon::getStatus, OrderDon.Status.hasPayment));
             List<OrderDon> orderDonList = orderDonMapper.selectList(Wrappers.lambdaQuery(OrderDon.class).eq(OrderDon::getUserId, userId).eq(OrderDon::getRelationId, relationId).eq(OrderDon::getStatus, OrderDon.Status.hasPayment));
+            if (orderDonList.isEmpty()) {
+                orderDonList = orderDonMapper.selectList(Wrappers.lambdaQuery(OrderDon.class)
+                        .eq(OrderDon::getUserId, userId)
+                        .eq(OrderDon::getRelationId, relationId)
+                        .eq(OrderDon::getStatus, OrderDon.Status.complete)
+                        .orderByDesc(OrderDon::getId)
+                        .last("limit 1"));
+            }
             if (groups.getStatus() == GroupsTrips.Status.waiting) {
             if (groups.getStatus() == GroupsTrips.Status.waiting) {
                 orderDonList.forEach(hasPaymentOrder -> {
                 orderDonList.forEach(hasPaymentOrder -> {
                     hasPaymentOrder.setRelationId(newRelation.getId());
                     hasPaymentOrder.setRelationId(newRelation.getId());
@@ -496,12 +520,7 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
             });
             });
             return;
             return;
         }
         }
-        if (plusPurchaseSkuRelation != null && plus_relationList != null) {
-            plus_relationList.remove(relationId);
-            plus_relationList.add(newRelation.getId());
-            plusPurchaseSkuRelation.setRelationIds(plus_relationList.toString());
-            orderDiscountPlusPurchaseSkuRelationMapper.updateById(plusPurchaseSkuRelation);
-        }
+
         List<OrderDon> orderDonList = orderDonMapper.selectList(Wrappers.lambdaQuery(OrderDon.class).eq(OrderDon::getUserId, userId).eq(OrderDon::getRelationId, relationId).eq(OrderDon::getStatus, OrderDon.Status.complete));
         List<OrderDon> orderDonList = orderDonMapper.selectList(Wrappers.lambdaQuery(OrderDon.class).eq(OrderDon::getUserId, userId).eq(OrderDon::getRelationId, relationId).eq(OrderDon::getStatus, OrderDon.Status.complete));
         orderDonList.forEach(completeOrder->{
         orderDonList.forEach(completeOrder->{
             completeOrder.setRelationId(newRelation.getId());
             completeOrder.setRelationId(newRelation.getId());
@@ -509,15 +528,6 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
         });
         });
         redisService.del(RedisKey.GROUPS_RELATION_NUM_KEY + newRelation.getId());
         redisService.del(RedisKey.GROUPS_RELATION_NUM_KEY + newRelation.getId());
         relationMapper.updateById(newRelation);
         relationMapper.updateById(newRelation);
-
-        if (source != null && source == UserTicketClearedRecord.Source.abnormal) {
-            //将用户异常订单关闭
-            workOrderMapper.update(null, Wrappers.lambdaUpdate(WorkOrder.class)
-                    .set(WorkOrder::getStatus, WorkOrder.Status.close)
-                    .eq(WorkOrder::getStatus, WorkOrder.Status.waiting)
-                    .eq(WorkOrder::getUserId, userId)
-                    .eq(WorkOrder::getRelationId, relationId));
-        }
     }
     }
 
 
     public String zfbRefund(OrderRefundReq refundReq, OrderDon orderDon) throws Exception {
     public String zfbRefund(OrderRefundReq refundReq, OrderDon orderDon) throws Exception {

+ 10 - 0
netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupRelationClearServiceImpl.java

@@ -1,8 +1,10 @@
 package com.cyksj.service.relation.impl;
 package com.cyksj.service.relation.impl;
 
 
+import com.cyksj.mapper.GoodsDonSkuMapper;
 import com.cyksj.mapper.GroupsMapper;
 import com.cyksj.mapper.GroupsMapper;
 import com.cyksj.mapper.GroupsRelationMapper;
 import com.cyksj.mapper.GroupsRelationMapper;
 import com.cyksj.mapper.UserTicketClearedRecordMapper;
 import com.cyksj.mapper.UserTicketClearedRecordMapper;
+import com.cyksj.model.entity.GoodsDonSku;
 import com.cyksj.model.entity.GroupsRelation;
 import com.cyksj.model.entity.GroupsRelation;
 import com.cyksj.model.entity.UserTicketClearedRecord;
 import com.cyksj.model.entity.UserTicketClearedRecord;
 import com.cyksj.model.manage.views.GroupsRelationView;
 import com.cyksj.model.manage.views.GroupsRelationView;
@@ -34,6 +36,8 @@ public class GroupRelationClearServiceImpl implements GroupRelationClearService
 
 
 	private final UserTicketClearedRecordMapper userTicketClearedRecordMapper;
 	private final UserTicketClearedRecordMapper userTicketClearedRecordMapper;
 
 
+	private final GoodsDonSkuMapper goodsDonSkuMapper;
+
 	@Override
 	@Override
 	@Transactional(rollbackFor = Throwable.class)
 	@Transactional(rollbackFor = Throwable.class)
 	public void clearTicket(GroupsRelation relation, UserTicketClearedRecord.Source source) {
 	public void clearTicket(GroupsRelation relation, UserTicketClearedRecord.Source source) {
@@ -81,6 +85,12 @@ public class GroupRelationClearServiceImpl implements GroupRelationClearService
 				userTicketClearedRecord.setNum(num);
 				userTicketClearedRecord.setNum(num);
 				userTicketClearedRecord.setUserId(userId);
 				userTicketClearedRecord.setUserId(userId);
 				userTicketClearedRecord.setSource(source);
 				userTicketClearedRecord.setSource(source);
+				if (groupsRelation.getGoodsId() == null) {
+					GoodsDonSku goodsDonSku = goodsDonSkuMapper.selectById(groupsRelation.getSkuId());
+					if (goodsDonSku != null) {
+						groupsRelation.setGoodsId(goodsDonSku.getGoodsId());
+					}
+				}
 				userTicketClearedRecord.setGoodsId(groupsRelation.getGoodsId());
 				userTicketClearedRecord.setGoodsId(groupsRelation.getGoodsId());
 				userTicketClearedRecord.setSkuId(groupsRelation.getSkuId());
 				userTicketClearedRecord.setSkuId(groupsRelation.getSkuId());
 				userTicketClearedRecord.setStartTime(startTime);
 				userTicketClearedRecord.setStartTime(startTime);