PLF 5 лет назад
Родитель
Сommit
cb55b0046b

+ 81 - 5
src/main/java/com/caimei/controller/search/SearchController.java

@@ -1,11 +1,8 @@
 package com.caimei.controller.search;
 
 import com.caimei.controller.user.LoginController;
-import com.caimei.entity.CmMallPage;
-import com.caimei.entity.CmWxJsonModel;
-import com.caimei.entity.CmMallOrganizeProducts;
-import com.caimei.entity.CmMallProductLadderPrice;
-import com.caimei.entity.CmMallProductSearchHistory;
+import com.caimei.entity.*;
+import com.caimei.mapper.order.OrderMapper;
 import com.caimei.service.search.SearchService;
 import com.caimei.utils.AppUtils;
 import com.github.pagehelper.PageHelper;
@@ -28,6 +25,8 @@ public class SearchController {
     private SearchService searchService;
     @Autowired
     private LoginController loginController;
+    @Autowired
+    private OrderMapper orderMapper;
     @Value("${miniprogram.domain}")
     private String domain;
 
@@ -93,4 +92,81 @@ public class SearchController {
         }
         return model.success();
     }
+
+    /**
+     * 订单列表搜索订单
+     */
+    @ResponseBody
+    @RequestMapping("/order")
+    public CmWxJsonModel searchOrder(Integer organizeID, String searchWord, String code, Integer index,
+                                     Integer pageSize, Integer userID, HttpServletRequest request) {
+        CmWxJsonModel jsonModel = loginController.login(code, request, organizeID);
+        String openID = (String) jsonModel.getData();
+        //查询历史记录是否存在
+        CmMallProductSearchHistory orderSearchHistory = searchService.findAllOrderRecord(organizeID, searchWord, openID);
+        if (orderSearchHistory == null) {
+            //保存并删除大于10条的历史记录
+            searchService.saveOrderRecord(organizeID, searchWord, openID);
+            searchService.deleteOrderRecord(organizeID, openID);
+        } else {
+            searchService.updateOrderRecord(organizeID, searchWord, openID);
+        }
+        if (index == null) index = 0;
+        if (pageSize == null) pageSize = 10;
+        PageHelper.startPage(index, pageSize);
+        List<CmMallOrder> orderList = searchService.searchOrder(organizeID, searchWord, userID);
+        for (CmMallOrder order : orderList) {
+            //111,待付待收待发
+            if (order.getStatus().equals(11) && order.getPayStatus().equals("1")) {
+                order.setStatus(111);
+            }
+            String[] ShopOrderIDs = {};
+            if (order.getShopOrderIDs().contains(",")) {
+                ShopOrderIDs = order.getShopOrderIDs().split(",");
+            } else {
+                ShopOrderIDs = new String[]{order.getShopOrderIDs()};
+            }
+            List<CmMallShopOrder> shopOrderList = orderMapper.findAllShopOrder(ShopOrderIDs);
+            for (CmMallShopOrder shopOrder : shopOrderList) {
+                List<CmMallOrderProduct> orderProductList = orderMapper.findOrderProduct(shopOrder.getShopOrderID());
+                for (CmMallOrderProduct orderProduct : orderProductList) {
+                    orderProduct.setProductImage(AppUtils.getImageURL("product", orderProduct.getProductImage(), 0, domain));
+                }
+                shopOrder.setCmOrderProducts(orderProductList);
+                shopOrder.setShopLogo(AppUtils.getImageURL("shopLogo", shopOrder.getShopLogo(), 0, domain));
+            }
+            order.setShopOrderList(shopOrderList);
+        }
+        CmMallPage<CmMallOrder> orderPage = new CmMallPage<>(orderList);
+        return CmWxJsonModel.newInstance().success(orderPage);
+    }
+
+    /**
+     * 订单搜索历史记录
+     */
+    @ResponseBody
+    @RequestMapping("/history")
+    public CmWxJsonModel orderRecord(Integer organizeID, String code, HttpServletRequest request) {
+        CmWxJsonModel jsonModel = loginController.login(code, request, organizeID);
+        String openID = (String) jsonModel.getData();
+        List<CmMallProductSearchHistory> historyList = searchService.findOrderRecord(organizeID, openID);
+        return CmWxJsonModel.newInstance().success(historyList);
+    }
+
+    /**
+     * 订单搜索删除历史记录
+     */
+    @ResponseBody
+    @RequestMapping("/deleteOrderRecord")
+    public CmWxJsonModel deleteOrderRecord(Integer organizeID, String code, HttpServletRequest request) {
+        CmWxJsonModel model = CmWxJsonModel.newInstance();
+        try {
+            CmWxJsonModel jsonModel = loginController.login(code, request, organizeID);
+            String openID = (String) jsonModel.getData();
+            searchService.deleteSearchHistory(organizeID, openID);
+        } catch (Exception e) {
+            return model.error("删除失败");
+        }
+        return model.success();
+    }
 }

