Преглед на файлове

协销根据关键词搜索订单

chao преди 3 години
родител
ревизия
5519693729

+ 29 - 1
src/main/java/com/caimei365/order/components/OrderCommonService.java

@@ -12,6 +12,7 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -156,7 +157,34 @@ public class OrderCommonService {
         return discernReceiptList;
     }
 
-
+    /**
+     * 设置搜索关键词历史记录
+     * @param userId 用户Id
+     * @param searchWord 搜索关键词
+     */
+    public void setHistoryRecord(Integer userId, String searchWord) {
+        // 初始化一个搜索关键词历史记录
+        SearchHistoryVo historyRecord = new SearchHistoryVo();
+        historyRecord.setUserId(userId);
+        historyRecord.setSearchDate(new Date());
+        historyRecord.setSearchWord(searchWord);
+        historyRecord.setDelFlag(0);
+        // 查询搜索关键词历史记录是否存在
+        Integer recordId = orderCommonMapper.getSearchHistoryIdByWord(searchWord);
+        // 保存搜索关键词历史记录
+        if (null != recordId && recordId >0) {
+            historyRecord.setId(recordId);
+            orderCommonMapper.updateSearchHistory(historyRecord);
+        } else {
+            orderCommonMapper.insertSearchHistory(historyRecord);
+        }
+        // 查询关键字历史记录条数
+        int count = orderCommonMapper.countSearchHistory(userId);
+        // 只保留10条的搜索关键词历史记录
+        if (count > 10) {
+            orderCommonMapper.deleteSearchHistoryLimit(userId);
+        }
+    }
 
 
 

+ 25 - 0
src/main/java/com/caimei365/order/controller/OrderSellerApi.java

@@ -9,6 +9,7 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -74,6 +75,30 @@ public class OrderSellerApi {
         return orderSellerService.getOrderListClub(serviceProviderId, clubId, listType, orderSubmitType, pageNum, pageSize);
     }
 
+    /**
+     * 协销根据关键词搜索订单
+     */
+    @ApiOperation("协销根据关键词搜索订单(旧:/seller/searchOrder)")
+    @ApiImplicitParams({
+            @ApiImplicitParam(required = true, name = "serviceProviderId", value = "协销Id"),
+            @ApiImplicitParam(required = false, name = "searchWord", value = "搜索关键词"),
+            @ApiImplicitParam(required = false, name = "pageNum", value = "页码"),
+            @ApiImplicitParam(required = false, name = "pageSize", value = "每页数量")
+    })
+    @GetMapping("/search")
+    public ResponseJson<PageInfo<OrderVo>> getOrderListByKeyword(Integer serviceProviderId, String searchWord,
+                                                                 @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                                 @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
+        if (null == serviceProviderId) {
+            return ResponseJson.error("协销Id不能为空!", null);
+        }
+        if (StringUtils.isEmpty(searchWord)) {
+            return ResponseJson.error("请输入搜索关键词!", null);
+        }
+        return orderSellerService.getOrderListByKeyword(serviceProviderId, searchWord, pageNum, pageSize);
+    }
+
+
 
 
 

+ 0 - 26
src/main/java/com/caimei365/order/mapper/OrderClubMapper.java

