Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
O
operate-customer-service
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
沈振路
operate-customer-service
Commits
d7b53cb7
提交
d7b53cb7
authored
9月 25, 2024
作者:
沈振路
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
发送客服消息每一条使用try catch捕获异常
上级
0d88aedd
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
55 行增加
和
51 行删除
+55
-51
CustomerGraphicsServiceImpl.java
...zw/customer/service/impl/CustomerGraphicsServiceImpl.java
+55
-51
没有找到文件。
src/main/java/com/yaoyaozw/customer/service/impl/CustomerGraphicsServiceImpl.java
浏览文件 @
d7b53cb7
...
@@ -232,58 +232,62 @@ public class CustomerGraphicsServiceImpl extends ServiceImpl<CustomerGraphicsMap
...
@@ -232,58 +232,62 @@ public class CustomerGraphicsServiceImpl extends ServiceImpl<CustomerGraphicsMap
for
(
CustomerGraphics
customerGraphics
:
customerGraphicsList
)
{
for
(
CustomerGraphics
customerGraphics
:
customerGraphicsList
)
{
LOCAL_LOG
.
info
(
"{} start sendCustomerMessage:{}"
,
customerGraphics
.
getId
(),
System
.
currentTimeMillis
());
try
{
//人群包id
LOCAL_LOG
.
info
(
"{} start sendCustomerMessage:{}"
,
customerGraphics
.
getId
(),
System
.
currentTimeMillis
());
Long
packId
=
customerGraphics
.
getPackId
();
//人群包id
Long
packId
=
customerGraphics
.
getPackId
();
CrowdPackage
crowdPackage
=
crowdPackageMap
.
get
(
packId
);
if
(
crowdPackage
==
null
)
{
CrowdPackage
crowdPackage
=
crowdPackageMap
.
get
(
packId
);
LOCAL_LOG
.
warn
(
"crowd package id {} not exist"
,
packId
);
if
(
crowdPackage
==
null
)
{
continue
;
LOCAL_LOG
.
warn
(
"crowd package id {} not exist"
,
packId
);
continue
;
}
//活跃时间限制窗口
Long
activeTimeMax
=
crowdPackage
.
getActiveTimeMax
();
Long
activeTimeMin
=
crowdPackage
.
getActiveTimeMin
();
Integer
followTimeMin
=
crowdPackage
.
getFollowTimeMin
();
Integer
followTimeMax
=
crowdPackage
.
getFollowTimeMax
();
//根据人群包找人,并按appId分组
List
<
CrowdPackageUserVO
>
userList
=
registerUserEntityService
.
getCurrentInPackUserList
(
packId
,
false
);
//1.活跃时间判断,2.用户去重
Map
<
String
,
List
<
CrowdPackageUserVO
>>
appidUserMap
=
userList
.
stream
()
.
filter
(
a
->
a
.
getLastActive
()
!=
null
&&
(
activeTimeMin
==
null
||
((
currentTimestamp
-
a
.
getLastActive
().
getTime
())
>=
activeTimeMin
))
&&
(
activeTimeMax
==
null
||
((
currentTimestamp
-
a
.
getLastActive
().
getTime
())
<
activeTimeMax
))
&&
(
followTimeMin
==
null
||
(
a
.
getDateDiff
()
>=
followTimeMin
))&&
(
followTimeMax
==
null
||
(
a
.
getDateDiff
()
<=
followTimeMax
)))
.
collect
(
Collectors
.
groupingBy
(
CrowdPackageUserVO:
:
getAppId
,
Collectors
.
collectingAndThen
(
toCollection
(()
->
new
TreeSet
<>(
Comparator
.
comparing
(
CrowdPackageUserVO:
:
getOpenId
))),
ArrayList:
:
new
)));
//根据客服id找不同公众号的链接,并按appId分组
List
<
ReferralEntityVo
>
referralList
=
referralEntityService
.
findReferralByCustomerGraphicsId
(
customerGraphics
.
getId
());
Map
<
String
,
List
<
ReferralEntityVo
>>
referralMap
=
referralList
.
stream
().
filter
(
a
->
StringUtils
.
isNotBlank
(
a
.
getReferral
())).
collect
(
Collectors
.
groupingBy
(
ReferralEntityVo:
:
getAppid
));
//循环该人群包下的所有素材
int
singleUserCount
=
0
;
for
(
Map
.
Entry
<
String
,
List
<
CrowdPackageUserVO
>>
usersEntry
:
appidUserMap
.
entrySet
())
{
String
appid
=
usersEntry
.
getKey
();
try
{
//获取该号的链接实体
List
<
ReferralEntityVo
>
referralEntityVo
=
referralMap
.
get
(
appid
);
//获取该号的openid
List
<
CrowdPackageUserVO
>
packageUserVo
=
usersEntry
.
getValue
();
singleUserCount
+=
packageUserVo
.
size
();
weChatService
.
sendCustomerMessage
(
appid
,
customerGraphics
,
packageUserVo
,
referralEntityVo
);
}
catch
(
Exception
e
){
LOCAL_LOG
.
error
(
"{} send CustomerMessage failed for {}"
,
appid
,
e
.
getStackTrace
()[
0
]);
}
}
LOCAL_LOG
.
info
(
"id {} has user list size {}"
,
customerGraphics
.
getId
(),
singleUserCount
);
//客服状态修改
customerGraphics
.
setSendStatus
(
CustomerCommonConstant
.
SEND_STATUS_FINISHED
);
LOCAL_LOG
.
info
(
"{} finished:{}"
,
customerGraphics
.
getId
(),
System
.
currentTimeMillis
());
}
catch
(
Exception
e
)
{
LOCAL_LOG
.
error
(
"send CustomerMessage failed for {}"
,
customerGraphics
.
getId
(),
e
);
}
}
//活跃时间限制窗口
Long
activeTimeMax
=
crowdPackage
.
getActiveTimeMax
();
Long
activeTimeMin
=
crowdPackage
.
getActiveTimeMin
();
Integer
followTimeMin
=
crowdPackage
.
getFollowTimeMin
();
Integer
followTimeMax
=
crowdPackage
.
getFollowTimeMax
();
//根据人群包找人,并按appId分组
List
<
CrowdPackageUserVO
>
userList
=
registerUserEntityService
.
getCurrentInPackUserList
(
packId
,
false
);
//1.活跃时间判断,2.用户去重
Map
<
String
,
List
<
CrowdPackageUserVO
>>
appidUserMap
=
userList
.
stream
()
.
filter
(
a
->
a
.
getLastActive
()
!=
null
&&
(
activeTimeMin
==
null
||
((
currentTimestamp
-
a
.
getLastActive
().
getTime
())
>=
activeTimeMin
))
&&
(
activeTimeMax
==
null
||
((
currentTimestamp
-
a
.
getLastActive
().
getTime
())
<
activeTimeMax
))
&&
(
followTimeMin
==
null
||
(
a
.
getDateDiff
()
>=
followTimeMin
))&&
(
followTimeMax
==
null
||
(
a
.
getDateDiff
()
<=
followTimeMax
)))
.
collect
(
Collectors
.
groupingBy
(
CrowdPackageUserVO:
:
getAppId
,
Collectors
.
collectingAndThen
(
toCollection
(()
->
new
TreeSet
<>(
Comparator
.
comparing
(
CrowdPackageUserVO:
:
getOpenId
))),
ArrayList:
:
new
)));
//根据客服id找不同公众号的链接,并按appId分组
List
<
ReferralEntityVo
>
referralList
=
referralEntityService
.
findReferralByCustomerGraphicsId
(
customerGraphics
.
getId
());
Map
<
String
,
List
<
ReferralEntityVo
>>
referralMap
=
referralList
.
stream
().
filter
(
a
->
StringUtils
.
isNotBlank
(
a
.
getReferral
())).
collect
(
Collectors
.
groupingBy
(
ReferralEntityVo:
:
getAppid
));
//循环该人群包下的所有素材
int
singleUserCount
=
0
;
for
(
Map
.
Entry
<
String
,
List
<
CrowdPackageUserVO
>>
usersEntry
:
appidUserMap
.
entrySet
())
{
String
appid
=
usersEntry
.
getKey
();
try
{
//获取该号的链接实体
List
<
ReferralEntityVo
>
referralEntityVo
=
referralMap
.
get
(
appid
);
//获取该号的openid
List
<
CrowdPackageUserVO
>
packageUserVo
=
usersEntry
.
getValue
();
singleUserCount
+=
packageUserVo
.
size
();
weChatService
.
sendCustomerMessage
(
appid
,
customerGraphics
,
packageUserVo
,
referralEntityVo
);
}
catch
(
Exception
e
){
LOCAL_LOG
.
error
(
"{} send CustomerMessage failed for {}"
,
appid
,
e
.
getStackTrace
()[
0
]);
}
}
LOCAL_LOG
.
info
(
"id {} has user list size {}"
,
customerGraphics
.
getId
(),
singleUserCount
);
//客服状态修改
customerGraphics
.
setSendStatus
(
CustomerCommonConstant
.
SEND_STATUS_FINISHED
);
LOCAL_LOG
.
info
(
"{} finished:{}"
,
customerGraphics
.
getId
(),
System
.
currentTimeMillis
());
}
}
updateBatchById
(
customerGraphicsList
);
updateBatchById
(
customerGraphicsList
);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论