Kaynağa Gözat

处理BUG 1555 原代码 用打卡记录中的userid判断是否存在收藏 改为 从token中 获取 用户ID

lutong 2 ay önce
ebeveyn
işleme
bd61ce454c

+ 7 - 3
alien-store/src/main/java/shop/alien/store/controller/StoreClockInController.java

@@ -7,9 +7,12 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 import shop.alien.entity.result.R;
 import shop.alien.entity.store.StoreClockIn;
+import shop.alien.entity.store.UserLoginInfo;
 import shop.alien.entity.store.vo.StoreClockInVo;
 import shop.alien.store.annotation.TrackEvent;
 import shop.alien.store.service.StoreClockInService;
+import shop.alien.util.common.TokenInfo;
+import springfox.documentation.annotations.ApiIgnore;
 
 @Slf4j
 @Api(tags = {"店铺打卡"})
@@ -88,9 +91,10 @@ public class StoreClockInController {
     @ApiOperationSupport(order = 6)
     @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "主键id", dataType = "Integer", paramType = "query")})
     @GetMapping("/getStoreClockInById")
-    public R<StoreClockInVo> getStoreClockInById(Integer id) {
-        log.info("StoreClockInController.getStoreClockInById?id={}", id);
-        return R.data(storeClockInService.getStoreClockInById(id));
+    public R<StoreClockInVo> getStoreClockInById(@ApiIgnore @TokenInfo UserLoginInfo userLoginInfo, Integer id) {
+        Integer userId = userLoginInfo != null ? userLoginInfo.getUserId() : null;
+        log.info("StoreClockInController.getStoreClockInById?userId={},id={}", userId, id);
+        return R.data(storeClockInService.getStoreClockInById(id, userId));
     }
 
 }

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

@@ -40,7 +40,8 @@ public interface StoreClockInService extends IService<StoreClockIn> {
      * 根据id查询打卡记录
      *
      * @param id 主键id
+     * @param userId 当前登录用户ID(用于查询收藏状态)
      * @return 打卡记录
      */
-    StoreClockInVo getStoreClockInById(Integer id);
+    StoreClockInVo getStoreClockInById(Integer id, Integer userId);
 }

+ 10 - 9
alien-store/src/main/java/shop/alien/store/service/impl/StoreClockInServiceImpl.java

@@ -429,7 +429,7 @@ public class StoreClockInServiceImpl extends ServiceImpl<StoreClockInMapper, Sto
     }
 
     @Override
-    public StoreClockInVo getStoreClockInById(Integer id) {
+    public StoreClockInVo getStoreClockInById(Integer id, Integer userId) {
         StoreClockIn storeClockIn = storeClockInMapper.selectById(id);
         StoreClockInVo storeClockInVo = BeanUtil.copyProperties(storeClockIn, StoreClockInVo.class);
         if (null == storeClockIn) {
@@ -458,15 +458,16 @@ public class StoreClockInServiceImpl extends ServiceImpl<StoreClockInMapper, Sto
         storeClockInVo.setBusinessClassifyName(storeInfo.getBusinessClassifyName());
         // 地址
         storeClockInVo.setStoreAddress(storeInfo.getStoreAddress());
-        // 是否收藏
-        // 查询我的收藏
-        LambdaQueryWrapper<LifeCollect> collectWrapper = new LambdaQueryWrapper<>();
-        collectWrapper.eq(LifeCollect::getUserId, String.valueOf(storeClockInVo.getUserId()));
-        List<LifeCollect> lifeCollectList = lifeCollectMapper.selectList(collectWrapper);
-        List<String> collectList = lifeCollectList.stream().map(LifeCollect::getStoreId).collect(Collectors.toList());
+        // 是否收藏 - 使用当前登录用户的ID查询收藏
         storeClockInVo.setIsCollect("0");
-        if (collectList.contains(storeClockInVo.getStoreId().toString())){
-            storeClockInVo.setIsCollect("1");
+        if (userId != null) {
+            LambdaQueryWrapper<LifeCollect> collectWrapper = new LambdaQueryWrapper<>();
+            collectWrapper.eq(LifeCollect::getUserId, String.valueOf(userId));
+            List<LifeCollect> lifeCollectList = lifeCollectMapper.selectList(collectWrapper);
+            List<String> collectList = lifeCollectList.stream().map(LifeCollect::getStoreId).collect(Collectors.toList());
+            if (collectList.contains(storeClockInVo.getStoreId().toString())){
+                storeClockInVo.setIsCollect("1");
+            }
         }
         return storeClockInVo;
     }