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
efe7a77f
Commit
efe7a77f
authored
Mar 01, 2020
by
裴大威
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feat-1002473' into 'master'
不用双删才能体验流程,触发关键词体验 See merge request rays/pcloud-book!489
parents
a7eb2ddb
be5339a4
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
65 additions
and
0 deletions
+65
-0
DelayReceiver.java
...src/main/java/com/pcloud/book/mq/delay/DelayReceiver.java
+12
-0
SelfRobotSendTextListener.java
...a/com/pcloud/book/mq/topic/SelfRobotSendTextListener.java
+9
-0
WxGroupSendTextListener.java
...ava/com/pcloud/book/mq/topic/WxGroupSendTextListener.java
+32
-0
PersonalStageBizImpl.java
...oud/book/personalstage/biz/impl/PersonalStageBizImpl.java
+5
-0
PersonalStageConstant.java
...ud/book/personalstage/constant/PersonalStageConstant.java
+4
-0
WakeupDelayDTO.java
...ava/com/pcloud/book/personalstage/dto/WakeupDelayDTO.java
+3
-0
No files found.
pcloud-service-book/src/main/java/com/pcloud/book/mq/delay/DelayReceiver.java
View file @
efe7a77f
package
com
.
pcloud
.
book
.
mq
.
delay
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.pcloud.book.personalstage.biz.PersonalStageBiz
;
import
com.pcloud.book.personalstage.biz.PersonalStageJumpBiz
;
import
com.pcloud.book.personalstage.constant.PersonalStageConstant
;
import
com.pcloud.book.personalstage.dto.WakeupDelayDTO
;
import
com.pcloud.common.core.mq.DelayQueueDTO
;
import
com.pcloud.common.core.mq.MQQueueConstants
;
import
com.pcloud.common.utils.DateUtils
;
import
com.pcloud.common.utils.cache.redis.JedisClusterUtils
;
import
org.springframework.amqp.rabbit.annotation.RabbitHandler
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -37,8 +42,15 @@ public class DelayReceiver {
log
.
info
(
"收到延时消息为空!"
);
return
;
}
String
s
=
JSONObject
.
toJSONString
(
dto
.
getMsg
());
WakeupDelayDTO
wakeupDelayDTO
=
JSONObject
.
parseObject
(
s
,
WakeupDelayDTO
.
class
);
String
dateStr
=
JedisClusterUtils
.
get
(
PersonalStageConstant
.
PERSONAL_STAGE_SEND_TIME
+
wakeupDelayDTO
.
getWxId
());
if
(
PersonalStageConstant
.
PERSONALSTAGE_DELAY_WAKEUP
.
equals
(
dto
.
getType
())){
if
(
wakeupDelayDTO
.
getPersonalStageCreateTime
()!=
null
&&
DateUtils
.
getDateFromString
(
wakeupDelayDTO
.
getPersonalStageCreateTime
(),
"yyyy-MM-dd HH:mm:ss"
)
.
after
(
DateUtils
.
getDateFromString
(
dateStr
,
"yyyy-MM-dd HH:mm:ss"
)))
{
personalStageBiz
.
dealDelayWakeup
(
dto
);
}
}
else
if
(
PersonalStageConstant
.
PERSONALSTAGE_DELAY_FUSING
.
equals
(
dto
.
getType
()))
{
personalStageBiz
.
dealDelayFusingFinish
(
dto
);
}
else
if
(
PersonalStageConstant
.
PERSONALSTAGE_DELAY_LINKUP
.
equals
(
dto
.
getType
()))
{
...
...
pcloud-service-book/src/main/java/com/pcloud/book/mq/topic/SelfRobotSendTextListener.java
View file @
efe7a77f
package
com
.
pcloud
.
book
.
mq
.
topic
;
import
com.pcloud.book.keywords.biz.BookGuideBiz
;
import
com.pcloud.book.mq.config.MQTopicConumer
;
import
com.pcloud.book.personalstage.biz.PersonalStageJumpBiz
;
import
com.pcloud.book.personalstage.constant.PersonalStageConstant
;
import
com.pcloud.book.personalstage.enums.JumpTypeEnum
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.utils.DateUtils
;
import
com.pcloud.common.utils.cache.redis.JedisClusterUtils
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.wechatgroup.base.constants.WechatGroupConstant
;
import
com.pcloud.wechatgroup.message.dto.AgreeAddUserDTO
;
import
com.pcloud.wechatgroup.message.dto.SendTextDTO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.slf4j.Logger
;
...
...
@@ -16,6 +21,8 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.Date
;
@Slf4j
@Component
(
"selfRobotSendTextListener"
)
...
...
@@ -25,6 +32,8 @@ public class SelfRobotSendTextListener {
@Autowired
private
PersonalStageJumpBiz
personalStageJumpBiz
;
@Autowired
private
BookGuideBiz
bookGuideBiz
;
/**
* 接收个人号发送文本消息
...
...
pcloud-service-book/src/main/java/com/pcloud/book/mq/topic/WxGroupSendTextListener.java
View file @
efe7a77f
...
...
@@ -7,19 +7,23 @@ import com.pcloud.book.group.dto.GroupClassifyQrcodeDTO;
import
com.pcloud.book.guide.dto.PcloudGuideDelayDto
;
import
com.pcloud.book.guide.dto.WakeUpInfoDto
;
import
com.pcloud.book.guide.mapper.PcloudRobotSilenceMapper
;
import
com.pcloud.book.keywords.biz.BookGuideBiz
;
import
com.pcloud.book.keywords.biz.BookKeywordBiz
;
import
com.pcloud.book.mq.config.MQTopicConumer
;
import
com.pcloud.book.pcloudkeyword.dao.PcloudRobotDao
;
import
com.pcloud.book.pcloudkeyword.entity.PcloudRobot
;
import
com.pcloud.book.personalstage.constant.PersonalStageConstant
;
import
com.pcloud.book.reading.biz.ReadingActivityBiz
;
import
com.pcloud.book.riddle.biz.RiddleRecordBiz
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.book.weixinclock.biz.WeixinClockBiz
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.utils.DateUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.cache.redis.JedisClusterUtils
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.wechatgroup.message.dto.AgreeAddUserDTO
;
import
com.pcloud.wechatgroup.message.dto.SendTextDTO
;
import
com.sdk.wxgroup.SendMessageTypeEnum
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -59,6 +63,9 @@ public class WxGroupSendTextListener {
@Autowired
private
ReadingActivityBiz
readingActivityBiz
;
@Autowired
private
BookGuideBiz
bookGuideBiz
;
/**
* 接收微信用户进群消息
*/
...
...
@@ -69,6 +76,31 @@ public class WxGroupSendTextListener {
if
(
sendTextDTO
==
null
||
sendTextDTO
.
getWechatGroupId
()
==
null
||
sendTextDTO
.
getTextContent
()
==
null
)
return
;
String
wechatUserId
=
sendTextDTO
.
getWechatUserId
();
// TODO
//入口,监听内容如果是重置,记录当前时间存入缓存,并调用统一加好友发送欢迎语接口
/*这里这要过滤掉阶段消息吗?因为延迟队列里面已经有了上次加好友的一些待发送的阶段消息,
在掉一遍这个接口又会产生新的阶段消息,所以要过滤掉之前的阶段消息,需要在队列的消息里面加上一个创建时间
根据缓存的这个时间去过滤,如果队列的这个人的阶段消息的创建时间在缓存的时间之前,则不发送
,如果之后或者相等则发送
*/
if
(
"重置体验"
.
equals
(
sendTextDTO
.
getTextContent
())){
Date
date
=
new
Date
();
String
dateStr
=
DateUtils
.
formatDate
(
date
,
"yyyy-MM-dd HH:mm:ss"
);
//把这个时间存入缓存
String
key
=
PersonalStageConstant
.
PERSONAL_STAGE_SEND_TIME
+
sendTextDTO
.
getWxId
();
JedisClusterUtils
.
set
(
key
,
dateStr
);
AgreeAddUserDTO
agreeAddUserDTO
=
new
AgreeAddUserDTO
();
agreeAddUserDTO
.
setIp
(
sendTextDTO
.
getIp
());
//agreeAddUserDTO.setNickName(sendTextDTO.get);
agreeAddUserDTO
.
setRobotWxId
(
sendTextDTO
.
getWxId
());
agreeAddUserDTO
.
setUserWxId
(
sendTextDTO
.
getWechatGroupId
());
agreeAddUserDTO
.
setFirst
(
false
);
bookGuideBiz
.
sendGuide
(
agreeAddUserDTO
);
}
// 更新群人数和群名称
changeGroupInfo
(
sendTextDTO
);
// 缄默设置处理
...
...
pcloud-service-book/src/main/java/com/pcloud/book/personalstage/biz/impl/PersonalStageBizImpl.java
View file @
efe7a77f
...
...
@@ -473,6 +473,7 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
wakeupDelayDTONew
.
setIp
(
ip
);
wakeupDelayDTONew
.
setPersonalStageId
(
personalStageId
);
wakeupDelayDTONew
.
setPersonalStageUserId
(
wakeupDelayDTO
.
getPersonalStageUserId
());
wakeupDelayDTO
.
setPersonalStageCreateTime
(
DateUtils
.
formatDate
(
new
Date
(),
"yyyy-MM-dd HH:mm:ss"
));
DelayQueueDTO
delayQueueDTONew
=
DelayQueueDTO
.
builder
().
key
(
userWxId
).
type
(
PersonalStageConstant
.
PERSONALSTAGE_DELAY_WAKEUP
).
msg
(
wakeupDelayDTONew
).
timeout
(
time
).
build
();
delayMessageSender
.
send
(
delayQueueDTONew
);
LOGGER
.
info
(
"下一个延时发送delayQueueDTONew="
+
delayQueueDTONew
.
toString
());
...
...
@@ -515,6 +516,7 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
wakeupDelayDTO
.
setIp
(
ip
);
wakeupDelayDTO
.
setPersonalStageId
(
personalStageId
);
wakeupDelayDTO
.
setPersonalStageUserId
(
personalStageUser
.
getId
());
wakeupDelayDTO
.
setPersonalStageCreateTime
(
DateUtils
.
formatDate
(
new
Date
(),
"yyyy-MM-dd HH:mm:ss"
));
DelayQueueDTO
delayQueueDTO
=
DelayQueueDTO
.
builder
().
key
(
userWxId
).
type
(
PersonalStageConstant
.
PERSONALSTAGE_DELAY_WAKEUP
).
msg
(
wakeupDelayDTO
).
timeout
(
toStageStartTime
*
1000
).
build
();
delayMessageSender
.
send
(
delayQueueDTO
);
return
personalStageUser
;
...
...
@@ -523,6 +525,9 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
@ParamLog
(
"非关键词回复"
)
@Override
public
void
sendNotKeywordReply
(
String
robotId
,
String
userWxId
,
String
ip
,
Long
personalStageId
,
Long
personalStageUserId
,
String
userSendContent
)
{
if
(
"重置体验"
.
equals
(
userSendContent
)){
return
;
}
List
<
Long
>
ids
=
personalStageReplyDao
.
getIdsByRelevance
(
StageReplyRelevEnum
.
STAGE_NOT_KEYWORD
.
value
,
personalStageId
);
if
(
ListUtils
.
isEmpty
(
ids
)){
return
;
...
...
pcloud-service-book/src/main/java/com/pcloud/book/personalstage/constant/PersonalStageConstant.java
View file @
efe7a77f
...
...
@@ -15,4 +15,8 @@ public class PersonalStageConstant {
// 项目进度页面路由
public
static
final
String
PERSONAL_STAGE_PROJECT_PROGRESS
=
"/personalCenter/projectProgress"
;
public
static
final
String
PERSONAL_STAGE_SEND_TIME
=
"PERSONAL_STAGE_SEND_TIME"
;
}
pcloud-service-book/src/main/java/com/pcloud/book/personalstage/dto/WakeupDelayDTO.java
View file @
efe7a77f
...
...
@@ -22,4 +22,7 @@ public class WakeupDelayDTO implements Serializable {
private
String
ip
;
@ApiModelProperty
(
"用户阶段记录id"
)
private
Long
personalStageUserId
;
@ApiModelProperty
(
"用户阶段创建时间"
)
private
String
personalStageCreateTime
;
}
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