wangming 3 дней назад
Родитель
Сommit
ea673cb869

+ 7 - 2
yami-shop-bean/src/main/java/com/yami/shop/bean/param/DeliveryOrderParam.java

@@ -10,11 +10,11 @@
 
 package com.yami.shop.bean.param;
 
-import javax.validation.constraints.NotBlank;
-
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotBlank;
+
 /**
  * @author LGH
  */
@@ -32,4 +32,9 @@ public class DeliveryOrderParam {
 	@NotBlank(message="物流单号不能为空")
 	@ApiModelProperty(value = "物流单号",required=true)
 	private String dvyFlowId;
+
+    @NotBlank(message="物流公司编号不能为空")
+    @ApiModelProperty(value = "物流公司编号",required=true)
+    private String dvyNo;
+
 }

+ 8 - 3
yami-shop-multishop/src/main/java/com/yami/shop/multishop/controller/OrderController.java

@@ -16,14 +16,16 @@ import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yami.shop.bean.enums.*;
-import com.yami.shop.bean.model.*;
+import com.yami.shop.bean.model.Order;
+import com.yami.shop.bean.model.OrderItem;
+import com.yami.shop.bean.model.OrderRefund;
+import com.yami.shop.bean.model.UserAddrOrder;
 import com.yami.shop.bean.param.CancelOrderParam;
 import com.yami.shop.bean.param.DeliveryOrderParam;
 import com.yami.shop.bean.param.OrderParam;
 import com.yami.shop.common.annotation.SysLog;
 import com.yami.shop.common.config.Constant;
 import com.yami.shop.common.exception.GlobalException;
-import com.yami.shop.common.exception.YamiShopBindException;
 import com.yami.shop.common.util.Arith;
 import com.yami.shop.common.util.PageParam;
 import com.yami.shop.security.multishop.util.SecurityUtils;
@@ -36,7 +38,10 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
-import java.util.*;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
 
 /**
  * @author lgh on 2018/09/15.

+ 42 - 7
yami-shop-platform/src/main/java/com/yami/shop/platform/controller/OrderController.java

@@ -12,30 +12,30 @@ package com.yami.shop.platform.controller;
 
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yami.shop.bean.enums.DvyType;
+import com.yami.shop.bean.enums.OrderStatus;
 import com.yami.shop.bean.model.Order;
 import com.yami.shop.bean.model.OrderItem;
 import com.yami.shop.bean.model.UserAddrOrder;
+import com.yami.shop.bean.param.DeliveryOrderParam;
 import com.yami.shop.bean.param.OrderParam;
 import com.yami.shop.bean.param.OrderPayParam;
 import com.yami.shop.common.exception.GlobalException;
 import com.yami.shop.common.util.PageParam;
 import com.yami.shop.common.util.R;
-import com.yami.shop.service.OrderItemService;
-import com.yami.shop.service.OrderService;
-import com.yami.shop.service.UserAddrOrderService;
+import com.yami.shop.service.*;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.http.ResponseEntity;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 订单信息管理实现
@@ -52,6 +52,9 @@ public class OrderController {
     private final OrderService orderService;
     private final OrderItemService orderItemService;
     private final UserAddrOrderService userAddrOrderService;
+    private final ProductService productService;
+    private final SkuService skuService;
+
 
     /**
      * 分页获取
@@ -104,4 +107,36 @@ public class OrderController {
         orderService.soldExcel(orderParam,response);
 //
     }
+
+    @ApiOperation("发货")
+    @PutMapping("/delivery")
+    public ResponseEntity<Void> delivery(@RequestBody DeliveryOrderParam deliveryOrderParam) {
+        Order order = orderService.getOne(new LambdaUpdateWrapper<Order>().eq(Order::getOrderNumber, deliveryOrderParam.getOrderNumber()));
+        if (!Objects.equals(order.getHbOrderStatus(), OrderStatus.PADYED.value()) && Objects.equals(order.getDvyType(), DvyType.FETCH.value())){
+            throw new GlobalException("订单不处于待入库状态,无法进行入库");
+        }else if (!Objects.equals(order.getHbOrderStatus(), OrderStatus.PADYED.value())){
+            throw new GlobalException("订单不处于待发货状态,无法进行发货");
+        }
+
+        Order orderParam = new Order();
+        orderParam.setOrderId(order.getOrderId());
+        if (!Objects.equals(order.getDvyType(), DvyType.FETCH.value()) || !Objects.equals(order.getDvyType(), DvyType.NOT_DELIVERY.value())){
+            orderParam.setDvyId(deliveryOrderParam.getDvyId());
+            orderParam.setDvyFlowId(deliveryOrderParam.getDvyFlowId());
+        }
+        orderParam.setDvyTime(new Date());
+        orderParam.setUpdateTime(new Date());
+        orderParam.setHbOrderStatus(OrderStatus.CONSIGNMENT.value());
+        orderParam.setUserId(order.getUserId());
+
+        orderService.delivery(orderParam);
+
+        List<OrderItem> orderItems = orderItemService.getOrderItemsByOrderNumber(deliveryOrderParam.getOrderNumber());
+        for (OrderItem orderItem : orderItems) {
+            productService.removeProductCacheByProdId(orderItem.getProdId());
+            skuService.removeSkuCacheBySkuId(orderItem.getSkuId(),orderItem.getProdId());
+        }
+        return ResponseEntity.ok().build();
+    }
+
 }