2
0

3 Commitit 9e55735d31 ... 90a116d2fc

Tekijä SHA1 Viesti Päivämäärä
  BKGin 90a116d2fc [add] 配送订单列表 6 kuukautta sitten
  BKGin 960dc30727 Merge remote-tracking branch 'origin/master' 6 kuukautta sitten
  BKGin a3d3e1a066 [add] 预约下单 6 kuukautta sitten

+ 62 - 28
yiqi-admin/src/main/java/com/yiqi/admin/controller/core/SysStoreIntracityExpressController.java

@@ -280,44 +280,78 @@ public class SysStoreIntracityExpressController extends BaseController {
             throw new ServiceException("未查询到洗衣订单");
         }
         switch (intracityExpressOrderStatusChangeDTO.getOrder_status()) {
-            case 60000:
-//            case 20000:
-            case 20001://配送方取消订单
-            {
-                if (orderCloth.getOrderStatus().equals(ClothOrderStatusType.SENDING.getCode())) {
-                    orderClothService.update(new UpdateWrapper<OrderCloth>().lambda()
-                            .set(OrderCloth::getOrderStatus, ClothOrderStatusType.WAITING_TO_SEND.getCode())
-                            .eq(OrderCloth::getId, orderCloth.getId()));
-                }
+            case 10000:
+                // 订单创建成功
+                this.updateSending(orderCloth, orderDelivery);
+                orderDelivery.setDeliveryStatus(OrderDeliveryStatusEnum.CREATE_ORDER_SUCCESS.getCode());
+                break;
+            case 20000:
+                // 商家取消订单
+                this.updateCancel(orderCloth, orderDelivery);
+                orderDelivery.setDeliveryStatus(OrderDeliveryStatusEnum.STORE_CANCEL.getCode());
+                break;
+            case 20001:
+                // 配送方取消订单
+                this.updateCancel(orderCloth, orderDelivery);
+                orderDelivery.setDeliveryStatus(OrderDeliveryStatusEnum.DELIVERY_CANCEL.getCode());
                 break;
-            }
             case 30000:
+                // 配送员接单
+                this.updateSending(orderCloth, orderDelivery);
+                orderDelivery.setDeliveryStatus(OrderDeliveryStatusEnum.RECEIVE_ORDER.getCode());
+                break;
             case 40000:
+                // 配送员到店
+                this.updateSending(orderCloth, orderDelivery);
+                orderDelivery.setDeliveryStatus(OrderDeliveryStatusEnum.SENDING.getCode());
+                break;
             case 50000:
-            {
-                if (orderDelivery.getClothOrderType().equals(ClothOrderDeliveryType.takeCloth.getCode())
-                        && orderCloth.getOrderStatus().equals(ClothOrderStatusType.WAITING_TO_SEND.getCode())) {
-                    orderClothService.update(new UpdateWrapper<OrderCloth>().lambda()
-                            .set(OrderCloth::getOrderStatus, ClothOrderStatusType.SENDING.getCode())
-                            .eq(OrderCloth::getId, orderCloth.getId()));
-                }
+                // 配送中
+                this.updateSending(orderCloth, orderDelivery);
+                orderDelivery.setDeliveryStatus(OrderDeliveryStatusEnum.SENDING.getCode());
                 break;
-            }
-            case 70000://配送完成
-            {
-                if (orderDelivery.getClothOrderType().equals(ClothOrderDeliveryType.takeCloth.getCode())
-                        && orderCloth.getOrderStatus().equals(ClothOrderStatusType.SENDING.getCode())) {
-                    orderClothService.update(new UpdateWrapper<OrderCloth>().lambda()
-                            .set(OrderCloth::getOrderStatus, ClothOrderStatusType.FINISH.getCode())
-                            .eq(OrderCloth::getId, orderCloth.getId()));
-                }
+            case 60000:
+                // 配送员撤单
+                this.updateCancel(orderCloth, orderDelivery);
+                orderDelivery.setDeliveryStatus(OrderDeliveryStatusEnum.SENDER_CANCEL.getCode());
+                break;
+            case 70000:
+                // 配送完成
+                this.updateSuccess(orderCloth, orderDelivery);
+                orderDelivery.setDeliveryStatus(OrderDeliveryStatusEnum.SEND_FINISH.getCode());
+                break;
+            case 90000:
+                // 配送异常
                 break;
-            }
         }
