Przeglądaj źródła

卓美首页 添加关键字查询

yuhongqi 1 tydzień temu
rodzic
commit
ba5c9a0ed4

+ 2 - 1
fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreUserEndCategoryScrmController.java

@@ -47,10 +47,11 @@ public class FsStoreUserEndCategoryScrmController extends BaseController {
     @GetMapping("/products")
     public TableDataInfo listProductsByCategoryId(
             @RequestParam Long id,
+            @RequestParam(value = "keyword", required = false) String keyword,
             @RequestParam(defaultValue = "1") Integer pageNum,
             @RequestParam(defaultValue = "10") Integer pageSize) {
         startPage();
-        List<FsStoreUserEndCategoryProductVO> list = userEndCategoryService.listProductsByCategoryId(id);
+        List<FsStoreUserEndCategoryProductVO> list = userEndCategoryService.listProductsByCategoryId(id,keyword);
         return getDataTable(list);
     }
 

+ 2 - 2
fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreProductUserEndCategoryMapper.java

@@ -20,8 +20,8 @@ public interface FsStoreProductUserEndCategoryMapper {
     int deleteByCategoryIds(@Param("categoryIds") Long[] categoryIds);
 
     /** 按用户端分类ID查询去重后的商品ID列表(用于分页,配合 PageHelper) */
-    List<Long> selectDistinctProductIdsByCategoryId(@Param("categoryId") Long categoryId);
+    List<Long> selectDistinctProductIdsByCategoryId(@Param("categoryId") Long categoryId, @Param("keyword") String keyword);
 
     /** 关联表内全部去重商品ID(不按分类,配合 PageHelper 用于「全部」) */
-    List<Long> selectDistinctProductIds();
+    List<Long> selectDistinctProductIds(@Param("keyword") String keyword);
 }

+ 2 - 2
fs-service/src/main/java/com/fs/hisStore/service/IFsStoreProductScrmService.java

@@ -105,10 +105,10 @@ public interface IFsStoreProductScrmService
     List<FsStoreProductListQueryVO> selectFsStoreProductHotQuery(int count, String appId);
 
     /** 绿色有机分页(与 selectFsStoreProductNewQuery 条件一致,支持分页) */
-    List<FsStoreProductListQueryVO> selectFsStoreProductNewQueryPage(int pageNum, int pageSize, String appId);
+    List<FsStoreProductListQueryVO> selectFsStoreProductNewQueryPage(int pageNum, int pageSize, String appId, String keyword);
 
     /** 上新推荐分页(与 selectFsStoreProductHotQuery 条件一致,支持分页) */
-    List<FsStoreProductListQueryVO> selectFsStoreProductHotQueryPage(int pageNum, int pageSize, String appId);
+    List<FsStoreProductListQueryVO> selectFsStoreProductHotQueryPage(int pageNum, int pageSize, String appId, String keyword);
 
     List<FsStoreProductListQueryVO> selectFsStoreProductGoodQuery(int count);
 

+ 2 - 2
fs-service/src/main/java/com/fs/hisStore/service/IFsStoreUserEndCategoryScrmService.java

@@ -24,10 +24,10 @@ public interface IFsStoreUserEndCategoryScrmService {
     List<FsStoreUserEndCategoryScrm> selectTop8ByPosition(Long storeId, Integer position);
 
     /** 按用户端分类ID分页查询关联商品(去重商品ID分页,再查商品简表+标签并组装) */
-    List<FsStoreUserEndCategoryProductVO> listProductsByCategoryId(Long categoryId);
+    List<FsStoreUserEndCategoryProductVO> listProductsByCategoryId(Long categoryId, String keyword);
 
     /** 首页商品列表:id 为空查全部(分页商品ID后查简表+标签),id 不为空按用户端分类查;返回 list+total */
-    java.util.Map<String, Object> listProductsForApp(Long id, Integer pageNum, Integer pageSize);
+    java.util.Map<String, Object> listProductsForApp(Long id, String keyword, Integer pageNum, Integer pageSize);
 
     int insert(FsStoreUserEndCategoryScrm entity);
 

+ 4 - 2
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreProductScrmServiceImpl.java

@@ -1177,19 +1177,21 @@ public class FsStoreProductScrmServiceImpl implements IFsStoreProductScrmService
     }
 
     @Override
-    public List<FsStoreProductListQueryVO> selectFsStoreProductNewQueryPage(int pageNum, int pageSize, String appId) {
+    public List<FsStoreProductListQueryVO> selectFsStoreProductNewQueryPage(int pageNum, int pageSize, String appId, String keyword) {
         HashMap<String, Object> map = new HashMap<>();
         map.put("config", medicalMallConfig);
         map.put("appId", appId);
+        map.put("keyword", keyword);
         com.github.pagehelper.PageHelper.startPage(pageNum, pageSize);
         return fsStoreProductMapper.selectFsStoreProductNewQueryPage(map);
     }
 
     @Override
-    public List<FsStoreProductListQueryVO> selectFsStoreProductHotQueryPage(int pageNum, int pageSize, String appId) {
+    public List<FsStoreProductListQueryVO> selectFsStoreProductHotQueryPage(int pageNum, int pageSize, String appId, String keyword) {
         HashMap<String, Object> map = new HashMap<>();
         map.put("config", medicalMallConfig);
         map.put("appId", appId);
+        map.put("keyword", keyword);
         com.github.pagehelper.PageHelper.startPage(pageNum, pageSize);
         return fsStoreProductMapper.selectFsStoreProductHotQueryPage(map);
     }

+ 5 - 5
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreUserEndCategoryScrmServiceImpl.java

@@ -41,9 +41,9 @@ public class FsStoreUserEndCategoryScrmServiceImpl implements IFsStoreUserEndCat
     private FsStoreProductTagRelationScrmMapper productTagRelationMapper;
 
     @Override
-    public List<FsStoreUserEndCategoryProductVO> listProductsByCategoryId(Long categoryId) {
+    public List<FsStoreUserEndCategoryProductVO> listProductsByCategoryId(Long categoryId, String keyword) {
         if (categoryId == null) return new ArrayList<>();
-        List<Long> productIds = productUserEndCategoryMapper.selectDistinctProductIdsByCategoryId(categoryId);
+        List<Long> productIds = productUserEndCategoryMapper.selectDistinctProductIdsByCategoryId(categoryId, keyword);
         if (productIds == null || productIds.isEmpty()) return new ArrayList<>();
         List<FsStoreProductScrm> products = fsStoreProductScrmMapper.getStoreProductInProductIds(productIds);
         Map<Long, FsStoreProductScrm> productMap = products.stream().collect(Collectors.toMap(FsStoreProductScrm::getProductId, p -> p, (a, b) -> a));
@@ -79,15 +79,15 @@ public class FsStoreUserEndCategoryScrmServiceImpl implements IFsStoreUserEndCat
     }
 
     @Override
-    public Map<String, Object> listProductsForApp(Long id, Integer pageNum, Integer pageSize) {
+    public Map<String, Object> listProductsForApp(Long id, String keyword, Integer pageNum, Integer pageSize) {
         Map<String, Object> out = new HashMap<>();
         out.put("list", new ArrayList<FsStoreUserEndCategoryProductVO>());
         out.put("total", 0L);
         if (pageNum == null || pageSize == null || pageSize <= 0) return out;
         PageHelper.startPage(pageNum, pageSize);
         List<Long> productIds = (id != null && id != 0L)
-                ? productUserEndCategoryMapper.selectDistinctProductIdsByCategoryId(id)
-                : productUserEndCategoryMapper.selectDistinctProductIds();
+                ? productUserEndCategoryMapper.selectDistinctProductIdsByCategoryId(id, keyword)
+                : productUserEndCategoryMapper.selectDistinctProductIds(keyword);
         long total = productIds instanceof Page ? ((Page<?>) productIds).getTotal() : (productIds != null ? productIds.size() : 0);
         if (productIds == null || productIds.isEmpty()) {
             out.put("total", total);

+ 6 - 0
fs-service/src/main/resources/mapper/hisStore/FsStoreProductScrmMapper.xml

@@ -534,6 +534,9 @@
         <if test='appId != null and appId != ""'>
             and ((FIND_IN_SET(#{appId}, p.app_ids) > 0))
         </if>
+        <if test='keyword != null and keyword != ""'>
+            and p.product_name like CONCAT('%', #{keyword}, '%')
+        </if>
         and p.is_new=1 and p.is_display=1 order by p.sort desc
     </select>
     <select id="selectFsStoreProductHotQuery" resultType="com.fs.hisStore.vo.FsStoreProductListQueryVO">
@@ -562,6 +565,9 @@
         <if test='appId != null and appId != ""'>
             and ((FIND_IN_SET(#{appId}, p.app_ids) > 0))
         </if>
+        <if test='keyword != null and keyword != ""'>
+            and p.product_name like CONCAT('%', #{keyword}, '%')
+        </if>
         and  p.is_hot=1 and p.is_display=1 order by p.sort desc
     </select>
     <select id="selectFsStoreProductGoodListQuery" resultType="com.fs.hisStore.vo.FsStoreProductListQueryVO">

+ 6 - 0
fs-service/src/main/resources/mapper/hisStore/FsStoreProductUserEndCategoryMapper.xml

@@ -23,12 +23,18 @@
     <select id="selectDistinctProductIdsByCategoryId" resultType="java.lang.Long">
         select distinct a.product_id from fs_store_product_user_end_category a left join fs_store_product_scrm c on a.product_id = c.product_id
         where a.user_end_category_id = #{categoryId} and c.is_del = 0 and c.is_show = 1
+        <if test="keyword != null and keyword != ''">
+            and c.product_name like CONCAT('%', #{keyword}, '%')
+        </if>
         order by c.sort desc, c.create_time desc, a.product_id
     </select>
 
     <select id="selectDistinctProductIds" resultType="java.lang.Long">
         select distinct a.product_id from fs_store_product_user_end_category  a left join fs_store_product_scrm c on a.product_id = c.product_id
         where c.is_del = 0 and c.is_show = 1
+        <if test="keyword != null and keyword != ''">
+            and c.product_name like CONCAT('%', #{keyword}, '%')
+        </if>
         order by c.sort desc, c.create_time desc, a.product_id
     </select>
 </mapper>

+ 5 - 3
fs-user-app/src/main/java/com/fs/app/controller/store/IndexScrmController.java

@@ -120,9 +120,10 @@ public class IndexScrmController extends AppBaseController {
 	@ApiOperation("首页商品列表")
 	@GetMapping("/home/goods")
 	public R homeGoods(@RequestParam(value = "id", required = false) Long id,
+					   @RequestParam(value = "keyword", required = false) String keyword,
 					   @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
 					   @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
-		java.util.Map<String, Object> data = userEndCategoryScrmService.listProductsForApp(id, pageNum, pageSize);
+		java.util.Map<String, Object> data = userEndCategoryScrmService.listProductsForApp(id, keyword, pageNum, pageSize);
 		return R.ok().put("data", data);
 	}
 
@@ -133,6 +134,7 @@ public class IndexScrmController extends AppBaseController {
 	@GetMapping("/home/goods/recommend")
 	public R homeGoodsRecommend(HttpServletRequest request,
 								@RequestParam(value = "type") String type,
+								@RequestParam(value = "keyword", required = false) String keyword,
 								@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
 								@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
 		String appId = request.getParameter("appId");
@@ -140,8 +142,8 @@ public class IndexScrmController extends AppBaseController {
 			return R.ok().put("data", new PageInfo<>(Collections.emptyList()));
 		}
 		List<FsStoreProductListQueryVO> list = "green".equalsIgnoreCase(type)
-				? productService.selectFsStoreProductNewQueryPage(pageNum, pageSize, appId)
-				: productService.selectFsStoreProductHotQueryPage(pageNum, pageSize, appId);
+				? productService.selectFsStoreProductNewQueryPage(pageNum, pageSize, appId, keyword)
+				: productService.selectFsStoreProductHotQueryPage(pageNum, pageSize, appId, keyword);
 		PageInfo<FsStoreProductListQueryVO> pageInfo = new PageInfo<>(list);
 		return R.ok().put("data", pageInfo);
 	}