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
62940cc7
Commit
62940cc7
authored
Oct 20, 2023
by
shiyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ai会话
parent
4319e361
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
56 additions
and
5 deletions
+56
-5
ch-dao/src/main/java/com/wwdz/ch/db/dto/request/AiDefaultQuestionRequestDto.java
...m/wwdz/ch/db/dto/request/AiDefaultQuestionRequestDto.java
+5
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/AiDefaultQuestionServiceImpl.java
...ava/com/wwdz/ch/wx/impl/AiDefaultQuestionServiceImpl.java
+8
-3
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/UserServiceImpl.java
...pi/src/main/java/com/wwdz/ch/wx/impl/UserServiceImpl.java
+23
-1
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/AiAssistantController.java
...c/main/java/com/wwdz/ch/wx/web/AiAssistantController.java
+1
-1
ch-wx-api/src/test/java/com/wwdz/ch/wx/api/ChatApiTest.java
ch-wx-api/src/test/java/com/wwdz/ch/wx/api/ChatApiTest.java
+19
-0
No files found.
ch-dao/src/main/java/com/wwdz/ch/db/dto/request/AiDefaultQuestionRequestDto.java
View file @
62940cc7
...
...
@@ -11,6 +11,11 @@ public class AiDefaultQuestionRequestDto extends BaseRequestDto implements Entit
*/
private
Long
userId
;
/**
* ai机器人code
*/
private
String
code
;
/**
* 问题类型
*/
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/AiDefaultQuestionServiceImpl.java
View file @
62940cc7
package
com.wwdz.ch.wx.impl
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.core.util.IMUtil
;
import
com.wwdz.ch.core.util.RedisUtils
;
import
com.wwdz.ch.db.dao.AiAssistantDao
;
import
com.wwdz.ch.db.dao.AiDefaultQuestionDao
;
...
...
@@ -38,6 +39,9 @@ public class AiDefaultQuestionServiceImpl implements AiDefaultQuestionService {
@Autowired
AiAssistantDao
aiAssistantDao
;
@Autowired
IMUtil
imUtil
;
@Override
public
Result
findList
(
AiDefaultQuestionRequestDto
dto
)
{
...
...
@@ -46,12 +50,13 @@ public class AiDefaultQuestionServiceImpl implements AiDefaultQuestionService {
if
(
redisUtils
.
hasKey
(
key
)
&&
dto
.
getIsChangeList
()
==
0
){
return
Result
.
success
();
}
//查询机器人信息
AiAssistant
aiAssistant
=
aiAssistantDao
.
findByCode
(
imUtil
.
revertAppletUserId
(
dto
.
getCode
()));
dto
.
setType
(
aiAssistant
.
getType
());
List
<
AiDefaultQuestion
>
aiDefaultQuestionList
=
aiDefaultQuestionDao
.
findList
(
dto
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"data"
,
aiDefaultQuestionList
);
//查询ai机器人简介
AiAssistant
aiAssistant
=
aiAssistantDao
.
findByType
(
dto
.
getType
());
map
.
put
(
"profile"
,
aiAssistant
.
getProfile
());
//一小时内打开会话不重复返回默认问题
redisUtils
.
set
(
key
,
null
,
1
,
TimeUnit
.
HOURS
);
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/UserServiceImpl.java
View file @
62940cc7
package
com.wwdz.ch.wx.impl
;
import
com.alibaba.fastjson.JSONObject
;
import
com.wwdz.ch.core.consts.IMEnum
;
import
com.wwdz.ch.core.consts.ResultCode
;
import
com.wwdz.ch.core.entity.im.SendChatMsgRequestDto
;
import
com.wwdz.ch.core.im.api.ChatUserApi
;
import
com.wwdz.ch.core.im.api.ConversationApi
;
import
com.wwdz.ch.core.notify.AliSmsSender
;
import
com.wwdz.ch.core.notify.NotifyService
;
import
com.wwdz.ch.core.notify.SmsResult
;
...
...
@@ -12,7 +15,9 @@ import com.wwdz.ch.core.util.CharUtil;
import
com.wwdz.ch.core.util.RegexUtil
;
import
com.wwdz.ch.core.util.UUID
;
import
com.wwdz.ch.core.util.bcrypt.BCryptPasswordEncoder
;
import
com.wwdz.ch.db.dao.AiAssistantDao
;
import
com.wwdz.ch.db.dao.UserDao
;
import
com.wwdz.ch.db.domain.AiAssistant
;
import
com.wwdz.ch.db.domain.Switch
;
import
com.wwdz.ch.db.domain.User
;
import
com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto
;
...
...
@@ -102,6 +107,12 @@ public class UserServiceImpl implements UserService {
@Autowired
ChatUserApi
chatUserApi
;
@Autowired
ConversationApi
conversationApi
;
@Autowired
AiAssistantDao
aiAssistantDao
;
@Override
public
Result
regCaptcha
(
UserRequestDto
dto
)
{
...
...
@@ -519,12 +530,23 @@ public class UserServiceImpl implements UserService {
user
.
setLastLoginTime
(
now
);
user
.
setLastLoginIp
(
IpUtil
.
client
(
request
));
user
.
setShareUserId
(
0L
);
userDao
.
insert
(
user
);
int
userId
=
userDao
.
insert
(
user
);
//把新增用户同步到IM
Result
synUserResult
=
chatUserApi
.
importUser
(
user
);
if
(
synUserResult
.
getSuccess
())
{
logger
.
info
(
"新增用户同步至IM成功"
);
//默认机器人给新增用户发送打招呼信息,为了新增会话
SendChatMsgRequestDto
sendChatMsgRequestDto
=
new
SendChatMsgRequestDto
();
sendChatMsgRequestDto
.
setFromAccount
(
DEFAULT_AI_CODE
);
sendChatMsgRequestDto
.
setToAccount
(
String
.
valueOf
(
userId
));
sendChatMsgRequestDto
.
setMsgType
(
IMEnum
.
MsgTypeEnum
.
TIMTextElem
.
getCode
());
AiAssistant
aiAssistant
=
aiAssistantDao
.
findByCode
(
DEFAULT_AI_CODE
);
sendChatMsgRequestDto
.
setMsgContent
(
aiAssistant
.
getProfile
());
Result
sendMsgResult
=
conversationApi
.
sendChatMsg
(
sendChatMsgRequestDto
);
if
(
sendMsgResult
.
getSuccess
())
{
logger
.
info
(
"================= 向首次登录用户发送默认机器人消息成功 ================="
);
}
}
}
else
{
// 注册过的用户修改最后登录的时间以及绑定微信openid和支付宝user_id
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/AiAssistantController.java
View file @
62940cc7
...
...
@@ -42,7 +42,7 @@ public class AiAssistantController {
@PostMapping
(
"/findDefaultQuestions"
)
public
Result
findDefaultQuestions
(
@RequestBody
AiDefaultQuestionRequestDto
dto
)
{
logger
.
info
(
"【请求开始】查询ai默认问题,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
if
(
dto
.
get
Typ
e
()
==
null
)
{
if
(
dto
.
get
Cod
e
()
==
null
)
{
return
Result
.
failed
(
ResultCode
.
PARAM_ERROR
);
}
return
aiDefaultQuestionService
.
findList
(
dto
);
...
...
ch-wx-api/src/test/java/com/wwdz/ch/wx/api/ChatApiTest.java
View file @
62940cc7
...
...
@@ -98,6 +98,25 @@ public class ChatApiTest {
conversationApi
.
sendChatMsg
(
sendChatMsgRequestDto
);
}
/**
* 给已经创建的用户发送默认机器人消息
*/
@Test
public
void
initDefaultAiChat
()
{
List
<
User
>
list
=
userDao
.
queryAll
();
list
.
forEach
(
user
->
{
SendChatMsgRequestDto
sendChatMsgRequestDto
=
new
SendChatMsgRequestDto
();
sendChatMsgRequestDto
.
setToAccount
(
user
.
getId
()+
""
);
sendChatMsgRequestDto
.
setFromAccount
(
"ai10000"
);
sendChatMsgRequestDto
.
setMsgType
(
IMEnum
.
MsgTypeEnum
.
TIMTextElem
.
getCode
());
long
timestamp
=
System
.
currentTimeMillis
();
String
msgContent
=
timestamp
+
" >> ai测试消息的数据, 是否可以接收到"
;
sendChatMsgRequestDto
.
setMsgContent
(
msgContent
);
conversationApi
.
sendChatMsg
(
sendChatMsgRequestDto
);
});
}
/**
* 拉取会话列表
*/
...
...
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