-        orderDelivery.setDeliveryStatus(String.valueOf(intracityExpressOrderStatusChangeDTO.getOrder_status()));
         orderDelivery.setDeliveryStatusMsg(OrderDeliveryStatusEnum.getLabelByCode(String.valueOf(intracityExpressOrderStatusChangeDTO.getOrder_status())));
         orderDeliveryService.updateById(orderDelivery);
         return new IntracityExpressOrderStatusChangeVO();
     }
 
+    private void updateCancel(OrderCloth orderCloth, OrderDelivery orderDelivery) {
+        if (orderCloth.getOrderStatus().equals(ClothOrderStatusType.SENDING.getCode())) {
+            orderClothService.update(new UpdateWrapper<OrderCloth>().lambda()
+                    .set(OrderCloth::getOrderStatus, ClothOrderStatusType.WAITING_TO_SEND.getCode())
+                    .eq(OrderCloth::getId, orderCloth.getId()));
+        }
+    }
+
+    private void updateSuccess(OrderCloth orderCloth, OrderDelivery orderDelivery) {
+        if (orderDelivery.getClothOrderType().equals(ClothOrderDeliveryType.takeCloth.getCode())
+                && orderCloth.getOrderStatus().equals(ClothOrderStatusType.SENDING.getCode())) {
+            orderClothService.update(new UpdateWrapper<OrderCloth>().lambda()
+                    .set(OrderCloth::getOrderStatus, ClothOrderStatusType.FINISH.getCode())
+                    .eq(OrderCloth::getId, orderCloth.getId()));
+        }
+    }
+
+    private void updateSending(OrderCloth orderCloth, OrderDelivery orderDelivery) {
+        if (orderDelivery.getClothOrderType().equals(ClothOrderDeliveryType.takeCloth.getCode())
+                && orderCloth.getOrderStatus().equals(ClothOrderStatusType.WAITING_TO_SEND.getCode())) {
+            orderClothService.update(new UpdateWrapper<OrderCloth>().lambda()
+                    .set(OrderCloth::getOrderStatus, ClothOrderStatusType.SENDING.getCode())
+                    .eq(OrderCloth::getId, orderCloth.getId()));
+        }
+    }
 }

+ 18 - 0
yiqi-admin/src/main/java/com/yiqi/admin/controller/order/OrderClothController.java

@@ -370,6 +370,19 @@ public class OrderClothController extends BaseController {
         orderCloth.setSendClothAppUserId(deliveryManId);
         orderCloth.setSendClothWay(ClothOrderDeliveryWay.delivery.getCode());
         orderClothService.updateById(orderCloth);
+        // 创建配送单信息
+        // 1.获取收衣配送单
+        OrderDelivery takeDelivery = orderDeliveryService.selectOrderDeliveryByOrderId(orderCloth.getId(), ClothOrderDeliveryType.collectCloth.getCode());
+        OrderDelivery orderDelivery = new OrderDelivery(takeDelivery);
+        orderDelivery.setDeliverySn(orderNoUtils.getDeliveryOrderNo());
+        orderDelivery.setOrderSn(orderCloth.getOrderNo());
+        orderDelivery.setClothOrderType(ClothOrderDeliveryType.takeCloth.getCode());
+        orderDelivery.setCreateTime(DateUtils.getNowDate());
+        orderDelivery.setDeliveryStatus(OrderDeliveryStatusEnum.WAIT_DELIVERY.getCode());
+        orderDelivery.setDeliveryWay(ClothOrderDeliveryWay.delivery.getCode());
+        orderDelivery.setStoreId(orderCloth.getOrgId());
+        orderDeliveryService.save(orderDelivery);
+
         return R.ok();
     }
 