+ 15 - 0
src/main/java/com/caimei/mapper/search/SearchMapper.java

@@ -1,5 +1,6 @@
 package com.caimei.mapper.search;
 
+import com.caimei.entity.CmMallOrder;
 import com.caimei.entity.CmMallOrganizeProducts;
 import com.caimei.entity.CmMallProductLadderPrice;
 import com.caimei.entity.CmMallProductSearchHistory;
@@ -25,4 +26,18 @@ public interface SearchMapper {
     CmMallProductSearchHistory findAllProductRecord(@Param("organizeID") Integer organizeID, @Param("openID") String openID, @Param("searchWord") String searchWord);
 
     void updateProductRecord(CmMallProductSearchHistory productSearchHistory);
+
+    CmMallProductSearchHistory findAllOrderRecord(@Param("organizeID") Integer organizeID, @Param("openID") String openID, @Param("searchWord") String searchWord);
+
+    void saveOrderRecord(CmMallProductSearchHistory orderSearchHistory);
+
+    void deleteOrderRecord(@Param("organizeID") Integer organizeID, @Param("openID") String openID);
+
+    void updateOrderRecord(CmMallProductSearchHistory orderSearchHistory);
+
+    List<CmMallOrder> searchOrder(@Param("organizeID") Integer organizeID, @Param("searchWord") String searchWord, @Param("userID") Integer userID);
+
+    List<CmMallProductSearchHistory> findOrderRecord(@Param("organizeID") Integer organizeID, @Param("openID") String openID);
+
+    void deleteSearchHistory(@Param("organizeID") Integer organizeID, @Param("openID") String openID);
 }

+ 15 - 0
src/main/java/com/caimei/service/search/SearchService.java

@@ -1,5 +1,6 @@
 package com.caimei.service.search;
 
+import com.caimei.entity.CmMallOrder;
 import com.caimei.entity.CmMallOrganizeProducts;
 import com.caimei.entity.CmMallProductLadderPrice;
 import com.caimei.entity.CmMallProductSearchHistory;
@@ -22,4 +23,18 @@ public interface SearchService {
     CmMallProductSearchHistory findAllProductRecord(Integer organizeID, String searchWord, String openID);
 
     void updateProductRecord(Integer organizeID, String searchWord, String openID);
+
+    CmMallProductSearchHistory findAllOrderRecord(Integer organizeID, String searchWord, String openID);
+
+    void saveOrderRecord(Integer organizeID, String searchWord, String openID);
+
+    void deleteOrderRecord(Integer organizeID, String openID);
+
+    void updateOrderRecord(Integer organizeID, String searchWord, String openID);
+
+    List<CmMallOrder> searchOrder(Integer organizeID, String searchWord, Integer userID);
+
+    List<CmMallProductSearchHistory> findOrderRecord(Integer organizeID, String openID);
+
+    void deleteSearchHistory(Integer organizeID, String openID);
 }

+ 48 - 0
src/main/java/com/caimei/service/search/impl/SearchServiceImpl.java

@@ -1,5 +1,6 @@
 package com.caimei.service.search.impl;
 
+import com.caimei.entity.CmMallOrder;
 import com.caimei.entity.CmMallOrganizeProducts;
 import com.caimei.entity.CmMallProductLadderPrice;
 import com.caimei.entity.CmMallProductSearchHistory;
@@ -67,4 +68,51 @@ public class SearchServiceImpl implements SearchService {
         productSearchHistory.setSearchWord(searchWord);
         searchMapper.updateProductRecord(productSearchHistory);
     }
