Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
O
operate-customer-service
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
沈振路
operate-customer-service
Commits
16d2669c
提交
16d2669c
authored
10月 24, 2022
作者:
gh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
排期时间修复:订单活跃和延时客服下次排期优化
上级
7d88ec1e
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
55 行增加
和
8 行删除
+55
-8
RegisterUserEntity.java
...java/com/yaoyaozw/customer/entity/RegisterUserEntity.java
+1
-1
RegisterUserEntityMapper.java
...om/yaoyaozw/customer/mapper/RegisterUserEntityMapper.java
+9
-0
AccountOrderServiceImpl.java
...oyaozw/customer/service/impl/AccountOrderServiceImpl.java
+22
-4
WeChatServiceImpl.java
...zw/customer/service/wechat/service/WeChatServiceImpl.java
+3
-3
RegisterUserEntityMapper.xml
src/main/resources/mapper/RegisterUserEntityMapper.xml
+20
-0
没有找到文件。
src/main/java/com/yaoyaozw/customer/entity/RegisterUserEntity.java
浏览文件 @
16d2669c
...
...
@@ -94,7 +94,7 @@ public class RegisterUserEntity implements Serializable {
private
Date
customerPublish
;
/**
*
延时客服发送时间
*
人群包
*/
@TableField
(
value
=
"in_package"
)
private
String
inPackage
;
...
...
src/main/java/com/yaoyaozw/customer/mapper/RegisterUserEntityMapper.java
浏览文件 @
16d2669c
...
...
@@ -7,6 +7,7 @@ import com.yaoyaozw.customer.vo.customer.CrowdPackageUserVO;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.Date
;
import
java.util.List
;
@Mapper
...
...
@@ -58,5 +59,12 @@ public interface RegisterUserEntityMapper extends BaseMapper<RegisterUserEntity>
*/
List
<
AuthorizerInfo
>
existAppid
();
/**
* 根据appid找register用户
* @param appid
* @return
*/
List
<
RegisterUserEntity
>
findAllUserWithoutSetupId
(
String
appid
);
List
<
RegisterUserEntity
>
findAllExpiredDelayPublish
(
@Param
(
"requestDate"
)
Date
requestDate
);
}
\ No newline at end of file
src/main/java/com/yaoyaozw/customer/service/impl/AccountOrderServiceImpl.java
浏览文件 @
16d2669c
...
...
@@ -44,7 +44,7 @@ public class AccountOrderServiceImpl extends ServiceImpl<AccountOrderMapper, Acc
if
(!
userList
.
isEmpty
()){
Set
<
String
>
appIdSet
=
userList
.
stream
().
map
(
RegisterUserEntity:
:
getAppId
).
collect
(
Collectors
.
toSet
());
List
<
CustomerDelayItemVO
>
allDelayCustomerMessage
=
customerGraphicsDelayService
.
findAllDelayCustomerSort
(
appIdSet
,
1
);
List
<
CustomerDelayItemVO
>
allDelayCustomerMessage
=
customerGraphicsDelayService
.
findAllDelayCustomerSort
(
appIdSet
,
3
);
Map
<
String
,
Map
<
Integer
,
Long
>>
delayMessageMap
=
allDelayCustomerMessage
.
stream
().
collect
(
Collectors
.
groupingBy
(
CustomerDelayItemVO:
:
getAppId
,
Collectors
.
toMap
(
CustomerDelayItemVO:
:
getPostSort
,
CustomerDelayItemVO:
:
getTimeInterval
,
(
v1
,
v2
)
->
v2
)));
...
...
@@ -68,7 +68,7 @@ public class AccountOrderServiceImpl extends ServiceImpl<AccountOrderMapper, Acc
//如果没有活跃时间,记录为首次活跃
registerUser
.
setFirstActive
(
lastFinishTime
);
//排期重置
delayCustomerManage
(
registerUser
,
lastFinishTime
,
delayMessageMap
);
delayCustomerManage
(
registerUser
,
lastFinishTime
,
integrationRequestDTO
.
getRequestDate
(),
delayMessageMap
);
}
//活跃时间重置
registerUser
.
setLastActive
(
lastFinishTime
);
...
...
@@ -110,20 +110,38 @@ public class AccountOrderServiceImpl extends ServiceImpl<AccountOrderMapper, Acc
* 延时客服排期
* @param registerUserPublish
*/
public
void
delayCustomerManage
(
RegisterUserEntity
registerUserPublish
,
Date
activeTime
,
Map
<
String
,
Map
<
Integer
,
Long
>>
delayMessageMap
){
public
void
delayCustomerManage
(
RegisterUserEntity
registerUserPublish
,
Date
activeTime
,
Date
currentDate
,
Map
<
String
,
Map
<
Integer
,
Long
>>
delayMessageMap
){
Map
<
Integer
,
Long
>
integerLongMap
=
delayMessageMap
.
get
(
registerUserPublish
.
getAppId
());
if
(
integerLongMap
!=
null
&&!
integerLongMap
.
isEmpty
()){
//找初始排期间隔时间
Long
firstDelayMessage
=
integerLongMap
.
get
(
1
);
Long
secondDelayMessage
=
integerLongMap
.
get
(
2
);
Long
thirdDelayMessage
=
integerLongMap
.
get
(
3
);
//如果活跃时间和当前的间隔大于首次排期间隔,则说明排1就扫不到了;
if
(
firstDelayMessage
!=
null
&&
currentDate
.
getTime
()-
activeTime
.
getTime
()<
firstDelayMessage
){
//时间戳精确到分
Date
publishTime
=
new
Date
((
activeTime
.
getTime
()/(
60
*
1000
))*
60
*
1000
+
firstDelayMessage
);
registerUserPublish
.
setCustomerSort
(
1
);
registerUserPublish
.
setCustomerPublish
(
publishTime
);
}
else
if
(
secondDelayMessage
!=
null
&&
currentDate
.
getTime
()-
activeTime
.
getTime
()<
secondDelayMessage
){
Date
publishTime
=
new
Date
((
activeTime
.
getTime
()/(
60
*
1000
))*
60
*
1000
+
secondDelayMessage
);
registerUserPublish
.
setCustomerSort
(
2
);
registerUserPublish
.
setCustomerPublish
(
publishTime
);
}
else
if
(
thirdDelayMessage
!=
null
){
Date
publishTime
=
new
Date
((
activeTime
.
getTime
()/(
60
*
1000
))*
60
*
1000
+
thirdDelayMessage
);
registerUserPublish
.
setCustomerSort
(
3
);
registerUserPublish
.
setCustomerPublish
(
publishTime
);
}
else
{
registerUserPublish
.
setCustomerSort
(-
1
);
}
}
}
...
...
src/main/java/com/yaoyaozw/customer/service/wechat/service/WeChatServiceImpl.java
浏览文件 @
16d2669c
...
...
@@ -98,16 +98,16 @@ public class WeChatServiceImpl implements WeChatService{
}
}
//用户首次活跃时间
Long
subscribeTimestamp
=
user
.
getFirstActive
().
getTime
();
Long
subscribeTimestamp
=
user
.
getFirstActive
()
!=
null
?
user
.
getFirstActive
().
getTime
():
user
.
getGmtCreate
()
.
getTime
();
Set
<
Integer
>
sortSet
=
delaySortMap
.
keySet
();
//找
最小
//找
大于当前序列的最小序列
Integer
newSort
=
sortSet
.
stream
().
filter
(
a
->
a
>
user
.
getCustomerSort
()).
min
(
Comparator
.
naturalOrder
()).
orElse
(-
1
);
user
.
setCustomerSort
(
newSort
);
CustomerDelayItemVO
customerDelayItemVO
=
delaySortMap
.
get
(
newSort
)!=
null
?
delaySortMap
.
get
(
newSort
).
get
(
0
):
null
;
//下次排期
if
(
customerDelayItemVO
!=
null
&&
customerDelayItemVO
.
getTimeInterval
()!=
null
){
//时间戳舍秒和毫秒
user
.
setCustomerPublish
(
new
Date
((
subscribeTimestamp
/(
60
*
1000
))*
60
*
1000
+
customerDelayItemVO
.
getTimeInterval
()));
...
...
src/main/resources/mapper/RegisterUserEntityMapper.xml
浏览文件 @
16d2669c
...
...
@@ -121,4 +121,23 @@
</select>
<resultMap
id=
"updateCustomerSortMap"
type=
"com.yaoyaozw.customer.entity.RegisterUserEntity"
>
<!--@mbg.generated-->
<!--@Table register_user_entity-->
<id
column=
"id"
jdbcType=
"BIGINT"
property=
"id"
/>
<result
column=
"app_id"
jdbcType=
"VARCHAR"
property=
"appId"
/>
<result
column=
"customer_sort"
jdbcType=
"INTEGER"
property=
"customerSort"
/>
<result
column=
"customer_publish"
jdbcType=
"TIMESTAMP"
property=
"customerPublish"
/>
<result
column=
"first_active"
jdbcType=
"TIMESTAMP"
property=
"firstActive"
/>
</resultMap>
<select
id=
"findAllExpiredDelayPublish"
resultMap=
"updateCustomerSortMap"
>
select id,app_id,customer_sort,customer_publish ,first_active from register_user_entity
where customer_sort > 0 AND first_active is not null and customer_publish
<
#{requestDate}
</select>
</mapper>
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论