Browse Source

Merge remote-tracking branch 'origin/dev' into dev

ldz 2 weeks ago
parent
commit
b103726a31

+ 7 - 5
alien-store/src/main/java/shop/alien/store/controller/StoreMenuController.java

@@ -154,7 +154,7 @@ public class StoreMenuController {
     public R<Map<String, Object>> getClientMenuByStoreId(
             @RequestParam(value = "storeId", required = true) Integer storeId,
             @RequestParam(value = "dishType", required = false) Integer dishType,
-            @RequestParam(value = "phoneId", required = false) String phoneId,
+            @RequestParam(value = "phoneId", required = true) String phoneId,
             @RequestParam(value = "dishMenuType", required = false) Integer dishMenuType) {
         // 记录请求入参
         log.info("获取用户端菜单,入参:storeId={}, dishType={}, phoneId={}, dishMenuType={}", 
@@ -186,10 +186,12 @@ public class StoreMenuController {
 
     @ApiOperation("获取门店菜单详情(用户端)")
     @ApiOperationSupport(order = 4)
-    @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "菜单ID", dataType = "Integer", paramType = "query")})
+    @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "菜单ID", dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "phoneId", value = "用户手机号", dataType = "String", paramType = "query")})
     @GetMapping("/getClientMenuInfoById")
-    public R<StoreMenuVo> getClientMenuInfoById(Integer id) {
-        log.info("StoreRecommendController.getClientMenuInfoById?id={}", id);
-        return R.data(storeMenuService.getClientMenuInfoById(id));
+    public R<StoreMenuVo> getClientMenuInfoById(@RequestParam(value = "id", required = true) Integer id,
+                                                @RequestParam(value = "phoneId", required = true) String phoneId) {
+        log.info("StoreRecommendController.getClientMenuInfoById?id={},phoneId={}", id, phoneId);
+        return R.data(storeMenuService.getClientMenuInfoById(id, phoneId));
     }
 }

+ 1 - 1
alien-store/src/main/java/shop/alien/store/service/StoreMenuService.java

@@ -103,6 +103,6 @@ public interface StoreMenuService extends IService<StoreMenu> {
      * @param id 菜品id
      * @return StoreMenuVo
      */
-    StoreMenuVo getClientMenuInfoById(Integer id);
+    StoreMenuVo getClientMenuInfoById(Integer id, String phoneId);
 }
 

+ 27 - 0
alien-store/src/main/java/shop/alien/store/service/impl/StoreInfoServiceImpl.java

@@ -2918,6 +2918,33 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
         // 加上 30 天
         calendar.add(Calendar.DAY_OF_MONTH, 30);
 
+        // 构建一级分类
+        if(StringUtils.isNotEmpty(businessSection)){
+            queryWrapper.eq("a.business_section", businessSection);
+            // 构建二级分类
+            if(StringUtils.isNotEmpty(businessTypes)){
+                queryWrapper.eq("a.business_types", businessTypes);
+                // 构建三级分类
+                if(StringUtils.isNotEmpty(businessClassify)){
+                    // 解析businessClassify参数(格式:1,2,3)
+                    String[] classifyArray = businessClassify.split(",");
+                    // 使用FIND_IN_SET函数检查数据库字段是否包含参数中的任何一个值
+                    queryWrapper.and(wrapper -> {
+                        for (int i = 0; i < classifyArray.length; i++) {
+                            String classify = classifyArray[i].trim();
+                            if (StringUtils.isNotEmpty(classify)) {
+                                if (i == 0) {
+                                    wrapper.apply("FIND_IN_SET({0}, a.business_classify) > 0", classify);
+                                } else {
+                                    wrapper.or().apply("FIND_IN_SET({0}, a.business_classify) > 0", classify);
+                                }
+                            }
+                        }
+                    });
+                }
+            }
+        }
+
         // 构建position参数(格式:经度,纬度)
         String position = lon + "," + lat;
         List<StoreInfoVo> storeInfoVoList = storeInfoMapper.getMoreRecommendedStores(queryWrapper, position);

+ 19 - 2
alien-store/src/main/java/shop/alien/store/service/impl/StoreMenuServiceImpl.java

@@ -471,6 +471,7 @@ public class StoreMenuServiceImpl extends ServiceImpl<StoreMenuMapper, StoreMenu
         // 批量查询点赞记录
         LambdaQueryWrapper<LifeLikeRecord> likeQuery = new LambdaQueryWrapper<>();
         likeQuery.eq(LifeLikeRecord::getDianzanId, phoneId)
+                .eq(LifeLikeRecord::getDeleteFlag, 0)
                 .in(LifeLikeRecord::getHuifuId, menuIdStrSet);
         List<LifeLikeRecord> likeRecordList = lifeLikeRecordMapper.selectList(likeQuery);
         
@@ -506,7 +507,23 @@ public class StoreMenuServiceImpl extends ServiceImpl<StoreMenuMapper, StoreMenu
      * @return StoreMenuVo
      */
     @Override
-    public StoreMenuVo getClientMenuInfoById(Integer id) {
-        return storeMenuMapper.getClientMenuInfoById(id);
+    public StoreMenuVo getClientMenuInfoById(Integer id, String phoneId) {
+        StoreMenuVo storeMenuVo = storeMenuMapper.getClientMenuInfoById(id);
+        if(StringUtils.isNotEmpty(phoneId)){
+            // 批量查询点赞记录
+            LambdaQueryWrapper<LifeLikeRecord> likeQuery = new LambdaQueryWrapper<>();
+            likeQuery.eq(LifeLikeRecord::getDianzanId, phoneId)
+                    .eq(LifeLikeRecord::getDeleteFlag, 0)
+                    .eq(LifeLikeRecord::getHuifuId, storeMenuVo.getId());
+           int likeCount = lifeLikeRecordMapper.selectCount(likeQuery);
+           if(likeCount > 0){
+               storeMenuVo.setIsLike(1);
+           }
+        } else {
+            storeMenuVo.setLikeCount(0);
+            storeMenuVo.setIsLike(0);
+        }
+
+        return storeMenuVo;
     }
 }