+
+    @Override
+    public CmMallProductSearchHistory findAllOrderRecord(Integer organizeID, String searchWord, String openID) {
+        return searchMapper.findAllOrderRecord(organizeID, openID, searchWord);
+    }
+
+    @Override
+    public void saveOrderRecord(Integer organizeID, String searchWord, String openID) {
+        CmMallProductSearchHistory orderSearchHistory = new CmMallProductSearchHistory();
+        orderSearchHistory.setOpenID(openID);
+        orderSearchHistory.setDelFlag("0");
+        orderSearchHistory.setOrganizeID(organizeID);
+        orderSearchHistory.setSearchDate(new Date());
+        orderSearchHistory.setSearchWord(searchWord);
+        searchMapper.saveOrderRecord(orderSearchHistory);
+    }
+
+    @Override
+    public void deleteOrderRecord(Integer organizeID, String openID) {
+        searchMapper.deleteOrderRecord(organizeID, openID);
+    }
+
+    @Override
+    public void updateOrderRecord(Integer organizeID, String searchWord, String openID) {
+        CmMallProductSearchHistory orderSearchHistory = new CmMallProductSearchHistory();
+        orderSearchHistory.setOpenID(openID);
+        orderSearchHistory.setOrganizeID(organizeID);
+        orderSearchHistory.setSearchDate(new Date());
+        orderSearchHistory.setSearchWord(searchWord);
+        searchMapper.updateOrderRecord(orderSearchHistory);
+    }
+
+    @Override
+    public List<CmMallOrder> searchOrder(Integer organizeID, String searchWord, Integer userID) {
+        List<CmMallOrder> orderList = searchMapper.searchOrder(organizeID, searchWord, userID);
+        return orderList;
+    }
+
+    @Override
+    public List<CmMallProductSearchHistory> findOrderRecord(Integer organizeID, String openID) {
+        return searchMapper.findOrderRecord(organizeID, openID);
+    }
+
+    @Override
+    public void deleteSearchHistory(Integer organizeID, String openID) {
+        searchMapper.deleteSearchHistory(organizeID, openID);
+    }
 }

+ 101 - 0
src/main/resources/mapper/SearchMapper.xml

@@ -117,4 +117,105 @@
           AND searchWord = #{searchWord}
           AND delFlag = '0'
     </update>
+
+    <select id="findAllOrderRecord" resultType="com.caimei.entity.CmMallProductSearchHistory">
+        SELECT
+          *
+        FROM
+          cm_mall_order_search_history
+        WHERE
+          organizeID = #{organizeID}
+          AND openID = #{openID}
+          AND searchWord = #{searchWord}
+          AND delFlag = '0'
+    </select>
+
+    <insert id="saveOrderRecord">
+        INSERT INTO cm_mall_order_search_history (
+          organizeID, openID, searchWord, searchDate,
+          delFlag
+        )
+        VALUES
+          (
+            #{organizeID}, #{openID}, #{searchWord}, #{searchDate},
+            #{delFlag}
+          )
+    </insert>
+
+    <delete id="deleteOrderRecord">
+       DELETE FROM
+          cm_mall_order_search_history
+        WHERE
+          organizeID = #{organizeID}
+          AND openID = #{openID}
+          AND delFlag = '0'
+          AND id NOT IN (
+            SELECT
+              osh.id
+            FROM
+              (
+                SELECT
+                  id
+                FROM
+                  cm_mall_order_search_history
+                WHERE
+                  organizeID = #{organizeID}
+                  AND openID = #{openID}
+                  AND delFlag = '0'
+                ORDER BY
+                  searchDate DESC
+                LIMIT
+                  10
+              ) AS osh
+          )
+    </delete>
+
+    <update id="updateOrderRecord">
+        UPDATE
+          cm_mall_order_search_history
+        SET
+          searchDate = #{searchDate}
+        WHERE
+          openID = #{openID}
+          AND organizeID = #{organizeID}
+          AND searchWord = #{searchWord}
+          AND delFlag = '0'
+    </update>
+
+    <select id="searchOrder" resultType="com.caimei.entity.CmMallOrder">
+        SELECT
+          co.*
+        FROM
+          cm_order co
+          LEFT JOIN cm_order_product cop ON co.orderID = cop.orderID
+        WHERE
+          co.userID = #{userID}
+          AND co.delFlag = '0'
+          AND co.organizeID = #{organizeID}
+          AND cop.name LIKE CONCAT('%', #{searchWord}, '%')
+        GROUP BY
+          co.orderID
+        ORDER BY
+          co.orderTime DESC
+    </select>
+
+    <select id="findOrderRecord" resultType="com.caimei.entity.CmMallProductSearchHistory">
+        SELECT
+          *
+        FROM
+          cm_mall_order_search_history
+        WHERE
+          organizeID = #{organizeID}
+          AND openID = #{openID}
+          AND delFlag = '0'
+          ORDER BY searchDate DESC
+    </select>
+
+    <delete id="deleteSearchHistory">
+        DELETE FROM
+          cm_mall_order_search_history
+        WHERE
+          openID = #{openID}
+          AND organizeID = #{organizeID}
+    </delete>
 </mapper>