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
71db3b3e
Commit
71db3b3e
authored
Feb 12, 2020
by
阮思源
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1002332统一关键词回复覆盖用户消息所有类型,缄默时长覆盖用户消息所有类型
parent
7fd44367
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
165 additions
and
62 deletions
+165
-62
BookApplication.java
...e-book/src/main/java/com/pcloud/book/BookApplication.java
+10
-0
BookKeywordBiz.java
...ain/java/com/pcloud/book/keywords/biz/BookKeywordBiz.java
+15
-0
BookKeywordBizImpl.java
...com/pcloud/book/keywords/biz/impl/BookKeywordBizImpl.java
+75
-16
MQTopicConumer.java
...c/main/java/com/pcloud/book/mq/config/MQTopicConumer.java
+5
-0
WxGroupSendNotTextListener.java
.../com/pcloud/book/mq/topic/WxGroupSendNotTextListener.java
+58
-0
WxGroupSendTextListener.java
...ava/com/pcloud/book/mq/topic/WxGroupSendTextListener.java
+2
-46
No files found.
pcloud-service-book/src/main/java/com/pcloud/book/BookApplication.java
View file @
71db3b3e
...
@@ -238,4 +238,14 @@ public class BookApplication {
...
@@ -238,4 +238,14 @@ public class BookApplication {
public
Binding
someUserScanBookGroupBind
(){
public
Binding
someUserScanBookGroupBind
(){
return
RabbitMQFactory
.
bindingExchange
(
someUserScanBookGroupQueue
(),
MQTopicProducer
.
SOME_USER_SCAN_BOOK_GROUP
);
return
RabbitMQFactory
.
bindingExchange
(
someUserScanBookGroupQueue
(),
MQTopicProducer
.
SOME_USER_SCAN_BOOK_GROUP
);
}
}
@Bean
public
Queue
wxGroupSendNotTextQueue
()
{
return
RabbitMQFactory
.
queueBuilder
(
MQTopicConumer
.
WXGROUP_SEND_NOT_TEXT
);
}
@Bean
public
Binding
wxGroupSendNotTextBind
()
{
return
RabbitMQFactory
.
bindingExchange
(
wxGroupSendNotTextQueue
(),
MQTopicProducer
.
WXGROUP_SEND_NOT_TEXT
);
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/keywords/biz/BookKeywordBiz.java
View file @
71db3b3e
...
@@ -7,6 +7,7 @@ import com.pcloud.book.keywords.dto.ReplyKeywordDTO;
...
@@ -7,6 +7,7 @@ import com.pcloud.book.keywords.dto.ReplyKeywordDTO;
import
com.pcloud.book.keywords.dto.ServiceResourceDTO
;
import
com.pcloud.book.keywords.dto.ServiceResourceDTO
;
import
com.pcloud.book.keywords.entity.BookKeyword
;
import
com.pcloud.book.keywords.entity.BookKeyword
;
import
com.pcloud.book.keywords.vo.*
;
import
com.pcloud.book.keywords.vo.*
;
import
com.pcloud.book.pcloudkeyword.entity.PcloudRobot
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.wechatgroup.message.dto.SendTextDTO
;
import
com.pcloud.wechatgroup.message.dto.SendTextDTO
;
import
com.sdk.wxgroup.SendMessageTypeEnum
;
import
com.sdk.wxgroup.SendMessageTypeEnum
;
...
@@ -145,4 +146,18 @@ public interface BookKeywordBiz {
...
@@ -145,4 +146,18 @@ public interface BookKeywordBiz {
*/
*/
String
appendUrlParams
(
String
content
,
Map
<
String
,
String
>
map
);
String
appendUrlParams
(
String
content
,
Map
<
String
,
String
>
map
);
/**
* 非关键词响应
*/
void
sendPcloudNotKeyWord
(
String
userWxId
,
String
ip
,
Integer
code
,
String
robotId
,
Long
pcloudClassifyId
);
/**
* 缄默处理
*/
void
silenceProcess
(
String
userWxId
,
Integer
code
,
String
robotId
);
/**
* 自动唤醒处理
*/
void
robotWakeUp
(
String
userWxId
,
String
ip
,
Integer
code
,
String
robotId
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/keywords/biz/impl/BookKeywordBizImpl.java
View file @
71db3b3e
package
com
.
pcloud
.
book
.
keywords
.
biz
.
impl
;
package
com
.
pcloud
.
book
.
keywords
.
biz
.
impl
;
import
com.alibaba.fastjson.JSONObject
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Maps
;
import
com.pcloud.appcenter.app.dto.AppDto
;
import
com.pcloud.appcenter.app.dto.AppDto
;
...
@@ -42,6 +43,9 @@ import com.pcloud.book.group.tools.SendWeixinRequestTools;
...
@@ -42,6 +43,9 @@ import com.pcloud.book.group.tools.SendWeixinRequestTools;
import
com.pcloud.book.group.vo.ClassifyNameVO
;
import
com.pcloud.book.group.vo.ClassifyNameVO
;
import
com.pcloud.book.group.vo.ClassifyVO
;
import
com.pcloud.book.group.vo.ClassifyVO
;
import
com.pcloud.book.group.vo.ListClassifyVO
;
import
com.pcloud.book.group.vo.ListClassifyVO
;
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.BookKeywordBiz
;
import
com.pcloud.book.keywords.biz.BookKeywordBiz
;
import
com.pcloud.book.keywords.dao.*
;
import
com.pcloud.book.keywords.dao.*
;
import
com.pcloud.book.keywords.dto.KeywordDTO
;
import
com.pcloud.book.keywords.dto.KeywordDTO
;
...
@@ -126,6 +130,9 @@ import java.util.regex.Matcher;
...
@@ -126,6 +130,9 @@ import java.util.regex.Matcher;
import
java.util.regex.Pattern
;
import
java.util.regex.Pattern
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
static
com
.
pcloud
.
book
.
guide
.
constant
.
PcloudGuideRedisConstant
.
PCLOUD_GUIDE_SUFFIX
;
import
static
com
.
pcloud
.
book
.
guide
.
constant
.
PcloudGuideRedisConstant
.
PCLOUD_ROBOT_WAKE_UP_SUFFIX
;
/**
/**
* @author lily
* @author lily
* @date 2019/4/25 10:47
* @date 2019/4/25 10:47
...
@@ -208,6 +215,9 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
...
@@ -208,6 +215,9 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
private
PcloudKeywordClassifyDao
pcloudKeywordClassifyDao
;
private
PcloudKeywordClassifyDao
pcloudKeywordClassifyDao
;
@Autowired
@Autowired
private
PcloudRobotDao
pcloudRobotDao
;
private
PcloudRobotDao
pcloudRobotDao
;
@Autowired
private
PcloudRobotSilenceMapper
pcloudRobotSilenceMapper
;
@Value
(
"${wechat.group.link.prefix}"
)
@Value
(
"${wechat.group.link.prefix}"
)
private
String
wechatGroupLinkPrefix
;
private
String
wechatGroupLinkPrefix
;
/**
/**
...
@@ -700,22 +710,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
...
@@ -700,22 +710,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
}
}
}
else
{
}
else
{
//走非关键词
//非关键词响应
List
<
PcloudNotKeyword
>
notKeywords
=
pcloudNotKeywordDao
.
getPcloudNotKeywordList
(
pcloudClassifyId
);
sendPcloudNotKeyWord
(
userWxId
,
ip
,
code
,
robotId
,
pcloudClassifyId
);
if
(!
ListUtils
.
isEmpty
(
notKeywords
)){
for
(
PcloudNotKeyword
pcloudNotKeyword
:
notKeywords
){
List
<
PcloudKeywordReply
>
replies
=
pcloudKeywordReplyDao
.
getByRelevance
(
RelevanceTypeEnum
.
NOT_KEYWORD
.
value
,
pcloudNotKeyword
.
getId
());
if
(
ListUtils
.
isEmpty
(
replies
)){
continue
;
}
if
(
MethodEnum
.
RANDOM
.
value
.
equals
(
pcloudNotKeyword
.
getMethod
())){
replies
=
Arrays
.
asList
(
replies
.
get
(
new
Random
().
nextInt
(
replies
.
size
())));
}
for
(
PcloudKeywordReply
reply:
replies
){
sendPcloudKeywordReply
(
reply
,
robotId
,
userWxId
,
ip
,
code
);
}
}
}
}
}
}
}
...
@@ -1025,6 +1021,27 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
...
@@ -1025,6 +1021,27 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
return
content
;
return
content
;
}
}
@ParamLog
(
"非关键词响应"
)
@Override
public
void
sendPcloudNotKeyWord
(
String
userWxId
,
String
ip
,
Integer
code
,
String
robotId
,
Long
pcloudClassifyId
)
{
//走非关键词
List
<
PcloudNotKeyword
>
notKeywords
=
pcloudNotKeywordDao
.
getPcloudNotKeywordList
(
pcloudClassifyId
);
if
(!
ListUtils
.
isEmpty
(
notKeywords
)){
for
(
PcloudNotKeyword
pcloudNotKeyword
:
notKeywords
){
List
<
PcloudKeywordReply
>
replies
=
pcloudKeywordReplyDao
.
getByRelevance
(
RelevanceTypeEnum
.
NOT_KEYWORD
.
value
,
pcloudNotKeyword
.
getId
());
if
(
ListUtils
.
isEmpty
(
replies
)){
continue
;
}
if
(
MethodEnum
.
RANDOM
.
value
.
equals
(
pcloudNotKeyword
.
getMethod
())){
replies
=
Arrays
.
asList
(
replies
.
get
(
new
Random
().
nextInt
(
replies
.
size
())));
}
for
(
PcloudKeywordReply
reply:
replies
){
sendPcloudKeywordReply
(
reply
,
robotId
,
userWxId
,
ip
,
code
);
}
}
}
}
private
String
appendParams
(
Map
<
String
,
String
>
map
)
{
private
String
appendParams
(
Map
<
String
,
String
>
map
)
{
Set
<
String
>
keys
=
map
.
keySet
();
Set
<
String
>
keys
=
map
.
keySet
();
StringBuilder
sb
=
new
StringBuilder
();
StringBuilder
sb
=
new
StringBuilder
();
...
@@ -1842,4 +1859,46 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
...
@@ -1842,4 +1859,46 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
String
ip
=
Optional
.
ofNullable
(
groupVersion
.
get
(
wechatGroupId
)).
orElse
(
new
BookWxQrcodeDTO
()).
getWechatGroupIp
();
String
ip
=
Optional
.
ofNullable
(
groupVersion
.
get
(
wechatGroupId
)).
orElse
(
new
BookWxQrcodeDTO
()).
getWechatGroupIp
();
return
ip
;
return
ip
;
}
}
/**
* 机器人缄默设置处理
*/
@Override
public
void
silenceProcess
(
String
userWxId
,
Integer
code
,
String
robotId
)
{
// 个人号消息 用户发送:wechatCreateUser!=wxId,小号发送wechatCreateUser=wxId
if
(
SendMessageTypeEnum
.
SELF
.
getCode
().
equals
(
code
)
&&
!
userWxId
.
equals
(
robotId
))
{
// 从缓存中获取缄默信息
if
(
JedisClusterUtils
.
hexists
(
robotId
+
PCLOUD_GUIDE_SUFFIX
,
userWxId
)){
Integer
duration
=
pcloudRobotSilenceMapper
.
getSilenceDurationByRobotWxId
(
robotId
);
if
(
duration
==
null
)
{
duration
=
0
;
}
String
hget
=
JedisClusterUtils
.
hget
(
robotId
+
PCLOUD_GUIDE_SUFFIX
,
userWxId
);
PcloudGuideDelayDto
pcloudGuideDelayDto
=
JSONObject
.
parseObject
(
hget
,
PcloudGuideDelayDto
.
class
);
pcloudGuideDelayDto
.
setSendTime
(
new
Date
());
// duration
pcloudGuideDelayDto
.
setDuration
(
duration
);
JedisClusterUtils
.
hset
(
robotId
+
PCLOUD_GUIDE_SUFFIX
,
userWxId
,
JSONObject
.
toJSONString
(
pcloudGuideDelayDto
));
}
}
}
/**
* 机器人自动唤醒配置
*/
@Override
public
void
robotWakeUp
(
String
userWxId
,
String
ip
,
Integer
code
,
String
robotId
)
{
// 个人号 用户回复消息
String
userId
=
userWxId
;
if
(
SendMessageTypeEnum
.
SELF
.
getCode
().
equals
(
code
)
&&
!
userId
.
equals
(
robotId
))
{
PcloudRobot
byWxId
=
pcloudRobotDao
.
getByWxId
(
robotId
);
if
(
byWxId
!=
null
&&
byWxId
.
getWakeUp
()
==
1
)
{
// 向缓存中写入用户与小号最后一次聊天时间
WakeUpInfoDto
wakeUpInfoDto
=
new
WakeUpInfoDto
();
wakeUpInfoDto
.
setIp
(
ip
);
wakeUpInfoDto
.
setTime
(
new
Date
());
JedisClusterUtils
.
hset
(
robotId
+
PCLOUD_ROBOT_WAKE_UP_SUFFIX
,
userId
,
JSONObject
.
toJSONString
(
wakeUpInfoDto
));
}
}
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/mq/config/MQTopicConumer.java
View file @
71db3b3e
...
@@ -85,4 +85,9 @@ public class MQTopicConumer {
...
@@ -85,4 +85,9 @@ public class MQTopicConumer {
*/
*/
public
static
final
String
CONSUMER_SOME_USER_SCAN_BOOK_GROUP
=
PREFIX
+
MQTopicProducer
.
SOME_USER_SCAN_BOOK_GROUP
;
public
static
final
String
CONSUMER_SOME_USER_SCAN_BOOK_GROUP
=
PREFIX
+
MQTopicProducer
.
SOME_USER_SCAN_BOOK_GROUP
;
/**
* 发送非文本消息
*/
public
static
final
String
WXGROUP_SEND_NOT_TEXT
=
PREFIX
+
MQTopicProducer
.
WXGROUP_SEND_NOT_TEXT
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/mq/topic/WxGroupSendNotTextListener.java
0 → 100644
View file @
71db3b3e
package
com
.
pcloud
.
book
.
mq
.
topic
;
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.common.core.aspect.ParamLog
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.wechatgroup.message.dto.SendNotTextDTO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.amqp.rabbit.annotation.RabbitHandler
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
@Slf4j
@Component
(
"wxGroupSendNotTextListener"
)
@RabbitListener
(
queues
=
MQTopicConumer
.
WXGROUP_SEND_NOT_TEXT
)
public
class
WxGroupSendNotTextListener
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
WxGroupSendNotTextListener
.
class
);
@Autowired
private
BookKeywordBiz
bookKeywordBiz
;
@Autowired
private
PcloudRobotDao
pcloudRobotDao
;
@ParamLog
(
"接收用户发送非文本消息"
)
@RabbitHandler
public
void
onMessage
(
SendNotTextDTO
sendNotTextDTO
)
throws
BizException
{
try
{
String
userWxId
=
sendNotTextDTO
.
getWechatCreateUser
();
String
ip
=
sendNotTextDTO
.
getIp
();
Integer
code
=
sendNotTextDTO
.
getCode
();
String
robotId
=
sendNotTextDTO
.
getWxId
();
if
(
StringUtil
.
isEmpty
(
userWxId
)||
StringUtil
.
isEmpty
(
robotId
)||
StringUtil
.
isEmpty
(
ip
)){
return
;
}
// 缄默设置处理
bookKeywordBiz
.
silenceProcess
(
userWxId
,
code
,
robotId
);
// 机器人自动唤醒
bookKeywordBiz
.
robotWakeUp
(
userWxId
,
ip
,
code
,
robotId
);
//判断是否为平台端小号
PcloudRobot
pcloudRobot
=
pcloudRobotDao
.
getByWxId
(
sendNotTextDTO
.
getWxId
());
if
(
pcloudRobot
!=
null
){
//发送非关键词
Long
pcloudClassifyId
=
pcloudRobot
.
getKeywordClassifyId
();
bookKeywordBiz
.
sendPcloudNotKeyWord
(
userWxId
,
ip
,
code
,
robotId
,
pcloudClassifyId
);
}
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"接收用户发送非文本消息失败"
+
e
.
getMessage
(),
e
);
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/mq/topic/WxGroupSendTextListener.java
View file @
71db3b3e
...
@@ -58,10 +58,6 @@ public class WxGroupSendTextListener {
...
@@ -58,10 +58,6 @@ public class WxGroupSendTextListener {
private
BookGroupClassifyBiz
bookGroupClassifyBiz
;
private
BookGroupClassifyBiz
bookGroupClassifyBiz
;
@Autowired
@Autowired
private
ReadingActivityBiz
readingActivityBiz
;
private
ReadingActivityBiz
readingActivityBiz
;
@Autowired
private
PcloudRobotSilenceMapper
pcloudRobotSilenceMapper
;
@Autowired
private
PcloudRobotDao
pcloudRobotDao
;
/**
/**
* 接收微信用户进群消息
* 接收微信用户进群消息
...
@@ -76,9 +72,9 @@ public class WxGroupSendTextListener {
...
@@ -76,9 +72,9 @@ public class WxGroupSendTextListener {
// 更新群人数和群名称
// 更新群人数和群名称
changeGroupInfo
(
sendTextDTO
);
changeGroupInfo
(
sendTextDTO
);
// 缄默设置处理
// 缄默设置处理
silenceProcess
(
sendTextDTO
);
bookKeywordBiz
.
silenceProcess
(
sendTextDTO
.
getWechatUserId
(),
sendTextDTO
.
getCode
(),
sendTextDTO
.
getWxId
()
);
// 机器人自动唤醒
// 机器人自动唤醒
robotWakeUp
(
sendTextDTO
);
bookKeywordBiz
.
robotWakeUp
(
sendTextDTO
.
getWechatUserId
(),
sendTextDTO
.
getIp
(),
sendTextDTO
.
getCode
(),
sendTextDTO
.
getWxId
()
);
//校验是否机器人账号
//校验是否机器人账号
List
<
String
>
allRobotWxIds
=
wechatGroupConsr
.
listAllRobotWxId
();
List
<
String
>
allRobotWxIds
=
wechatGroupConsr
.
listAllRobotWxId
();
if
(!
ListUtils
.
isEmpty
(
allRobotWxIds
)
&&
!
allRobotWxIds
.
contains
(
wechatUserId
)
&&
!
StringUtil
.
isEmpty
(
sendTextDTO
.
getTextContent
()))
{
if
(!
ListUtils
.
isEmpty
(
allRobotWxIds
)
&&
!
allRobotWxIds
.
contains
(
wechatUserId
)
&&
!
StringUtil
.
isEmpty
(
sendTextDTO
.
getTextContent
()))
{
...
@@ -98,46 +94,6 @@ public class WxGroupSendTextListener {
...
@@ -98,46 +94,6 @@ public class WxGroupSendTextListener {
}
}
}
}
/**
* 机器人自动唤醒配置
*/
private
void
robotWakeUp
(
SendTextDTO
sendTextDTO
)
{
// 个人号 用户回复消息
String
robotId
=
sendTextDTO
.
getWxId
();
String
userId
=
sendTextDTO
.
getWechatUserId
();
if
(
SendMessageTypeEnum
.
SELF
.
getCode
().
equals
(
sendTextDTO
.
getCode
())
&&
!
userId
.
equals
(
robotId
))
{
PcloudRobot
byWxId
=
pcloudRobotDao
.
getByWxId
(
robotId
);
if
(
byWxId
!=
null
&&
byWxId
.
getWakeUp
()
==
1
)
{
// 向缓存中写入用户与小号最后一次聊天时间
WakeUpInfoDto
wakeUpInfoDto
=
new
WakeUpInfoDto
();
wakeUpInfoDto
.
setIp
(
sendTextDTO
.
getIp
());
wakeUpInfoDto
.
setTime
(
new
Date
());
JedisClusterUtils
.
hset
(
robotId
+
PCLOUD_ROBOT_WAKE_UP_SUFFIX
,
userId
,
JSONObject
.
toJSONString
(
wakeUpInfoDto
));
}
}
}
/**
* 机器人缄默设置处理
*/
private
void
silenceProcess
(
SendTextDTO
sendTextDTO
)
{
// 个人号消息 用户发送:wechatCreateUser!=wxId,小号发送wechatCreateUser=wxId
if
(
SendMessageTypeEnum
.
SELF
.
getCode
().
equals
(
sendTextDTO
.
getCode
())
&&
!
sendTextDTO
.
getWechatUserId
().
equals
(
sendTextDTO
.
getWxId
()))
{
// 从缓存中获取缄默信息
if
(
JedisClusterUtils
.
hexists
(
sendTextDTO
.
getWxId
()+
PCLOUD_GUIDE_SUFFIX
,
sendTextDTO
.
getWechatUserId
())){
Integer
duration
=
pcloudRobotSilenceMapper
.
getSilenceDurationByRobotWxId
(
sendTextDTO
.
getWxId
());
if
(
duration
==
null
)
{
duration
=
0
;
}
String
hget
=
JedisClusterUtils
.
hget
(
sendTextDTO
.
getWxId
()
+
PCLOUD_GUIDE_SUFFIX
,
sendTextDTO
.
getWechatUserId
());
PcloudGuideDelayDto
pcloudGuideDelayDto
=
JSONObject
.
parseObject
(
hget
,
PcloudGuideDelayDto
.
class
);
pcloudGuideDelayDto
.
setSendTime
(
new
Date
());
// duration
pcloudGuideDelayDto
.
setDuration
(
duration
);
JedisClusterUtils
.
hset
(
sendTextDTO
.
getWxId
()+
PCLOUD_GUIDE_SUFFIX
,
sendTextDTO
.
getWechatUserId
(),
JSONObject
.
toJSONString
(
pcloudGuideDelayDto
));
}
}
}
/**
/**
* 更新群人数和群名称
* 更新群人数和群名称
...
...
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