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
157ae9df
Commit
157ae9df
authored
Jul 24, 2020
by
吴博
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
读者扫码后发现内容为空,除给读者外,给指定的人发模板消息与邮件
parent
8edf95ad
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
178 additions
and
7 deletions
+178
-7
BookConstant.java
...main/java/com/pcloud/book/book/constant/BookConstant.java
+2
-0
QrcodeSceneConsr.java
...va/com/pcloud/book/consumer/channel/QrcodeSceneConsr.java
+15
-0
BookGroupBizImpl.java
...java/com/pcloud/book/group/biz/impl/BookGroupBizImpl.java
+1
-1
SomeUserScanBookGroupListener.java
...m/pcloud/book/mq/topic/SomeUserScanBookGroupListener.java
+139
-6
BookProps.java
.../main/java/com/pcloud/book/util/properties/BookProps.java
+21
-0
No files found.
pcloud-facade-book/src/main/java/com/pcloud/book/book/constant/BookConstant.java
View file @
157ae9df
...
...
@@ -363,4 +363,6 @@ public class BookConstant {
public
static
final
String
countryRegionCode
=
"100000"
;
public
static
final
Integer
countryAreaCode
=
0
;
public
static
final
String
NO_RESOURCE_REMIND
=
"no_resource_remind"
;
}
pcloud-service-book/src/main/java/com/pcloud/book/consumer/channel/QrcodeSceneConsr.java
View file @
157ae9df
...
...
@@ -23,6 +23,7 @@ import com.pcloud.common.dto.ResponseDto;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.channelcenter.wechat.entity.SpecialUser
;
import
org.apache.regexp.RE
;
import
org.slf4j.Logger
;
...
...
@@ -56,6 +57,8 @@ public class QrcodeSceneConsr {
@Autowired
private
AccountSettingService
accountSettingService
;
/**
* 删除书籍关联的二维码
*/
...
...
@@ -407,4 +410,16 @@ public class QrcodeSceneConsr {
}
return
qrcodeSceneDtos
;
}
public
List
<
SpecialUser
>
getAllSpcialUser
()
{
List
<
SpecialUser
>
specialUsers
=
null
;
try
{
specialUsers
=
ResponseHandleUtil
.
parseList
(
messageService
.
getAllSpecialUser
(),
SpecialUser
.
class
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"调用messageService.mapServeCount4Applet失败"
+
e
.
getMessage
(),
e
);
}
return
specialUsers
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/BookGroupBizImpl.java
View file @
157ae9df
...
...
@@ -1197,7 +1197,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
BookAppletScene
byBookGroupId
=
bookAppletSceneDao
.
getByBookGroupId
(
bookGroupDTO
.
getId
());
bookGroupDTO
.
setAppletUrl
(
byBookGroupId
==
null
?
""
:
byBookGroupId
.
getAppletUrl
());
bookGroupDTO
.
setUrl
(
bookGroupQrcodeDomain
+
"/"
+
bookGroupDTO
.
getId
());
bookGroupDTO
.
setAppletId
(
byBookGroupId
.
getAppletId
());
bookGroupDTO
.
setAppletId
(
byBookGroupId
==
null
?
""
:
byBookGroupId
.
getAppletId
());
}
return
bookGroupDTO
;
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/mq/topic/SomeUserScanBookGroupListener.java
View file @
157ae9df
package
com
.
pcloud
.
book
.
mq
.
topic
;
import
com.alibaba.druid.util.StringUtils
;
import
com.google.common.collect.Lists
;
import
com.pcloud.book.book.biz.BookBiz
;
import
com.pcloud.book.book.constant.BookConstant
;
import
com.pcloud.book.book.dto.BookDto
;
import
com.pcloud.book.consumer.channel.QrcodeSceneConsr
;
import
com.pcloud.book.consumer.message.TemplateConsr
;
import
com.pcloud.book.consumer.user.AdviserConsr
;
import
com.pcloud.book.consumer.user.AgentConsr
;
import
com.pcloud.book.group.dao.BookGroupDao
;
import
com.pcloud.book.group.dao.BookGroupServeDao
;
import
com.pcloud.book.group.dto.BookGroupDTO
;
...
...
@@ -8,11 +16,26 @@ import com.pcloud.book.group.enums.JoinGroupTypeEnum;
import
com.pcloud.book.keywords.dao.BookKeywordDao
;
import
com.pcloud.book.keywords.dao.SelfRobotKeywordDao
;
import
com.pcloud.book.mq.config.MQTopicConumer
;
import
com.pcloud.book.util.properties.BookProps
;
import
com.pcloud.channelcenter.base.constants.ChannelConstants
;
import
com.pcloud.channelcenter.wechat.dto.AccountSettingDto
;
import
com.pcloud.channelcenter.wechat.dto.JsonDataAndTempletId
;
import
com.pcloud.channelcenter.wechat.entity.SpecialUser
;
import
com.pcloud.channelcenter.wechat.enums.UserSendTypeEnum
;
import
com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.biz.MessageBiz
;
import
com.pcloud.common.core.biz.TemplateQueueBiz
;
import
com.pcloud.common.core.constant.SceneCode
;
import
com.pcloud.common.core.constant.SendType
;
import
com.pcloud.common.core.constant.SystemCode
;
import
com.pcloud.common.core.constant.WechatCode
;
import
com.pcloud.common.core.dto.SendEmailDto
;
import
com.pcloud.common.core.dto.TemplateMessageDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.string.StringUtil
;
import
org.apache.commons.collections.MapUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.amqp.rabbit.annotation.RabbitHandler
;
...
...
@@ -21,7 +44,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Component
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
/**
* @Description社群码扫码人数达到一定数量
...
...
@@ -43,6 +69,20 @@ public class SomeUserScanBookGroupListener {
private
TemplateConsr
templateConsr
;
@Autowired
private
SelfRobotKeywordDao
selfRobotKeywordDao
;
@Autowired
private
QrcodeSceneConsr
qrcodeSceneConsr
;
@Autowired
private
BookProps
bookProps
;
@Autowired
private
TemplateQueueBiz
templateQueueBiz
;
@Autowired
private
MessageBiz
messageBiz
;
@Autowired
private
AdviserConsr
adviserConsr
;
@Autowired
private
AgentConsr
agentConsr
;
@Autowired
private
BookBiz
bookBiz
;
@ParamLog
(
"接收社群码扫码人数达到一定数量topic"
)
@RabbitHandler
...
...
@@ -81,18 +121,111 @@ public class SomeUserScanBookGroupListener {
if
(
isSend
)
{
//发送模板消息
sendTemplate
(
dto
);
//配置资源为空则推送模板消息和发送邮件
sendTemplataAndEmail
(
dto
);
}
}
private
void
sendTemplataAndEmail
(
BookGroupDTO
dto
)
{
LOGGER
.
info
(
"配置资源为空则推送模板消息和发送邮件:{}"
,
dto
);
Map
<
String
,
String
>
temParam
=
getStringStringMap
(
dto
);
//获取待发送的openId
List
<
SpecialUser
>
specialUsers
=
qrcodeSceneConsr
.
getAllSpcialUser
();
if
(
ListUtils
.
isEmpty
(
specialUsers
))
{
return
;
}
List
<
String
>
openIds
=
specialUsers
.
stream
().
filter
(
e
->
Objects
.
equals
(
UserSendTypeEnum
.
OPENID
.
value
,
e
.
getSendType
())).
map
(
m
->
m
.
getOpenid
()).
collect
(
Collectors
.
toList
());
List
<
String
>
emails
=
specialUsers
.
stream
().
filter
(
e
->
Objects
.
equals
(
UserSendTypeEnum
.
EMAIL
.
value
,
e
.
getSendType
())).
map
(
m
->
m
.
getEmail
()).
collect
(
Collectors
.
toList
());
if
(!
ListUtils
.
isEmpty
(
openIds
))
{
openIds
.
stream
().
forEach
(
openid
->
{
sendTemplate4Openid
(
dto
,
openid
);
});
}
if
(!
ListUtils
.
isEmpty
(
emails
))
{
sendEmail
(
emails
,
dto
);
}
}
private
void
sendEmail
(
List
<
String
>
emails
,
BookGroupDTO
bookGroupDTO
)
{
SendEmailDto
sendEmailDto
=
new
SendEmailDto
();
if
(
emails
.
size
()
>
1
)
{
sendEmailDto
.
setToEmail
(
emails
.
get
(
0
));
emails
=
emails
.
subList
(
1
,
emails
.
size
());
String
ccEmail
=
String
.
join
(
","
,
emails
);
sendEmailDto
.
setCcEmail
(
ccEmail
);
}
else
{
sendEmailDto
.
setToEmail
(
emails
.
get
(
0
));
}
sendEmailDto
.
setTypeCode
(
BookConstant
.
NO_RESOURCE_REMIND
);
Map
<
String
,
Object
>
content
=
new
HashMap
<>();
content
.
put
(
"sceneName"
,
bookGroupDTO
.
getGroupQrcodeName
());
if
(
null
!=
bookGroupDTO
.
getCreateUser
())
{
String
adviserName
=
adviserConsr
.
getNameById
(
bookGroupDTO
.
getCreateUser
());
content
.
put
(
"adviserName"
,
adviserName
);
}
if
(
null
!=
bookGroupDTO
.
getAgentId
())
{
Map
<
Long
,
String
>
agentMap
=
agentConsr
.
getNames
(
Lists
.
newArrayList
(
bookGroupDTO
.
getAgentId
()));
if
(
MapUtils
.
isNotEmpty
(
agentMap
)
&&
agentMap
.
containsKey
(
bookGroupDTO
.
getAgentId
()))
{
content
.
put
(
"agentName"
,
agentMap
.
get
(
bookGroupDTO
.
getAgentId
()));
}
}
if
(
null
!=
bookGroupDTO
.
getBookId
())
{
BookDto
bookDto
=
bookBiz
.
getBaseById
(
bookGroupDTO
.
getBookId
());
if
(
null
!=
bookDto
)
{
content
.
put
(
"bookName"
,
bookDto
.
getBookName
());
}
}
sendEmailDto
.
setContent
(
content
);
LOGGER
.
info
(
"发送邮件sendEmailDto:{}"
,
sendEmailDto
);
messageBiz
.
sendEmail
(
sendEmailDto
);
}
private
void
sendTemplate4Openid
(
BookGroupDTO
dto
,
String
openid
)
{
try
{
Map
<
String
,
String
>
temParam
=
getStringStringMap
(
dto
);
// 组装参数对象
TemplateMessageDto
templateMessageDto
=
new
TemplateMessageDto
();
templateMessageDto
.
setSceneCode
(
SceneCode
.
PROJECT_TASK_SCENE
.
value
);
templateMessageDto
.
setAccountSettingId
(
bookProps
.
getManageOfficialId
());
templateMessageDto
.
setSendPartyId
(
bookProps
.
getOurManagerAccountId
());
templateMessageDto
.
setSendPartyRole
(
WechatCode
.
AGENT
.
value
);
templateMessageDto
.
setTemParam
(
temParam
);
templateMessageDto
.
setSendType
(
SendType
.
SEND_BY_OPENID
.
value
);
templateMessageDto
.
setOpenId
(
openid
);
templateMessageDto
.
setIsApp
(
false
);
try
{
templateQueueBiz
.
sendMessageQueue
(
templateMessageDto
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"【模板消息(消)】发送模板消息topic(管理公众号),<ERROR>.[sendMessageQueue]:"
+
e
.
getMessage
(),
e
);
}
LOGGER
.
info
(
"资源未配置发送模板消息temParam="
+
temParam
.
toString
()+
"dto="
+
dto
.
toString
());
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"编辑管理--删除副编辑,发送模板消息失败<ERROR>"
+
e
.
getMessage
());
}
}
private
Map
<
String
,
String
>
getStringStringMap
(
BookGroupDTO
bookGroupDTO
)
{
Map
<
String
,
String
>
temParam
=
new
HashMap
<>();
String
word
=
"已有读者扫码!您的二维码“"
+
bookGroupDTO
.
getGroupQrcodeName
()
+
"”还未配置任何资源服务。请及时完善该二维码资源服务。"
;
temParam
.
put
(
"first"
,
word
);
temParam
.
put
(
"keyword1"
,
"【提醒】您的二维码还未配置资源服务"
);
temParam
.
put
(
"keyword2"
,
"请前往编辑端为二维码配置相关资源或服务"
);
temParam
.
put
(
"remark"
,
"请及时处理"
);
return
temParam
;
}
@ParamLog
(
"发送模板消息"
)
private
void
sendTemplate
(
BookGroupDTO
dto
)
{
try
{
Map
<
String
,
String
>
temParam
=
new
HashMap
<>();
String
word
=
"已有读者扫码!您的二维码“"
+
dto
.
getGroupQrcodeName
()
+
"”还未配置任何资源服务。请及时完善该二维码资源服务。"
;
temParam
.
put
(
"first"
,
word
);
temParam
.
put
(
"keyword1"
,
"【提醒】您的二维码还未配置资源服务"
);
temParam
.
put
(
"keyword2"
,
"请前往编辑端为二维码配置相关资源或服务"
);
temParam
.
put
(
"remark"
,
"请及时处理"
);
Map
<
String
,
String
>
temParam
=
getStringStringMap
(
dto
);
templateConsr
.
sendManage
(
SceneCode
.
PROJECT_TASK_SCENE
.
value
,
dto
.
getAgentId
(),
dto
.
getCreateUser
(),
SystemCode
.
adviser
.
code
,
""
,
temParam
,
SendType
.
SEND_BY_PARTY_ID
.
value
,
false
);
LOGGER
.
info
(
"资源未配置发送模板消息temParam="
+
temParam
.
toString
()+
"dto="
+
dto
.
toString
());
...
...
pcloud-service-book/src/main/java/com/pcloud/book/util/properties/BookProps.java
View file @
157ae9df
...
...
@@ -92,4 +92,25 @@ public class BookProps {
public
void
setWechatDomain
(
String
wechatDomain
)
{
BookProps
.
wechatDomain
=
wechatDomain
;
}
@Value
(
"${manage_official_id}"
)
private
Long
manageOfficialId
;
public
Long
getManageOfficialId
()
{
return
manageOfficialId
;
}
public
void
setManageOfficialId
(
Long
manageOfficialId
)
{
this
.
manageOfficialId
=
manageOfficialId
;
}
@Value
(
"${our_manager_account_id}"
)
private
Long
ourManagerAccountId
;
public
Long
getOurManagerAccountId
()
{
return
ourManagerAccountId
;
}
public
void
setOurManagerAccountId
(
Long
ourManagerAccountId
)
{
this
.
ourManagerAccountId
=
ourManagerAccountId
;
}
}
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