@@ -814,6 +827,7 @@ public class OrderClothController extends BaseController {
      */
     @GetMapping(value = "/setDeliveryManByAppointment")
     @ApiOperation(value = "预约订单,设置派送员")
+    @Transactional(rollbackFor = Exception.class)
     public AjaxResult setDeliveryManByAppointment(@RequestParam("deliveryId") String deliveryId,
                                                   @RequestParam("orderNo") String orderNo) {
         OrderCloth orderCloth = orderClothService.getOne(new QueryWrapper<OrderCloth>().lambda()
@@ -832,6 +846,10 @@ public class OrderClothController extends BaseController {
         orderCloth.buildUpdateData();
         orderCloth.setTakeClothAppUserId(Long.parseLong(deliveryId));
         orderCloth.setOrderStatus(ClothOrderStatusType.WAITING_TO_DOOR.getCode());
+        // 更新配送员id
+        OrderDelivery orderDelivery = orderDeliveryService.selectOrderDeliveryByOrderId(orderCloth.getId(), "0");
+        orderDelivery.setDeliveryManId(Long.valueOf(deliveryId));
+        orderDeliveryService.updateById(orderDelivery);
         return success(orderClothService.updateById(orderCloth));
     }
 

+ 1 - 0
yiqi-api/src/main/java/com/yiqi/api/controller/order/WeAppOrderClothController.java

@@ -197,6 +197,7 @@ public class WeAppOrderClothController {
         orderDelivery.setCreateTime(DateUtils.getNowDate());
         orderDelivery.setDeliveryStatus(OrderDeliveryStatusEnum.WAIT_DELIVERY.getCode());
         orderDelivery.setDeliveryWay(ClothOrderDeliveryWay.delivery.getCode());
+        orderDelivery.setStoreId(orderClothAppointmentDTO.getOrgId());
         orderDeliveryService.save(orderDelivery);
         return R.ok();
     }

+ 1 - 1
yiqi-common/src/main/java/com/yiqi/common/enums/OrderDeliveryStatusEnum.java

@@ -15,7 +15,7 @@ public enum OrderDeliveryStatusEnum {
     SEND_FINISH("9", "配送完成"),
 
     STORE_CANCEL("100", "商家取消配送订单"),
-    DELIVERY_CANCEL("101", "配送取消订单"),
+    DELIVERY_CANCEL("101", "配送取消订单"),
     SENDER_CANCEL("102", "配送员撤单"),
     ;
 

+ 12 - 1
yiqi-common/src/main/java/com/yiqi/order/domain/OrderDelivery.java

@@ -167,7 +167,7 @@ public class OrderDelivery extends BaseEntity {
     private String transOrderId;
 
     /**
-     * 配送状态,枚举值
+     * 配送状态,枚举值 {@link com.yiqi.common.enums.OrderDeliveryStatusEnum}
      */
     @Excel(name = "配送状态,枚举值")
     @ApiModelProperty("配送状态,枚举值")
@@ -246,4 +246,15 @@ public class OrderDelivery extends BaseEntity {
         setCreateTime(DateUtils.getNowDate());
     }
 
+    public OrderDelivery(OrderDelivery orderDelivery) {
+        this.appUserId = orderDelivery.getAppUserId();
+        this.userAddress = orderDelivery.getUserAddress();
+        this.userLat = orderDelivery.getUserLat();
+        this.userLng = orderDelivery.getUserLng();
+        this.userPhone = orderDelivery.getUserPhone();
+        this.userName = orderDelivery.getUserName();
+        this.storeId = orderDelivery.getStoreId();
+        setCreateTime(DateUtils.getNowDate());
+    }
+
 }

+ 1 - 0
yiqi-core/src/main/resources/mapper/app/AppDeliveryManMapper.xml

@@ -61,6 +61,7 @@
         FROM
             app_delivery_relation a
         LEFT JOIN app_user c ON a.app_user_id = c.id
+        JOIN app_delivery_man d ON d.app_user_id = c.id
         where a.org_id = #{orgId} and a.source_type = #{sourceType}
     </select>