记得上下班打卡 | 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
6fba14ec
Commit
6fba14ec
authored
Aug 28, 2026
by
姜秀龙
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'jxl-sqb' into test
parents
3d54d865
10d6123b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
41 additions
and
19 deletions
+41
-19
artistLineup.html
...s/templates/zhengzai/kylin/performances/artistLineup.html
+23
-13
KylinArtistPerformanceServiceImpl.java
...kylin/service/impl/KylinArtistPerformanceServiceImpl.java
+14
-2
application-dev.yml
liquidnet-bus-config/liquidnet-config/application-dev.yml
+2
-2
application-test.yml
liquidnet-bus-config/liquidnet-config/application-test.yml
+2
-2
No files found.
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/kylin/performances/artistLineup.html
View file @
6fba14ec
...
@@ -688,6 +688,15 @@
...
@@ -688,6 +688,15 @@
let
selectedArtists
=
[];
// 当前已选艺人列表
let
selectedArtists
=
[];
// 当前已选艺人列表
let
currentModalArtists
=
[];
// 当前搜索结果中的艺人列表
let
currentModalArtists
=
[];
// 当前搜索结果中的艺人列表
/** 艺人 ID 统一成字符串。jQuery .data() 会把 191 这类短数字转成 Number,导致 === 匹配失败 */
function
artistIdStr
(
id
)
{
return
id
==
null
?
''
:
String
(
id
);
}
function
sameArtistId
(
a
,
b
)
{
return
artistIdStr
(
a
)
===
artistIdStr
(
b
);
}
function
openAssociateArtistModal
(
timesId
)
{
function
openAssociateArtistModal
(
timesId
)
{
$
(
'#associateArtistModal'
).
data
(
'timesId'
,
timesId
);
$
(
'#associateArtistModal'
).
data
(
'timesId'
,
timesId
);
// 重置状态
// 重置状态
...
@@ -734,7 +743,7 @@
...
@@ -734,7 +743,7 @@
selectedArtists
=
(
response
.
data
||
[])
selectedArtists
=
(
response
.
data
||
[])
.
map
(
function
(
a
)
{
.
map
(
function
(
a
)
{
return
{
return
{
artistId
:
a
.
artistId
,
artistId
:
a
rtistIdStr
(
a
.
artistId
)
,
artistName
:
a
.
artistName
,
artistName
:
a
.
artistName
,
avatarUrl
:
a
.
avatarUrl
,
avatarUrl
:
a
.
avatarUrl
,
sort
:
a
.
sort
||
0
sort
:
a
.
sort
||
0
...
@@ -804,8 +813,9 @@
...
@@ -804,8 +813,9 @@
let
html
=
''
;
let
html
=
''
;
artists
.
forEach
(
function
(
artist
)
{
artists
.
forEach
(
function
(
artist
)
{
const
isSelected
=
selectedArtists
.
some
(
a
=>
a
.
artistId
===
artist
.
artistId
);
const
artistId
=
artistIdStr
(
artist
.
artistId
);
html
+=
'<div class="modal-artist-item" data-artist-id="'
+
artist
.
artistId
+
'">'
;
const
isSelected
=
selectedArtists
.
some
(
a
=>
sameArtistId
(
a
.
artistId
,
artistId
));
html
+=
'<div class="modal-artist-item" data-artist-id="'
+
artistId
+
'">'
;
html
+=
'<img src="'
+
(
artist
.
avatarUrl
||
'/img/profile.jpg'
)
+
'" class="modal-artist-avatar" onerror="this.src=
\'
/img/profile.jpg
\'
">'
;
html
+=
'<img src="'
+
(
artist
.
avatarUrl
||
'/img/profile.jpg'
)
+
'" class="modal-artist-avatar" onerror="this.src=
\'
/img/profile.jpg
\'
">'
;
html
+=
'<div class="modal-artist-name">'
+
escapeHtml
(
artist
.
artistName
)
+
'</div>'
;
html
+=
'<div class="modal-artist-name">'
+
escapeHtml
(
artist
.
artistName
)
+
'</div>'
;
html
+=
'<div class="artist-radio-btn'
+
(
isSelected
?
' selected'
:
''
)
+
'"></div>'
;
html
+=
'<div class="artist-radio-btn'
+
(
isSelected
?
' selected'
:
''
)
+
'"></div>'
;
...
@@ -817,22 +827,22 @@
...
@@ -817,22 +827,22 @@
// 点击整行切换选中状态
// 点击整行切换选中状态
listContainer
.
find
(
'.modal-artist-item'
).
on
(
'click'
,
function
()
{
listContainer
.
find
(
'.modal-artist-item'
).
on
(
'click'
,
function
()
{
const
artistId
=
$
(
this
).
data
(
'artist-id'
);
const
artistId
=
artistIdStr
(
$
(
this
).
attr
(
'data-artist-id'
)
);
const
artist
=
currentModalArtists
.
find
(
a
=>
a
.
artistId
===
artistId
);
const
artist
=
currentModalArtists
.
find
(
a
=>
sameArtistId
(
a
.
artistId
,
artistId
)
);
if
(
!
artist
)
return
;
if
(
!
artist
)
return
;
const
radioBtn
=
$
(
this
).
find
(
'.artist-radio-btn'
);
const
radioBtn
=
$
(
this
).
find
(
'.artist-radio-btn'
);
const
isSelected
=
selectedArtists
.
some
(
a
=>
a
.
artistId
===
artistId
);
const
isSelected
=
selectedArtists
.
some
(
a
=>
sameArtistId
(
a
.
artistId
,
artistId
)
);
if
(
isSelected
)
{
if
(
isSelected
)
{
// 取消选中
// 取消选中
selectedArtists
=
selectedArtists
.
filter
(
a
=>
a
.
artistId
!==
artistId
);
selectedArtists
=
selectedArtists
.
filter
(
a
=>
!
sameArtistId
(
a
.
artistId
,
artistId
)
);
radioBtn
.
removeClass
(
'selected'
);
radioBtn
.
removeClass
(
'selected'
);
}
else
{
}
else
{
// 选中,防止重复
// 选中,防止重复
if
(
!
selectedArtists
.
some
(
a
=>
a
.
artistId
===
artistId
))
{
if
(
!
selectedArtists
.
some
(
a
=>
sameArtistId
(
a
.
artistId
,
artistId
)
))
{
selectedArtists
.
push
({
selectedArtists
.
push
({
artistId
:
artist
.
artist
Id
,
artistId
:
artistId
,
artistName
:
artist
.
artistName
,
artistName
:
artist
.
artistName
,
avatarUrl
:
artist
.
avatarUrl
avatarUrl
:
artist
.
avatarUrl
});
});
...
@@ -856,7 +866,7 @@
...
@@ -856,7 +866,7 @@
let
html
=
''
;
let
html
=
''
;
selectedArtists
.
forEach
(
function
(
artist
)
{
selectedArtists
.
forEach
(
function
(
artist
)
{
html
+=
'<div class="selected-artist-card" draggable="true" data-artist-id="'
+
artist
.
artistId
+
'">'
;
html
+=
'<div class="selected-artist-card" draggable="true" data-artist-id="'
+
artist
IdStr
(
artist
.
artistId
)
+
'">'
;
html
+=
'<img src="'
+
(
artist
.
avatarUrl
||
'/img/profile.jpg'
)
+
'" class="selected-artist-avatar" onerror="this.src=
\'
/img/profile.jpg
\'
">'
;
html
+=
'<img src="'
+
(
artist
.
avatarUrl
||
'/img/profile.jpg'
)
+
'" class="selected-artist-avatar" onerror="this.src=
\'
/img/profile.jpg
\'
">'
;
html
+=
'<div class="selected-artist-name">'
+
escapeHtml
(
artist
.
artistName
)
+
'</div>'
;
html
+=
'<div class="selected-artist-name">'
+
escapeHtml
(
artist
.
artistName
)
+
'</div>'
;
html
+=
'<div class="remove-selected-artist" title="移除">×</div>'
;
html
+=
'<div class="remove-selected-artist" title="移除">×</div>'
;
...
@@ -870,8 +880,8 @@
...
@@ -870,8 +880,8 @@
// 点击"已选艺人"区域的 × 移除艺人
// 点击"已选艺人"区域的 × 移除艺人
$
(
document
).
on
(
'click'
,
'.remove-selected-artist'
,
function
()
{
$
(
document
).
on
(
'click'
,
'.remove-selected-artist'
,
function
()
{
const
artistId
=
$
(
this
).
closest
(
'.selected-artist-card'
).
data
(
'artist-id'
);
const
artistId
=
artistIdStr
(
$
(
this
).
closest
(
'.selected-artist-card'
).
attr
(
'data-artist-id'
)
);
selectedArtists
=
selectedArtists
.
filter
(
a
=>
a
.
artistId
!==
artistId
);
selectedArtists
=
selectedArtists
.
filter
(
a
=>
!
sameArtistId
(
a
.
artistId
,
artistId
)
);
updateSelectedArtistsView
();
updateSelectedArtistsView
();
// 同步取消搜索列表中对应的选中状态
// 同步取消搜索列表中对应的选中状态
const
item
=
$
(
'#modal-artist-list .modal-artist-item[data-artist-id="'
+
artistId
+
'"]'
);
const
item
=
$
(
'#modal-artist-list .modal-artist-item[data-artist-id="'
+
artistId
+
'"]'
);
...
@@ -962,7 +972,7 @@
...
@@ -962,7 +972,7 @@
// 根据当前显示顺序计算 sort:越靠前的 sort 值越大
// 根据当前显示顺序计算 sort:越靠前的 sort 值越大
const
total
=
selectedArtists
.
length
;
const
total
=
selectedArtists
.
length
;
const
artistOrders
=
selectedArtists
.
map
((
a
,
index
)
=>
({
const
artistOrders
=
selectedArtists
.
map
((
a
,
index
)
=>
({
artistId
:
a
.
artistId
,
artistId
:
a
rtistIdStr
(
a
.
artistId
)
,
sort
:
total
-
index
// 第 0 位 → sort 最大
sort
:
total
-
index
// 第 0 位 → sort 最大
}));
}));
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/kylin/service/impl/KylinArtistPerformanceServiceImpl.java
View file @
6fba14ec
...
@@ -144,7 +144,7 @@ public class KylinArtistPerformanceServiceImpl extends ServiceImpl<KylinArtistPe
...
@@ -144,7 +144,7 @@ public class KylinArtistPerformanceServiceImpl extends ServiceImpl<KylinArtistPe
if
(
artistOrders
!=
null
&&
!
artistOrders
.
isEmpty
())
{
if
(
artistOrders
!=
null
&&
!
artistOrders
.
isEmpty
())
{
for
(
Map
<
String
,
Object
>
item
:
artistOrders
)
{
for
(
Map
<
String
,
Object
>
item
:
artistOrders
)
{
String
artistId
=
(
String
)
item
.
get
(
"artistId"
);
String
artistId
=
toArtistId
(
item
.
get
(
"artistId"
)
);
if
(
artistId
!=
null
)
{
if
(
artistId
!=
null
)
{
affectedArtistIds
.
add
(
artistId
);
affectedArtistIds
.
add
(
artistId
);
}
}
...
@@ -166,7 +166,10 @@ public class KylinArtistPerformanceServiceImpl extends ServiceImpl<KylinArtistPe
...
@@ -166,7 +166,10 @@ public class KylinArtistPerformanceServiceImpl extends ServiceImpl<KylinArtistPe
// 2. 按前端传入的顺序重新关联,sort 越大越靠前
// 2. 按前端传入的顺序重新关联,sort 越大越靠前
if
(
artistOrders
!=
null
&&
!
artistOrders
.
isEmpty
())
{
if
(
artistOrders
!=
null
&&
!
artistOrders
.
isEmpty
())
{
for
(
Map
<
String
,
Object
>
item
:
artistOrders
)
{
for
(
Map
<
String
,
Object
>
item
:
artistOrders
)
{
String
artistId
=
(
String
)
item
.
get
(
"artistId"
);
String
artistId
=
toArtistId
(
item
.
get
(
"artistId"
));
if
(
artistId
==
null
)
{
continue
;
}
Integer
sort
=
item
.
get
(
"sort"
)
!=
null
Integer
sort
=
item
.
get
(
"sort"
)
!=
null
?
Integer
.
parseInt
(
item
.
get
(
"sort"
).
toString
())
:
0
;
?
Integer
.
parseInt
(
item
.
get
(
"sort"
).
toString
())
:
0
;
...
@@ -197,4 +200,13 @@ public class KylinArtistPerformanceServiceImpl extends ServiceImpl<KylinArtistPe
...
@@ -197,4 +200,13 @@ public class KylinArtistPerformanceServiceImpl extends ServiceImpl<KylinArtistPe
}
}
return
true
;
return
true
;
}
}
/** 兼容老自增 ID(JSON 可能是 Number)与雪花 ID(String) */
private
String
toArtistId
(
Object
artistId
)
{
if
(
artistId
==
null
)
{
return
null
;
}
String
id
=
artistId
.
toString
().
trim
();
return
id
.
isEmpty
()
?
null
:
id
;
}
}
}
liquidnet-bus-config/liquidnet-config/application-dev.yml
View file @
6fba14ec
...
@@ -277,8 +277,8 @@ liquidnet:
...
@@ -277,8 +277,8 @@ liquidnet:
app-key
:
'
5423d413f8349b186893892dcef6f76b'
app-key
:
'
5423d413f8349b186893892dcef6f76b'
app-code
:
'
MDWH'
app-code
:
'
MDWH'
public-key
:
'
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuf1oOZm3u5NraTs4F8AABXbtU2jSiWYp+IWmQ36vokuq6s2s3eKQR6l4RkrPPxjC86bIvjT4pApJZJrFMA4YcjY4G49wFZySfom4IPaZlKsOrNGJH0Kag0BSO9U5el1z7dMz7oP9cChbdl4mjKuqYtgnNtaPT+SqhXRQdFcc9kiVybAGs8WEGqsdwxsmD9aZTd4rQMvLEGWIj/MLdo7w1avc0WVSPQSM5jRHjjQmUzEuusv+QGcDt3ttNaip2uo1xoQdcwILYmS6fnWL8xKw4V8lX0CWypUKIZcIc1Y/1N8VeUN+8MirdrS5JSghq62Yifu9A3W/mANB+S6yYwD+WQIDAQAB'
public-key
:
'
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuf1oOZm3u5NraTs4F8AABXbtU2jSiWYp+IWmQ36vokuq6s2s3eKQR6l4RkrPPxjC86bIvjT4pApJZJrFMA4YcjY4G49wFZySfom4IPaZlKsOrNGJH0Kag0BSO9U5el1z7dMz7oP9cChbdl4mjKuqYtgnNtaPT+SqhXRQdFcc9kiVybAGs8WEGqsdwxsmD9aZTd4rQMvLEGWIj/MLdo7w1avc0WVSPQSM5jRHjjQmUzEuusv+QGcDt3ttNaip2uo1xoQdcwILYmS6fnWL8xKw4V8lX0CWypUKIZcIc1Y/1N8VeUN+8MirdrS5JSghq62Yifu9A3W/mANB+S6yYwD+WQIDAQAB'
merchant-id
:
'
b2d63146-934f-401f-a864-14926d952c16
'
merchant-id
:
'
c16ef8d8-1fc8-4e4e-9139-e6298a61b23a
'
merchant-user-id
:
'
6d0d632e-50e9-464e-bbb3-be76047ec835
'
merchant-user-id
:
'
0b778a4e-531c-449c-942e-fa7887bdc9ed
'
role
:
'
super_admin'
role
:
'
super_admin'
secure-access
:
secure-access
:
...
...
liquidnet-bus-config/liquidnet-config/application-test.yml
View file @
6fba14ec
...
@@ -275,8 +275,8 @@ liquidnet:
...
@@ -275,8 +275,8 @@ liquidnet:
app-key
:
'
5423d413f8349b186893892dcef6f76b'
app-key
:
'
5423d413f8349b186893892dcef6f76b'
app-code
:
'
MDWH'
app-code
:
'
MDWH'
public-key
:
'
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuf1oOZm3u5NraTs4F8AABXbtU2jSiWYp+IWmQ36vokuq6s2s3eKQR6l4RkrPPxjC86bIvjT4pApJZJrFMA4YcjY4G49wFZySfom4IPaZlKsOrNGJH0Kag0BSO9U5el1z7dMz7oP9cChbdl4mjKuqYtgnNtaPT+SqhXRQdFcc9kiVybAGs8WEGqsdwxsmD9aZTd4rQMvLEGWIj/MLdo7w1avc0WVSPQSM5jRHjjQmUzEuusv+QGcDt3ttNaip2uo1xoQdcwILYmS6fnWL8xKw4V8lX0CWypUKIZcIc1Y/1N8VeUN+8MirdrS5JSghq62Yifu9A3W/mANB+S6yYwD+WQIDAQAB'
public-key
:
'
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuf1oOZm3u5NraTs4F8AABXbtU2jSiWYp+IWmQ36vokuq6s2s3eKQR6l4RkrPPxjC86bIvjT4pApJZJrFMA4YcjY4G49wFZySfom4IPaZlKsOrNGJH0Kag0BSO9U5el1z7dMz7oP9cChbdl4mjKuqYtgnNtaPT+SqhXRQdFcc9kiVybAGs8WEGqsdwxsmD9aZTd4rQMvLEGWIj/MLdo7w1avc0WVSPQSM5jRHjjQmUzEuusv+QGcDt3ttNaip2uo1xoQdcwILYmS6fnWL8xKw4V8lX0CWypUKIZcIc1Y/1N8VeUN+8MirdrS5JSghq62Yifu9A3W/mANB+S6yYwD+WQIDAQAB'
merchant-id
:
'
b2d63146-934f-401f-a864-14926d952c16
'
merchant-id
:
'
c16ef8d8-1fc8-4e4e-9139-e6298a61b23a
'
merchant-user-id
:
'
6d0d632e-50e9-464e-bbb3-be76047ec835
'
merchant-user-id
:
'
0b778a4e-531c-449c-942e-fa7887bdc9ed
'
role
:
'
super_admin'
role
:
'
super_admin'
secure-access
:
secure-access
:
...
...
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