|
@@ -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);
|