Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
仟微科技
Link Wechat
提交
8c685274
Link Wechat
项目概览
仟微科技
/
Link Wechat
通知
48
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Link Wechat
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8c685274
编写于
1月 04, 2021
作者:
S
sunxiwang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加会话存档全局查询接口
上级
03b4ef8f
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
91 addition
and
7 deletion
+91
-7
linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeConversationArchiveController.java
...web/controller/wecom/WeConversationArchiveController.java
+12
-0
linkwe-common/src/main/java/com/linkwechat/common/core/domain/ConversationArchiveQuery.java
...nkwechat/common/core/domain/ConversationArchiveQuery.java
+9
-1
linkwe-common/src/main/java/com/linkwechat/common/core/elasticsearch/ElasticSearch.java
...m/linkwechat/common/core/elasticsearch/ElasticSearch.java
+20
-6
linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeConversationArchiveService.java
...nkwechat/wecom/service/IWeConversationArchiveService.java
+8
-0
linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeConversationArchiveServiceImpl.java
.../wecom/service/impl/WeConversationArchiveServiceImpl.java
+42
-0
未找到文件。
linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeConversationArchiveController.java
浏览文件 @
8c685274
...
...
@@ -53,4 +53,16 @@ public class WeConversationArchiveController extends BaseController {
}
/**
* 获取全局会话数据接口
*
* @param query 入参
* @return
*/
@PreAuthorize
(
"@ss.hasPermi('conversationArchive:chatAllContact:list')"
)
@GetMapping
(
"/getChatAllList"
)
public
TableDataInfo
getChatAllList
(
ConversationArchiveQuery
query
)
{
return
getDataTable
(
weConversationArchiveService
.
getChatAllList
(
query
));
}
}
linkwe-common/src/main/java/com/linkwechat/common/core/domain/ConversationArchiveQuery.java
浏览文件 @
8c685274
package
com.linkwechat.common.core.domain
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
lombok.Data
;
/**
...
...
@@ -13,12 +12,21 @@ public class ConversationArchiveQuery extends BaseEntity {
/** 发送人Id */
private
String
fromId
;
/** 成员名称 */
private
String
userName
;
/** 接收人Id */
private
String
receiveId
;
/** 客户姓名 */
private
String
customerName
;
/** 群聊Id */
private
String
roomId
;
/** 类型 */
private
String
msgType
;
/** 关键词 **/
private
String
keyWord
;
}
linkwe-common/src/main/java/com/linkwechat/common/core/elasticsearch/ElasticSearch.java
浏览文件 @
8c685274
package
com.linkwechat.common.core.elasticsearch
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
com.linkwechat.common.core.domain.elastic.ElasticSearchEntity
;
...
...
@@ -18,6 +19,7 @@ import org.elasticsearch.client.indices.CreateIndexRequest;
import
org.elasticsearch.client.indices.CreateIndexResponse
;
import
org.elasticsearch.client.indices.GetIndexRequest
;
import
org.elasticsearch.common.settings.Settings
;
import
org.elasticsearch.common.text.Text
;
import
org.elasticsearch.common.xcontent.XContentBuilder
;
import
org.elasticsearch.common.xcontent.XContentFactory
;
import
org.elasticsearch.common.xcontent.XContentType
;
...
...
@@ -25,6 +27,7 @@ import org.elasticsearch.index.query.QueryBuilder;
import
org.elasticsearch.index.reindex.DeleteByQueryRequest
;
import
org.elasticsearch.search.SearchHit
;
import
org.elasticsearch.search.builder.SearchSourceBuilder
;
import
org.elasticsearch.search.fetch.subphase.highlight.HighlightField
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageImpl
;
...
...
@@ -32,9 +35,7 @@ import org.springframework.data.domain.Pageable;
import
org.springframework.stereotype.Component
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.*
;
/**
* @author sxw
...
...
@@ -263,11 +264,24 @@ public class ElasticSearch {
SearchHit
[]
hits
=
response
.
getHits
().
getHits
();
List
<
T
>
res
=
new
ArrayList
<>(
hits
.
length
);
for
(
SearchHit
hit
:
hits
)
{
res
.
add
(
JSON
.
parseObject
(
hit
.
getSourceAsString
(),
c
));
//解析高亮字段
//获取当前命中的对象的高亮的字段
Map
<
String
,
HighlightField
>
highlightFields
=
hit
.
getHighlightFields
();
HighlightField
hghlightContent
=
highlightFields
.
get
(
"text.content"
);
String
newName
=
""
;
if
(
hghlightContent
!=
null
){
//获取该高亮字段的高亮信息
Text
[]
fragments
=
hghlightContent
.
getFragments
();
//将前缀、关键词、后缀进行拼接
for
(
Text
fragment
:
fragments
)
{
newName
+=
fragment
;
}
}
Map
<
String
,
Object
>
sourceAsMap
=
hit
.
getSourceAsMap
();
sourceAsMap
.
put
(
"content"
,
newName
);
res
.
add
(
JSON
.
parseObject
(
JSONObject
.
toJSONString
(
sourceAsMap
),
c
));
}
// 封装分页
PageHelper
.
startPage
(
1
,
2
);
PageInfo
<
T
>
page
=
new
PageInfo
<>();
page
.
setList
(
res
);
page
.
setPageNum
(
pageNum
);
...
...
linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeConversationArchiveService.java
浏览文件 @
8c685274
...
...
@@ -38,5 +38,13 @@ public interface IWeConversationArchiveService {
* @return
*/
JSONObject
getFinalChatRoomContactInfo
(
String
fromId
,
String
roomId
);
/**
* 获取全局会话数据接口
*
* @param query 参
* @return
*/
PageInfo
<
JSONObject
>
getChatAllList
(
ConversationArchiveQuery
query
);
}
linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeConversationArchiveServiceImpl.java
浏览文件 @
8c685274
...
...
@@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j;
import
org.elasticsearch.index.query.BoolQueryBuilder
;
import
org.elasticsearch.index.query.QueryBuilders
;
import
org.elasticsearch.search.builder.SearchSourceBuilder
;
import
org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder
;
import
org.elasticsearch.search.sort.SortOrder
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -160,4 +161,45 @@ public class WeConversationArchiveServiceImpl implements IWeConversationArchiveS
return
null
;
}
}
@Override
public
PageInfo
<
JSONObject
>
getChatAllList
(
ConversationArchiveQuery
query
)
{
PageDomain
pageDomain
=
TableSupport
.
buildPageRequest
();
Integer
pageNum
=
pageDomain
.
getPageNum
()
==
null
?
1
:
pageDomain
.
getPageNum
();
Integer
pageSize
=
pageDomain
.
getPageSize
()
==
null
?
10
:
pageDomain
.
getPageSize
();
SearchSourceBuilder
builder
=
new
SearchSourceBuilder
();
int
from
=
(
pageNum
-
1
)
*
pageSize
;
builder
.
size
(
pageSize
);
builder
.
from
(
from
);
builder
.
sort
(
"msgtime"
,
SortOrder
.
DESC
);
BoolQueryBuilder
boolQueryBuilder
=
QueryBuilders
.
boolQuery
();
//成员姓名查询
if
(
StringUtils
.
isNotEmpty
(
query
.
getUserName
())){
boolQueryBuilder
.
must
(
QueryBuilders
.
boolQuery
().
must
(
QueryBuilders
.
matchQuery
(
"fromInfo.name"
,
query
.
getUserName
()))
.
mustNot
(
QueryBuilders
.
existsQuery
(
"fromInfo.externalUserid"
)));
}
//客户姓名查询
if
(
StringUtils
.
isNotEmpty
(
query
.
getCustomerName
())){
boolQueryBuilder
.
must
(
QueryBuilders
.
boolQuery
().
must
(
QueryBuilders
.
matchQuery
(
"fromInfo.name"
,
query
.
getCustomerName
()))
.
must
(
QueryBuilders
.
existsQuery
(
"fromInfo.externalUserid"
)));
}
//关键词查询并高亮显示
if
(
StringUtils
.
isNotEmpty
(
query
.
getKeyWord
())){
boolQueryBuilder
.
must
(
QueryBuilders
.
multiMatchQuery
(
query
.
getKeyWord
(),
"text.content"
));
builder
.
highlighter
(
new
HighlightBuilder
().
field
(
"text.content"
));
}
//时间范围查询
if
(
StringUtils
.
isNotEmpty
(
query
.
getBeginTime
())
&&
StringUtils
.
isNotEmpty
(
query
.
getEndTime
()))
{
Date
beginTime
=
DateUtils
.
dateTime
(
query
.
getBeginTime
(),
DateUtils
.
YYYY_MM_DD
);
Date
endTime
=
DateUtils
.
dateTime
(
query
.
getEndTime
(),
DateUtils
.
YYYY_MM_DD
);
boolQueryBuilder
.
filter
(
QueryBuilders
.
rangeQuery
(
"msgtime"
).
gte
(
beginTime
).
lte
(
endTime
));
}
builder
.
query
(
boolQueryBuilder
);
PageInfo
<
JSONObject
>
pageInfo
=
elasticSearch
.
searchPage
(
WeConstans
.
WECOM_FINANCE_INDEX
,
builder
,
pageNum
,
pageSize
,
JSONObject
.
class
);
return
pageInfo
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录