Bladeren bron

订单消息 与发货状态机和推进处理

yubin 3 weken geleden
bovenliggende
commit
5e3445b6ef

File diff suppressed because it is too large
+ 165 - 166
mall-service/src/main/java/com/txz/mall/service/impl/StoreOrderServiceImpl.java


+ 9 - 4
mall-service/src/main/java/com/txz/mall/service/impl/StorePinkServiceImpl.java

@@ -213,20 +213,25 @@ public class StorePinkServiceImpl extends AbstractService<StorePink> implements
         randomIds.forEach(i -> {
             StorePink luckPink = new StorePink();
             StorePink storePink = idStorePinkMap.get(i);
+            StoreOrder storeOrder = storeOrderService.findById(storePink.getOrderIdKey());
             luckPink.setId(i);
             luckPink.setLId(1);
-            luckPink.setOrderStatus(PinkOrderStatusEnum.GROUP_ORDER_TO_SHIP.getKey());
+
             luckPink.setStatus(StorePinkStatusEnum.RESULTS_ANNOUNCED.getKey());
             luckPink.setStopTime(date);
-            StoreOrder storeOrder = storeOrderService.findById(storePink.getOrderIdKey());
+
             PinkOrderStatusEnum pinkOrderStatusEnum = OrderStateMachine.handleEvent(storeOrder, OrderEventsEnum.GROUP_PURCHASE_WIN, null);
             if(ObjectUtils.isEmpty(pinkOrderStatusEnum)){
                 throw new ServiceException("当前订单状态不允许推进到待发货order.id:"+storePink.getOrderIdKey());
             }
-
+            if(!ObjectUtils.isEmpty(storeOrder.getAddressId())) {
+                luckPink.setOrderStatus(PinkOrderStatusEnum.GROUP_ORDER_TO_SHIP.getKey());
+                storeOrderService.updateOrderStatus(storePink.getOrderIdKey(), pinkOrderStatusEnum.getKey());
+            }else{
+                noticeService.addOrderNotice(NoticeEnum.ORDER_PROVIDE_SHIPPING_ADDRESS,storeOrder.getOrderId(),storeOrder.getUid());
+            }
             update(luckPink);
             //推进订单状态到待发货状态
-            storeOrderService.updateOrderStatus(storePink.getOrderIdKey(),pinkOrderStatusEnum.getKey());
 
             storeOrderStatusService.createLog(storeOrder.getId(), Constants.ORDER_STATUS_PINK_SUCCESS_ORDER, "拼团成功");
             noticeService.addOrderNotice(NoticeEnum.ORDER_GROUP_BUY_SUCCESS_WIN,storeOrder.getOrderId(),storeOrder.getUid());

Some files were not shown because too many files changed in this diff