@@ -122,32 +122,6 @@ public interface OrderClubMapper {
      * @param userId     用户Id
      */
     List<OrderVo> getOrderListByKeyword(String searchWord, Integer userId);
-
-    /**
-     * 查询关键字历史记录是否存在
-     * @param searchWord 关键字
-     */
-    Integer getSearchHistoryIdByWord(String searchWord);
-    /**
-     * 更新搜索关键词历史记录
-     * @param historyRecord SearchHistoryVo
-     */
-    void updateSearchHistory(SearchHistoryVo historyRecord);
-    /**
-     * 新增搜索关键词历史记录
-     * @param historyRecord SearchHistoryVo
-     */
-    void insertSearchHistory(SearchHistoryVo historyRecord);
-    /**
-     * 统计搜索关键词数量
-     * @param userId 用户Id
-     */
-    int countSearchHistory(Integer userId);
-    /**
-     * 只保留10条的搜索关键词历史记录
-     * @param userId 用户Id
-     */
-    void deleteSearchHistoryLimit(Integer userId);
     /**
      * 根据用户Id查找订单搜索历史记录
      * @param userId 用户Id

+ 26 - 4
src/main/java/com/caimei365/order/mapper/OrderCommonMapper.java

@@ -1,9 +1,6 @@
 package com.caimei365.order.mapper;
 
-import com.caimei365.order.model.vo.DiscernReceiptVo;
-import com.caimei365.order.model.vo.OrderProductVo;
-import com.caimei365.order.model.vo.PromotionsVo;
-import com.caimei365.order.model.vo.ShopOrderVo;
+import com.caimei365.order.model.vo.*;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -57,4 +54,29 @@ public interface OrderCommonMapper {
      * @param orderId 订单Id
      */
     List<Double> getShouldPayShopAmountList(Integer orderId);
+    /**
+     * 查询关键字历史记录是否存在
+     * @param searchWord 关键字
+     */
+    Integer getSearchHistoryIdByWord(String searchWord);
+    /**
+     * 更新搜索关键词历史记录
+     * @param historyRecord SearchHistoryVo
+     */
+    void updateSearchHistory(SearchHistoryVo historyRecord);
+    /**
+     * 新增搜索关键词历史记录
+     * @param historyRecord SearchHistoryVo
+     */
+    void insertSearchHistory(SearchHistoryVo historyRecord);
+    /**
+     * 统计搜索关键词数量
+     * @param userId 用户Id
+     */
+    int countSearchHistory(Integer userId);
+    /**
+     * 只保留10条的搜索关键词历史记录
+     * @param userId 用户Id
+     */
+    void deleteSearchHistoryLimit(Integer userId);
 }

+ 13 - 0
src/main/java/com/caimei365/order/mapper/OrderSellerMapper.java

@@ -50,4 +50,17 @@ public interface OrderSellerMapper {
      * @param date   时间
      */
     void updateClubLastCheckOrderDate(Integer clubId, Date date);
+
+    /**
+     * 获取协销用户Id
+     * @param serviceProviderId 协销Id
+     */
+    Integer getUserIdBySpId(Integer serviceProviderId);
+
+    /**
+     * 协销根据关键词搜索订单
+     * @param searchWord 关键词
+     * @param userIds     用户Id
+     */
+    List<OrderVo> getOrderListByKeyword(@Param("userIds") List<Integer> userIds, @Param("searchWord") String searchWord);
 }

+ 9 - 0
src/main/java/com/caimei365/order/service/OrderSellerService.java

@@ -32,4 +32,13 @@ public interface OrderSellerService {
      * @param pageSize   每页数量
      */
     ResponseJson<PageInfo<OrderVo>> getOrderListClub(Integer serviceProviderId, Integer clubId, Integer listType, Integer orderSubmitType, int pageNum, int pageSize);
+
+    /**
+     * 协销根据关键词搜索订单
+     * @param serviceProviderId     协销Id
+     * @param searchWord 搜索关键词
+     * @param pageNum    页码
+     * @param pageSize   每页数量
+     */
+    ResponseJson<PageInfo<OrderVo>> getOrderListByKeyword(Integer serviceProviderId, String searchWord, int pageNum, int pageSize);
 }

+ 2 - 30
src/main/java/com/caimei365/order/service/impl/OrderClubServiceImpl.java

@@ -8,7 +8,6 @@ import com.caimei365.order.mapper.BaseMapper;
 import com.caimei365.order.mapper.OrderClubMapper;
 import com.caimei365.order.mapper.OrderCommonMapper;
 import com.caimei365.order.model.ResponseJson;
