记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
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
董敬伟
liquidnet-bus-v1
Commits
4fb270c3
Commit
4fb270c3
authored
Jul 24, 2026
by
wangyifan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
kylin 回填用户头像
parent
c6afeb88
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
43 additions
and
19 deletions
+43
-19
KylinGroupBuyOrderServiceImpl.java
...ice/kylin/service/impl/KylinGroupBuyOrderServiceImpl.java
+43
-19
No files found.
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/KylinGroupBuyOrderServiceImpl.java
View file @
4fb270c3
...
...
@@ -3,26 +3,20 @@ package com.liquidnet.service.kylin.service.impl;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.*
;
import
com.liquidnet.service.adam.constant.AdamRedisConst
;
import
com.liquidnet.service.adam.dto.vo.AdamUserInfoVo
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.base.constant.MQConst
;
import
com.liquidnet.service.base.constant.RedisKeyExpireConst
;
import
com.liquidnet.service.kylin.constant.GroupBuyStatusConst
;
import
com.liquidnet.service.kylin.constant.KylinRedisConst
;
import
com.liquidnet.service.kylin.dto.vo.groupbuy.KylinGroupBuyActivityVo
;
import
com.liquidnet.service.kylin.dto.vo.groupbuy.KylinGroupBuyDiscountVo
;
import
com.liquidnet.service.kylin.dto.vo.groupbuy.KylinGroupBuyMemberVo
;
import
com.liquidnet.service.kylin.dto.vo.groupbuy.GroupBuyMemberUserInfoVo
;
import
com.liquidnet.service.kylin.dto.vo.groupbuy.KylinGroupBuyMyGroupVo
;
import
com.liquidnet.service.kylin.dto.vo.groupbuy.KylinGroupBuyOrderCardVo
;
import
com.liquidnet.service.kylin.dto.vo.groupbuy.KylinGroupBuyOrderDetailVo
;
import
com.liquidnet.service.kylin.dto.vo.groupbuy.KylinGroupBuyOrderVo
;
import
com.liquidnet.service.kylin.dto.vo.groupbuy.KylinGroupBuyRefreshShareVo
;
import
com.liquidnet.service.kylin.dto.vo.groupbuy.*
;
import
com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo
;
import
com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo
;
import
com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo
;
import
com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo
;
import
com.liquidnet.service.kylin.service.IKylinGroupBuyOrderService
;
import
com.liquidnet.service.kylin.utils.DataUtils
;
import
com.liquidnet.service.kylin.utils.QueueUtils
;
...
...
@@ -36,11 +30,8 @@ import org.springframework.data.mongodb.core.query.Query;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.*
;
@Service
@Slf4j
...
...
@@ -101,6 +92,7 @@ public class KylinGroupBuyOrderServiceImpl implements IKylinGroupBuyOrderService
List
<
KylinGroupBuyOrderVo
>
orders
=
mongoTemplate
.
find
(
dataQuery
,
KylinGroupBuyOrderVo
.
class
,
KylinGroupBuyOrderVo
.
class
.
getSimpleName
());
List
<
KylinGroupBuyMyGroupVo
>
result
=
new
ArrayList
<>();
Map
<
String
,
String
>
avatarCache
=
new
HashMap
<>();
for
(
KylinGroupBuyOrderVo
o
:
orders
)
{
KylinGroupBuyMyGroupVo
vo
=
new
KylinGroupBuyMyGroupVo
();
vo
.
setGroupOrderId
(
o
.
getGroupOrderId
());
...
...
@@ -116,7 +108,7 @@ public class KylinGroupBuyOrderServiceImpl implements IKylinGroupBuyOrderService
for
(
KylinGroupBuyMemberVo
m
:
o
.
getMembers
())
{
GroupBuyMemberUserInfoVo
b
=
new
GroupBuyMemberUserInfoVo
();
b
.
setUserId
(
m
.
getUserId
());
b
.
setAvatar
(
m
.
getAvatar
(
));
b
.
setAvatar
(
resolveAvatar
(
m
.
getUserId
(),
m
.
getAvatar
(),
avatarCache
));
b
.
setNickname
(
m
.
getNickname
());
memberUserList
.
add
(
b
);
}
...
...
@@ -160,12 +152,13 @@ public class KylinGroupBuyOrderServiceImpl implements IKylinGroupBuyOrderService
vo
.
setGroupBuyPrice
(
discount
!=
null
?
discount
.
getDiscountValue
()
:
null
);
}
if
(
order
.
getMembers
()
!=
null
)
{
Map
<
String
,
String
>
avatarCache
=
new
HashMap
<>();
List
<
GroupBuyMemberUserInfoVo
>
members
=
new
ArrayList
<>();
for
(
KylinGroupBuyMemberVo
m
:
order
.
getMembers
())
{
GroupBuyMemberUserInfoVo
mu
=
new
GroupBuyMemberUserInfoVo
();
mu
.
setUserId
(
m
.
getUserId
());
mu
.
setNickname
(
m
.
getNickname
());
mu
.
setAvatar
(
m
.
getAvatar
(
));
mu
.
setAvatar
(
resolveAvatar
(
m
.
getUserId
(),
m
.
getAvatar
(),
avatarCache
));
members
.
add
(
mu
);
}
vo
.
setMembers
(
members
);
...
...
@@ -179,8 +172,10 @@ public class KylinGroupBuyOrderServiceImpl implements IKylinGroupBuyOrderService
KylinGroupBuyOrderVo
order
=
findOrder
(
groupOrderId
);
if
(
order
==
null
)
return
ResponseDto
.
failure
(
"拼团不存在"
);
if
(!
uid
.
equals
(
order
.
getLeaderUserId
()))
return
ResponseDto
.
failure
(
"仅团长可取消拼团"
);
if
(
GroupBuyStatusConst
.
OrderStatus
.
SUCCESS
.
equals
(
order
.
getStatus
()))
return
ResponseDto
.
failure
(
"拼团已成,不可取消"
);
if
(!
GroupBuyStatusConst
.
OrderStatus
.
PENDING
.
equals
(
order
.
getStatus
()))
return
ResponseDto
.
failure
(
"当前状态不可取消"
);
if
(
GroupBuyStatusConst
.
OrderStatus
.
SUCCESS
.
equals
(
order
.
getStatus
()))
return
ResponseDto
.
failure
(
"拼团已成,不可取消"
);
if
(!
GroupBuyStatusConst
.
OrderStatus
.
PENDING
.
equals
(
order
.
getStatus
()))
return
ResponseDto
.
failure
(
"当前状态不可取消"
);
String
lockKey
=
KylinRedisConst
.
GROUP_BUY_ORDER_LOCK
.
concat
(
groupOrderId
);
if
(!
redisUtil
.
lock
(
lockKey
,
1
,
15
))
{
...
...
@@ -371,6 +366,35 @@ public class KylinGroupBuyOrderServiceImpl implements IKylinGroupBuyOrderService
return
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
LocalDateTime
.
now
());
}
/**
* 快照头像为空时,从 adam 用户缓存回填(不回写 Mongo)。
*/
private
String
resolveAvatar
(
String
userId
,
String
avatar
,
Map
<
String
,
String
>
cache
)
{
if
(
StringUtil
.
isNotBlank
(
avatar
))
{
return
avatar
;
}
if
(
StringUtil
.
isBlank
(
userId
))
{
return
""
;
}
if
(
cache
!=
null
&&
cache
.
containsKey
(
userId
))
{
return
cache
.
get
(
userId
);
}
String
filled
=
""
;
try
{
Object
obj
=
redisUtil
.
get
(
AdamRedisConst
.
INFO_USER
.
concat
(
userId
));
if
(
obj
instanceof
AdamUserInfoVo
)
{
String
fromCache
=
((
AdamUserInfoVo
)
obj
).
getAvatar
();
filled
=
fromCache
==
null
?
""
:
fromCache
;
}
}
catch
(
Exception
e
)
{
log
.
warn
(
"拼团回填头像失败 userId={}"
,
userId
,
e
);
}
if
(
cache
!=
null
)
{
cache
.
put
(
userId
,
filled
);
}
return
filled
;
}
private
void
fillTicketInfo
(
KylinPerformanceVo
p
,
String
timeId
,
String
ticketId
,
KylinGroupBuyOrderDetailVo
vo
)
{
if
(
p
.
getTicketTimeList
()
==
null
)
return
;
...
...
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