提交 84f2df6d 作者: zgz

查询智库筛选条件为语言时,只返回智库现有语言

上级 cf8b7977
......@@ -7,8 +7,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zzsn.thinktank.entity.SysDict;
import com.zzsn.thinktank.entity.SysDictItem;
import com.zzsn.thinktank.entity.ThinktankBasicInfo;
import com.zzsn.thinktank.service.ISysDictItemService;
import com.zzsn.thinktank.service.ISysDictService;
import com.zzsn.thinktank.service.ThinktankBasicInfoService;
import com.zzsn.thinktank.vo.Result;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
......@@ -19,6 +21,9 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* <p>
......@@ -32,7 +37,8 @@ import java.util.Date;
@RequestMapping("/sys/dictItem")
@Slf4j
public class SysDictItemController {
@Autowired
ThinktankBasicInfoService thinktankBasicInfoService;
@Autowired
private ISysDictItemService sysDictItemService;
@Autowired
......@@ -59,6 +65,23 @@ public class SysDictItemController {
.eq(null != sysDictItem.getStatus(), SysDictItem::getStatus, sysDictItem.getStatus())
.eq(null != sysDict.getId(), SysDictItem::getDictId, sysDict.getId())
.like(null != sysDictItem.getItemText(), SysDictItem::getItemText, sysDictItem.getItemText());
//查询智库筛选条件为语言时,只返回智库现有语言
if(sysDict.getDictCode().equals("language")){
QueryWrapper queryThink = new QueryWrapper();
queryThink.groupBy("lang");
queryThink.select("lang");
List<ThinktankBasicInfo> thinktankBasicInfo = thinktankBasicInfoService.list(queryThink);
// 使用 Stream API 遍历集合,过滤掉 lang 为 null 或空的元素,并收集剩余元素的 lang 字段,用英文逗号隔开
String langValues = thinktankBasicInfo.stream()
.map(ThinktankBasicInfo::getLang) // 提取 lang 字段
.filter(lang -> lang != null && !lang.isEmpty()) // 过滤掉 null 或空的值
.collect(Collectors.joining(",")); // 将结果用英文逗号连接起来
// 使用 Stream API 去重并重新拼接字符串
List<String> distinctLangValuesList = Arrays.stream(langValues.split(","))
.distinct()
.collect(Collectors.toList());
queryWrapper.in(SysDictItem::getItemValue,distinctLangValuesList);
}
Page<SysDictItem> page = new Page<SysDictItem>(pageNo, pageSize);
IPage<SysDictItem> pageList = sysDictItemService.page(page, queryWrapper);
result.setSuccess(true);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论