Jelajahi Sumber

物流信息

PLF 5 tahun lalu
induk
melakukan
cb72ca6ec7

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

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

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

@@ -1,6 +1,7 @@
 package com.caimei.entity;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * 发货物流记录Entity
@@ -24,6 +25,19 @@ public class CmLogisticsRecord implements Serializable {
     private Integer organizeProductID;  //组织的商品Id,关联cm_mall_organize_products表ID[适用于组织订单]
     private String name;        //供应商名称
     private String logo;        //供应商logo
+    private List<CmShopOrder> shopOrderList;
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public List<CmShopOrder> getShopOrderList() {
+        return shopOrderList;
+    }
+
+    public void setShopOrderList(List<CmShopOrder> shopOrderList) {
+        this.shopOrderList = shopOrderList;
+    }
 
     public String getName() {
         return name;

+ 6 - 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(Integer orderID);
+    List<LogisticsInfo> findLogisticsInfo(@Param("orderID") Integer orderID, @Param("shopOrderID") Integer shopOrderID);
 
-    List<CmLogisticsRecord> findLogisticsRecord(Integer logisticsBatchID);
+    List<CmLogisticsRecord> findLogisticsRecord(Integer shopOrderID);
 
     CmMallShareCodeRecord findShareCodeRecord(@Param("openid") String openid, @Param("orderID") Integer orderID);
 
@@ -73,4 +73,8 @@ public interface OrderMapper {
     void insertOrderInvoice(OrderInvoice orderInvoice);
 
     void deleteCodeRecord(Integer orderID);
+
+    List<String> findShopOrderID(@Param("orderID") Integer orderID, @Param("id") Integer id);
+
+    List<CmLogisticsRecord> findLogistics(Integer orderID);
 }

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

@@ -1,8 +1,6 @@
 package com.caimei.service.order;
 
-import com.caimei.entity.CmOrder;
-import com.caimei.entity.LogisticsInfo;
-import com.caimei.entity.WxJsonModel;
+import com.caimei.entity.*;
 
 import java.util.List;
 import java.util.Map;
@@ -14,7 +12,7 @@ public interface OrderService {
 
     Map<String, Object> particulars(Integer orderID) throws Exception;
 
-    List<LogisticsInfo> logistics(Integer orderID) throws Exception;
+    List<CmLogisticsRecord> 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);
 

+ 25 - 13
src/main/java/com/caimei/service/order/impl/OrderServiceImpl.java

@@ -18,6 +18,7 @@ import com.caimei.utils.AppUtils;
 import com.caimei.utils.MathUtil;
 import com.caimei.utils.NoUtils;
 import com.github.pagehelper.PageHelper;
+import groovy.util.IFileNameFinder;
 import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -212,7 +213,7 @@ public class OrderServiceImpl implements OrderService {
             order.setStatus(111);
         }
         //判断交易全退情况下,是否发过货,77,交易全退可以查看物流
-        List<LogisticsInfo> logisticsInfoList = orderMapper.findLogisticsInfo(orderID);
+        List<LogisticsInfo> logisticsInfoList = orderMapper.findLogisticsInfo(orderID, null);
         if (order.getStatus().equals(7) && logisticsInfoList != null && logisticsInfoList.size() > 0) {
             order.setStatus(77);
         }
@@ -694,22 +695,33 @@ public class OrderServiceImpl implements OrderService {
 
 
     @Override
-    public List<LogisticsInfo> logistics(Integer orderID) throws Exception {
+    public List<CmLogisticsRecord> logistics(Integer orderID) throws Exception {
         //物流商品信息
         CmOrder order = orderMapper.findOrder(orderID);
-        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));
+        if (order == null) throw new Exception("订单已删除");
+        List<CmLogisticsRecord> recordList = orderMapper.findLogistics(orderID);
+        for (CmLogisticsRecord record : recordList) {
+            List<String> shopOrderIDList = orderMapper.findShopOrderID(orderID, record.getId());
+            String[] ShopOrderIDs = shopOrderIDList.toArray(new String[shopOrderIDList.size()]);
+            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);
+                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);
+            record.setShopOrderList(shopOrderList);
         }
-        return logisticsInfoList;
+        return recordList;
     }
 
     @Override

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

@@ -330,27 +330,31 @@
     </select>
 
     <select id="findLogisticsInfo" parameterType="int" resultType="com.caimei.entity.LogisticsInfo">
-        SELECT
-          *
+        SELECT DISTINCT
+        li.*,
+        clb.deliveryTime
         FROM
-          logistics_information
+        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
         WHERE
-          orderID = #{orderID}
+        <if test="shopOrderID != null and shopOrderID != ''"  >
+            clr.shopOrderID = #{shopOrderID}
+        </if>
+        <if test="orderID != null and orderID != ''"  >
+            clr.orderID = #{orderID}
+        </if>
     </select>
 
     <select id="findLogisticsRecord" resultType="com.caimei.entity.CmLogisticsRecord" parameterType="int">
         SELECT
           clr.*,
-          clb.deliveryTime,
-          s.name,
-          s.logo
+          cop.organizeProductID
         FROM
           cm_logistics_record clr
-          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
+          LEFT JOIN cm_order_product cop ON clr.orderProductID = cop.orderProductID
         WHERE
-          logisticsBatchID = #{logisticsBatchID}
+          clr.shopOrderID = #{shopOrderID}
     </select>
 
     <select id="findShareCodeRecord" resultType="com.caimei.entity.CmMallShareCodeRecord">
@@ -537,4 +541,18 @@
           orderID = #{orderID}
     </delete>
 
+    <select id="findShopOrderID" parameterType="int" resultType="string">
+        SELECT
+          shopOrderID
+        FROM
+          cm_logistics_record
+        WHERE
+          orderID = #{orderID}
+          and logisticsBatchID = #{id}
+    </select>
+
+    <select id="findLogistics" resultType="com.caimei.entity.CmLogisticsRecord" parameterType="int">
+        SELECT * FROM cm_logistics_batch WHERE orderID= #{orderID}
+    </select>
+
 </mapper>