记得上下班打卡 | 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
7f8a9858
Commit
7f8a9858
authored
Apr 15, 2026
by
wangyifan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
草莓护照-用户端 绑定护照、首页
parent
6017d1aa
Changes
13
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
464 additions
and
0 deletions
+464
-0
AdamCaomeiPassportNoParam.java
...net/service/adam/dto/param/AdamCaomeiPassportNoParam.java
+17
-0
AdamCaomeiPassportBadgeShelfItemVo.java
...rvice/adam/dto/vo/AdamCaomeiPassportBadgeShelfItemVo.java
+39
-0
AdamCaomeiPassportHomeVo.java
...quidnet/service/adam/dto/vo/AdamCaomeiPassportHomeVo.java
+21
-0
AdamCaomeiPassportUserCardVo.java
...net/service/adam/dto/vo/AdamCaomeiPassportUserCardVo.java
+25
-0
AdamCaomeiPassportUserClaimedBadgeVo.java
...ice/adam/dto/vo/AdamCaomeiPassportUserClaimedBadgeVo.java
+33
-0
IAdamCaomeiPassportUserService.java
.../service/adam/service/IAdamCaomeiPassportUserService.java
+20
-0
AdamCaomeiPassportUserBadgeDto.java
...dnet/service/adam/dto/AdamCaomeiPassportUserBadgeDto.java
+1
-0
AdamCaomeiBadgeMapper.java
.../liquidnet/service/adam/mapper/AdamCaomeiBadgeMapper.java
+22
-0
AdamCaomeiPassportMapper.java
...quidnet/service/adam/mapper/AdamCaomeiPassportMapper.java
+7
-0
AdamCaomeiPassportMapper.xml
...iquidnet/service/adam/mapper/AdamCaomeiPassportMapper.xml
+1
-0
AdamCaomeiPassportUserController.java
...ice/adam/controller/AdamCaomeiPassportUserController.java
+42
-0
AdamCaomeiPassportUserServiceImpl.java
.../adam/service/impl/AdamCaomeiPassportUserServiceImpl.java
+227
-0
errors.properties
...et-service-adam-impl/src/main/resources/errors.properties
+9
-0
No files found.
liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/dto/param/AdamCaomeiPassportNoParam.java
0 → 100644
View file @
7f8a9858
package
com
.
liquidnet
.
service
.
adam
.
dto
.
param
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.Valid
;
import
javax.validation.constraints.NotBlank
;
@Data
@ApiModel
(
"草莓护照-编号参数"
)
public
class
AdamCaomeiPassportNoParam
{
@NotBlank
(
message
=
"护照编码不能为空"
)
@ApiModelProperty
(
value
=
"护照实体编号(扫码或手输)"
,
required
=
true
)
private
String
passportNo
;
}
liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/dto/vo/AdamCaomeiPassportBadgeShelfItemVo.java
0 → 100644
View file @
7f8a9858
package
com
.
liquidnet
.
service
.
adam
.
dto
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
@Data
@ApiModel
(
"草莓护照-货架徽章项(含认领状态与交互提示)"
)
public
class
AdamCaomeiPassportBadgeShelfItemVo
{
@ApiModelProperty
(
"徽章ID"
)
private
String
badgeId
;
@ApiModelProperty
(
"名称"
)
private
String
name
;
@ApiModelProperty
(
"图标"
)
private
String
icon
;
@ApiModelProperty
(
"类型 1护照 2演出 3特殊"
)
private
Integer
type
;
@ApiModelProperty
(
"关联演出ID(演出纪念徽章)"
)
private
String
performanceId
;
@ApiModelProperty
(
"是否已认领"
)
private
boolean
claimed
;
@ApiModelProperty
(
"认领时间(未认领为空)"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
DateUtil
.
DATE_FULL_STR
)
private
Date
claimedAt
;
@ApiModelProperty
(
"是否可认领(护照徽章未发放完全,或演出徽章有票未领)"
)
private
boolean
claimable
;
}
liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/dto/vo/AdamCaomeiPassportHomeVo.java
0 → 100644
View file @
7f8a9858
package
com
.
liquidnet
.
service
.
adam
.
dto
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.List
;
@Data
@ApiModel
(
"草莓护照-C端首页聚合"
)
public
class
AdamCaomeiPassportHomeVo
{
@ApiModelProperty
(
"个人信息卡片"
)
private
AdamCaomeiPassportUserCardVo
userCard
;
@ApiModelProperty
(
"已认领徽章(全部获得记录,用于网格墙)"
)
private
List
<
AdamCaomeiPassportUserClaimedBadgeVo
>
claimedBadges
;
@ApiModelProperty
(
"全部上架徽章(扁平列表,前端按类型分组展示)"
)
private
List
<
AdamCaomeiPassportBadgeShelfItemVo
>
allBadges
;
}
liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/dto/vo/AdamCaomeiPassportUserCardVo.java
0 → 100644
View file @
7f8a9858
package
com
.
liquidnet
.
service
.
adam
.
dto
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
@ApiModel
(
"草莓护照-首页个人信息卡片"
)
public
class
AdamCaomeiPassportUserCardVo
{
@ApiModelProperty
(
"头像"
)
private
String
avatar
;
@ApiModelProperty
(
"昵称"
)
private
String
nickname
;
@ApiModelProperty
(
"是否已实名认证"
)
private
boolean
realNameVerified
;
@ApiModelProperty
(
"护照编号(未绑定时为空)"
)
private
String
passportNo
;
@ApiModelProperty
(
"是否已绑定实体护照"
)
private
boolean
passportBound
;
}
liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/dto/vo/AdamCaomeiPassportUserClaimedBadgeVo.java
0 → 100644
View file @
7f8a9858
package
com
.
liquidnet
.
service
.
adam
.
dto
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
@Data
@ApiModel
(
"草莓护照-已认领徽章(墙)"
)
public
class
AdamCaomeiPassportUserClaimedBadgeVo
{
@ApiModelProperty
(
"徽章ID"
)
private
String
badgeId
;
@ApiModelProperty
(
"名称"
)
private
String
name
;
@ApiModelProperty
(
"图标"
)
private
String
icon
;
@ApiModelProperty
(
"类型 1护照类型徽章 2演出类型徽章 3特殊徽章"
)
private
Integer
type
;
@ApiModelProperty
(
"获得时间"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
DateUtil
.
DATE_FULL_STR
)
private
Date
claimedAt
;
@ApiModelProperty
(
"获取途径: 1-绑定护照自动发放, 2-购票自动发放, 3-补签审核通过, 4-现场管理员手动发放"
)
private
Integer
source
;
}
liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/service/IAdamCaomeiPassportUserService.java
0 → 100644
View file @
7f8a9858
package
com
.
liquidnet
.
service
.
adam
.
service
;
import
com.liquidnet.service.adam.dto.vo.AdamCaomeiPassportHomeVo
;
import
com.liquidnet.service.base.ResponseDto
;
/**
* 草莓护照(用户端)
*/
public
interface
IAdamCaomeiPassportUserService
{
/**
* 绑定实体护照:校验编号有效性、是否可绑;通过则写入并发放已上架护照纪念徽章(type=1)
*/
ResponseDto
<
String
>
bindPassport
(
String
passportNo
);
/**
* 护照首页:个人信息、实名状态、已认领墙、按类型分组的全部上架徽章
*/
ResponseDto
<
AdamCaomeiPassportHomeVo
>
getPassportHome
();
}
liquidnet-bus-do/liquidnet-service-adam-do/src/main/java/com/liquidnet/service/adam/dto/AdamCaomeiPassportUserBadgeDto.java
View file @
7f8a9858
...
...
@@ -9,6 +9,7 @@ public class AdamCaomeiPassportUserBadgeDto {
private
String
badgeId
;
private
String
badgeName
;
private
String
icon
;
private
Integer
type
;
private
Date
claimedAt
;
private
Integer
source
;
}
liquidnet-bus-do/liquidnet-service-adam-do/src/main/java/com/liquidnet/service/adam/mapper/AdamCaomeiBadgeMapper.java
View file @
7f8a9858
...
...
@@ -5,6 +5,7 @@ import com.liquidnet.service.adam.dto.AdamCaomeiBadgeClaimCountDto;
import
com.liquidnet.service.adam.dto.AdamCaomeiBadgeClaimUserDto
;
import
com.liquidnet.service.adam.entity.AdamCaomeiBadge
;
import
org.apache.ibatis.annotations.Delete
;
import
org.apache.ibatis.annotations.Insert
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
...
...
@@ -47,4 +48,25 @@ public interface AdamCaomeiBadgeMapper extends BaseMapper<AdamCaomeiBadge> {
"where ub.user_id = #{uid} and ub.source = 1 and b.type = 1"
})
int
deletePassportTypeBadgesByUid
(
@Param
(
"uid"
)
String
uid
);
/**
* 绑定护照成功后,为已上架的「护照纪念徽章」(type=1) 批量发放 source=1(与解绑删除规则对称)
*/
@Insert
({
"insert ignore into adam_caomei_user_badge (user_id, badge_id, source, created_at) "
,
"select #{userId}, b.badge_id, 1, now() "
,
"from adam_caomei_badge b "
,
"where b.type = 1 and b.display_status = 1"
})
int
insertPassportBindingBadgesForUser
(
@Param
(
"userId"
)
String
userId
);
/**
* 根据身份证号查询用户已支付的演出ID列表
*/
@Select
({
"select distinct performance_id "
,
"from kylin_order_ticket_entities "
,
"where enter_id_code = #{idCard} and is_payment = 1"
})
List
<
String
>
selectPaidPerformanceIdsByIdCard
(
@Param
(
"idCard"
)
String
idCard
);
}
liquidnet-bus-do/liquidnet-service-adam-do/src/main/java/com/liquidnet/service/adam/mapper/AdamCaomeiPassportMapper.java
View file @
7f8a9858
...
...
@@ -5,6 +5,7 @@ import com.liquidnet.service.adam.dto.AdamCaomeiPassportListDto;
import
com.liquidnet.service.adam.dto.AdamCaomeiPassportUserBadgeDto
;
import
com.liquidnet.service.adam.entity.AdamCaomeiPassport
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Update
;
import
java.util.List
;
...
...
@@ -17,4 +18,10 @@ public interface AdamCaomeiPassportMapper extends BaseMapper<AdamCaomeiPassport>
@Param
(
"bindStatus"
)
Integer
bindStatus
);
List
<
AdamCaomeiPassportUserBadgeDto
>
selectUserBadgesByUid
(
@Param
(
"uid"
)
String
uid
);
/**
* 原子操作:仅当护照状态为 0(未绑定)时,更新为 1(已绑定)
*/
@Update
(
"update adam_caomei_passport set status = 1, user_id = #{userId}, bound_at = now(), updated_at = now() where passport_no = #{passportNo} and status = 0"
)
int
bindPassportAtomic
(
@Param
(
"passportNo"
)
String
passportNo
,
@Param
(
"userId"
)
String
userId
);
}
liquidnet-bus-do/liquidnet-service-adam-do/src/main/resources/com/liquidnet/service/adam/mapper/AdamCaomeiPassportMapper.xml
View file @
7f8a9858
...
...
@@ -64,6 +64,7 @@
ub.badge_id AS badgeId,
IFNULL(b.name, '') AS badgeName,
IFNULL(b.icon, '') AS icon,
IFNULL(b.type, 0) AS type,
ub.created_at AS claimedAt,
ub.source AS source
FROM adam_caomei_user_badge ub
...
...
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/controller/AdamCaomeiPassportUserController.java
0 → 100644
View file @
7f8a9858
package
com
.
liquidnet
.
service
.
adam
.
controller
;
import
com.github.xiaoymin.knife4j.annotations.ApiOperationSupport
;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
com.liquidnet.service.adam.dto.param.AdamCaomeiPassportNoParam
;
import
com.liquidnet.service.adam.dto.vo.AdamCaomeiPassportHomeVo
;
import
com.liquidnet.service.adam.service.IAdamCaomeiPassportUserService
;
import
com.liquidnet.service.base.ResponseDto
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.Valid
;
@ApiSupport
(
order
=
10045
)
@Api
(
tags
=
"草莓护照(用户端)"
)
@Slf4j
@Validated
@RestController
@RequestMapping
(
"caomei/passport"
)
public
class
AdamCaomeiPassportUserController
{
@Autowired
private
IAdamCaomeiPassportUserService
adamCaomeiPassportUserService
;
@ApiOperationSupport
(
order
=
1
)
@ApiOperation
(
"绑定实体护照(内含编号有效性、是否可绑等校验)"
)
@PostMapping
(
"bind"
)
public
ResponseDto
<
String
>
bind
(
@Valid
@RequestBody
AdamCaomeiPassportNoParam
param
)
{
return
adamCaomeiPassportUserService
.
bindPassport
(
param
.
getPassportNo
());
}
@ApiOperationSupport
(
order
=
2
)
@ApiOperation
(
"护照首页聚合数据"
)
@GetMapping
(
"home"
)
public
ResponseDto
<
AdamCaomeiPassportHomeVo
>
home
()
{
return
adamCaomeiPassportUserService
.
getPassportHome
();
}
}
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/service/impl/AdamCaomeiPassportUserServiceImpl.java
0 → 100644
View file @
7f8a9858
This diff is collapsed.
Click to expand it.
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/resources/errors.properties
View file @
7f8a9858
...
...
@@ -86,6 +86,15 @@
10504
=
\u
4F1A
\u5458\u
8BA2
\u5355\u
56DE
\u
8C03
\u5904\u7406\u5931\u
8D25
\u
FF0C
\u
4F1A
\u5458\u
4EF7
\u
683C
\u
4FE1
\u
606F
\u
4E0D
\u
5B58
\u5728
10505
=
\u
4F1A
\u5458\u
8BA2
\u5355\u
56DE
\u
8C03
\u5904\u7406\u
5F02
\u
5E38
# \u8349\u8393\u62A4\u7167\uFF08C\u7AEF\u7ED1\u5B9A/\u9996\u9875\uFF09
10600
=
\u
62A4
\u7167\u
7F16
\u
53F7
\u
65E0
\u6548\u6216\u
4E0D
\u
5B58
\u5728
10601
=
\u
8BE5
\u
62A4
\u7167\u
5DF2
\u
4F5C
\u
5E9F
10602
=
\u
8BE5
\u
62A4
\u7167\u
5DF2
\u
88AB
\u5176\u
4ED6
\u
8D26
\u
53F7
\u
7ED1
\u
5B9A
10603
=
\u
60A8
\u
5DF2
\u
7ED1
\u
5B9A
\u5176\u
4ED6
\u
62A4
\u7167\u
FF0C
\u
65E0
\u
6CD5
\u
91CD
\u
590D
\u
7ED1
\u
5B9A
10604
=
\u
62A4
\u7167\u
7F16
\u
53F7
\u
4E0D
\u
80FD
\u
4E3A
\u
7A7A
10605
=
\u
62A4
\u7167\u
7ED1
\u
5B9A
\u5931\u
8D25
\u
FF0C
\u
8BF7
\u
7A0D
\u
540E
\u
91CD
\u
8BD5
10606
=
\u
8BE5
\u
62A4
\u7167\u
5DF2
\u
4E0E
\u
60A8
\u
7ED1
\u
5B9A
\u
FF0C
\u
65E0
\u9700\u
91CD
\u
590D
\u
64CD
\u
4F5C
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