浏览代码

物流信息

PLF 5 年之前
父节点
当前提交
b8ddbd96d8

+ 7 - 2
src/main/java/com/caimei/controller/order/OrderController.java

@@ -226,8 +226,13 @@ public class OrderController {
     @RequestMapping("/logistics")
     public WxJsonModel logistics(Integer orderID) {
         WxJsonModel model = WxJsonModel.newInstance();
-        List<CmShopOrder> shopOrderList = orderService.logistics(orderID);
-        return model.success(shopOrderList);
+        List<LogisticsInfo> logistics = null;
+        try {
+            logistics = orderService.logistics(orderID);
+        } catch (Exception e) {
+            return model.error("" + e.getMessage());
+        }
+        return model.success(logistics);
     }
 
     /**

+ 17 - 0
src/main/java/com/caimei/entity/CmLogisticsRecord.java

@@ -22,7 +22,24 @@ public class CmLogisticsRecord implements Serializable {
     private String productName;        // 商品名称
     private String image;        // 商品图片
     private Integer organizeProductID;  //组织的商品Id,关联cm_mall_organize_products表ID[适用于组织订单]
+    private String name;        //供应商名称
+    private String logo;        //供应商logo
 
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getLogo() {
+        return logo;
+    }
+
+    public void setLogo(String logo) {
+        this.logo = logo;
+    }
 
     public Integer getId() {
         return id;

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

@@ -37,7 +37,15 @@ public class LogisticsInfo implements Serializable {
     private Date deliveryTime; //发货时间
 
     private List<Router> routers = new ArrayList<>();//此对象使用在转换info格式提供前端使用。JSONArray.parseArray(info, Router.class)
+    private List<CmLogisticsRecord> logisticsRecordList;    //物流批次
 
+    public List<CmLogisticsRecord> getLogisticsRecordList() {
+        return logisticsRecordList;
+    }
+
+    public void setLogisticsRecordList(List<CmLogisticsRecord> logisticsRecordList) {
+        this.logisticsRecordList = logisticsRecordList;
+    }
 
     public LogisticsInfo() {
     }

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

@@ -40,9 +40,9 @@ public interface OrderMapper {
 
     List<CmReturnedPurchase> findReturnedPurchase(Integer orderID);
 
-    List<LogisticsInfo> findLogisticsInfo(@Param("orderID") Integer orderID, @Param("shopOrderID") Integer shopOrderID);
+    List<LogisticsInfo> findLogisticsInfo(Integer orderID);
 
-    List<CmLogisticsRecord> findLogisticsRecord(Integer shopOrderID);
+    List<CmLogisticsRecord> findLogisticsRecord(Integer logisticsBatchID);
 
     CmMallShareCodeRecord findShareCodeRecord(@Param("openid") String openid, @Param("orderID") Integer orderID);
 

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

@@ -1,7 +1,7 @@
 package com.caimei.service.order;
 
 import com.caimei.entity.CmOrder;
-import com.caimei.entity.CmShopOrder;
+import com.caimei.entity.LogisticsInfo;
 import com.caimei.entity.WxJsonModel;
 
 import java.util.List;
@@ -14,7 +14,7 @@ public interface OrderService {
 
     Map<String, Object> particulars(Integer orderID) throws Exception;
 
-    List<CmShopOrder> logistics(Integer orderID);
+    List<LogisticsInfo> logistics(Integer orderID) throws Exception;
 
     WxJsonModel saveOrderInfo(WxJsonModel wxJsonModel, Integer userId, Integer organizeID, String cartType, Integer addressID, Object orderInfo, String balanceDeductionFlag, Double orderShouldPayFee, Integer cmOperationID);
 

+ 12 - 22
src/main/java/com/caimei/service/order/impl/OrderServiceImpl.java

@@ -212,7 +212,7 @@ public class OrderServiceImpl implements OrderService {
             order.setStatus(111);
         }
         //判断交易全退情况下,是否发过货,77,交易全退可以查看物流
-        List<LogisticsInfo> logisticsInfoList = orderMapper.findLogisticsInfo(orderID, null);
+        List<LogisticsInfo> logisticsInfoList = orderMapper.findLogisticsInfo(orderID);
         if (order.getStatus().equals(7) && logisticsInfoList != null && logisticsInfoList.size() > 0) {
             order.setStatus(77);
         }
@@ -694,32 +694,22 @@ public class OrderServiceImpl implements OrderService {
 
 
     @Override
-    public List<CmShopOrder> logistics(Integer orderID) {
+    public List<LogisticsInfo> logistics(Integer orderID) throws Exception {
         //物流商品信息
         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) {
+        if (order == null) throw new Exception("该订单已删除");
+        List<LogisticsInfo> logisticsInfoList = orderMapper.findLogisticsInfo(orderID);
+        for (LogisticsInfo logisticsInfo : logisticsInfoList) {
+            List<Router> routers = JSONArray.parseArray(logisticsInfo.getInfo(), Router.class);
+            logisticsInfo.setRouters(routers);
+            List<CmLogisticsRecord> recordList = orderMapper.findLogisticsRecord(logisticsInfo.getLogisticsBatchID());
+            for (CmLogisticsRecord logisticsRecord : recordList) {
+                logisticsRecord.setLogo(AppUtils.getImageURL("shopLogo", logisticsRecord.getLogo(), 0, domain));
                 logisticsRecord.setImage(AppUtils.getImageURL("product", logisticsRecord.getImage(), 0, domain));
             }
-            shopOrder.setCmLogisticsRecords(logisticsRecordList);
-            shopOrder.setShopLogo(AppUtils.getImageURL("shopLogo", shopOrder.getShopLogo(), 0, domain));
-            //物流信息
-            List<LogisticsInfo> logisticsInfoList = orderMapper.findLogisticsInfo(null, shopOrder.getShopOrderID());
-            for (LogisticsInfo logisticsInfo : logisticsInfoList) {
-                List<Router> routers = JSONArray.parseArray(logisticsInfo.getInfo(), Router.class);
-                logisticsInfo.setRouters(routers);
-            }
-            shopOrder.setLogisticsInfos(logisticsInfoList);
+            logisticsInfo.setLogisticsRecordList(recordList);
         }
-        return shopOrderList;
+        return logisticsInfoList;
     }
 
     @Override

+ 11 - 15
src/main/resources/mapper/OrderMapper.xml

@@ -330,31 +330,27 @@
     </select>
 
     <select id="findLogisticsInfo" parameterType="int" resultType="com.caimei.entity.LogisticsInfo">
-        SELECT DISTINCT
-          li.*,
-          clb.deliveryTime
+        SELECT
+          *
         FROM
-          logistics_information li
-          LEFT JOIN cm_logistics_batch clb ON clb.id = li.logisticsBatchID
-          LEFT JOIN cm_logistics_record clr ON clr.logisticsBatchID=clb.id
+          logistics_information
         WHERE
-        <if test="shopOrderID != null and shopOrderID != ''"  >
-            clr.shopOrderID = #{shopOrderID}
-        </if>
-        <if test="orderID != null and orderID != ''"  >
-            clr.orderID = #{orderID}
-        </if>
+          orderID = #{orderID}
     </select>
 
     <select id="findLogisticsRecord" resultType="com.caimei.entity.CmLogisticsRecord" parameterType="int">
         SELECT
           clr.*,
-          cop.organizeProductID
+          clb.deliveryTime,
+          s.name,
+          s.logo
         FROM
           cm_logistics_record clr
-          LEFT JOIN cm_order_product cop ON clr.orderProductID = cop.orderProductID
+          LEFT JOIN cm_logistics_batch clb ON clr.id = clb.deliveryTime
+          LEFT JOIN cm_shop_order cso ON cso.shopOrderID = clr.shopOrderID
+          LEFT JOIN shop s ON s.shopID = cso.shopID
         WHERE
-          clr.shopOrderID = #{shopOrderID}
+          logisticsBatchID = #{logisticsBatchID}
     </select>
 
     <select id="findShareCodeRecord" resultType="com.caimei.entity.CmMallShareCodeRecord">