Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
think-tank
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
张京坤
think-tank
Commits
7062b636
提交
7062b636
authored
10月 21, 2024
作者:
zgz
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
智库语言统计图展示对应中文
上级
43b6db61
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
50 行增加
和
54 行删除
+50
-54
ThinktankBasicInfoServiceImpl.java
...thinktank/service/impl/ThinktankBasicInfoServiceImpl.java
+50
-54
没有找到文件。
src/main/java/com/zzsn/thinktank/service/impl/ThinktankBasicInfoServiceImpl.java
浏览文件 @
7062b636
...
...
@@ -90,6 +90,12 @@ public class ThinktankBasicInfoServiceImpl extends ServiceImpl<ThinktankBasicInf
ISysBaseRegionService
sysBaseRegionService
;
@Autowired
private
ISysDictItemService
sysDictItemService
;
@Autowired
private
ISysDictService
sysDictService
;
@Autowired
EsUtil
esUtil
;
@Resource
...
...
@@ -790,59 +796,6 @@ public class ThinktankBasicInfoServiceImpl extends ServiceImpl<ThinktankBasicInf
"(SELECT name_cn from brpa_base_region where id = (SELECT pid from brpa_base_region where id=belong_country_id) ) as continentName"
,
"(SELECT pid from brpa_base_region where id=belong_country_id) as continentId"
);
List
<
ThinktankBasicInfo
>
list
=
this
.
getBaseMapper
().
selectPage
(
page
,
queryWrapper
).
getRecords
();
// switch (type) {
// case "continent":
// mapList = list.stream()
// .collect(Collectors.groupingBy(
// ThinktankBasicInfo::getContinentName,
// Collectors.counting() // 计算每个组的数量
// ))
// .entrySet()
// .stream()
// .map(entry -> {
// Map<String, Object> map = new HashMap<>();
// map.put("data", entry.getKey()); // 使用entry.getKey()获取洲ID
// map.put("num", entry.getValue()); // 使用entry.getValue()获取数量
// return map;
// })
// .collect(Collectors.toList()); // 收集结果列表
// break;
// case "country":
// mapList = list.stream()
// .collect(Collectors.groupingBy(
// ThinktankBasicInfo::getBelongCountry,
// Collectors.counting() // 计算每个组的数量
// ))
// .entrySet()
// .stream()
// .map(entry -> {
// Map<String, Object> map = new HashMap<>();
// map.put("data", entry.getKey()); // 使用entry.getKey()获取洲ID
// map.put("num", entry.getValue()); // 使用entry.getValue()获取数量
// return map;
// })
// .collect(Collectors.toList()); // 收集结果列表
// break;
// case "tag":
// mapList = list.stream()
// .filter(info -> StringUtils.isNotBlank(info.getTagName())) // 确保info.getTagName()不为null
// .flatMap(info -> Arrays.stream(info.getTagName().split(","))) // 拆分每个tagName字段
// .map(String::trim) // 去除多余的空格
// .collect(Collectors.groupingBy(
// tag -> tag,
// Collectors.counting() // 计算每个组的数量
// ))
// .entrySet()
// .stream()
// .map(entry -> {
// Map<String, Object> map = new HashMap<>();
// map.put("data", entry.getKey()); // 使用entry.getKey()获取洲名称
// map.put("num", entry.getValue()); // 使用entry.getValue()获取数量
// return map;
// })
// .collect(Collectors.toList()); // 收集结果列表
// break;
// }
switch
(
type
)
{
case
"continent"
:
mapList
=
processGrouping
(
list
,
ThinktankBasicInfo:
:
getContinentName
,
false
,
null
);
//洲
...
...
@@ -854,7 +807,7 @@ public class ThinktankBasicInfoServiceImpl extends ServiceImpl<ThinktankBasicInf
mapList
=
processGrouping
(
list
,
ThinktankBasicInfo:
:
getTagName
,
true
,
","
);
//领域标签
break
;
case
"lang"
:
mapList
=
processGrouping
(
list
,
ThinktankBasicInfo:
:
getLang
,
true
,
","
);
//语言
mapList
=
processGrouping
ByLang
(
list
,
ThinktankBasicInfo:
:
getLang
,
true
,
","
);
//语言
break
;
case
"nature"
:
mapList
=
processGrouping
(
list
,
ThinktankBasicInfo:
:
getNature
,
false
,
null
);
//性质
...
...
@@ -891,6 +844,49 @@ public class ThinktankBasicInfoServiceImpl extends ServiceImpl<ThinktankBasicInf
.
collect
(
Collectors
.
toList
());
}
//语言聚合单独处理
private
List
<
Map
<
String
,
Object
>>
processGroupingByLang
(
List
<
ThinktankBasicInfo
>
list
,
Function
<
ThinktankBasicInfo
,
String
>
classifier
,
boolean
splitTags
,
String
split
)
{
Stream
<
String
>
stream
=
list
.
stream
().
map
(
classifier
)
.
filter
(
item
->
item
!=
null
&&
!
item
.
isEmpty
());
// 过滤掉null和空字符串
if
(
splitTags
)
{
stream
=
stream
.
flatMap
(
info
->
Arrays
.
stream
(
info
.
split
(
split
)))
.
map
(
String:
:
trim
)
.
filter
(
Objects:
:
nonNull
);
// 过滤掉null元素;
}
List
<
Map
<
String
,
Object
>>
listMap
=
stream
.
collect
(
Collectors
.
groupingBy
(
Function
.
identity
(),
Collectors
.
counting
()
)).
entrySet
().
stream
()
.
map
(
entry
->
createMap
(
entry
.
getKey
(),
entry
.
getValue
()))
.
collect
(
Collectors
.
toList
());
QueryWrapper
query
=
new
QueryWrapper
();
query
.
eq
(
"dict_code"
,
"language"
);
SysDict
sysDict
=
sysDictService
.
getOne
(
query
);
if
(
sysDict
!=
null
){
QueryWrapper
queryItem
=
new
QueryWrapper
();
queryItem
.
eq
(
"dict_id"
,
sysDict
.
getId
());
List
<
SysDictItem
>
sysDictItemList
=
sysDictItemService
.
list
(
queryItem
);
// 创建映射关系
Map
<
String
,
String
>
dataToNameMap
=
new
HashMap
<>();
for
(
SysDictItem
item
:
sysDictItemList
)
{
dataToNameMap
.
put
(
item
.
getItemValue
(),
item
.
getItemText
());
}
// 替换list1中的data值为name值
for
(
Map
<
String
,
Object
>
map
:
listMap
)
{
String
dataValue
=
(
String
)
map
.
get
(
"data"
);
String
nameValue
=
dataToNameMap
.
get
(
dataValue
);
if
(
nameValue
!=
null
)
{
map
.
put
(
"data"
,
nameValue
);
}
}
}
return
listMap
;
}
// 创建Map的方法
private
Map
<
String
,
Object
>
createMap
(
String
key
,
Long
value
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论