Explorar el Código

feat : 游戏分类接口bug修改

bilingfeng hace 2 años
padre
commit
40973b5ca3

+ 22 - 2
game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/GameCategoryServiceImpl.java

@@ -16,11 +16,14 @@ import com.zanxiang.manage.service.GameCategoryService;
 import com.zanxiang.mybatis.entity.GameCategory;
 import com.zanxiang.mybatis.mapper.GameCategoryMapper;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.logging.log4j.util.Strings;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * @author : lingfeng
@@ -79,9 +82,26 @@ public class GameCategoryServiceImpl extends ServiceImpl<GameCategoryMapper, Gam
      */
     @Override
     public IPage<GameCategoryVO> list(GameCategoryListParam param) {
+        //模糊查询父标签列表
+        List<GameCategory> categoryList = new ArrayList<>();
+        if (Strings.isNotBlank(param.getLabelName()) && Objects.equals(param.getIsParent(), Boolean.TRUE)) {
+            categoryList = super.list(new LambdaQueryWrapper<GameCategory>()
+                    .like(GameCategory::getName, param.getLabelName())
+                    .eq(GameCategory::getParentId, 0)
+                    .eq(GameCategory::getType, GameCategoryEnum.GAME_LABEL.getCategoryType()));
+        }
+        List<Long> parentIdList = categoryList.stream().map(GameCategory::getId).collect(Collectors.toList());
         return page(param.toPage(), new QueryWrapper<GameCategory>().lambda()
-                .like(StringUtils.isNotBlank(param.getLabelName()), GameCategory::getName, param.getLabelName())
-                .eq(Objects.equals(param.getIsParent(), Boolean.TRUE), GameCategory::getParentId, 0)
+                //条件不为空没勾选父标签
+                .like(StringUtils.isNotBlank(param.getLabelName()) && !Objects.equals(param.getIsParent(), Boolean.TRUE),
+                        GameCategory::getName, param.getLabelName())
+                //条件为空查询所有父标签
+                .eq(StringUtils.isBlank(param.getLabelName()) && Objects.equals(param.getIsParent(), Boolean.TRUE),
+                        GameCategory::getParentId, 0)
+                //条件不为空查询父标签
+                .and(StringUtils.isNotBlank(param.getLabelName()) && Objects.equals(param.getIsParent(), Boolean.TRUE),
+                        qw -> qw.in(!parentIdList.isEmpty(), GameCategory::getParentId, parentIdList)
+                                .or().like(GameCategory::getName, param.getLabelName()))
                 .eq(GameCategory::getType, GameCategoryEnum.GAME_LABEL.getCategoryType())
                 .orderByDesc(GameCategory::getCreateTime))
                 .convert(this::toVo);