Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
push-message
Project
Project
Details
Activity
Releases
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
liucheng
push-message
Commits
83787df1
Commit
83787df1
authored
Jan 26, 2022
by
zuoadmin
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into 'master'
1,判断更新处理数据不为空 See merge request
!11
parents
2606f9a2
3d5df9aa
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
57 additions
and
35 deletions
+57
-35
MenuService.java
src/main/java/com/weface/component/MenuService.java
+0
-3
UserTagsTask.java
src/main/java/com/weface/task/UserTagsTask.java
+57
-32
No files found.
src/main/java/com/weface/component/MenuService.java
View file @
83787df1
...
...
@@ -88,7 +88,6 @@ public class MenuService {
String
kk_sh_token
=
"kk_sh_token"
;
try
{
String
authToken
=
GeTuiUtils
.
getAuthToken
(
kk_sh_token
);
System
.
out
.
println
(
"==============="
+
authToken
);
//将token以及用户ID封装调用画像查询接口
String
result
=
GeTuiUtils
.
queryTagKKSH
(
gidList
,
authToken
);
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
result
);
...
...
@@ -104,7 +103,6 @@ public class MenuService {
all
.
put
(
"error_code"
,
0
);
}
return
all
;
//如果以上步骤无法走通则直接返回。并修改标识符终止循环
}
else
{
log
.
error
(
"返回值内不包含需要解析的数据"
+
jsonObject
.
toJSONString
());
}
...
...
@@ -134,7 +132,6 @@ public class MenuService {
if
(
jsonObject
.
containsKey
(
"userTag"
))
{
JSONArray
userTag
=
jsonObject
.
getJSONArray
(
"userTag"
);
return
getUserTagByTag
(
userTag
,
2
,
tags
);
//如果以上步骤无法走通则直接返回。并修改标识符终止循环
}
else
{
log
.
error
(
"返回值内不包含需要解析的数据"
+
jsonObject
.
toJSONString
());
}
...
...
src/main/java/com/weface/task/UserTagsTask.java
View file @
83787df1
...
...
@@ -55,7 +55,7 @@ public class UserTagsTask {
/**
* 更新用户标签
*/
@Scheduled
(
cron
=
"0
20 11
* * ?"
)
@Scheduled
(
cron
=
"0
0 23
* * ?"
)
public
void
updateUserTags
()
{
try
{
//获取每次处理的id起始值
...
...
@@ -65,11 +65,18 @@ public class UserTagsTask {
}
int
id
=
Integer
.
parseInt
(
userId
);
//获取每次处理最大数
//获取
缓存内
每次处理最大数
String
pushSize
=
RedisUtil
.
StringOps
.
get
(
"push_max_size"
);
//如果缓存没有则取配置文件中的
if
(
StringUtils
.
isBlank
(
pushSize
))
{
RedisUtil
.
StringOps
.
set
(
"push_max_size"
,
pushMaxSize
);
pushSize
=
pushMaxSize
;
}
else
{
//如果缓存和配置文件不一致则使用配置文件数值替换缓存
if
(!
pushMaxSize
.
equals
(
pushSize
))
{
RedisUtil
.
StringOps
.
set
(
"push_max_size"
,
pushMaxSize
);
pushSize
=
pushMaxSize
;
}
}
int
max
=
Integer
.
parseInt
(
pushSize
);
...
...
@@ -77,51 +84,69 @@ public class UserTagsTask {
List
<
UserMenusEntity
>
userMenusList
=
new
ArrayList
<>();
//获取标签列表
List
<
MenuTagsEntity
>
tags
=
menuTagsService
.
list
();
//获取小于起始值,且更新时间为当前时间用户信息
List
<
UserTagEntity
>
beforeUser
=
userTagService
.
findUserByTodayAndIdBefore
(
id
);
//如果每次更新数据为空则全部设置为新增
if
(
CollUtil
.
isEmpty
(
beforeUser
))
{
List
<
UserMenusEntity
>
afterTag
=
getAfterTag
(
id
,
max
,
tags
);
if
(
afterTag
!=
null
)
{
userMenusList
.
addAll
(
afterTag
);
}
}
else
{
//过滤用户gid
List
<
String
>
beforeGid
=
beforeUser
.
stream
().
map
(
UserTagEntity:
:
getGid
).
distinct
().
collect
(
Collectors
.
toList
());
//获取更新总数量
int
size
=
beforeGid
.
size
();
//如果更新数量大于总量,截取每次处理总量的更新用户信息
if
(
size
>
max
)
{
beforeGid
=
beforeGid
.
subList
(
0
,
max
-
1
);
}
else
{
//最大处理数减去当天更新处理数,得到剩余处理数,获取起始值后的新增的用户信息
List
<
UserTagEntity
>
afterUser
=
userTagService
.
findUserByIdAfter
(
Integer
.
parseInt
(
userId
),
max
-
size
);
//如果当天新增数不为空
if
(
CollUtil
.
isNotEmpty
(
afterUser
))
{
//获取用户最后一条信息
UserTagEntity
afterUserInfo
=
afterUser
.
get
(
afterUser
.
size
()
-
1
);
//并覆盖起始值
RedisUtil
.
StringOps
.
set
(
"user_tag_id"
,
String
.
valueOf
(
afterUserInfo
.
getId
()));
//过滤用户gid
List
<
String
>
afterGid
=
afterUser
.
stream
().
map
(
UserTagEntity:
:
getGid
).
distinct
().
collect
(
Collectors
.
toList
());
//调用个像接口获取新增用户标签
List
<
UserMenusEntity
>
afterTag
=
getUserTag
(
afterGid
,
afterUser
,
tags
);
if
(
CollUtil
.
isNotEmpty
(
afterTag
))
{
List
<
UserMenusEntity
>
afterTag
=
getAfterTag
(
id
,
max
-
size
,
tags
);
if
(
afterTag
!=
null
)
{
userMenusList
.
addAll
(
afterTag
);
}
}
}
//调用个像接口获取更新用户标签
List
<
UserMenusEntity
>
beforeTag
=
getUserTag
(
beforeGid
,
beforeUser
,
tags
);
if
(
CollUtil
.
isNotEmpty
(
beforeTag
))
{
userMenusList
.
addAll
(
beforeTag
);
}
}
//批量插入用户标签信息
userMenusService
.
batchInsert
(
userMenusList
);
log
.
error
(
"执行结束{}"
,
asyncServiceExecutor
.
getPoolSize
(
));
log
.
info
(
"执行结束,当前最新id{}"
,
RedisUtil
.
StringOps
.
get
(
"user_tag_id"
));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
log
.
error
(
"执行定时更新标签任务失败!"
);
}
}
/**
* 处理新增用户标签
*
* @param userId 用户id
* @param limit 处理条数
* @param tags 标签信息
* @return 标签信息
* @throws InterruptedException 网络异常
*/
private
List
<
UserMenusEntity
>
getAfterTag
(
Integer
userId
,
Integer
limit
,
List
<
MenuTagsEntity
>
tags
)
throws
InterruptedException
{
//最大处理数减去当天更新处理数,得到剩余处理数,获取起始值后的新增的用户信息
List
<
UserTagEntity
>
afterUser
=
userTagService
.
findUserByIdAfter
(
userId
,
limit
);
//如果当天新增数不为空
if
(
CollUtil
.
isNotEmpty
(
afterUser
))
{
//获取用户最后一条信息
UserTagEntity
afterUserInfo
=
afterUser
.
get
(
afterUser
.
size
()
-
1
);
//并覆盖起始值
RedisUtil
.
StringOps
.
set
(
"user_tag_id"
,
String
.
valueOf
(
afterUserInfo
.
getId
()));
//过滤用户gid
List
<
String
>
afterGid
=
afterUser
.
stream
().
map
(
UserTagEntity:
:
getGid
).
distinct
().
collect
(
Collectors
.
toList
());
//调用个像接口获取新增用户标签
return
getUserTag
(
afterGid
,
afterUser
,
tags
);
}
return
null
;
}
/**
* 获取个像用户标签信息
*
...
...
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