-import com.caimei365.order.model.enums.ReceivablesType;
 import com.caimei365.order.model.po.BalanceRecordPo;
 import com.caimei365.order.model.po.OrderPo;
 import com.caimei365.order.model.po.OrderProductPo;
@@ -98,7 +97,7 @@ public class OrderClubServiceImpl implements OrderClubService {
     @Override
     public ResponseJson<PageInfo<OrderVo>> getOrderListByKeyword(Integer userId, String searchWord, int pageNum, int pageSize) {
         // 设置搜索关键词历史记录
-        setHistoryRecord(userId, searchWord);
+        orderCommonService.setHistoryRecord(userId, searchWord);
         PageHelper.startPage(pageNum, pageSize);
         List<OrderVo> orderList = orderClubMapper.getOrderListByKeyword(searchWord, userId);
         //获取主订单数据
@@ -211,34 +210,7 @@ public class OrderClubServiceImpl implements OrderClubService {
         return ResponseJson.success(map);
     }
 
-    /**
-     * 设置搜索关键词历史记录
-     * @param userId 用户Id
-     * @param searchWord 搜索关键词
-     */
-    private void setHistoryRecord(Integer userId, String searchWord) {
-        // 初始化一个搜索关键词历史记录
-        SearchHistoryVo historyRecord = new SearchHistoryVo();
-        historyRecord.setUserId(userId);
-        historyRecord.setSearchDate(new Date());
-        historyRecord.setSearchWord(searchWord);
-        historyRecord.setDelFlag(0);
-        // 查询搜索关键词历史记录是否存在
-        Integer recordId = orderClubMapper.getSearchHistoryIdByWord(searchWord);
-        // 保存搜索关键词历史记录
-        if (null != recordId && recordId >0) {
-            historyRecord.setId(recordId);
-            orderClubMapper.updateSearchHistory(historyRecord);
-        } else {
-            orderClubMapper.insertSearchHistory(historyRecord);
-        }
-        // 查询关键字历史记录条数
-        int count = orderClubMapper.countSearchHistory(userId);
-        // 只保留10条的搜索关键词历史记录
-        if (count > 10) {
-            orderClubMapper.deleteSearchHistoryLimit(userId);
-        }
-    }
+
 
     /**
      * 机构确认订单

+ 39 - 2
src/main/java/com/caimei365/order/service/impl/OrderSellerServiceImpl.java

@@ -40,10 +40,10 @@ public class OrderSellerServiceImpl implements OrderSellerService {
      */
     @Override
     public ResponseJson<PageInfo<OrderVo>> getOrderList(Integer serviceProviderId, Integer listType, Integer orderSubmitType, String orderNo, int pageNum, int pageSize) {
-        // 分页请求数据
-        PageHelper.startPage(pageNum, pageSize);
         // 获取该协销下的机构用户Id
         List<Integer> clubUserIds = orderSellerMapper.getClubUserIds(serviceProviderId);
+        // 分页请求数据
+        PageHelper.startPage(pageNum, pageSize);
         // 获取订单列表
         List<OrderVo> orderList = orderSellerMapper.getOrderList(clubUserIds, listType, orderSubmitType, orderNo);
         //获取主订单数据
@@ -94,4 +94,41 @@ public class OrderSellerServiceImpl implements OrderSellerService {
         orderSellerMapper.updateClubLastCheckOrderDate(clubId, new Date());
         return ResponseJson.success(pageInfo);
     }
+
+    /**
+     * 协销根据关键词搜索订单
+     *
+     * @param serviceProviderId 协销Id
+     * @param searchWord        搜索关键词
+     * @param pageNum           页码
+     * @param pageSize          每页数量
+     */
+    @Override
+    public ResponseJson<PageInfo<OrderVo>> getOrderListByKeyword(Integer serviceProviderId, String searchWord, int pageNum, int pageSize) {
+        // 获取协销用户Id
+        Integer spUserId = orderSellerMapper.getUserIdBySpId(serviceProviderId);
+        if (null == spUserId) {
+            return ResponseJson.error("协销用户异常!", null);
+        }
+        // 设置搜索关键词历史记录
+        orderCommonService.setHistoryRecord(spUserId, searchWord);
+        // 获取该协销下的机构用户Id
+        List<Integer> clubUserIds = orderSellerMapper.getClubUserIds(serviceProviderId);
+        // 分页请求数据
+        PageHelper.startPage(pageNum, pageSize);
+        // 获取订单列表
+        List<OrderVo> orderList = orderSellerMapper.getOrderListByKeyword(clubUserIds, searchWord);
+        //获取主订单数据
+        orderList.forEach(order -> {
+            // 设置订单状态
+            orderCommonService.setOrderStatus(order);
+            // 设置子订单数据
+            orderCommonService.getShopOrderData(order);
+            // 设置付款金额
+            orderCommonService.getDiscernReceiptAndSetOrder(order);
+        });
+        PageInfo<OrderVo> pageInfo = new PageInfo(orderList);
+        return ResponseJson.success(pageInfo);
+    }
+
 }

+ 3 - 29
src/main/resources/mapper/OrderClubMapper.xml

@@ -90,36 +90,19 @@
         SET status = 1, updateDate = NOW(), receiptTime = NOW()
         WHERE orderID = #{orderId}
     </update>
-    <update id="updateSearchHistory">
-        UPDATE user_order_history SET
-            userId = #{userId},
-            searchWord = #{searchWord},
-            searchDate = #{searchDate},
-            delFlag = #{delFlag}
-        WHERE id = #{id}
-    </update>
+
     <update id="updateOrderShareCode">
         UPDATE cm_mall_order_share_code
         SET shareCode = #{shareCode}, expiredTime = #{expiredTime}, delFlag = #{delFlag}
         WHERE orderID = #{orderId}
     </update>
-    <delete id="deleteSearchHistoryLimit">
-        DELETE FROM user_order_history
-        WHERE userId=#{userId}
-        AND id NOT IN (
-            SELECT temp.id FROM (SELECT id FROM user_order_history WHERE userId=#{userId} ORDER BY id DESC LIMIT 10) AS temp
-        )
-    </delete>
+
     <delete id="deleteOrderSearchHistory">
         DELETE FROM user_order_history WHERE userId=#{userId}
     </delete>
     <delete id="deleteOrderShareCodeRecord">
         DELETE FROM cm_mall_share_code_record WHERE orderID = #{orderId}
     </delete>
-    <insert id="insertSearchHistory">
-        INSERT INTO user_order_history (userId, searchWord, searchDate, delFlag)
-        VALUES (#{userId}, #{searchWord}, #{searchDate}, #{delFlag})
-    </insert>
     <insert id="insertOrderShareCode">
         INSERT INTO cm_mall_order_share_code (orderID, shareCode, addTime, expiredTime, delFlag)
         VALUES (#{orderId}, #{shareCode}, #{addTime}, #{expiredTime}, #{delFlag})
@@ -360,20 +343,11 @@
         co.clauseName
         FROM cm_order co
         LEFT JOIN cm_order_product cop ON co.orderID = cop.orderID
-        WHERE delFlag = 0 AND userID = #{userId}
+        WHERE co.delFlag = 0 AND co.userID = #{userId}
         AND cop.name LIKE CONCAT('%',#{searchWord},'%')
         GROUP BY co.orderID
         ORDER BY co.orderTime DESC
     </select>
-    <select id="getSearchHistoryIdByWord" resultType="java.lang.Integer">
-        SELECT id FROM user_order_history
-        WHERE searchWord = #{searchWord}
-        ORDER BY id DESC
-        LIMIT 1
-    </select>
-    <select id="countSearchHistory" resultType="java.lang.Integer">
-        SELECT COUNT(*) FROM user_order_history WHERE userId = #{userId}
-    </select>
     <select id="getOrderSearchHistory" resultType="com.caimei365.order.model.vo.SearchHistoryVo">
         SELECT id, userId, searchWord, searchDate, delFlag
         FROM user_order_history

+ 28 - 0
src/main/resources/mapper/OrderCommonMapper.xml

@@ -146,4 +146,32 @@
     <select id="getShouldPayShopAmountList" resultType="java.lang.Double">
         SELECT shouldPayShopAmount FROM cm_shop_order WHERE orderID = #{orderId} AND delFlag = '0'
     </select>
+    <update id="updateSearchHistory">
+        UPDATE user_order_history SET
+        userId = #{userId},
+        searchWord = #{searchWord},
+        searchDate = #{searchDate},
+        delFlag = #{delFlag}
+        WHERE id = #{id}
+    </update>
+    <delete id="deleteSearchHistoryLimit">
+        DELETE FROM user_order_history
+        WHERE userId=#{userId}
+        AND id NOT IN (
+        SELECT temp.id FROM (SELECT id FROM user_order_history WHERE userId=#{userId} ORDER BY id DESC LIMIT 10) AS temp
+        )
+    </delete>
+    <insert id="insertSearchHistory">
+        INSERT INTO user_order_history (userId, searchWord, searchDate, delFlag)
+        VALUES (#{userId}, #{searchWord}, #{searchDate}, #{delFlag})
+    </insert>
+    <select id="getSearchHistoryIdByWord" resultType="java.lang.Integer">
+        SELECT id FROM user_order_history
+        WHERE searchWord = #{searchWord}
+        ORDER BY id DESC
+        LIMIT 1
+    </select>
+    <select id="countSearchHistory" resultType="java.lang.Integer">
+        SELECT COUNT(*) FROM user_order_history WHERE userId = #{userId}
+    </select>
 </mapper>

+ 56 - 0
src/main/resources/mapper/OrderSellerMapper.xml

@@ -152,4 +152,60 @@
         </if>
         ORDER BY orderTime DESC
     </select>
+    <select id="getUserIdBySpId" resultType="java.lang.Integer">
+        SELECT userID FROM serviceprovider WHERE serviceProviderID = #{serviceProviderId}
+    </select>
+    <select id="getOrderListByKeyword" resultType="com.caimei365.order.model.vo.OrderVo">
+        SELECT
+        co.orderSource,
+        co.orderNo,
+        co.userID AS userId,
+        co.clubID AS clubId,
+        co.buyUserID AS buyUserId,
+        co.orderTime,
+        co.updateDate,
+        co.delFlag,
+        co.userBeans,
+        co.orderType,
+        co.orderSubmitType,
+        co.confirmFlag,
+        co.onlinePayFlag,
+        co.splitFlag,
+        co.payFlag,
+        co.receiptStatus,
+        co.payStatus,
+        co.zeroCostFlag,
+        co.sendOutStatus,
+        co.refundType,
+        co.affirmPaymentFlag,
+        co.productCount,
+        co.presentCount,
+        co.promotionalGiftsCount,
+        co.hasActProduct,
+        co.promotionFullReduction,
+        co.secondHandOrderFlag,
+        co.invoiceFlag,
+        co.freePostFlag AS postageFlag,
+        co.freight AS postage,
+        co.productTotalFee,
+        co.orderTotalFee,
+        co.payTotalFee,
+        co.payableAmount,
+        co.balancePayFee,
+        co.status,
+        co.confirmTime,
+        co.payTime,
+        co.rebateFlag,
+        co.clauseID AS clauseId,
+        co.clauseName
+        FROM cm_order co
+        LEFT JOIN cm_order_product cop ON co.orderID = cop.orderID
+        WHERE co.delFlag = 0 AND co.userID IN
+        <foreach item="userId" index="index" collection="userIds" open="(" separator="," close=")">
+            #{userId}
+        </foreach>
+        AND cop.name LIKE CONCAT('%',#{searchWord},'%')
+        GROUP BY co.orderID
+        ORDER BY co.orderTime DESC
+    </select>
 </mapper>