记得上下班打卡 | 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
e2bbf431
Commit
e2bbf431
authored
Apr 13, 2026
by
wangyifan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
草莓护照-徽章添加排序
parent
293461cf
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
127 additions
and
23 deletions
+127
-23
zhengzai-caomeihuizhang.sql
docu/zhengzai-caomeihuizhang.sql
+4
-1
AdamCaomeiBadgeParam.java
...iquidnet/service/adam/dto/param/AdamCaomeiBadgeParam.java
+3
-0
AdamCaomeiBadgeVo.java
.../com/liquidnet/service/adam/dto/vo/AdamCaomeiBadgeVo.java
+4
-0
AdamCaomeiBadgeController.java
...b/controller/zhengzai/adam/AdamCaomeiBadgeController.java
+4
-22
badge_add.html
...urces/templates/zhengzai/adam/caomei/badge/badge_add.html
+6
-0
badge_detail.html
...es/templates/zhengzai/adam/caomei/badge/badge_detail.html
+6
-0
badge_edit.html
...rces/templates/zhengzai/adam/caomei/badge/badge_edit.html
+6
-0
badge_list.html
...rces/templates/zhengzai/adam/caomei/badge/badge_list.html
+4
-0
IAdamCaomeiBadgeAdminService.java
...n/zhengzai/adam/service/IAdamCaomeiBadgeAdminService.java
+11
-0
AdamCaomeiBadgeAdminServiceImpl.java
...ai/adam/service/impl/AdamCaomeiBadgeAdminServiceImpl.java
+48
-0
AdamCaomeiBadgeClaimCountDto.java
...uidnet/service/adam/dto/AdamCaomeiBadgeClaimCountDto.java
+9
-0
AdamCaomeiBadge.java
...va/com/liquidnet/service/adam/entity/AdamCaomeiBadge.java
+5
-0
AdamCaomeiBadgeMapper.java
.../liquidnet/service/adam/mapper/AdamCaomeiBadgeMapper.java
+17
-0
No files found.
docu/zhengzai-caomeihuizhang.sql
View file @
e2bbf431
...
@@ -69,4 +69,7 @@ CREATE TABLE `adam_caomei_badge_apply_record` (
...
@@ -69,4 +69,7 @@ CREATE TABLE `adam_caomei_badge_apply_record` (
KEY
`idx_record_id`
(
`apply_record_id`
),
KEY
`idx_record_id`
(
`apply_record_id`
),
KEY
`idx_user_id`
(
`user_id`
),
KEY
`idx_user_id`
(
`user_id`
),
KEY
`idx_audit_status`
(
`audit_status`
)
KEY
`idx_audit_status`
(
`audit_status`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_unicode_ci
COMMENT
=
'草莓护照-徽章补签申请记录表'
;
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_unicode_ci
COMMENT
=
'草莓护照-徽章补签申请记录表'
;
\ No newline at end of file
-- 2026-04-13 新增排序字段
ALTER
TABLE
`adam_caomei_badge`
ADD
COLUMN
`sort`
int
(
11
)
NOT
NULL
DEFAULT
0
COMMENT
'排序值,数值越大越靠前'
AFTER
`display_status`
;
\ No newline at end of file
liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/dto/param/AdamCaomeiBadgeParam.java
View file @
e2bbf431
...
@@ -31,4 +31,7 @@ public class AdamCaomeiBadgeParam {
...
@@ -31,4 +31,7 @@ public class AdamCaomeiBadgeParam {
@ApiModelProperty
(
value
=
"上架状态: 0-下架(默认), 1-已发布"
)
@ApiModelProperty
(
value
=
"上架状态: 0-下架(默认), 1-已发布"
)
private
Integer
displayStatus
;
private
Integer
displayStatus
;
@ApiModelProperty
(
value
=
"排序值,数值越大越靠前"
)
private
Integer
sort
;
}
}
liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/dto/vo/AdamCaomeiBadgeVo.java
View file @
e2bbf431
...
@@ -34,6 +34,9 @@ public class AdamCaomeiBadgeVo {
...
@@ -34,6 +34,9 @@ public class AdamCaomeiBadgeVo {
@ApiModelProperty
(
value
=
"上架状态: 0-下架(默认), 1-已发布"
)
@ApiModelProperty
(
value
=
"上架状态: 0-下架(默认), 1-已发布"
)
private
Integer
displayStatus
;
private
Integer
displayStatus
;
@ApiModelProperty
(
value
=
"排序值,数值越大越靠前"
)
private
Integer
sort
;
@ApiModelProperty
(
value
=
"添加时间"
)
@ApiModelProperty
(
value
=
"添加时间"
)
private
Date
createdAt
;
private
Date
createdAt
;
...
@@ -42,4 +45,5 @@ public class AdamCaomeiBadgeVo {
...
@@ -42,4 +45,5 @@ public class AdamCaomeiBadgeVo {
@ApiModelProperty
(
value
=
"领取人数"
)
@ApiModelProperty
(
value
=
"领取人数"
)
private
Integer
claimedCount
;
private
Integer
claimedCount
;
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/java/com/liquidnet/client/admin/web/controller/zhengzai/adam/AdamCaomeiBadgeController.java
View file @
e2bbf431
package
com
.
liquidnet
.
client
.
admin
.
web
.
controller
.
zhengzai
.
adam
;
package
com
.
liquidnet
.
client
.
admin
.
web
.
controller
.
zhengzai
.
adam
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.liquidnet.client.admin.common.annotation.Log
;
import
com.liquidnet.client.admin.common.annotation.Log
;
import
com.liquidnet.client.admin.common.core.controller.BaseController
;
import
com.liquidnet.client.admin.common.core.controller.BaseController
;
import
com.liquidnet.client.admin.common.core.domain.AjaxResult
;
import
com.liquidnet.client.admin.common.core.domain.AjaxResult
;
...
@@ -24,7 +22,6 @@ import org.springframework.web.bind.annotation.*;
...
@@ -24,7 +22,6 @@ import org.springframework.web.bind.annotation.*;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Api
(
tags
=
"草莓护照-徽章管理"
)
@Api
(
tags
=
"草莓护照-徽章管理"
)
@Controller
@Controller
...
@@ -47,25 +44,7 @@ public class AdamCaomeiBadgeController extends BaseController {
...
@@ -47,25 +44,7 @@ public class AdamCaomeiBadgeController extends BaseController {
@ResponseBody
@ResponseBody
public
TableDataInfo
list
(
AdamCaomeiBadgeSearchParam
param
)
{
public
TableDataInfo
list
(
AdamCaomeiBadgeSearchParam
param
)
{
startPage
();
startPage
();
LambdaQueryWrapper
<
AdamCaomeiBadge
>
queryWrapper
=
Wrappers
.
lambdaQuery
(
AdamCaomeiBadge
.
class
);
List
<
AdamCaomeiBadgeVo
>
voList
=
adamCaomeiBadgeAdminService
.
listWithClaimedCount
(
param
);
if
(
StringUtils
.
isNotBlank
(
param
.
getName
()))
{
queryWrapper
.
like
(
AdamCaomeiBadge:
:
getName
,
param
.
getName
());
}
if
(
param
.
getType
()
!=
null
)
{
queryWrapper
.
eq
(
AdamCaomeiBadge:
:
getType
,
param
.
getType
());
}
if
(
param
.
getDisplayStatus
()
!=
null
)
{
queryWrapper
.
eq
(
AdamCaomeiBadge:
:
getDisplayStatus
,
param
.
getDisplayStatus
());
}
queryWrapper
.
orderByDesc
(
AdamCaomeiBadge:
:
getCreatedAt
);
List
<
AdamCaomeiBadge
>
list
=
adamCaomeiBadgeAdminService
.
list
(
queryWrapper
);
List
<
AdamCaomeiBadgeVo
>
voList
=
list
.
stream
().
map
(
item
->
{
AdamCaomeiBadgeVo
vo
=
new
AdamCaomeiBadgeVo
();
BeanUtils
.
copyProperties
(
item
,
vo
);
vo
.
setClaimedCount
(
0
);
// TODO: 关联 user_badge 表统计领取人数
return
vo
;
}).
collect
(
Collectors
.
toList
());
return
getDataTable
(
voList
);
return
getDataTable
(
voList
);
}
}
...
@@ -83,6 +62,9 @@ public class AdamCaomeiBadgeController extends BaseController {
...
@@ -83,6 +62,9 @@ public class AdamCaomeiBadgeController extends BaseController {
BeanUtils
.
copyProperties
(
param
,
badge
);
BeanUtils
.
copyProperties
(
param
,
badge
);
badge
.
setBadgeId
(
IDGenerator
.
nextSnowId
());
badge
.
setBadgeId
(
IDGenerator
.
nextSnowId
());
badge
.
setDisplayStatus
(
0
);
// 默认下架
badge
.
setDisplayStatus
(
0
);
// 默认下架
if
(
badge
.
getSort
()
==
null
)
{
badge
.
setSort
(
0
);
}
badge
.
setCreatedAt
(
new
Date
());
badge
.
setCreatedAt
(
new
Date
());
badge
.
setUpdatedAt
(
new
Date
());
badge
.
setUpdatedAt
(
new
Date
());
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/adam/caomei/badge/badge_add.html
View file @
e2bbf431
...
@@ -29,6 +29,12 @@
...
@@ -29,6 +29,12 @@
</select>
</select>
</div>
</div>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"col-sm-3 control-label"
>
排序:
</label>
<div
class=
"col-sm-8"
>
<input
name=
"sort"
class=
"form-control"
type=
"number"
min=
"0"
value=
"0"
placeholder=
"数值越大越靠前"
>
</div>
</div>
<div
class=
"form-group"
id=
"ticketTimesDiv"
style=
"display: none;"
>
<div
class=
"form-group"
id=
"ticketTimesDiv"
style=
"display: none;"
>
<label
class=
"col-sm-3 control-label is-required"
>
关联演出场次:
</label>
<label
class=
"col-sm-3 control-label is-required"
>
关联演出场次:
</label>
<div
class=
"col-sm-8"
>
<div
class=
"col-sm-8"
>
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/adam/caomei/badge/badge_detail.html
View file @
e2bbf431
...
@@ -42,6 +42,12 @@
...
@@ -42,6 +42,12 @@
<div
class=
"form-control-static"
th:if=
"*{displayStatus == 0}"
>
下架
</div>
<div
class=
"form-control-static"
th:if=
"*{displayStatus == 0}"
>
下架
</div>
</div>
</div>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"col-sm-3 control-label"
>
排序:
</label>
<div
class=
"col-sm-8"
>
<div
class=
"form-control-static"
th:text=
"*{sort}"
></div>
</div>
</div>
</form>
</form>
</div>
</div>
<th:block
th:include=
"include :: footer"
/>
<th:block
th:include=
"include :: footer"
/>
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/adam/caomei/badge/badge_edit.html
View file @
e2bbf431
...
@@ -30,6 +30,12 @@
...
@@ -30,6 +30,12 @@
</select>
</select>
</div>
</div>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"col-sm-3 control-label"
>
排序:
</label>
<div
class=
"col-sm-8"
>
<input
name=
"sort"
th:field=
"*{sort}"
class=
"form-control"
type=
"number"
min=
"0"
placeholder=
"数值越大越靠前"
>
</div>
</div>
<div
class=
"form-group"
id=
"ticketTimesDiv"
th:style=
"${badge.type == 2 ? 'display:block;' : 'display:none;'}"
>
<div
class=
"form-group"
id=
"ticketTimesDiv"
th:style=
"${badge.type == 2 ? 'display:block;' : 'display:none;'}"
>
<label
class=
"col-sm-3 control-label is-required"
>
关联演出场次:
</label>
<label
class=
"col-sm-3 control-label is-required"
>
关联演出场次:
</label>
<div
class=
"col-sm-8"
>
<div
class=
"col-sm-8"
>
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/adam/caomei/badge/badge_list.html
View file @
e2bbf431
...
@@ -108,6 +108,10 @@
...
@@ -108,6 +108,10 @@
field
:
'claimedCount'
,
field
:
'claimedCount'
,
title
:
'领取人数'
title
:
'领取人数'
},
},
{
field
:
'sort'
,
title
:
'排序(越大越靠前)'
},
{
{
field
:
'displayStatus'
,
field
:
'displayStatus'
,
title
:
'状态'
,
title
:
'状态'
,
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/adam/service/IAdamCaomeiBadgeAdminService.java
View file @
e2bbf431
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
adam
.
service
;
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
adam
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.liquidnet.service.adam.dto.param.AdamCaomeiBadgeSearchParam
;
import
com.liquidnet.service.adam.dto.vo.AdamCaomeiBadgeVo
;
import
com.liquidnet.service.adam.entity.AdamCaomeiBadge
;
import
com.liquidnet.service.adam.entity.AdamCaomeiBadge
;
import
java.util.List
;
/**
/**
* 草莓护照-徽章管理
* 草莓护照-徽章管理
*/
*/
public
interface
IAdamCaomeiBadgeAdminService
extends
IService
<
AdamCaomeiBadge
>
{
public
interface
IAdamCaomeiBadgeAdminService
extends
IService
<
AdamCaomeiBadge
>
{
/**
* 徽章管理(每个徽章领取人数)
* @param param
* @return
*/
List
<
AdamCaomeiBadgeVo
>
listWithClaimedCount
(
AdamCaomeiBadgeSearchParam
param
);
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/adam/service/impl/AdamCaomeiBadgeAdminServiceImpl.java
View file @
e2bbf431
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
adam
.
service
.
impl
;
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
adam
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.liquidnet.client.admin.zhengzai.adam.service.IAdamCaomeiBadgeAdminService
;
import
com.liquidnet.client.admin.zhengzai.adam.service.IAdamCaomeiBadgeAdminService
;
import
com.liquidnet.service.adam.dto.AdamCaomeiBadgeClaimCountDto
;
import
com.liquidnet.service.adam.dto.param.AdamCaomeiBadgeSearchParam
;
import
com.liquidnet.service.adam.dto.vo.AdamCaomeiBadgeVo
;
import
com.liquidnet.service.adam.entity.AdamCaomeiBadge
;
import
com.liquidnet.service.adam.entity.AdamCaomeiBadge
;
import
com.liquidnet.service.adam.mapper.AdamCaomeiBadgeMapper
;
import
com.liquidnet.service.adam.mapper.AdamCaomeiBadgeMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
@Slf4j
@Slf4j
@Service
@Service
public
class
AdamCaomeiBadgeAdminServiceImpl
extends
ServiceImpl
<
AdamCaomeiBadgeMapper
,
AdamCaomeiBadge
>
implements
IAdamCaomeiBadgeAdminService
{
public
class
AdamCaomeiBadgeAdminServiceImpl
extends
ServiceImpl
<
AdamCaomeiBadgeMapper
,
AdamCaomeiBadge
>
implements
IAdamCaomeiBadgeAdminService
{
@Override
public
List
<
AdamCaomeiBadgeVo
>
listWithClaimedCount
(
AdamCaomeiBadgeSearchParam
param
)
{
LambdaQueryWrapper
<
AdamCaomeiBadge
>
queryWrapper
=
Wrappers
.
lambdaQuery
(
AdamCaomeiBadge
.
class
);
if
(
StringUtils
.
isNotBlank
(
param
.
getName
()))
{
queryWrapper
.
like
(
AdamCaomeiBadge:
:
getName
,
param
.
getName
());
}
if
(
param
.
getType
()
!=
null
)
{
queryWrapper
.
eq
(
AdamCaomeiBadge:
:
getType
,
param
.
getType
());
}
if
(
param
.
getDisplayStatus
()
!=
null
)
{
queryWrapper
.
eq
(
AdamCaomeiBadge:
:
getDisplayStatus
,
param
.
getDisplayStatus
());
}
queryWrapper
.
orderByDesc
(
AdamCaomeiBadge:
:
getSort
,
AdamCaomeiBadge:
:
getUpdatedAt
);
List
<
AdamCaomeiBadge
>
badges
=
this
.
list
(
queryWrapper
);
if
(
badges
.
isEmpty
())
{
return
Collections
.
emptyList
();
}
List
<
String
>
badgeIds
=
badges
.
stream
()
.
map
(
AdamCaomeiBadge:
:
getBadgeId
)
.
filter
(
StringUtils:
:
isNotBlank
)
.
collect
(
Collectors
.
toList
());
// key: 徽章ID,value: 领取人数
Map
<
String
,
Integer
>
countMap
=
badgeIds
.
isEmpty
()
?
Collections
.
emptyMap
()
:
baseMapper
.
selectClaimedCountByBadgeIds
(
badgeIds
).
stream
()
.
collect
(
Collectors
.
toMap
(
AdamCaomeiBadgeClaimCountDto:
:
getBadgeId
,
AdamCaomeiBadgeClaimCountDto:
:
getClaimedCount
,
(
a
,
b
)
->
a
));
return
badges
.
stream
().
map
(
item
->
{
AdamCaomeiBadgeVo
vo
=
new
AdamCaomeiBadgeVo
();
BeanUtils
.
copyProperties
(
item
,
vo
);
vo
.
setClaimedCount
(
countMap
.
getOrDefault
(
item
.
getBadgeId
(),
0
));
return
vo
;
}).
collect
(
Collectors
.
toList
());
}
}
}
liquidnet-bus-do/liquidnet-service-adam-do/src/main/java/com/liquidnet/service/adam/dto/AdamCaomeiBadgeClaimCountDto.java
0 → 100644
View file @
e2bbf431
package
com
.
liquidnet
.
service
.
adam
.
dto
;
import
lombok.Data
;
@Data
public
class
AdamCaomeiBadgeClaimCountDto
{
private
String
badgeId
;
private
Integer
claimedCount
;
}
liquidnet-bus-do/liquidnet-service-adam-do/src/main/java/com/liquidnet/service/adam/entity/AdamCaomeiBadge.java
View file @
e2bbf431
...
@@ -53,6 +53,11 @@ public class AdamCaomeiBadge implements Serializable {
...
@@ -53,6 +53,11 @@ public class AdamCaomeiBadge implements Serializable {
*/
*/
private
Integer
displayStatus
;
private
Integer
displayStatus
;
/**
* 排序值,数值越大越靠前
*/
private
Integer
sort
;
/**
/**
* 添加时间
* 添加时间
*/
*/
...
...
liquidnet-bus-do/liquidnet-service-adam-do/src/main/java/com/liquidnet/service/adam/mapper/AdamCaomeiBadgeMapper.java
View file @
e2bbf431
package
com
.
liquidnet
.
service
.
adam
.
mapper
;
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.AdamCaomeiBadgeClaimCountDto
;
import
com.liquidnet.service.adam.entity.AdamCaomeiBadge
;
import
com.liquidnet.service.adam.entity.AdamCaomeiBadge
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
import
java.util.List
;
public
interface
AdamCaomeiBadgeMapper
extends
BaseMapper
<
AdamCaomeiBadge
>
{
public
interface
AdamCaomeiBadgeMapper
extends
BaseMapper
<
AdamCaomeiBadge
>
{
@Select
({
"<script>"
,
"select badge_id as badgeId, count(1) as claimedCount"
,
"from adam_caomei_user_badge"
,
"where badge_id in"
,
"<foreach collection='badgeIds' item='badgeId' open='(' separator=',' close=')'>"
,
"#{badgeId}"
,
"</foreach>"
,
"group by badge_id"
,
"</script>"
})
List
<
AdamCaomeiBadgeClaimCountDto
>
selectClaimedCountByBadgeIds
(
@Param
(
"badgeIds"
)
List
<
String
>
badgeIds
);
}
}
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