PLF 5 gadi atpakaļ
vecāks
revīzija
83a08d1f9d

+ 11 - 0
src/main/java/com/caimei/controller/order/OrderController.java

@@ -143,5 +143,16 @@ public class OrderController {
 
         }
     }
+
+    /**
+     * 物流详情
+     */
+    @ResponseBody
+    @RequestMapping("/")
+    public WxJsonModel logistics(Integer orderID) {
+        WxJsonModel model = WxJsonModel.newInstance();
+        Map<String, Object> map = orderService.logistics(orderID);
+        return model.success(map);
+    }
 }
 

+ 18 - 0
src/main/java/com/caimei/entity/CmShopOrder.java

@@ -20,6 +20,7 @@ public class CmShopOrder implements Serializable {
     private Integer userID;        // 用户Id
     private Integer shopID;        // 供应商Id
     private String shopName;//供应商名称
+    private String shopLogo;    //供应商logo
     private Integer orderSubmitType;        // 订单提交类型  星范订单暂时无数据
     private Integer orderType;// 订单类型 1 自主  0 协销
     private Integer itemCount;        // 购买数量
@@ -59,6 +60,7 @@ public class CmShopOrder implements Serializable {
     private UserInvoiceInfo orderInvoice;//订单发票信息
     private List<LogisticsInfo> logisticsInfos;//订单快递信息
     private List<CmLogisticsBatch> cmLogisticsBatches;//物流批次信息
+    private List<CmLogisticsRecord> cmLogisticsRecords; //发货物流记录
     private String payStatus;   //(付款供应商)付款状态:1待付款、2部分付款、3已付款'
     private String sendOutStatus;   //发货状态:1待发货、2部分发货、3已发货
     private Double shopProductAmount; //商品费
@@ -117,6 +119,14 @@ public class CmShopOrder implements Serializable {
         this.shopID = shopID;
     }
 
+    public String getShopLogo() {
+        return shopLogo;
+    }
+
+    public void setShopLogo(String shopLogo) {
+        this.shopLogo = shopLogo;
+    }
+
     public Integer getOrderSubmitType() {
         return orderSubmitType;
     }
@@ -500,4 +510,12 @@ public class CmShopOrder implements Serializable {
     public void setShopOtherFee(Double shopOtherFee) {
         this.shopOtherFee = shopOtherFee;
     }
+
+    public List<CmLogisticsRecord> getCmLogisticsRecords() {
+        return cmLogisticsRecords;
+    }
+
+    public void setCmLogisticsRecords(List<CmLogisticsRecord> cmLogisticsRecords) {
+        this.cmLogisticsRecords = cmLogisticsRecords;
+    }
 }

+ 9 - 0
src/main/java/com/caimei/entity/LogisticsInfo.java

@@ -29,6 +29,7 @@ public class LogisticsInfo implements Serializable{
     private Long shopID;//供应商ID
     private Date updateDate;//最后更新时间
     private String remarks;//备注
+    private String deliveryTime; //发货时间
 
     private List<Router> routers= new ArrayList<>();//此对象使用在转换info格式提供前端使用。JSONArray.parseArray(info, Router.class)
 
@@ -159,4 +160,12 @@ public class LogisticsInfo implements Serializable{
     public void setRouters(List<Router> routers) {
         this.routers = routers;
     }
+
+    public String getDeliveryTime() {
+        return deliveryTime;
+    }
+
+    public void setDeliveryTime(String deliveryTime) {
+        this.deliveryTime = deliveryTime;
+    }
 }

+ 4 - 0
src/main/java/com/caimei/mapper/order/OrderMapper.java

@@ -34,4 +34,8 @@ public interface OrderMapper {
     List<CmDiscernReceipt> findDiscernReceipt(Integer orderID);
 
     List<CmReturnedPurchase> findReturnedPurchase(Integer orderID);
+
+    List<LogisticsInfo> findLogisticsInfo(Integer orderID);
+
+    List<CmLogisticsRecord> findLogisticsRecord(Integer shopOrderID);
 }

+ 2 - 0
src/main/java/com/caimei/service/order/OrderService.java

@@ -11,5 +11,7 @@ public interface OrderService {
 
     Map<String, Object> particulars(Integer orderID);
 
+    Map<String,Object> logistics(Integer orderID);
+
     WxJsonModel saveOrderInfo(WxJsonModel wxJsonModel,Integer userId,Integer organizeID,String cartType,Integer addressID,Object orderInfo,String balanceDeductionFlag,Double orderShouldPayFee,Integer cmOperationID);
 }

+ 34 - 0
src/main/java/com/caimei/service/order/impl/OrderServiceImpl.java

@@ -1,5 +1,6 @@
 package com.caimei.service.order.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.caimei.entity.*;
 import com.caimei.mapper.order.OrderMapper;
 import com.caimei.mapper.user.LoginMapper;
@@ -60,6 +61,7 @@ public class OrderServiceImpl implements OrderService {
                 totalPrice = products.getRetailPrice() * products.getProductCount();
                 productsList.add(products);
             }
+            shop.setLogo(AppUtils.getImageURL("shopLogo", shop.getLogo(), 0, domain));
             shop.setTotalPrice(totalPrice);
             shop.setProductsList(productsList);
         }
@@ -139,6 +141,7 @@ public class OrderServiceImpl implements OrderService {
                 orderProduct.setProductImage(AppUtils.getImageURL("product", orderProduct.getProductImage(), 0, domain));
             }
             shopOrder.setCmOrderProducts(orderProductList);
+            shopOrder.setShopLogo(AppUtils.getImageURL("shopLogo", shopOrder.getShopLogo(), 0, domain));
         }
         //发票信息
         UserInvoiceInfo invoice = personalMapper.findInvoice(order.getUserID());
@@ -223,4 +226,35 @@ public class OrderServiceImpl implements OrderService {
 
         return wxJsonModel.success();
     }
+
+
+    @Override
+    public Map<String, Object> logistics(Integer orderID) {
+        Map<String, Object> map = new HashMap();
+        //物流商品信息
+        CmOrder order = orderMapper.findOrder(orderID);
+        String[] ShopOrderIDs = {};
+        if (order.getShopOrderIDs().contains(",")) {
+            ShopOrderIDs = order.getShopOrderIDs().split(",");
+        } else {
+            ShopOrderIDs = new String[]{order.getShopOrderIDs()};
+        }
+        List<CmShopOrder> shopOrderList = orderMapper.findAllShopOrder(ShopOrderIDs);
+        for (CmShopOrder shopOrder : shopOrderList) {
+            List<CmLogisticsRecord> logisticsRecordList = orderMapper.findLogisticsRecord(shopOrder.getShopOrderID());
+            for (CmLogisticsRecord logisticsRecord : logisticsRecordList) {
+                logisticsRecord.setImage(AppUtils.getImageURL("product", logisticsRecord.getImage(), 0, domain));
+            }
+            shopOrder.setCmLogisticsRecords(logisticsRecordList);
+        }
+        //物流信息
+        List<LogisticsInfo> logisticsInfoList = orderMapper.findLogisticsInfo(orderID);
+        for (LogisticsInfo logisticsInfo : logisticsInfoList) {
+            List<Router> routers = JSONArray.parseArray(logisticsInfo.getInfo(), Router.class);
+            logisticsInfo.setRouters(routers);
+        }
+        map.put("logisticsInfoList", logisticsInfoList);
+        map.put("shopOrderList", shopOrderList);
+        return map;
+    }
 }

+ 23 - 2
src/main/resources/mapper/OrderMapper.xml

@@ -126,8 +126,9 @@
     <select id="findAllShopOrder" resultType="com.caimei.entity.CmShopOrder">
         SELECT 
           cso.*, 
-          s.name AS shopName 
-        FROM 
+          s.name AS shopName,
+          s.logo AS shopLogo
+        FROM
           cm_shop_order cso 
           LEFT JOIN shop s ON cso.shopID = s.shopID 
         WHERE 
@@ -176,4 +177,24 @@
         ORDER BY
           confirmReturnTime DESC
     </select>
+
+    <select id="findLogisticsInfo" parameterType="int" resultType="com.caimei.entity.LogisticsInfo">
+        SELECT
+          li.*,
+          clb.deliveryTime
+        FROM
+          logistics_information li
+          LEFT JOIN cm_logistics_batch clb ON clb.id = li.logisticsBatchID
+        WHERE
+          orderID = #{orderID}
+    </select>
+
+    <select id="findLogisticsRecord" resultType="com.caimei.entity.CmLogisticsRecord" parameterType="int">
+        SELECT
+          *
+        FROM
+          cm_logistics_record
+        WHERE
+          shopOrderID = #{shopOrderID}
+    </select>
 </mapper>