记得上下班打卡 | 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
6ac0c80f
Commit
6ac0c80f
authored
Apr 20, 2026
by
姜秀龙
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'refs/heads/dev-caomeihuizhang' into container-test
parents
b42d2880
ae5cdba0
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
12111 additions
and
21 deletions
+12111
-21
adam_caomei_passport_inserts_BATCH-CAOMEI-B1.sql
docu/adam_caomei_passport_inserts_BATCH-CAOMEI-B1.sql
+12007
-0
AdamCaomeiPassportBadgeShelfItemVo.java
...rvice/adam/dto/vo/AdamCaomeiPassportBadgeShelfItemVo.java
+3
-0
AdamCaomeiPassportHomeVo.java
...quidnet/service/adam/dto/vo/AdamCaomeiPassportHomeVo.java
+1
-1
badge_add.html
...urces/templates/zhengzai/adam/caomei/badge/badge_add.html
+1
-1
badge_edit.html
...rces/templates/zhengzai/adam/caomei/badge/badge_edit.html
+1
-1
badge_list.html
...rces/templates/zhengzai/adam/caomei/badge/badge_list.html
+1
-1
liquidnet-service-adam.yml
...et-bus-config/liquidnet-config/liquidnet-service-adam.yml
+12
-0
pom.xml
...iquidnet-service-adam/liquidnet-service-adam-impl/pom.xml
+10
-5
AdamRdmService.java
...va/com/liquidnet/service/adam/service/AdamRdmService.java
+34
-0
AdamCaomeiPassportUserServiceImpl.java
.../adam/service/impl/AdamCaomeiPassportUserServiceImpl.java
+41
-12
No files found.
docu/adam_caomei_passport_inserts_BATCH-CAOMEI-B1.sql
0 → 100644
View file @
6ac0c80f
This diff is collapsed.
Click to expand it.
liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/dto/vo/AdamCaomeiPassportBadgeShelfItemVo.java
View file @
6ac0c80f
...
...
@@ -30,6 +30,9 @@ public class AdamCaomeiPassportBadgeShelfItemVo {
@ApiModelProperty
(
"关联演出ID(演出纪念徽章)"
)
private
String
performanceId
;
@ApiModelProperty
(
"关联演出名称(type=2 时用于按演出分组展示;无数据时可能为演出ID)"
)
private
String
performanceName
;
@ApiModelProperty
(
"是否已认领"
)
private
boolean
claimed
;
...
...
liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/dto/vo/AdamCaomeiPassportHomeVo.java
View file @
6ac0c80f
...
...
@@ -16,6 +16,6 @@ public class AdamCaomeiPassportHomeVo {
@ApiModelProperty
(
"已认领徽章(全部获得记录,用于网格墙)"
)
private
List
<
AdamCaomeiPassportUserClaimedBadgeVo
>
claimedBadges
;
@ApiModelProperty
(
"全部上架徽章(扁平列表
,前端按类型
分组展示)"
)
@ApiModelProperty
(
"全部上架徽章(扁平列表
;演出类含 performanceName,前端可按类型或按演出
分组展示)"
)
private
List
<
AdamCaomeiPassportBadgeShelfItemVo
>
allBadges
;
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/adam/caomei/badge/badge_add.html
View file @
6ac0c80f
...
...
@@ -25,7 +25,7 @@
<option
value=
""
>
请选择
</option>
<option
value=
"1"
>
护照纪念徽章
</option>
<option
value=
"2"
>
演出纪念徽章
</option>
<
option
value=
"3"
>
特殊徽章
</option
>
<
!-- <option value="3">特殊徽章</option> --
>
</select>
</div>
</div>
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/adam/caomei/badge/badge_edit.html
View file @
6ac0c80f
...
...
@@ -26,7 +26,7 @@
<option
value=
""
>
请选择
</option>
<option
value=
"1"
>
护照纪念徽章
</option>
<option
value=
"2"
>
演出纪念徽章
</option>
<
option
value=
"3"
>
特殊徽章
</option
>
<
!-- <option value="3">特殊徽章</option> --
>
</select>
</div>
</div>
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/adam/caomei/badge/badge_list.html
View file @
6ac0c80f
...
...
@@ -18,7 +18,7 @@
<option
value=
""
>
所有
</option>
<option
value=
"1"
>
护照纪念徽章
</option>
<option
value=
"2"
>
演出纪念徽章
</option>
<
option
value=
"3"
>
特殊徽章
</option
>
<
!-- <option value="3">特殊徽章</option> --
>
</select>
</li>
<li>
...
...
liquidnet-bus-config/liquidnet-config/liquidnet-service-adam.yml
View file @
6ac0c80f
...
...
@@ -87,6 +87,18 @@ spring:
max-wait
:
-1
max-idle
:
8
min-idle
:
0
kylin
:
database
:
${liquidnet.redis.kylin.database}
dbs
:
${liquidnet.redis.kylin.dbs}
port
:
${liquidnet.redis.kylin.port}
host
:
${liquidnet.redis.kylin.host}
password
:
${liquidnet.redis.kylin.password}
lettuce
:
pool
:
max-active
:
16
max-wait
:
-1
max-idle
:
8
min-idle
:
4
database
:
15
dbs
:
${liquidnet.redis.adam.dbs}
port
:
${liquidnet.redis.adam.port}
...
...
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/pom.xml
View file @
6ac0c80f
...
...
@@ -23,6 +23,11 @@
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-common-web
</artifactId>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-common-cache-redis
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.liquidnet</groupId>-->
<!-- <artifactId>liquidnet-common-cache-redisson</artifactId>-->
...
...
@@ -38,11 +43,11 @@
<artifactId>
liquidnet-service-adam-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<!-- <dependency>--
>
<!-- <groupId>com.liquidnet</groupId>--
>
<!-- <artifactId>liquidnet-service-kylin-api</artifactId>--
>
<!-- <version>1.0-SNAPSHOT</version>--
>
<!-- </dependency>--
>
<dependency
>
<groupId>
com.liquidnet
</groupId
>
<artifactId>
liquidnet-service-kylin-api
</artifactId
>
<version>
1.0-SNAPSHOT
</version
>
</dependency
>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-common-third-easemob
</artifactId>
...
...
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/service/AdamRdmService.java
View file @
6ac0c80f
...
...
@@ -3,6 +3,7 @@ package com.liquidnet.service.adam.service;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.fasterxml.jackson.databind.JsonNode
;
import
com.liquidnet.common.cache.redis.util.RedisDataSourceUtil
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.common.exception.LiquidnetServiceException
;
import
com.liquidnet.commons.lang.util.IdentityUtils
;
...
...
@@ -15,6 +16,8 @@ import com.liquidnet.service.adam.dto.vo.*;
import
com.liquidnet.service.adam.entity.AdamCaomeiBadge
;
import
com.liquidnet.service.adam.entity.AdamEnters
;
import
com.liquidnet.service.adam.entity.AdamUserMember
;
import
com.liquidnet.service.kylin.constant.KylinRedisConst
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo
;
import
com.liquidnet.service.adam.mapper.AdamCaomeiBadgeMapper
;
import
com.liquidnet.service.adam.mapper.AdamCaomeiPassportMapper
;
import
com.liquidnet.service.adam.mapper.AdamEntersMapper
;
...
...
@@ -44,6 +47,9 @@ public class AdamRdmService {
@Autowired
RedisUtil
redisUtil
;
@Autowired
RedisDataSourceUtil
redisDataSourceUtil
;
@Autowired
AdamUserMapper
adamUserMapper
;
@Autowired
...
...
@@ -745,6 +751,34 @@ public class AdamRdmService {
return
performanceIds
;
}
/**
* 从演出缓存(kylin redis)读取演出标题,用于草莓护照演出徽章分组展示。
* 读取不到时返回 null。
*/
public
String
getPerformanceTitleById
(
String
performanceId
)
{
if
(
StringUtils
.
isEmpty
(
performanceId
))
{
return
null
;
}
try
{
if
(
redisDataSourceUtil
==
null
||
redisDataSourceUtil
.
getRedisKylinUtil
()
==
null
)
{
return
null
;
}
Object
cached
=
redisDataSourceUtil
.
getRedisKylinUtil
().
get
(
KylinRedisConst
.
PERFORMANCES
+
performanceId
);
if
(
cached
instanceof
KylinPerformanceVo
)
{
return
((
KylinPerformanceVo
)
cached
).
getTitle
();
}
// 兼容:部分环境序列化配置不同,可能反序列化成 Map(如 LinkedHashMap)
if
(
cached
instanceof
Map
)
{
Object
title
=
((
Map
<?,
?>)
cached
).
get
(
"title"
);
return
title
==
null
?
null
:
String
.
valueOf
(
title
);
}
return
null
;
}
catch
(
Exception
e
)
{
log
.
warn
(
"[getPerformanceTitleById] 读取演出缓存失败, performanceId: {}"
,
performanceId
,
e
);
return
null
;
}
}
/**
* 删除用户徽章redis
* @param uid
...
...
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/service/impl/AdamCaomeiPassportUserServiceImpl.java
View file @
6ac0c80f
...
...
@@ -9,7 +9,6 @@ import com.liquidnet.service.adam.entity.AdamCaomeiBadge;
import
com.liquidnet.service.adam.entity.AdamCaomeiBadgeApplyRecord
;
import
com.liquidnet.service.adam.entity.AdamCaomeiPassport
;
import
com.liquidnet.service.adam.mapper.AdamCaomeiBadgeApplyRecordMapper
;
import
com.liquidnet.service.adam.mapper.AdamCaomeiBadgeMapper
;
import
com.liquidnet.service.adam.mapper.AdamCaomeiPassportMapper
;
import
com.liquidnet.service.adam.service.AdamRdmService
;
import
com.liquidnet.service.adam.service.IAdamCaomeiPassportUserService
;
...
...
@@ -35,8 +34,6 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
@Autowired
private
AdamCaomeiPassportMapper
adamCaomeiPassportMapper
;
@Autowired
private
AdamCaomeiBadgeMapper
adamCaomeiBadgeMapper
;
@Autowired
private
AdamCaomeiBadgeApplyRecordMapper
badgeApplyRecordMapper
;
@Autowired
private
AdamRdmService
adamRdmService
;
...
...
@@ -218,13 +215,17 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
}
log
.
info
(
"[getPassportHome] 系统已上架的徽章数量, uid: {}, 数量: {}"
,
uid
,
published
.
size
());
// 8. 组装全部上架徽章列表 (扁平结构,前端按 type 筛选展示)
// 演出纪念徽章:批量查演出名称,供前端按演出分组展示
Map
<
String
,
String
>
performanceTitleById
=
buildPerformanceTitleMap
(
published
);
// 8. 组装全部上架徽章列表 (扁平结构,前端按 type / 演出名称 筛选分组展示)
List
<
AdamCaomeiPassportBadgeShelfItemVo
>
allBadges
=
toShelfItems
(
published
,
claimedMap
,
paidPerformanceIds
,
applyBadgeStatus
.
passedApplyBadgeIds
,
applyBadgeStatus
.
pendingApplyBadgeIds
applyBadgeStatus
.
pendingApplyBadgeIds
,
performanceTitleById
);
home
.
setAllBadges
(
allBadges
);
...
...
@@ -297,13 +298,35 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
.
collect
(
Collectors
.
toMap
(
AdamCaomeiPassportUserBadgeDto:
:
getBadgeId
,
Function
.
identity
(),
(
a
,
b
)
->
a
));
}
private
Map
<
String
,
String
>
buildPerformanceTitleMap
(
List
<
AdamCaomeiBadge
>
published
)
{
List
<
String
>
perfIds
=
published
.
stream
()
.
filter
(
b
->
b
!=
null
&&
b
.
getType
()
!=
null
&&
b
.
getType
()
==
2
)
.
map
(
AdamCaomeiBadge:
:
getPerformanceId
)
.
filter
(
StringUtils:
:
isNotBlank
)
.
distinct
()
.
collect
(
Collectors
.
toList
());
if
(
perfIds
.
isEmpty
())
{
return
Collections
.
emptyMap
();
}
Map
<
String
,
String
>
map
=
new
HashMap
<>(
perfIds
.
size
()
*
2
);
for
(
String
perfId
:
perfIds
)
{
String
title
=
adamRdmService
.
getPerformanceTitleById
(
perfId
);
if
(
StringUtils
.
isNotBlank
(
title
))
{
map
.
put
(
perfId
,
title
);
}
}
return
map
;
}
private
static
List
<
AdamCaomeiPassportBadgeShelfItemVo
>
toShelfItems
(
List
<
AdamCaomeiBadge
>
published
,
Map
<
String
,
AdamCaomeiPassportUserBadgeDto
>
claimedMap
,
List
<
String
>
paidPerformanceIds
,
Set
<
String
>
passedApplyBadgeIds
,
Set
<
String
>
pendingApplyBadgeIds
)
{
Set
<
String
>
pendingApplyBadgeIds
,
Map
<
String
,
String
>
performanceTitleById
)
{
return
published
.
stream
()
.
map
(
b
->
toShelfItem
(
b
,
claimedMap
,
paidPerformanceIds
,
passedApplyBadgeIds
,
pendingApplyBadgeIds
))
.
map
(
b
->
toShelfItem
(
b
,
claimedMap
,
paidPerformanceIds
,
passedApplyBadgeIds
,
pendingApplyBadgeIds
,
performanceTitleById
))
.
collect
(
Collectors
.
toList
());
}
...
...
@@ -313,29 +336,35 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
* @param paidPerformanceIds 当前账号实名身份证号码购买的演出IDs
* @param passedApplyBadgeIds 补签审核已通过的徽章ID集合
* @param pendingApplyBadgeIds 补签待审核的徽章ID集合
* @param performanceTitleById 演出 ID → 演出名称(仅 type=2 使用)
* @return
*/
private
static
AdamCaomeiPassportBadgeShelfItemVo
toShelfItem
(
AdamCaomeiBadge
b
,
Map
<
String
,
AdamCaomeiPassportUserBadgeDto
>
claimedMap
,
List
<
String
>
paidPerformanceIds
,
Set
<
String
>
passedApplyBadgeIds
,
Set
<
String
>
pendingApplyBadgeIds
)
{
Set
<
String
>
pendingApplyBadgeIds
,
Map
<
String
,
String
>
performanceTitleById
)
{
AdamCaomeiPassportBadgeShelfItemVo
v
=
new
AdamCaomeiPassportBadgeShelfItemVo
();
v
.
setBadgeId
(
b
.
getBadgeId
());
v
.
setName
(
StringUtils
.
defaultString
(
b
.
getName
()));
v
.
setIcon
(
StringUtils
.
defaultString
(
b
.
getIcon
()));
v
.
setShareText
(
StringUtils
.
defaultString
(
b
.
getShareText
()));
v
.
setType
(
b
.
getType
());
v
.
setPerformanceId
(
StringUtils
.
defaultString
(
b
.
getPerformanceId
()));
String
perfId
=
StringUtils
.
defaultString
(
b
.
getPerformanceId
());
v
.
setPerformanceId
(
perfId
);
int
type
=
b
.
getType
()
==
null
?
0
:
b
.
getType
();
if
(
type
==
2
&&
StringUtils
.
isNotBlank
(
perfId
))
{
String
title
=
performanceTitleById
!=
null
?
performanceTitleById
.
get
(
perfId
)
:
null
;
v
.
setPerformanceName
(
StringUtils
.
isNotBlank
(
title
)
?
title
:
perfId
);
}
v
.
setApplyPending
(
false
);
// 判断当前徽章是否已认领
AdamCaomeiPassportUserBadgeDto
got
=
claimedMap
.
get
(
b
.
getBadgeId
());
boolean
claimed
=
got
!=
null
;
v
.
setClaimed
(
claimed
);
v
.
setClaimedAt
(
claimed
?
got
.
getClaimedAt
()
:
null
);
int
type
=
b
.
getType
()
==
null
?
0
:
b
.
getType
();
v
.
setClaimedAt
(
got
!=
null
?
got
.
getClaimedAt
()
:
null
);
// 针对未认领的徽章,根据类型判断是否可认领 (claimable)
if
(!
claimed
)
{
...
...
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