记得上下班打卡 | 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
7c639ac5
Commit
7c639ac5
authored
Apr 27, 2025
by
wangyifan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
福袋功能-优化结构
parent
5c08c47d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
55 deletions
+13
-55
KylinLuckyBagServiceImpl.java
.../service/kylin/service/impl/KylinLuckyBagServiceImpl.java
+13
-55
No files found.
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/KylinLuckyBagServiceImpl.java
View file @
7c639ac5
...
...
@@ -9,15 +9,12 @@ import com.liquidnet.commons.lang.util.DateUtil;
import
com.liquidnet.service.base.ErrorMapping
;
import
com.liquidnet.service.kylin.constant.KylinRedisConst
;
import
com.liquidnet.service.kylin.dto.vo.KylinLuckyBagVo
;
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.returns.OrderDetailsVo
;
import
com.liquidnet.service.kylin.entity.KylinLuckyBag
;
import
com.liquidnet.service.kylin.entity.KylinLuckyBagActivity
;
import
com.liquidnet.service.kylin.entity.KylinRewardCode
;
import
com.liquidnet.service.kylin.entity.KylinRewardUser
;
import
com.liquidnet.service.kylin.mapper.KylinBrandsMapper
;
import
com.liquidnet.service.kylin.mapper.KylinLuckyBagMapper
;
import
com.liquidnet.service.kylin.mapper.KylinRewardCodeMapper
;
import
com.liquidnet.service.kylin.mapper.KylinRewardUserMapper
;
import
com.liquidnet.service.kylin.service.IFeishuBotService
;
...
...
@@ -51,10 +48,6 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
@Autowired
private
IFeishuBotService
iFeishuBotService
;
@Autowired
private
KylinLuckyBagMapper
kylinLuckyBagMapper
;
@Autowired
private
KylinBrandsMapper
kylinBrandsMapper
;
@Autowired
private
KylinRewardCodeMapper
kylinRewardCodeMapper
;
@Autowired
...
...
@@ -111,7 +104,7 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
.
filter
(
luckyBag
->
performanceId
.
equals
(
luckyBag
.
getPerformanceId
()))
.
collect
(
Collectors
.
toList
());
List
<
KylinLuckyBagVo
.
LuckyBagVo
>
activityVos
=
new
ArrayList
<>();
List
<
KylinLuckyBagVo
.
LuckyBagVo
>
activityVos
=
new
ArrayList
<>(
filteredList
.
size
()
);
filteredList
.
forEach
(
l
->
{
KylinLuckyBagVo
.
LuckyBagVo
luckyBagVo
=
new
KylinLuckyBagVo
.
LuckyBagVo
();
...
...
@@ -169,16 +162,18 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
}
final
int
limitTotal
=
vo
.
getOrderTicketVo
().
getNumber
();
final
KylinOrderTicketVo
orderTicketVo
=
vo
.
getOrderTicketVo
();
if
(
limitTotal
<=
0
)
{
log
.
error
(
"[getRandomRewardCode] 用户订单购买数量错误, orderId: {}."
,
vo
.
getOrderTicketVo
()
.
getOrderTicketsId
());
log
.
error
(
"[getRandomRewardCode] 用户订单购买数量错误, orderId: {}."
,
orderTicketVo
.
getOrderTicketsId
());
return
Collections
.
emptyList
();
}
LambdaQueryWrapper
<
KylinRewardCode
>
lambdaQueryWrapper
=
new
QueryWrapper
<
KylinRewardCode
>().
lambda
()
.
eq
(
KylinRewardCode:
:
getLuckyBagId
,
luckyBagId
)
.
eq
(
KylinRewardCode:
:
getState
,
1
)
.
last
(
true
,
"ORDER BY RAND() limit "
+
limitTotal
);
// .last(true, "ORDER BY RAND() limit " + limitTotal); // 随机搜索
.
last
(
true
,
" limit "
+
limitTotal
);
//2. 搜索兑换码
List
<
KylinRewardCode
>
rewardCodes
=
kylinRewardCodeMapper
.
selectList
(
lambdaQueryWrapper
);
...
...
@@ -197,23 +192,19 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
rewardCode
.
setState
(
0
);
int
updateResult
=
kylinRewardCodeMapper
.
updateById
(
rewardCode
);
if
(
updateResult
>
0
)
{
KylinRewardUser
user
=
new
KylinRewardUser
();
user
.
setUid
(
vo
.
getOrderTicketVo
().
getUserId
());
user
.
setLuckyBagId
(
luckyBagId
);
user
.
setOrderId
(
vo
.
getOrderTicketVo
().
getOrderTicketsId
());
user
.
setOrderTicketEntitiesId
(
vo
.
getOrderTicketVo
().
getEntitiesVoList
().
get
(
i
).
getOrderTicketEntitiesId
());
user
.
setCode
(
rewardCode
.
getCode
());
user
.
setState
(
1
);
user
.
setCreatedAt
(
LocalDateTime
.
now
());
user
.
setUpdatedAt
(
LocalDateTime
.
now
());
KylinRewardUser
user
=
buildRewardUser
(
orderTicketVo
.
getUserId
(),
orderTicketVo
.
getOrderTicketsId
(),
luckyBagId
,
orderTicketVo
.
getEntitiesVoList
().
get
(
i
).
getOrderTicketEntitiesId
(),
rewardCode
.
getCode
());
kylinRewardUserMapper
.
insert
(
user
);
rewardUsers
.
add
(
user
);
log
.
info
(
"[getRandomRewardCode] 兑换码分配成功, luckyBagId: {}, orderId: {}, code: {}."
,
luckyBagId
,
vo
.
getOrderTicketVo
()
.
getOrderTicketsId
(),
rewardCode
.
getCode
());
log
.
info
(
"[getRandomRewardCode] 兑换码分配成功, luckyBagId: {}, orderId: {}, code: {}."
,
luckyBagId
,
orderTicketVo
.
getOrderTicketsId
(),
rewardCode
.
getCode
());
}
else
{
log
.
error
(
"[getRandomRewardCode] 兑换码分配失败, luckyBagId: {}, orderId: {}."
,
luckyBagId
,
vo
.
getOrderTicketVo
()
.
getOrderTicketsId
());
log
.
error
(
"[getRandomRewardCode] 兑换码分配失败, luckyBagId: {}, orderId: {}."
,
luckyBagId
,
orderTicketVo
.
getOrderTicketsId
());
// 报警
String
msg
=
String
.
format
(
"福袋ID [%s] 分配兑换码失败:用户ID [%s] 的订单ID [%s] 已分配了 [%s] 个,应分配 [%s] 个。"
,
luckyBagId
,
vo
.
getOrderTicketVo
().
getUserId
(),
vo
.
getOrderTicketVo
()
.
getOrderTicketsId
(),
rewardUsers
.
size
(),
limitTotal
);
luckyBagId
,
orderTicketVo
.
getUserId
(),
orderTicketVo
.
getOrderTicketsId
(),
rewardUsers
.
size
(),
limitTotal
);
iFeishuBotService
.
sendTextMessage
(
msg
);
}
}
...
...
@@ -228,31 +219,6 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
}
}
public
List
<
KylinRewardUser
>
assignRewardCodesToUser
(
String
uid
,
String
orderId
,
String
luckyBagId
,
List
<
KylinRewardCode
>
rewardCodes
,
List
<
KylinOrderTicketEntitiesVo
>
entities
)
{
List
<
KylinRewardUser
>
rewardUsers
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
rewardCodes
.
size
();
i
++)
{
KylinRewardCode
rewardCode
=
rewardCodes
.
get
(
i
);
rewardCode
.
setState
(
0
);
if
(
kylinRewardCodeMapper
.
updateById
(
rewardCode
)
>
0
)
{
KylinRewardUser
user
=
buildRewardUser
(
uid
,
orderId
,
luckyBagId
,
entities
.
get
(
i
).
getOrderTicketEntitiesId
(),
rewardCode
.
getCode
());
kylinRewardUserMapper
.
insert
(
user
);
rewardUsers
.
add
(
user
);
log
.
info
(
"[assignRewardCodesToUser] 分配成功, luckyBagId: {}, orderId: {}, code: {}"
,
luckyBagId
,
orderId
,
rewardCode
.
getCode
());
}
else
{
log
.
error
(
"[assignRewardCodesToUser] 分配失败, luckyBagId: {}, orderId: {}"
,
luckyBagId
,
orderId
);
String
msg
=
String
.
format
(
"福袋ID [%s] 分配兑换码失败:用户ID [%s] 的订单ID [%s] 已分配 [%s] 个,应分配 [%s] 个。"
,
luckyBagId
,
uid
,
orderId
,
rewardUsers
.
size
(),
rewardCodes
.
size
());
iFeishuBotService
.
sendTextMessage
(
msg
);
}
}
return
rewardUsers
;
}
private
KylinRewardUser
buildRewardUser
(
String
uid
,
String
orderId
,
String
luckyBagId
,
String
orderTicketEntitiesId
,
String
code
)
{
KylinRewardUser
user
=
new
KylinRewardUser
();
user
.
setUid
(
uid
);
...
...
@@ -266,14 +232,6 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
return
user
;
}
private
List
<
KylinRewardCode
>
getAvailableRewardCodes
(
String
luckyBagId
,
int
limitTotal
)
{
LambdaQueryWrapper
<
KylinRewardCode
>
wrapper
=
new
QueryWrapper
<
KylinRewardCode
>().
lambda
()
.
eq
(
KylinRewardCode:
:
getLuckyBagId
,
luckyBagId
)
.
eq
(
KylinRewardCode:
:
getState
,
1
)
.
last
(
true
,
"ORDER BY RAND() LIMIT "
+
limitTotal
);
return
kylinRewardCodeMapper
.
selectList
(
wrapper
);
}
/**
* 获取福袋活动列表
*
...
...
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