Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Q
qk_backend
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
quanku
qk_backend
Commits
7faffb68
Commit
7faffb68
authored
Nov 10, 2023
by
shiyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
用户停止回答,人工回复不被发送
parent
eaab10f6
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
24 additions
and
7 deletions
+24
-7
ch-admin-api/src/main/java/com/wwdz/ch/admin/controller/SysIMController.java
...in/java/com/wwdz/ch/admin/controller/SysIMController.java
+1
-1
ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/SysIMRecordServiceImpl.java
...n/java/com/wwdz/ch/admin/impl/SysIMRecordServiceImpl.java
+2
-1
ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/SysIMServiceImpl.java
...rc/main/java/com/wwdz/ch/admin/impl/SysIMServiceImpl.java
+6
-1
ch-core/src/main/java/com/wwdz/ch/core/consts/ResultCode.java
...ore/src/main/java/com/wwdz/ch/core/consts/ResultCode.java
+2
-0
ch-core/src/main/java/com/wwdz/ch/core/entity/im/SendChatMsgRequestDto.java
...ava/com/wwdz/ch/core/entity/im/SendChatMsgRequestDto.java
+3
-1
ch-core/src/main/java/com/wwdz/ch/core/util/IMUtil.java
ch-core/src/main/java/com/wwdz/ch/core/util/IMUtil.java
+8
-2
ch-dao/src/main/java/com/wwdz/ch/db/impl/ConversationDaoImpl.java
...rc/main/java/com/wwdz/ch/db/impl/ConversationDaoImpl.java
+1
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/ImServiceImpl.java
...-api/src/main/java/com/wwdz/ch/wx/impl/ImServiceImpl.java
+1
-1
No files found.
ch-admin-api/src/main/java/com/wwdz/ch/admin/controller/SysIMController.java
View file @
7faffb68
...
...
@@ -37,7 +37,7 @@ public class SysIMController {
@PostMapping
(
"/sendChatMsg"
)
public
Result
sendChatMsg
(
@RequestBody
SendChatMsgRequestDto
dto
)
{
logger
.
info
(
"【请求开始】人工介入ai发送聊天消息,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
if
(!
StringUtils
.
isAllNotEmpty
(
dto
.
getFromAccount
(),
dto
.
getToAccount
(),
dto
.
getMsgType
()))
{
if
(!
StringUtils
.
isAllNotEmpty
(
dto
.
getFromAccount
(),
dto
.
getToAccount
(),
dto
.
getMsgType
()
,
dto
.
getReqId
()
))
{
return
Result
.
failed
(
ResultCode
.
PARAM_ERROR
);
}
return
sysIMService
.
sendChatMsg
(
dto
);
...
...
ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/SysIMRecordServiceImpl.java
View file @
7faffb68
...
...
@@ -92,7 +92,8 @@ public class SysIMRecordServiceImpl implements SysIMRecordService {
imRecordVo
.
setFromAccountIcon
(
cacheUtil
.
getAppletUserById
(
Long
.
valueOf
(
imRecord
.
getFromAccount
())).
getAvatar
());
imRecordVo
.
setToAccountIcon
(
cacheUtil
.
getAiAssistantByCode
(
imRecord
.
getToAccount
()).
getAvatar
());
}
if
(
StringUtils
.
hasLength
(
imRecord
.
getCloudCustomData
())){
String
cloudCustomData
=
imRecord
.
getCloudCustomData
();
if
(
cloudCustomData
.
contains
(
"realPersonId"
)){
imRecordVo
.
setIsRealPerson
(
true
);
}
imRecordVos
.
add
(
imRecordVo
);
...
...
ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/SysIMServiceImpl.java
View file @
7faffb68
package
com.wwdz.ch.admin.impl
;
import
com.wwdz.ch.admin.service.SysIMService
;
import
com.wwdz.ch.core.consts.ResultCode
;
import
com.wwdz.ch.core.entity.im.IMChatRequestDto
;
import
com.wwdz.ch.core.entity.im.SendChatMsgRequestDto
;
import
com.wwdz.ch.core.im.api.ConversationApi
;
...
...
@@ -51,10 +52,14 @@ public class SysIMServiceImpl implements SysIMService {
try
{
//转人工需要设置人工的id,放入自定义数据字段中
if
(
dto
.
getIsRealPersonAnswer
()
!=
null
&&
dto
.
getIsRealPersonAnswer
()
==
1
)
{
dto
.
setCloudCustomData
(
JsonUtils
.
fromMap
(
new
HashMap
<
String
,
Object
>(){{
put
(
"realPersonId"
,
dto
.
getRealPersonId
());}})
);
dto
.
setCloudCustomData
(
new
HashMap
<
String
,
Object
>(){{
put
(
"realPersonId"
,
dto
.
getRealPersonId
());}}
);
}
String
key
=
imUtil
.
getHumanInterveneKey
(
dto
.
getToAccount
(),
dto
.
getFromAccount
());
redisUtils
.
set
(
key
,
System
.
currentTimeMillis
(),
60
*
3
);
if
(
redisUtils
.
hasKey
(
dto
.
getReqId
())){
logger
.
info
(
"============= 用户要求停止回答了,人工回复不会被发送 ============= "
);
return
Result
.
failed
(
ResultCode
.
USER_STOP_AI_ANSWER
.
getCode
(),
ResultCode
.
USER_STOP_AI_ANSWER
.
getMessage
());
}
Result
result
=
conversationApi
.
sendChatMsg
(
dto
);
return
result
;
}
catch
(
Exception
e
)
{
...
...
ch-core/src/main/java/com/wwdz/ch/core/consts/ResultCode.java
View file @
7faffb68
...
...
@@ -56,6 +56,8 @@ public enum ResultCode {
*/
LOGIN_ACCOUNT_UNENABLED
(
21012
,
"用户已被禁用"
),
USER_STOP_AI_ANSWER
(
30000
,
"该问题被用户要求停止回答,回复不会被发送"
)
;
int
code
;
...
...
ch-core/src/main/java/com/wwdz/ch/core/entity/im/SendChatMsgRequestDto.java
View file @
7faffb68
...
...
@@ -3,6 +3,8 @@ package com.wwdz.ch.core.entity.im;
import
com.xxdxxs.entity.Entity
;
import
lombok.Data
;
import
java.util.HashMap
;
@Data
public
class
SendChatMsgRequestDto
implements
Entity
{
...
...
@@ -75,6 +77,6 @@ public class SendChatMsgRequestDto implements Entity {
* 消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到)
* 格式 {realPersonId:xxxx}
*/
private
String
CloudCustomData
;
private
HashMap
<
String
,
Object
>
CloudCustomData
;
}
ch-core/src/main/java/com/wwdz/ch/core/util/IMUtil.java
View file @
7faffb68
...
...
@@ -72,8 +72,14 @@ public class IMUtil {
msgContentMap
.
put
(
"MsgType"
,
IMEnum
.
MsgTypeEnum
.
getValueByCode
(
dto
.
getMsgType
()));
msgContentMap
.
put
(
"MsgContent"
,
new
HashMap
(){{
put
(
"Text"
,
dto
.
getMsgContent
());}});
imChatMsg
.
setMsgBody
(
Arrays
.
asList
(
msgContentMap
));
imChatMsg
.
setCloudCustomData
(
dto
.
getCloudCustomData
());
if
(
dto
.
getCloudCustomData
()
==
null
)
{
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"reqId"
,
dto
.
getReqId
());
imChatMsg
.
setCloudCustomData
(
JsonUtils
.
fromMap
(
map
));
}
else
{
dto
.
getCloudCustomData
().
put
(
"reqId"
,
dto
.
getReqId
());
imChatMsg
.
setCloudCustomData
(
JsonUtils
.
fromMap
(
dto
.
getCloudCustomData
()));
}
return
imChatMsg
;
}
...
...
ch-dao/src/main/java/com/wwdz/ch/db/impl/ConversationDaoImpl.java
View file @
7faffb68
...
...
@@ -24,6 +24,7 @@ public class ConversationDaoImpl implements ConversationDao {
ConversationExample
.
Criteria
criteria
=
conversationExample
.
createCriteria
();
JdbcHelper
.
ifPresent
(
dto
.
getFromAccount
(),
criteria:
:
andFromAccountEqualTo
);
JdbcHelper
.
ifPresent
(
dto
.
getToAccount
(),
criteria:
:
andToAccountEqualTo
);
conversationExample
.
setOrderByClause
(
"id asc"
);
PageHelper
.
startPage
(
dto
.
getPage
(),
dto
.
getLimit
());
return
conversationMapper
.
selectByExample
(
conversationExample
);
}
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/ImServiceImpl.java
View file @
7faffb68
...
...
@@ -179,7 +179,7 @@ public class ImServiceImpl implements IMService {
@Override
public
Result
stopAiAnswer
(
SendChatMsgRequestDto
dto
)
{
redisUtils
.
set
(
dto
.
getReqId
(),
false
,
10
,
TimeUnit
.
SECOND
S
);
redisUtils
.
set
(
dto
.
getReqId
(),
false
,
3
,
TimeUnit
.
MINUTE
S
);
return
Result
.
success
();
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment