Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
midjourney-proxy
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
徐少华
midjourney-proxy
Commits
a7f7c7eb
Commit
a7f7c7eb
authored
Mar 02, 2020
by
曾迫
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
重置体验非关键词缓存数量清空
parent
b6cb1c6a
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
126 additions
and
5 deletions
+126
-5
BookGuideBiz.java
.../main/java/com/pcloud/book/keywords/biz/BookGuideBiz.java
+2
-0
BookGuideBizImpl.java
...a/com/pcloud/book/keywords/biz/impl/BookGuideBizImpl.java
+119
-0
WxGroupSendTextListener.java
...ava/com/pcloud/book/mq/topic/WxGroupSendTextListener.java
+1
-1
PersonalStageBiz.java
...a/com/pcloud/book/personalstage/biz/PersonalStageBiz.java
+1
-1
PersonalStageBizImpl.java
...oud/book/personalstage/biz/impl/PersonalStageBizImpl.java
+3
-3
No files found.
pcloud-service-book/src/main/java/com/pcloud/book/keywords/biz/BookGuideBiz.java
View file @
a7f7c7eb
...
@@ -56,4 +56,6 @@ public interface BookGuideBiz {
...
@@ -56,4 +56,6 @@ public interface BookGuideBiz {
void
sendGuideMessage
(
PushAddUserMessageDTO
pushAddUserMessageDTO
);
void
sendGuideMessage
(
PushAddUserMessageDTO
pushAddUserMessageDTO
);
Map
<
String
,
Object
>
getGuideMessage
(
String
weixinGroupId
,
String
wexinGroupName
);
Map
<
String
,
Object
>
getGuideMessage
(
String
weixinGroupId
,
String
wexinGroupName
);
void
sendGuideNew
(
AgreeAddUserDTO
agreeAddUserDTO
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/keywords/biz/impl/BookGuideBizImpl.java
View file @
a7f7c7eb
...
@@ -57,6 +57,7 @@ import com.pcloud.book.pcloudkeyword.biz.PcloudRobotBiz;
...
@@ -57,6 +57,7 @@ import com.pcloud.book.pcloudkeyword.biz.PcloudRobotBiz;
import
com.pcloud.book.pcloudkeyword.dao.PcloudRobotDao
;
import
com.pcloud.book.pcloudkeyword.dao.PcloudRobotDao
;
import
com.pcloud.book.pcloudkeyword.entity.PcloudRobot
;
import
com.pcloud.book.pcloudkeyword.entity.PcloudRobot
;
import
com.pcloud.book.personalstage.biz.PersonalStageBiz
;
import
com.pcloud.book.personalstage.biz.PersonalStageBiz
;
import
com.pcloud.book.personalstage.constant.PersonalStageConstant
;
import
com.pcloud.book.weixinclock.dao.WeixinClockGroupClassifyDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockGroupClassifyDao
;
import
com.pcloud.book.weixinclock.dto.WeixinClockDto
;
import
com.pcloud.book.weixinclock.dto.WeixinClockDto
;
import
com.pcloud.channelcenter.wechat.dto.AccountSettingDto
;
import
com.pcloud.channelcenter.wechat.dto.AccountSettingDto
;
...
@@ -264,6 +265,124 @@ public class BookGuideBizImpl implements BookGuideBiz {
...
@@ -264,6 +265,124 @@ public class BookGuideBizImpl implements BookGuideBiz {
}
}
}
}
@ParamLog
(
"重置体验同意加好友发送欢迎语"
)
@Override
public
void
sendGuideNew
(
AgreeAddUserDTO
agreeAddUserDTO
)
{
if
(
null
==
agreeAddUserDTO
||
StringUtil
.
isBlank
(
agreeAddUserDTO
.
getRobotWxId
())
||
StringUtil
.
isBlank
(
agreeAddUserDTO
.
getUserWxId
()))
{
log
.
info
(
"[同意加好友发送欢迎语] 参数为空 agreeAddUserDTO:{}"
,
agreeAddUserDTO
);
return
;
}
String
cipher
=
agreeAddUserDTO
.
getCipher
();
//如果暗号为空,表示直接加好友,需要发送统一欢迎语
if
(
cipher
==
null
)
{
//发送配置欢迎语 create by lihao 2020.2.7
//判断是否是平台端小号
PcloudRobot
pcloudRobot
=
pcloudRobotDao
.
getByWxId
(
agreeAddUserDTO
.
getRobotWxId
());
if
(
pcloudRobot
!=
null
){
pcloudRobotBiz
.
sendWelcomeReply
(
agreeAddUserDTO
.
getRobotWxId
(),
agreeAddUserDTO
.
getUserWxId
(),
agreeAddUserDTO
.
getIp
());
//好友引导语
sendFriendGuide
(
null
,
agreeAddUserDTO
);
if
(
personalStageBiz
.
isPersonalStageUser
(
agreeAddUserDTO
.
getRobotWxId
())){
Long
personalStageId
=
personalStageBiz
.
createAddUserStageUser
(
agreeAddUserDTO
.
getRobotWxId
(),
agreeAddUserDTO
.
getUserWxId
(),
agreeAddUserDTO
.
getIp
());
//清空缓存中该阶段的非关键词数量
//刪除发送非关键词次数緩存
JedisClusterUtils
.
del
(
PersonalStageConstant
.
USER_SEND_KEYWORD_COUNT_LOCK
+
personalStageId
+
"_"
+
agreeAddUserDTO
.
getUserWxId
());
}
return
;
}
SendTextMessageVO
vo
=
new
SendTextMessageVO
();
vo
.
setContent
(
"终于和您见面了!\n请告诉我您在读哪本书?\n如果您在上一步中复制了暗号,\n您可以把暗号粘贴在下方对话框内,以微信聊天的形式发给我。"
+
"\n如果在上一步中,没有提示您复制暗号,\n您可以在【书中二维码旁】找到本书的简称及年份,\n在下方对话框内输入本书简称及年份,以微信聊天的形式发给我。"
);
vo
.
setCode
(
SendMessageTypeEnum
.
SELF
.
getCode
());
vo
.
setWxId
(
agreeAddUserDTO
.
getRobotWxId
());
vo
.
setAltId
(
agreeAddUserDTO
.
getRobotWxId
());
vo
.
setWxGroupId
(
agreeAddUserDTO
.
getUserWxId
());
vo
.
setIp
(
agreeAddUserDTO
.
getIp
());
WxGroupSDK
.
sendTextMessage
(
vo
);
return
;
}
if
(
StringUtil
.
isBlank
(
cipher
))
{
cipher
=
wechatGroupConsr
.
getCipherByRobotAndUserWxId
(
agreeAddUserDTO
.
getRobotWxId
(),
agreeAddUserDTO
.
getUserWxId
());
}
if
(
StringUtil
.
isBlank
(
cipher
))
{
log
.
info
(
"[同意加好友发送欢迎语] 暗号为空 agreeAddUserDTO:{}"
,
agreeAddUserDTO
);
return
;
}
final
JoinGroupCipherDTO
dto
=
joinGroupCipherDao
.
getDTOByCipher
(
cipher
);
//获取群
GroupQrcodeBaseInfoVO
wxGroup
=
bookGroupClassifyBiz
.
getWxGroupIdByClassifyIdAndWechatId
(
dto
.
getClassifyId
(),
dto
.
getWechatUserId
());
//判断是否是品牌方进具体群,如果是,从暗号表获取已经定好的群
if
((!
StringUtil
.
isEmpty
(
agreeAddUserDTO
.
getCipher
()))
&&
agreeAddUserDTO
.
getCipher
().
contains
(
"RAYS_"
))
{
JoinGroupCipher
jgc
=
joinGroupCipherDao
.
getByCipher
(
agreeAddUserDTO
.
getCipher
());
if
(
CipherTypeEnum
.
QRCODE_CIPHER
.
code
.
equals
(
jgc
.
getType
()))
{
wxGroup
=
groupQrcodeDao
.
getBaseById
(
jgc
.
getQrcodeId
());
}
}
if
(
null
==
wxGroup
)
{
log
.
error
(
"[同意加好友发送欢迎语] : bookGroupClassifyBiz.getWxGroupIdByClassifyIdAndWechatId dto:{}"
);
throw
new
BookBizException
(
BookBizException
.
ID_NOT_EXIST
,
"群不存在"
);
}
String
wxGroupId
=
wxGroup
.
getWeixinGroupId
();
if
(
agreeAddUserDTO
.
getFirst
()
!=
null
&&
agreeAddUserDTO
.
getFirst
())
{
// 如果是第一次就只发欢迎文案
SendTextMessageVO
vo
=
new
SendTextMessageVO
();
// vo.setContent("你好,我是本书智能小助手,请回复你的进群暗号,获取本书资源服务,以及入群链接如果忘了进群暗号,请重新扫描书上的二维码,点击入群即可获取");
vo
.
setContent
(
"你好,我是本书智能小助手。请输入关键词获取本书相应的资源服务。"
);
vo
.
setCode
(
SendMessageTypeEnum
.
SELF
.
getCode
());
vo
.
setWxId
(
agreeAddUserDTO
.
getRobotWxId
());
vo
.
setAltId
(
agreeAddUserDTO
.
getRobotWxId
());
vo
.
setWxGroupId
(
agreeAddUserDTO
.
getUserWxId
());
vo
.
setIp
(
agreeAddUserDTO
.
getIp
());
log
.
info
(
"[同意加好友发送欢迎语] : {}"
,
vo
);
WxGroupSDK
.
sendTextMessage
(
vo
);
}
// 如果不是第一次就发关键词
// 根据暗号获取分类id和bookGroupId推送关键词欢迎语
List
<
KeywordDTO
>
keywords
=
bookKeywordBiz
.
listFiveKeyword
(
dto
.
getClassifyId
(),
dto
.
getBookGroupId
());
//发主打资源
sendMainKeyword
(
keywords
,
agreeAddUserDTO
,
dto
,
wxGroupId
);
//发关键词列表
SendWeixinRequestTools
.
sendKeywordsInfoToSelf
(
keywords
,
agreeAddUserDTO
.
getRobotWxId
(),
agreeAddUserDTO
.
getUserWxId
(),
agreeAddUserDTO
.
getIp
());
// 拉群
// final Integer peopleCounts = wxGroup.getUserNumber();
// 邀请好友进群有次数限制,目前测试为每天只能拉30-40人就操作频繁,所以在此加判断,超过30人或者群人数超过30人就发送邀请链接
final
String
num
=
JedisClusterUtils
.
get
(
BookConstant
.
WXGROUP_ADD_USER_NUM
+
agreeAddUserDTO
.
getRobotWxId
());
log
.
info
(
"[同意加好友发送欢迎语] 拉群 agreeAddUserDTO:{}, wxGroup:{}, num:{}"
,
agreeAddUserDTO
,
wxGroup
,
num
);
if
(
StringUtil
.
isBlank
(
wxGroupId
))
{
log
.
info
(
"[同意加好友发送欢迎语] 拉群 没有找到群 bookGroupClassifyBiz.getGroupQrcode4ClassifyWechat JoinGroupCipherDTO :{}"
,
dto
);
return
;
}
// 1001666 刘娜需求-1v1客服机器人,不直接拉人,30人以下也发邀请链接
// 生产环境限制30,其它5和10,全部使用群链接
// final boolean isPro = "pro".equalsIgnoreCase(BookProps.getSystemEnv());
// if ((!StringUtil.isBlank(num) && Integer.parseInt(num) >= (isPro ? 30 : 5)) || peopleCounts >= (isPro ? 30 : 10)) {
SendGroupInviteVO
sendGroupInviteVO
=
new
SendGroupInviteVO
();
sendGroupInviteVO
.
setAltId
(
agreeAddUserDTO
.
getRobotWxId
());
sendGroupInviteVO
.
setWxId
(
agreeAddUserDTO
.
getUserWxId
());
sendGroupInviteVO
.
setWxGroupId
(
wxGroupId
);
sendGroupInviteVO
.
setIp
(
agreeAddUserDTO
.
getIp
());
WxGroupSDK
.
sendGroupInvite
(
sendGroupInviteVO
);
log
.
info
(
"[同意加好友发送欢迎语] 发送进群链接 sendGroupInviteVO:{}"
,
sendGroupInviteVO
);
// 进群之后更新群qrCodeId
// updateQrcodeForCipher(wxGroupId, cipher, agreeAddUserDTO.getUserWxId());
// return;
// }
// AddToGroupVO vo1 = new AddToGroupVO();
// vo1.setWxGroupId(wxGroupId);
// vo1.setWxId(agreeAddUserDTO.getUserWxId());
// vo1.setAltId(agreeAddUserDTO.getRobotWxId());
// vo1.setIp(agreeAddUserDTO.getIp());
// log.info("[同意加好友发送欢迎语 拉群] AddToGroupVO :{}", vo1);
// WxGroupSDK.addToGroup(vo1);
// 进群之后更新群qrCodeId
updateQrcodeForCipher
(
wxGroupId
,
cipher
,
agreeAddUserDTO
.
getUserWxId
());
// 拉一次+1
if
(
StringUtil
.
isBlank
(
num
))
{
JedisClusterUtils
.
getSet
(
BookConstant
.
WXGROUP_ADD_USER_NUM
+
agreeAddUserDTO
.
getRobotWxId
(),
"1"
,
3600
*
24
);
}
else
{
JedisClusterUtils
.
incr
(
BookConstant
.
WXGROUP_ADD_USER_NUM
+
agreeAddUserDTO
.
getRobotWxId
());
}
}
/**
/**
* 推好友引导语
* 推好友引导语
* @param bookGroupId
* @param bookGroupId
...
...
pcloud-service-book/src/main/java/com/pcloud/book/mq/topic/WxGroupSendTextListener.java
View file @
a7f7c7eb
...
@@ -99,7 +99,7 @@ public class WxGroupSendTextListener {
...
@@ -99,7 +99,7 @@ public class WxGroupSendTextListener {
agreeAddUserDTO
.
setRobotWxId
(
sendTextDTO
.
getWxId
());
agreeAddUserDTO
.
setRobotWxId
(
sendTextDTO
.
getWxId
());
agreeAddUserDTO
.
setUserWxId
(
sendTextDTO
.
getWechatGroupId
());
agreeAddUserDTO
.
setUserWxId
(
sendTextDTO
.
getWechatGroupId
());
agreeAddUserDTO
.
setFirst
(
false
);
agreeAddUserDTO
.
setFirst
(
false
);
bookGuideBiz
.
sendGuide
(
agreeAddUserDTO
);
bookGuideBiz
.
sendGuide
New
(
agreeAddUserDTO
);
return
;
return
;
}
}
// 更新群人数和群名称
// 更新群人数和群名称
...
...
pcloud-service-book/src/main/java/com/pcloud/book/personalstage/biz/PersonalStageBiz.java
View file @
a7f7c7eb
...
@@ -44,7 +44,7 @@ public interface PersonalStageBiz {
...
@@ -44,7 +44,7 @@ public interface PersonalStageBiz {
Boolean
isPersonalStageUser
(
String
robotId
);
Boolean
isPersonalStageUser
(
String
robotId
);
void
createAddUserStageUser
(
String
robotId
,
String
userWxId
,
String
ip
);
Long
createAddUserStageUser
(
String
robotId
,
String
userWxId
,
String
ip
);
void
dealDelayWakeup
(
DelayQueueDTO
dto
);
void
dealDelayWakeup
(
DelayQueueDTO
dto
);
...
...
pcloud-service-book/src/main/java/com/pcloud/book/personalstage/biz/impl/PersonalStageBizImpl.java
View file @
a7f7c7eb
...
@@ -41,7 +41,6 @@ import com.sdk.wxgroup.SendPicMessageVO;
...
@@ -41,7 +41,6 @@ import com.sdk.wxgroup.SendPicMessageVO;
import
com.sdk.wxgroup.SendTextMessageVO
;
import
com.sdk.wxgroup.SendTextMessageVO
;
import
com.sdk.wxgroup.WxGroupSDK
;
import
com.sdk.wxgroup.WxGroupSDK
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.collections.MapUtils
;
import
org.elasticsearch.index.mapper.MapperUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -416,15 +415,16 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
...
@@ -416,15 +415,16 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
@ParamLog
(
"加好友时插入初始状态"
)
@ParamLog
(
"加好友时插入初始状态"
)
@Override
@Override
public
void
createAddUserStageUser
(
String
robotId
,
String
userWxId
,
String
ip
)
{
public
Long
createAddUserStageUser
(
String
robotId
,
String
userWxId
,
String
ip
)
{
//查询第一个阶段
//查询第一个阶段
PcloudRobot
pcloudRobot
=
pcloudRobotDao
.
getByWxId
(
robotId
);
PcloudRobot
pcloudRobot
=
pcloudRobotDao
.
getByWxId
(
robotId
);
Long
robotClassifyId
=
pcloudRobot
.
getRobotType
().
longValue
();
Long
robotClassifyId
=
pcloudRobot
.
getRobotType
().
longValue
();
PersonalStage
firstStage
=
personalStageDao
.
getFirstStage
(
robotClassifyId
);
PersonalStage
firstStage
=
personalStageDao
.
getFirstStage
(
robotClassifyId
);
if
(
firstStage
==
null
){
if
(
firstStage
==
null
){
return
;
return
null
;
}
}
nextStageAddStageUserAndWakeupDelay
(
robotId
,
userWxId
,
ip
,
firstStage
.
getId
());
nextStageAddStageUserAndWakeupDelay
(
robotId
,
userWxId
,
ip
,
firstStage
.
getId
());
return
firstStage
.
getId
();
}
}
@ParamLog
(
"处理延时唤醒"
)
@ParamLog
(
"处理延时唤醒"
)
...
...
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