记得上下班打卡 | 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
4a2ab388
Commit
4a2ab388
authored
Apr 16, 2026
by
wangyifan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
草莓护照- 补签相关接口;
parent
565a2963
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
271 additions
and
12 deletions
+271
-12
AdamCaomeiBadgeApplyParam.java
...net/service/adam/dto/param/AdamCaomeiBadgeApplyParam.java
+20
-0
AdamCaomeiBadgeApplyRecordUserVo.java
...service/adam/dto/vo/AdamCaomeiBadgeApplyRecordUserVo.java
+33
-0
AdamCaomeiPassportBadgeShelfItemVo.java
...rvice/adam/dto/vo/AdamCaomeiPassportBadgeShelfItemVo.java
+3
-0
AdamCaomeiPassportUserCardVo.java
...net/service/adam/dto/vo/AdamCaomeiPassportUserCardVo.java
+8
-0
IAdamCaomeiBadgeUserService.java
...net/service/adam/service/IAdamCaomeiBadgeUserService.java
+14
-0
AdamCaomeiBadgeApplyAuditAdminServiceImpl.java
...rvice/impl/AdamCaomeiBadgeApplyAuditAdminServiceImpl.java
+0
-1
AdamCaomeiBadgeApplyRecordUserDto.java
...t/service/adam/dto/AdamCaomeiBadgeApplyRecordUserDto.java
+14
-0
AdamCaomeiBadgeApplyRecordMapper.java
...service/adam/mapper/AdamCaomeiBadgeApplyRecordMapper.java
+15
-0
AdamCaomeiBadgeUserController.java
...ervice/adam/controller/AdamCaomeiBadgeUserController.java
+20
-0
AdamCaomeiPassportUserController.java
...ice/adam/controller/AdamCaomeiPassportUserController.java
+1
-1
AdamCaomeiBadgeUserServiceImpl.java
...ice/adam/service/impl/AdamCaomeiBadgeUserServiceImpl.java
+106
-5
AdamCaomeiPassportUserServiceImpl.java
.../adam/service/impl/AdamCaomeiPassportUserServiceImpl.java
+36
-4
errors.properties
...et-service-adam-impl/src/main/resources/errors.properties
+1
-1
No files found.
liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/dto/param/AdamCaomeiBadgeApplyParam.java
0 → 100644
View file @
4a2ab388
package
com
.
liquidnet
.
service
.
adam
.
dto
.
param
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
@Data
@ApiModel
(
"草莓徽章-补签申请参数"
)
public
class
AdamCaomeiBadgeApplyParam
{
@NotBlank
(
message
=
"徽章ID不能为空"
)
@ApiModelProperty
(
value
=
"徽章ID"
,
required
=
true
)
private
String
badgeId
;
@NotBlank
(
message
=
"凭证图片不能为空"
)
@ApiModelProperty
(
value
=
"订单截图/凭证图片URL"
,
required
=
true
)
private
String
proofImageUrl
;
}
liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/dto/vo/AdamCaomeiBadgeApplyRecordUserVo.java
0 → 100644
View file @
4a2ab388
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
AdamCaomeiBadgeApplyRecordUserVo
{
@ApiModelProperty
(
"补签申请ID"
)
private
String
applyRecordId
;
@ApiModelProperty
(
"申请徽章名称"
)
private
String
badgeName
;
@ApiModelProperty
(
"申请时间"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
DateUtil
.
DATE_FULL_STR
)
private
Date
applyTime
;
@ApiModelProperty
(
"审核状态:0-待审核 1-已通过 2-已驳回"
)
private
Integer
auditStatus
;
@ApiModelProperty
(
"驳回理由"
)
private
String
rejectReason
;
@ApiModelProperty
(
"是否可重新上传(仅驳回状态为 true)"
)
private
Boolean
canReupload
;
}
liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/dto/vo/AdamCaomeiPassportBadgeShelfItemVo.java
View file @
4a2ab388
...
@@ -36,4 +36,7 @@ public class AdamCaomeiPassportBadgeShelfItemVo {
...
@@ -36,4 +36,7 @@ public class AdamCaomeiPassportBadgeShelfItemVo {
@ApiModelProperty
(
"是否可认领(护照徽章未发放完全,或演出徽章有票未领)"
)
@ApiModelProperty
(
"是否可认领(护照徽章未发放完全,或演出徽章有票未领)"
)
private
boolean
claimable
;
private
boolean
claimable
;
@ApiModelProperty
(
"是否存在补签待审核(仅演出徽章生效)"
)
private
boolean
applyPending
;
}
}
liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/dto/vo/AdamCaomeiPassportUserCardVo.java
View file @
4a2ab388
package
com
.
liquidnet
.
service
.
adam
.
dto
.
vo
;
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.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.Date
;
@Data
@Data
@ApiModel
(
"草莓护照-首页个人信息卡片"
)
@ApiModel
(
"草莓护照-首页个人信息卡片"
)
public
class
AdamCaomeiPassportUserCardVo
{
public
class
AdamCaomeiPassportUserCardVo
{
...
@@ -20,6 +24,10 @@ public class AdamCaomeiPassportUserCardVo {
...
@@ -20,6 +24,10 @@ public class AdamCaomeiPassportUserCardVo {
@ApiModelProperty
(
"护照编号(未绑定时为空)"
)
@ApiModelProperty
(
"护照编号(未绑定时为空)"
)
private
String
passportNo
;
private
String
passportNo
;
@ApiModelProperty
(
"护照获得时间"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
DateUtil
.
DATE_FULL_STR
)
private
Date
passportClaimedAt
;
@ApiModelProperty
(
"是否已绑定实体护照"
)
@ApiModelProperty
(
"是否已绑定实体护照"
)
private
boolean
passportBound
;
private
boolean
passportBound
;
}
}
liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/service/IAdamCaomeiBadgeUserService.java
View file @
4a2ab388
package
com
.
liquidnet
.
service
.
adam
.
service
;
package
com
.
liquidnet
.
service
.
adam
.
service
;
import
com.liquidnet.service.adam.dto.param.AdamCaomeiBadgeApplyParam
;
import
com.liquidnet.service.adam.dto.vo.AdamCaomeiBadgeApplyRecordUserVo
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.ResponseDto
;
import
java.util.List
;
/**
/**
* 草莓徽章(用户端)
* 草莓徽章(用户端)
*/
*/
...
@@ -11,4 +15,14 @@ public interface IAdamCaomeiBadgeUserService {
...
@@ -11,4 +15,14 @@ public interface IAdamCaomeiBadgeUserService {
* 认领徽章
* 认领徽章
*/
*/
ResponseDto
<
String
>
claimBadge
(
String
badgeId
,
String
uid
);
ResponseDto
<
String
>
claimBadge
(
String
badgeId
,
String
uid
);
/**
* 补签申请记录列表(用户端)
*/
ResponseDto
<
List
<
AdamCaomeiBadgeApplyRecordUserVo
>>
getApplyRecords
(
String
uid
);
/**
* 发起补签申请(驳回后可再次提交)
*/
ResponseDto
<
String
>
applyBadge
(
AdamCaomeiBadgeApplyParam
param
,
String
uid
);
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/adam/service/impl/AdamCaomeiBadgeApplyAuditAdminServiceImpl.java
View file @
4a2ab388
...
@@ -82,7 +82,6 @@ public class AdamCaomeiBadgeApplyAuditAdminServiceImpl implements IAdamCaomeiBad
...
@@ -82,7 +82,6 @@ public class AdamCaomeiBadgeApplyAuditAdminServiceImpl implements IAdamCaomeiBad
if
(
updated
<=
0
)
{
if
(
updated
<=
0
)
{
return
false
;
return
false
;
}
}
badgeApplyRecordMapper
.
issueBadgeIfAbsent
(
record
.
getUserId
(),
record
.
getBadgeId
());
return
true
;
return
true
;
}
}
...
...
liquidnet-bus-do/liquidnet-service-adam-do/src/main/java/com/liquidnet/service/adam/dto/AdamCaomeiBadgeApplyRecordUserDto.java
0 → 100644
View file @
4a2ab388
package
com
.
liquidnet
.
service
.
adam
.
dto
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
AdamCaomeiBadgeApplyRecordUserDto
{
private
String
applyRecordId
;
private
String
badgeName
;
private
Date
applyTime
;
private
Integer
auditStatus
;
private
String
rejectReason
;
}
liquidnet-bus-do/liquidnet-service-adam-do/src/main/java/com/liquidnet/service/adam/mapper/AdamCaomeiBadgeApplyRecordMapper.java
View file @
4a2ab388
...
@@ -3,6 +3,7 @@ package com.liquidnet.service.adam.mapper;
...
@@ -3,6 +3,7 @@ package com.liquidnet.service.adam.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.liquidnet.service.adam.dto.AdamCaomeiBadgeApplyAuditDetailDto
;
import
com.liquidnet.service.adam.dto.AdamCaomeiBadgeApplyAuditDetailDto
;
import
com.liquidnet.service.adam.dto.AdamCaomeiBadgeApplyAuditDto
;
import
com.liquidnet.service.adam.dto.AdamCaomeiBadgeApplyAuditDto
;
import
com.liquidnet.service.adam.dto.AdamCaomeiBadgeApplyRecordUserDto
;
import
com.liquidnet.service.adam.entity.AdamCaomeiBadgeApplyRecord
;
import
com.liquidnet.service.adam.entity.AdamCaomeiBadgeApplyRecord
;
import
org.apache.ibatis.annotations.Insert
;
import
org.apache.ibatis.annotations.Insert
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
...
@@ -101,4 +102,18 @@ public interface AdamCaomeiBadgeApplyRecordMapper extends BaseMapper<AdamCaomeiB
...
@@ -101,4 +102,18 @@ public interface AdamCaomeiBadgeApplyRecordMapper extends BaseMapper<AdamCaomeiB
"values (#{userId}, #{badgeId}, 3, now())"
"values (#{userId}, #{badgeId}, 3, now())"
})
})
int
issueBadgeIfAbsent
(
@Param
(
"userId"
)
String
userId
,
@Param
(
"badgeId"
)
String
badgeId
);
int
issueBadgeIfAbsent
(
@Param
(
"userId"
)
String
userId
,
@Param
(
"badgeId"
)
String
badgeId
);
@Select
({
"select "
,
"ar.apply_record_id as applyRecordId,"
,
"ifnull(b.name, '') as badgeName,"
,
"ar.created_at as applyTime,"
,
"ar.audit_status as auditStatus,"
,
"ifnull(ar.reject_reason, '') as rejectReason "
,
"from adam_caomei_badge_apply_record ar "
,
"left join adam_caomei_badge b on ar.badge_id = b.badge_id "
,
"where ar.user_id = #{uid} "
,
"order by ar.created_at desc"
})
List
<
AdamCaomeiBadgeApplyRecordUserDto
>
selectUserApplyRecordsByUid
(
@Param
(
"uid"
)
String
uid
);
}
}
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/controller/AdamCaomeiBadgeUserController.java
View file @
4a2ab388
...
@@ -3,7 +3,9 @@ package com.liquidnet.service.adam.controller;
...
@@ -3,7 +3,9 @@ package com.liquidnet.service.adam.controller;
import
com.github.xiaoymin.knife4j.annotations.ApiOperationSupport
;
import
com.github.xiaoymin.knife4j.annotations.ApiOperationSupport
;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
com.liquidnet.commons.lang.util.CurrentUtil
;
import
com.liquidnet.commons.lang.util.CurrentUtil
;
import
com.liquidnet.service.adam.dto.param.AdamCaomeiBadgeApplyParam
;
import
com.liquidnet.service.adam.dto.param.AdamCaomeiBadgeClaimParam
;
import
com.liquidnet.service.adam.dto.param.AdamCaomeiBadgeClaimParam
;
import
com.liquidnet.service.adam.dto.vo.AdamCaomeiBadgeApplyRecordUserVo
;
import
com.liquidnet.service.adam.service.IAdamCaomeiBadgeUserService
;
import
com.liquidnet.service.adam.service.IAdamCaomeiBadgeUserService
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.ResponseDto
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
...
@@ -15,8 +17,10 @@ import org.springframework.web.bind.annotation.PostMapping;
...
@@ -15,8 +17,10 @@ import org.springframework.web.bind.annotation.PostMapping;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
javax.validation.Valid
;
import
javax.validation.Valid
;
import
java.util.List
;
@ApiSupport
(
order
=
10046
)
@ApiSupport
(
order
=
10046
)
@Api
(
tags
=
"草莓徽章(用户端)"
)
@Api
(
tags
=
"草莓徽章(用户端)"
)
...
@@ -36,4 +40,20 @@ public class AdamCaomeiBadgeUserController {
...
@@ -36,4 +40,20 @@ public class AdamCaomeiBadgeUserController {
String
uid
=
CurrentUtil
.
getCurrentUid
();
String
uid
=
CurrentUtil
.
getCurrentUid
();
return
adamCaomeiBadgeUserService
.
claimBadge
(
param
.
getBadgeId
(),
uid
);
return
adamCaomeiBadgeUserService
.
claimBadge
(
param
.
getBadgeId
(),
uid
);
}
}
@ApiOperationSupport
(
order
=
2
)
@ApiOperation
(
"补签记录列表"
)
@GetMapping
(
"apply/list"
)
public
ResponseDto
<
List
<
AdamCaomeiBadgeApplyRecordUserVo
>>
applyList
()
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
return
adamCaomeiBadgeUserService
.
getApplyRecords
(
uid
);
}
@ApiOperationSupport
(
order
=
3
)
@ApiOperation
(
"发起补签申请(驳回后可重新上传)"
)
@PostMapping
(
"apply"
)
public
ResponseDto
<
String
>
apply
(
@Valid
@RequestBody
AdamCaomeiBadgeApplyParam
param
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
return
adamCaomeiBadgeUserService
.
applyBadge
(
param
,
uid
);
}
}
}
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/controller/AdamCaomeiPassportUserController.java
View file @
4a2ab388
...
@@ -29,7 +29,7 @@ public class AdamCaomeiPassportUserController {
...
@@ -29,7 +29,7 @@ public class AdamCaomeiPassportUserController {
private
IAdamCaomeiPassportUserService
adamCaomeiPassportUserService
;
private
IAdamCaomeiPassportUserService
adamCaomeiPassportUserService
;
@ApiOperationSupport
(
order
=
1
)
@ApiOperationSupport
(
order
=
1
)
@ApiOperation
(
"绑定实体护照(内含编号有效性、是否可绑等校验)"
)
@ApiOperation
(
"绑定实体护照(内含
·
编号有效性、是否可绑等校验)"
)
@PostMapping
(
"bind"
)
@PostMapping
(
"bind"
)
public
ResponseDto
<
List
<
AdamCaomeiPassportUserClaimedBadgeVo
>>
bind
(
@Valid
@RequestBody
AdamCaomeiPassportNoParam
param
)
{
public
ResponseDto
<
List
<
AdamCaomeiPassportUserClaimedBadgeVo
>>
bind
(
@Valid
@RequestBody
AdamCaomeiPassportNoParam
param
)
{
return
adamCaomeiPassportUserService
.
bindPassport
(
param
.
getPassportNo
());
return
adamCaomeiPassportUserService
.
bindPassport
(
param
.
getPassportNo
());
...
...
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/service/impl/AdamCaomeiBadgeUserServiceImpl.java
View file @
4a2ab388
package
com
.
liquidnet
.
service
.
adam
.
service
.
impl
;
package
com
.
liquidnet
.
service
.
adam
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.service.adam.dto.param.AdamCaomeiBadgeApplyParam
;
import
com.liquidnet.service.adam.dto.AdamCaomeiBadgeApplyRecordUserDto
;
import
com.liquidnet.service.adam.dto.vo.AdamCaomeiBadgeApplyRecordUserVo
;
import
com.liquidnet.service.adam.dto.vo.AdamRealInfoVo
;
import
com.liquidnet.service.adam.dto.vo.AdamRealInfoVo
;
import
com.liquidnet.service.adam.entity.AdamCaomeiBadgeApplyRecord
;
import
com.liquidnet.service.adam.entity.AdamCaomeiBadge
;
import
com.liquidnet.service.adam.entity.AdamCaomeiBadge
;
import
com.liquidnet.service.adam.entity.AdamCaomeiPassport
;
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.AdamCaomeiBadgeMapper
;
import
com.liquidnet.service.adam.mapper.AdamCaomeiPassportMapper
;
import
com.liquidnet.service.adam.mapper.AdamCaomeiPassportMapper
;
import
com.liquidnet.service.adam.service.AdamRdmService
;
import
com.liquidnet.service.adam.service.AdamRdmService
;
...
@@ -16,7 +22,10 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -16,7 +22,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Slf4j
@Slf4j
@Service
@Service
...
@@ -27,6 +36,8 @@ public class AdamCaomeiBadgeUserServiceImpl implements IAdamCaomeiBadgeUserServi
...
@@ -27,6 +36,8 @@ public class AdamCaomeiBadgeUserServiceImpl implements IAdamCaomeiBadgeUserServi
@Autowired
@Autowired
private
AdamCaomeiPassportMapper
adamCaomeiPassportMapper
;
private
AdamCaomeiPassportMapper
adamCaomeiPassportMapper
;
@Autowired
@Autowired
private
AdamCaomeiBadgeApplyRecordMapper
badgeApplyRecordMapper
;
@Autowired
private
AdamRdmService
adamRdmService
;
private
AdamRdmService
adamRdmService
;
@Override
@Override
...
@@ -77,7 +88,7 @@ public class AdamCaomeiBadgeUserServiceImpl implements IAdamCaomeiBadgeUserServi
...
@@ -77,7 +88,7 @@ public class AdamCaomeiBadgeUserServiceImpl implements IAdamCaomeiBadgeUserServi
return
ResponseDto
.
success
(
badgeId
);
return
ResponseDto
.
success
(
badgeId
);
}
else
if
(
type
==
2
)
{
}
else
if
(
type
==
2
)
{
// 演出纪念徽章:需要实名认证 +
购票记录
// 演出纪念徽章:需要实名认证 +
(购票记录 或 补签审核已通过)
AdamRealInfoVo
real
=
adamRdmService
.
getRealInfoVoByUidPlain
(
uid
);
AdamRealInfoVo
real
=
adamRdmService
.
getRealInfoVoByUidPlain
(
uid
);
if
(
real
==
null
||
real
.
getState
()
==
null
||
real
.
getState
()
!=
1
||
StringUtils
.
isBlank
(
real
.
getIdCard
()))
{
if
(
real
==
null
||
real
.
getState
()
==
null
||
real
.
getState
()
!=
1
||
StringUtils
.
isBlank
(
real
.
getIdCard
()))
{
log
.
error
(
"[claimBadge] 认领演出徽章需先实名, uid: {}, badgeId: {}"
,
uid
,
badgeId
);
log
.
error
(
"[claimBadge] 认领演出徽章需先实名, uid: {}, badgeId: {}"
,
uid
,
badgeId
);
...
@@ -86,8 +97,18 @@ public class AdamCaomeiBadgeUserServiceImpl implements IAdamCaomeiBadgeUserServi
...
@@ -86,8 +97,18 @@ public class AdamCaomeiBadgeUserServiceImpl implements IAdamCaomeiBadgeUserServi
String
idCard
=
real
.
getIdCard
();
String
idCard
=
real
.
getIdCard
();
List
<
String
>
paidPerformanceIds
=
adamCaomeiBadgeMapper
.
selectPaidPerformanceIdsByIdCard
(
idCard
);
List
<
String
>
paidPerformanceIds
=
adamCaomeiBadgeMapper
.
selectPaidPerformanceIdsByIdCard
(
idCard
);
if
(
paidPerformanceIds
==
null
||
!
paidPerformanceIds
.
contains
(
badge
.
getPerformanceId
()))
{
// 有支付记录
log
.
error
(
"[claimBadge] 未查询到该演出的购票记录,无法认领, uid: {}, badgeId: {}"
,
uid
,
badgeId
);
boolean
hasPaidRecord
=
paidPerformanceIds
!=
null
&&
paidPerformanceIds
.
contains
(
badge
.
getPerformanceId
());
Integer
passedApplyCount
=
badgeApplyRecordMapper
.
selectCount
(
Wrappers
.
lambdaQuery
(
AdamCaomeiBadgeApplyRecord
.
class
)
.
eq
(
AdamCaomeiBadgeApplyRecord:
:
getUserId
,
uid
)
.
eq
(
AdamCaomeiBadgeApplyRecord:
:
getBadgeId
,
badgeId
)
.
eq
(
AdamCaomeiBadgeApplyRecord:
:
getAuditStatus
,
1
)
);
boolean
hasPassedApply
=
passedApplyCount
!=
null
&&
passedApplyCount
>
0
;
if
(!
hasPaidRecord
&&
!
hasPassedApply
)
{
log
.
error
(
"[claimBadge] 无购票记录且无通过的补签申请,无法认领, uid: {}, badgeId: {}"
,
uid
,
badgeId
);
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"10611"
));
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"10611"
));
}
}
...
@@ -100,8 +121,9 @@ public class AdamCaomeiBadgeUserServiceImpl implements IAdamCaomeiBadgeUserServi
...
@@ -100,8 +121,9 @@ public class AdamCaomeiBadgeUserServiceImpl implements IAdamCaomeiBadgeUserServi
// );
// );
// for (AdamCaomeiBadge perfBadge : performanceBadges) {
// for (AdamCaomeiBadge perfBadge : performanceBadges) {
// 发放徽章 (source: 2-购票自动发放/演出徽章认领)
// 发放徽章:2-购票自动发放/演出徽章认领,3-补签审核通过后认领
adamCaomeiBadgeMapper
.
insertUserBadge
(
uid
,
badgeId
,
2
);
int
source
=
hasPaidRecord
?
2
:
3
;
adamCaomeiBadgeMapper
.
insertUserBadge
(
uid
,
badgeId
,
source
);
adamRdmService
.
delUserCaomeiBadgesByUid
(
uid
);
adamRdmService
.
delUserCaomeiBadgesByUid
(
uid
);
// }
// }
...
@@ -117,4 +139,83 @@ public class AdamCaomeiBadgeUserServiceImpl implements IAdamCaomeiBadgeUserServi
...
@@ -117,4 +139,83 @@ public class AdamCaomeiBadgeUserServiceImpl implements IAdamCaomeiBadgeUserServi
log
.
error
(
"[claimBadge] 未知的徽章类型, uid: {}, badgeId: {}, type: {}"
,
uid
,
badgeId
,
type
);
log
.
error
(
"[claimBadge] 未知的徽章类型, uid: {}, badgeId: {}, type: {}"
,
uid
,
badgeId
,
type
);
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"10613"
));
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"10613"
));
}
}
@Override
public
ResponseDto
<
List
<
AdamCaomeiBadgeApplyRecordUserVo
>>
getApplyRecords
(
String
uid
)
{
if
(
StringUtils
.
isBlank
(
uid
))
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"10001"
));
}
List
<
AdamCaomeiBadgeApplyRecordUserDto
>
rows
=
badgeApplyRecordMapper
.
selectUserApplyRecordsByUid
(
uid
);
if
(
rows
==
null
)
{
rows
=
Collections
.
emptyList
();
}
List
<
AdamCaomeiBadgeApplyRecordUserVo
>
list
=
rows
.
stream
().
map
(
r
->
{
AdamCaomeiBadgeApplyRecordUserVo
v
=
new
AdamCaomeiBadgeApplyRecordUserVo
();
v
.
setApplyRecordId
(
r
.
getApplyRecordId
());
v
.
setBadgeName
(
StringUtils
.
defaultString
(
r
.
getBadgeName
()));
v
.
setApplyTime
(
r
.
getApplyTime
());
v
.
setAuditStatus
(
r
.
getAuditStatus
());
v
.
setRejectReason
(
StringUtils
.
defaultString
(
r
.
getRejectReason
()));
v
.
setCanReupload
(
r
.
getAuditStatus
()
!=
null
&&
r
.
getAuditStatus
()
==
2
);
return
v
;
}).
collect
(
Collectors
.
toList
());
return
ResponseDto
.
success
(
list
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ResponseDto
<
String
>
applyBadge
(
AdamCaomeiBadgeApplyParam
param
,
String
uid
)
{
if
(
StringUtils
.
isBlank
(
uid
))
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"10001"
));
}
if
(
param
==
null
||
StringUtils
.
isBlank
(
param
.
getBadgeId
())
||
StringUtils
.
isBlank
(
param
.
getProofImageUrl
()))
{
return
ResponseDto
.
failure
(
"参数错误"
);
}
String
badgeId
=
StringUtils
.
trimToEmpty
(
param
.
getBadgeId
());
String
proofImageUrl
=
StringUtils
.
trimToEmpty
(
param
.
getProofImageUrl
());
AdamCaomeiBadge
badge
=
adamCaomeiBadgeMapper
.
selectOne
(
Wrappers
.
lambdaQuery
(
AdamCaomeiBadge
.
class
)
.
eq
(
AdamCaomeiBadge:
:
getBadgeId
,
badgeId
)
.
last
(
"limit 1"
)
);
if
(
badge
==
null
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"10607"
));
}
if
(
badge
.
getType
()
==
null
||
badge
.
getType
()
!=
2
)
{
return
ResponseDto
.
failure
(
"仅演出纪念徽章支持补签申请"
);
}
int
claimedCount
=
adamCaomeiBadgeMapper
.
checkUserBadgeExists
(
uid
,
badgeId
);
if
(
claimedCount
>
0
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"10608"
));
}
Integer
pendingCount
=
badgeApplyRecordMapper
.
selectCount
(
Wrappers
.
lambdaQuery
(
AdamCaomeiBadgeApplyRecord
.
class
)
.
eq
(
AdamCaomeiBadgeApplyRecord:
:
getUserId
,
uid
)
.
eq
(
AdamCaomeiBadgeApplyRecord:
:
getBadgeId
,
badgeId
)
.
eq
(
AdamCaomeiBadgeApplyRecord:
:
getAuditStatus
,
0
)
);
if
(
pendingCount
!=
null
&&
pendingCount
>
0
)
{
return
ResponseDto
.
failure
(
"您已有待审核的补签申请,请勿重复提交"
);
}
Date
now
=
new
Date
();
AdamCaomeiBadgeApplyRecord
record
=
new
AdamCaomeiBadgeApplyRecord
();
record
.
setApplyRecordId
(
IDGenerator
.
nextSnowId
());
record
.
setUserId
(
uid
);
record
.
setBadgeId
(
badgeId
);
record
.
setPerformanceId
(
StringUtils
.
defaultString
(
badge
.
getPerformanceId
()));
record
.
setProofImageUrl
(
proofImageUrl
);
record
.
setAuditStatus
(
0
);
record
.
setRejectReason
(
""
);
record
.
setCreatedAt
(
now
);
record
.
setUpdatedAt
(
now
);
int
inserted
=
badgeApplyRecordMapper
.
insert
(
record
);
if
(
inserted
<=
0
)
{
return
ResponseDto
.
failure
();
}
return
ResponseDto
.
success
(
record
.
getApplyRecordId
());
}
}
}
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/service/impl/AdamCaomeiPassportUserServiceImpl.java
View file @
4a2ab388
...
@@ -5,7 +5,9 @@ import com.liquidnet.commons.lang.util.CurrentUtil;
...
@@ -5,7 +5,9 @@ import com.liquidnet.commons.lang.util.CurrentUtil;
import
com.liquidnet.service.adam.dto.AdamCaomeiPassportUserBadgeDto
;
import
com.liquidnet.service.adam.dto.AdamCaomeiPassportUserBadgeDto
;
import
com.liquidnet.service.adam.dto.vo.*
;
import
com.liquidnet.service.adam.dto.vo.*
;
import
com.liquidnet.service.adam.entity.AdamCaomeiBadge
;
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.entity.AdamCaomeiPassport
;
import
com.liquidnet.service.adam.mapper.AdamCaomeiBadgeApplyRecordMapper
;
import
com.liquidnet.service.adam.mapper.AdamCaomeiBadgeMapper
;
import
com.liquidnet.service.adam.mapper.AdamCaomeiBadgeMapper
;
import
com.liquidnet.service.adam.mapper.AdamCaomeiPassportMapper
;
import
com.liquidnet.service.adam.mapper.AdamCaomeiPassportMapper
;
import
com.liquidnet.service.adam.service.AdamRdmService
;
import
com.liquidnet.service.adam.service.AdamRdmService
;
...
@@ -22,6 +24,7 @@ import java.util.ArrayList;
...
@@ -22,6 +24,7 @@ import java.util.ArrayList;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.function.Function
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -34,6 +37,8 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
...
@@ -34,6 +37,8 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
@Autowired
@Autowired
private
AdamCaomeiBadgeMapper
adamCaomeiBadgeMapper
;
private
AdamCaomeiBadgeMapper
adamCaomeiBadgeMapper
;
@Autowired
@Autowired
private
AdamCaomeiBadgeApplyRecordMapper
badgeApplyRecordMapper
;
@Autowired
private
AdamRdmService
adamRdmService
;
private
AdamRdmService
adamRdmService
;
@Override
@Override
...
@@ -132,6 +137,7 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
...
@@ -132,6 +137,7 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
AdamCaomeiPassportUserCardVo
card
=
new
AdamCaomeiPassportUserCardVo
();
AdamCaomeiPassportUserCardVo
card
=
new
AdamCaomeiPassportUserCardVo
();
card
.
setPassportBound
(
true
);
card
.
setPassportBound
(
true
);
card
.
setPassportNo
(
bound
.
getPassportNo
());
card
.
setPassportNo
(
bound
.
getPassportNo
());
card
.
setPassportClaimedAt
(
bound
.
getBoundAt
());
home
.
setUserCard
(
card
);
home
.
setUserCard
(
card
);
// 2. 获取用户基本信息(头像、昵称)
// 2. 获取用户基本信息(头像、昵称)
...
@@ -162,6 +168,24 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
...
@@ -162,6 +168,24 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
:
new
ArrayList
<>();
:
new
ArrayList
<>();
log
.
info
(
"[getPassportHome] 用户已支付的演出订单数量, uid: {}, 数量: {}"
,
uid
,
paidPerformanceIds
.
size
());
log
.
info
(
"[getPassportHome] 用户已支付的演出订单数量, uid: {}, 数量: {}"
,
uid
,
paidPerformanceIds
.
size
());
// 5.1 查询用户补签审核已通过的徽章(用于判断演出徽章是否可认领)
Set
<
String
>
passedApplyBadgeIds
=
badgeApplyRecordMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
AdamCaomeiBadgeApplyRecord
.
class
)
.
eq
(
AdamCaomeiBadgeApplyRecord:
:
getUserId
,
uid
)
.
eq
(
AdamCaomeiBadgeApplyRecord:
:
getAuditStatus
,
1
)
).
stream
().
map
(
AdamCaomeiBadgeApplyRecord:
:
getBadgeId
)
.
filter
(
StringUtils:
:
isNotBlank
)
.
collect
(
Collectors
.
toSet
());
// 5.2 查询用户补签待审核的徽章(用于前端展示“审核中”状态)
Set
<
String
>
pendingApplyBadgeIds
=
badgeApplyRecordMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
AdamCaomeiBadgeApplyRecord
.
class
)
.
eq
(
AdamCaomeiBadgeApplyRecord:
:
getUserId
,
uid
)
.
eq
(
AdamCaomeiBadgeApplyRecord:
:
getAuditStatus
,
0
)
).
stream
().
map
(
AdamCaomeiBadgeApplyRecord:
:
getBadgeId
)
.
filter
(
StringUtils:
:
isNotBlank
)
.
collect
(
Collectors
.
toSet
());
// 6. 查询用户已认领的所有徽章记录 (用于展示徽章墙)
// 6. 查询用户已认领的所有徽章记录 (用于展示徽章墙)
List
<
AdamCaomeiPassportUserBadgeDto
>
rows
=
adamRdmService
.
getUserCaomeiBadgesByUid
(
uid
);
List
<
AdamCaomeiPassportUserBadgeDto
>
rows
=
adamRdmService
.
getUserCaomeiBadgesByUid
(
uid
);
if
(
rows
==
null
)
{
if
(
rows
==
null
)
{
...
@@ -194,7 +218,7 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
...
@@ -194,7 +218,7 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
// 8. 组装全部上架徽章列表 (扁平结构,前端按 type 筛选展示)
// 8. 组装全部上架徽章列表 (扁平结构,前端按 type 筛选展示)
List
<
AdamCaomeiPassportBadgeShelfItemVo
>
allBadges
=
published
.
stream
()
List
<
AdamCaomeiPassportBadgeShelfItemVo
>
allBadges
=
published
.
stream
()
.
map
(
b
->
toShelfItem
(
b
,
claimedMap
,
paidPerformanceIds
))
.
map
(
b
->
toShelfItem
(
b
,
claimedMap
,
paidPerformanceIds
,
passedApplyBadgeIds
,
pendingApplyBadgeIds
))
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
home
.
setAllBadges
(
allBadges
);
home
.
setAllBadges
(
allBadges
);
...
@@ -206,17 +230,22 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
...
@@ -206,17 +230,22 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
* @param b 徽章信息
* @param b 徽章信息
* @param claimedMap 用户已领取的徽章
* @param claimedMap 用户已领取的徽章
* @param paidPerformanceIds 当前账号实名身份证号码购买的演出IDs
* @param paidPerformanceIds 当前账号实名身份证号码购买的演出IDs
* @param passedApplyBadgeIds 补签审核已通过的徽章ID集合
* @param pendingApplyBadgeIds 补签待审核的徽章ID集合
* @return
* @return
*/
*/
private
static
AdamCaomeiPassportBadgeShelfItemVo
toShelfItem
(
AdamCaomeiBadge
b
,
private
static
AdamCaomeiPassportBadgeShelfItemVo
toShelfItem
(
AdamCaomeiBadge
b
,
Map
<
String
,
AdamCaomeiPassportUserBadgeDto
>
claimedMap
,
Map
<
String
,
AdamCaomeiPassportUserBadgeDto
>
claimedMap
,
List
<
String
>
paidPerformanceIds
)
{
List
<
String
>
paidPerformanceIds
,
Set
<
String
>
passedApplyBadgeIds
,
Set
<
String
>
pendingApplyBadgeIds
)
{
AdamCaomeiPassportBadgeShelfItemVo
v
=
new
AdamCaomeiPassportBadgeShelfItemVo
();
AdamCaomeiPassportBadgeShelfItemVo
v
=
new
AdamCaomeiPassportBadgeShelfItemVo
();
v
.
setBadgeId
(
b
.
getBadgeId
());
v
.
setBadgeId
(
b
.
getBadgeId
());
v
.
setName
(
StringUtils
.
defaultString
(
b
.
getName
()));
v
.
setName
(
StringUtils
.
defaultString
(
b
.
getName
()));
v
.
setIcon
(
StringUtils
.
defaultString
(
b
.
getIcon
()));
v
.
setIcon
(
StringUtils
.
defaultString
(
b
.
getIcon
()));
v
.
setType
(
b
.
getType
());
v
.
setType
(
b
.
getType
());
v
.
setPerformanceId
(
StringUtils
.
defaultString
(
b
.
getPerformanceId
()));
v
.
setPerformanceId
(
StringUtils
.
defaultString
(
b
.
getPerformanceId
()));
v
.
setApplyPending
(
false
);
// 判断当前徽章是否已认领
// 判断当前徽章是否已认领
AdamCaomeiPassportUserBadgeDto
got
=
claimedMap
.
get
(
b
.
getBadgeId
());
AdamCaomeiPassportUserBadgeDto
got
=
claimedMap
.
get
(
b
.
getBadgeId
());
...
@@ -232,8 +261,11 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
...
@@ -232,8 +261,11 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
// 护照纪念徽章:只要绑定了护照,就可认领(通常是绑定时漏发或后来新上架的)
// 护照纪念徽章:只要绑定了护照,就可认领(通常是绑定时漏发或后来新上架的)
v
.
setClaimable
(
true
);
v
.
setClaimable
(
true
);
}
else
if
(
type
==
2
)
{
}
else
if
(
type
==
2
)
{
// 演出纪念徽章:只要有对应演出的已支付购票记录,就可认领
// 演出纪念徽章:有购票记录或补签审核通过即可认领
v
.
setClaimable
(
paidPerformanceIds
!=
null
&&
paidPerformanceIds
.
contains
(
b
.
getPerformanceId
()));
boolean
canClaimByPaid
=
paidPerformanceIds
!=
null
&&
paidPerformanceIds
.
contains
(
b
.
getPerformanceId
());
boolean
canClaimByApply
=
passedApplyBadgeIds
!=
null
&&
passedApplyBadgeIds
.
contains
(
b
.
getBadgeId
());
v
.
setClaimable
(
canClaimByPaid
||
canClaimByApply
);
v
.
setApplyPending
(
pendingApplyBadgeIds
!=
null
&&
pendingApplyBadgeIds
.
contains
(
b
.
getBadgeId
()));
}
else
if
(
type
==
3
)
{
}
else
if
(
type
==
3
)
{
// 特殊徽章:不可自助领取,需要提示用户
// 特殊徽章:不可自助领取,需要提示用户
v
.
setClaimable
(
false
);
v
.
setClaimable
(
false
);
...
...
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/resources/errors.properties
View file @
4a2ab388
...
@@ -98,7 +98,7 @@
...
@@ -98,7 +98,7 @@
10608
=
\u
60A8
\u
5DF2
\u9886\u
53D6
\u
8FC7
\u
8BE5
\u
5FBD
\u
7AE0
10608
=
\u
60A8
\u
5DF2
\u9886\u
53D6
\u
8FC7
\u
8BE5
\u
5FBD
\u
7AE0
10609
=
\u
8BA4
\u9886\u
62A4
\u7167\u
7EAA
\u
5FF5
\u
5FBD
\u
7AE0
\u9700\u5148\u
7ED1
\u
5B9A
\u
62A4
\u7167
10609
=
\u
8BA4
\u9886\u
62A4
\u7167\u
7EAA
\u
5FF5
\u
5FBD
\u
7AE0
\u9700\u5148\u
7ED1
\u
5B9A
\u
62A4
\u7167
10610
=
\u
8BA4
\u9886\u
6F14
\u
51FA
\u
5FBD
\u
7AE0
\u9700\u5148\u
5B9E
\u
540D
10610
=
\u
8BA4
\u9886\u
6F14
\u
51FA
\u
5FBD
\u
7AE0
\u9700\u5148\u
5B9E
\u
540D
10611
=
\u
6
72A
\u
67E5
\u
8BE2
\u5230\u
8BE5
\u
6F14
\u
51FA
\u7684\u
8D2D
\u7968\u
8BB0
\u
5F55
\u
FF0C
\u
65E0
\u
6CD5
\u
8BA4
\u9886
10611
=
\u
6
0A8
\u6682\u
65E0
\u
8D2D
\u7968\u
8BB0
\u
5F55
\u
FF0C
\u
8BF7
\u
4E0A
\u
4F20
\u
8BA2
\u5355\u
622A
\u
56FE
10612
=
\u7279\u
6B8A
\u
5FBD
\u
7AE0
\u
4E0D
\u
53EF
\u
81EA
\u
52A9
\u9886\u
53D6
10612
=
\u7279\u
6B8A
\u
5FBD
\u
7AE0
\u
4E0D
\u
53EF
\u
81EA
\u
52A9
\u9886\u
53D6
10613
=
\u
672A
\u
77E5
\u7684\u
5FBD
\u
7AE0
\u
7C7B
\u
578B
10613
=
\u
672A
\u
77E5
\u7684\u
5FBD
\u
7AE0
\u
7C7B
\u
578B
...
...
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