记得上下班打卡 | 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
cf4aa441
Commit
cf4aa441
authored
Jul 01, 2026
by
姜秀龙
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'refs/heads/jxl-yirenhebing' into test-ecs
parents
483408e7
2508891b
Changes
39
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
39 changed files
with
1374 additions
and
312 deletions
+1374
-312
kylin_artist_product.sql
docs/kylin_artist_product.sql
+16
-0
zhengzai-V1.5-20260304.sql
docu/zhengzai-V1.5-20260304.sql
+1
-0
KylinRedisConst.java
...com/liquidnet/service/kylin/constant/KylinRedisConst.java
+4
-0
ArtistProductSaveParam.java
...idnet/service/kylin/dto/param/ArtistProductSaveParam.java
+18
-0
ArtistGoodsOptionVo.java
...m/liquidnet/service/kylin/dto/vo/ArtistGoodsOptionVo.java
+36
-0
ArtistVo.java
...ain/java/com/liquidnet/service/kylin/dto/vo/ArtistVo.java
+21
-4
KylinArtistDetailFrontVo.java
...ervice/kylin/dto/vo/returns/KylinArtistDetailFrontVo.java
+34
-0
KylinArtistPerformanceFrontVo.java
...e/kylin/dto/vo/returns/KylinArtistPerformanceFrontVo.java
+30
-0
KylinArtistProductFrontVo.java
...rvice/kylin/dto/vo/returns/KylinArtistProductFrontVo.java
+28
-0
IKylinArtistFrontService.java
...idnet/service/kylin/service/IKylinArtistFrontService.java
+21
-0
IKylinArtistService.java
...dnet/service/kylin/service/admin/IKylinArtistService.java
+7
-0
ISweetArtistsService.java
...liquidnet/service/sweet/service/ISweetArtistsService.java
+1
-12
KylinArtistController.java
.../web/controller/zhengzai/kylin/KylinArtistController.java
+65
-0
artists.html
...in/resources/templates/zhengzai/kylin/artist/artists.html
+16
-0
detail.html
...ain/resources/templates/zhengzai/kylin/artist/detail.html
+0
-48
products.html
...n/resources/templates/zhengzai/kylin/artist/products.html
+189
-0
artistLineup.html
...s/templates/zhengzai/kylin/performances/artistLineup.html
+40
-17
KylinArtistPerformanceServiceImpl.java
...kylin/service/impl/KylinArtistPerformanceServiceImpl.java
+8
-3
KylinArtistServiceImpl.java
...n/zhengzai/kylin/service/impl/KylinArtistServiceImpl.java
+187
-13
DataUtils.java
...iquidnet/client/admin/zhengzai/kylin/utils/DataUtils.java
+35
-0
SweetArtistCacheUtils.java
...ent/admin/zhengzai/kylin/utils/SweetArtistCacheUtils.java
+86
-0
RedisKeyExpireConst.java
.../liquidnet/service/base/constant/RedisKeyExpireConst.java
+3
-0
liquidnet-service-kylin.yml
...t-bus-config/liquidnet-config/liquidnet-service-kylin.yml
+2
-0
KylinArtist.java
.../java/com/liquidnet/service/kylin/entity/KylinArtist.java
+5
-0
KylinArtistProduct.java
...om/liquidnet/service/kylin/entity/KylinArtistProduct.java
+46
-0
KylinArtistProductMapper.java
...uidnet/service/kylin/mapper/KylinArtistProductMapper.java
+13
-0
KylinArtistMapper.xml
.../com.liquidnet.service.kylin.mapper/KylinArtistMapper.xml
+1
-1
KylinArtistProductMapper.xml
...quidnet.service.kylin.mapper/KylinArtistProductMapper.xml
+18
-0
SweetManualArtistsFiveMapper.xml
...net.service.sweet.mapper/SweetManualArtistsFiveMapper.xml
+9
-9
SweetManualArtistsMapper.xml
...quidnet.service.sweet.mapper/SweetManualArtistsMapper.xml
+15
-15
SweetManualArtistsMdskMapper.xml
...net.service.sweet.mapper/SweetManualArtistsMdskMapper.xml
+9
-9
SweetManualArtistsTfcMapper.xml
...dnet.service.sweet.mapper/SweetManualArtistsTfcMapper.xml
+9
-9
KylinArtistController.java
...idnet/service/kylin/controller/KylinArtistController.java
+60
-0
KylinArtistFrontServiceImpl.java
...rvice/kylin/service/impl/KylinArtistFrontServiceImpl.java
+250
-0
DataUtils.java
...ain/java/com/liquidnet/service/kylin/utils/DataUtils.java
+19
-0
pom.xml
liquidnet-bus-service/liquidnet-service-sweet/pom.xml
+6
-0
SweetArtistsController.java
...dnet/service/sweet/controller/SweetArtistsController.java
+1
-46
SweetArtistsServiceImpl.java
...t/service/sweet/service/impl/SweetArtistsServiceImpl.java
+47
-124
RedisDataUtils.java
...ava/com/liquidnet/service/sweet/utils/RedisDataUtils.java
+18
-2
No files found.
docs/kylin_artist_product.sql
0 → 100644
View file @
cf4aa441
-- 艺人关联商品表
CREATE
TABLE
IF
NOT
EXISTS
`kylin_artist_product`
(
`mid`
bigint
NOT
NULL
AUTO_INCREMENT
COMMENT
'主键'
,
`relation_id`
varchar
(
64
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
COMMENT
'关联记录ID'
,
`artist_id`
varchar
(
64
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
COMMENT
'艺人ID'
,
`spu_id`
varchar
(
64
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
COMMENT
'商品SPU ID'
,
`sort`
int
DEFAULT
0
COMMENT
'排序权重,越大越靠前'
,
`status`
tinyint
DEFAULT
1
COMMENT
'1启用 0禁用'
,
`created_at`
datetime
DEFAULT
NULL
COMMENT
'创建时间'
,
`updated_at`
datetime
DEFAULT
NULL
COMMENT
'更新时间'
,
PRIMARY
KEY
(
`mid`
),
UNIQUE
KEY
`uk_relation_id`
(
`relation_id`
),
UNIQUE
KEY
`uk_artist_spu`
(
`artist_id`
,
`spu_id`
),
KEY
`idx_artist_id`
(
`artist_id`
),
KEY
`idx_spu_id`
(
`spu_id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_unicode_ci
COMMENT
=
'艺人关联商品'
;
docu/zhengzai-V1.5-20260304.sql
View file @
cf4aa441
...
...
@@ -6,6 +6,7 @@ CREATE TABLE `kylin_artist` (
`mid`
int
(
11
)
NOT
NULL
AUTO_INCREMENT
COMMENT
'主键ID'
,
`artist_id`
varchar
(
64
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
COMMENT
'艺人ID'
,
`artist_name`
varchar
(
50
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
COMMENT
'艺人名称'
,
`pinyin`
varchar
(
200
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
DEFAULT
''
COMMENT
'姓名拼音'
,
`artist_type`
tinyint
(
4
)
NOT
NULL
COMMENT
'艺人类型 1音乐人 2艺术家 3厂牌 4品牌方'
,
`avatar_url`
varchar
(
500
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
COMMENT
'艺人头像'
,
`introduction`
text
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
COMMENT
'艺人简介'
,
...
...
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/constant/KylinRedisConst.java
View file @
cf4aa441
...
...
@@ -6,6 +6,10 @@ public class KylinRedisConst {
public
static
final
String
PERFORMANCES_INVOICE_REMINDER
=
"kylin:performances:invoice_reminder:id:"
;
public
static
final
String
PERFORMANCES_NOTICE_REMIND_STATUS
=
"kylin:performances:noticeRemindStatus:id:"
;
public
static
final
String
PERFORMANCES_ARTISTS
=
"kylin:performances:artists:id:"
;
public
static
final
String
ARTIST_DETAIL
=
"kylin:artist:detail:id:"
;
public
static
final
String
ARTIST_ALBUM
=
"kylin:artist:album:id:"
;
public
static
final
String
ARTIST_PERFORMANCES
=
"kylin:artist:performances:id:"
;
public
static
final
String
ARTIST_PRODUCTS
=
"kylin:artist:products:id:"
;
public
static
final
String
PERFORMANCES_TRUE_NAME
=
"kylin:performances_true_name:id:"
;
public
static
final
String
PERFORMANCES_LIST_CITY
=
"kylin:performances:city:"
;
public
static
final
String
PERFORMANCES_LIST_SYSTEM_RECOMMEND
=
"kylin:performances:systemRecommend"
;
...
...
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/param/ArtistProductSaveParam.java
0 → 100644
View file @
cf4aa441
package
com
.
liquidnet
.
service
.
kylin
.
dto
.
param
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.List
;
@Data
@ApiModel
(
"艺人关联商品保存参数"
)
public
class
ArtistProductSaveParam
{
@ApiModelProperty
(
"艺人ID"
)
private
String
artistId
;
@ApiModelProperty
(
"商品SPU ID列表"
)
private
List
<
String
>
spuIds
;
}
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/vo/ArtistGoodsOptionVo.java
0 → 100644
View file @
cf4aa441
package
com
.
liquidnet
.
service
.
kylin
.
dto
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.math.BigDecimal
;
/**
* 艺人关联商品搜索选项
*/
@Data
@ApiModel
(
"艺人关联商品搜索选项"
)
public
class
ArtistGoodsOptionVo
{
@ApiModelProperty
(
"商品SPU ID"
)
private
String
spuId
;
@ApiModelProperty
(
"商品编码"
)
private
String
spuNo
;
@ApiModelProperty
(
"商品名称"
)
private
String
name
;
@ApiModelProperty
(
"封面图"
)
private
String
coverPic
;
@ApiModelProperty
(
"售价"
)
private
BigDecimal
sellPrice
;
@ApiModelProperty
(
"上架状态文案"
)
private
String
shelfStatusLabel
;
@ApiModelProperty
(
"是否可选择"
)
private
Boolean
selectable
;
}
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/vo/ArtistVo.java
View file @
cf4aa441
...
...
@@ -40,9 +40,6 @@ public class ArtistVo {
@ApiModelProperty
(
value
=
"关联演出"
)
private
List
<
PerformanceVo
>
performanceVoList
;
@ApiModelProperty
(
value
=
"关联商品"
)
private
List
<
ProductVo
>
productVoList
;
@ApiModelProperty
(
value
=
"排序权重"
)
private
Integer
sort
;
...
...
@@ -79,7 +76,27 @@ public class ArtistVo {
@Data
@ApiModel
(
"商品VO"
)
private
static
class
ProductVo
{
public
static
class
ProductVo
{
@ApiModelProperty
(
"商品SPU ID"
)
private
String
spuId
;
@ApiModelProperty
(
"商品编码"
)
private
String
productCode
;
@ApiModelProperty
(
"商品名称"
)
private
String
productName
;
@ApiModelProperty
(
"商品头图"
)
private
String
imageUrl
;
@ApiModelProperty
(
"商品分类"
)
private
String
category
;
@ApiModelProperty
(
"商品售价"
)
private
String
price
;
@ApiModelProperty
(
"上架状态 1已上架 0未上架"
)
private
Integer
status
;
}
}
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/vo/returns/KylinArtistDetailFrontVo.java
0 → 100644
View file @
cf4aa441
package
com
.
liquidnet
.
service
.
kylin
.
dto
.
vo
.
returns
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.List
;
@Data
@ApiModel
(
"C端艺人详情"
)
public
class
KylinArtistDetailFrontVo
implements
Serializable
{
@ApiModelProperty
(
"艺人ID"
)
private
String
artistId
;
@ApiModelProperty
(
"艺人名称"
)
private
String
artistName
;
@ApiModelProperty
(
"艺人类型 1音乐人 2艺术家 3厂牌 4品牌方"
)
private
Integer
artistType
;
@ApiModelProperty
(
"艺人类型名称"
)
private
String
artistTypeName
;
@ApiModelProperty
(
"艺人头像"
)
private
String
avatarUrl
;
@ApiModelProperty
(
"艺人简介"
)
private
String
introduction
;
@ApiModelProperty
(
"艺人相册"
)
private
List
<
String
>
albumImages
;
}
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/vo/returns/KylinArtistPerformanceFrontVo.java
0 → 100644
View file @
cf4aa441
package
com
.
liquidnet
.
service
.
kylin
.
dto
.
vo
.
returns
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
@ApiModel
(
"C端艺人关联演出"
)
public
class
KylinArtistPerformanceFrontVo
implements
Serializable
{
@ApiModelProperty
(
"演出ID"
)
private
String
performanceId
;
@ApiModelProperty
(
"演出名称"
)
private
String
title
;
@ApiModelProperty
(
"封面"
)
private
String
coverPic
;
@ApiModelProperty
(
"演出开始时间"
)
private
String
timeStart
;
@ApiModelProperty
(
"状态 6购买 8售罄 9未开始"
)
private
Integer
appStatus
;
@ApiModelProperty
(
"状态文案"
)
private
String
statusName
;
}
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/vo/returns/KylinArtistProductFrontVo.java
0 → 100644
View file @
cf4aa441
package
com
.
liquidnet
.
service
.
kylin
.
dto
.
vo
.
returns
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
@Data
@ApiModel
(
"C端艺人关联商品"
)
public
class
KylinArtistProductFrontVo
implements
Serializable
{
@ApiModelProperty
(
"商品SPU ID"
)
private
String
spuId
;
@ApiModelProperty
(
"商品名称"
)
private
String
name
;
@ApiModelProperty
(
"封面图"
)
private
String
coverPic
;
@ApiModelProperty
(
"售价"
)
private
BigDecimal
sellPrice
;
@ApiModelProperty
(
"排序"
)
private
Integer
sort
;
}
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/service/IKylinArtistFrontService.java
0 → 100644
View file @
cf4aa441
package
com
.
liquidnet
.
service
.
kylin
.
service
;
import
com.liquidnet.service.kylin.dto.vo.returns.KylinArtistDetailFrontVo
;
import
com.liquidnet.service.kylin.dto.vo.returns.KylinArtistPerformanceFrontVo
;
import
com.liquidnet.service.kylin.dto.vo.returns.KylinArtistProductFrontVo
;
import
java.util.List
;
/**
* C端艺人详情
*/
public
interface
IKylinArtistFrontService
{
KylinArtistDetailFrontVo
getArtistDetail
(
String
artistId
);
List
<
String
>
getArtistAlbum
(
String
artistId
);
List
<
KylinArtistPerformanceFrontVo
>
getArtistPerformances
(
String
artistId
);
List
<
KylinArtistProductFrontVo
>
getArtistProducts
(
String
artistId
);
}
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/service/admin/IKylinArtistService.java
View file @
cf4aa441
...
...
@@ -5,6 +5,7 @@ import com.github.pagehelper.PageInfo;
import
com.liquidnet.service.kylin.dao.KylinArtistDao
;
import
com.liquidnet.service.kylin.dto.param.ArtistParam
;
import
com.liquidnet.service.kylin.dto.param.ArtistSearchParam
;
import
com.liquidnet.service.kylin.dto.vo.ArtistGoodsOptionVo
;
import
com.liquidnet.service.kylin.dto.vo.ArtistVo
;
import
com.liquidnet.service.kylin.entity.KylinArtist
;
...
...
@@ -32,4 +33,10 @@ public interface IKylinArtistService extends IService<KylinArtist> {
Boolean
checkArtistNameExists
(
String
artistName
,
String
artistId
);
List
<
ArtistGoodsOptionVo
>
searchGoods
(
String
keyword
,
String
artistId
,
List
<
String
>
excludeSpuIds
);
List
<
ArtistVo
.
ProductVo
>
listArtistProducts
(
String
artistId
);
Boolean
saveArtistProducts
(
String
artistId
,
List
<
String
>
spuIds
);
}
liquidnet-bus-api/liquidnet-service-sweet-api/src/main/java/com/liquidnet/service/sweet/service/ISweetArtistsService.java
View file @
cf4aa441
...
...
@@ -4,16 +4,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.sweet.entity.SweetArtists
;
import
com.liquidnet.service.sweet.entity.SweetArtistsList
;
import
com.liquidnet.service.sweet.entity.SweetArtistsUrl
;
import
com.liquidnet.service.sweet.param.SweetArtistsListParam
;
import
com.liquidnet.service.sweet.vo.SweetArtistsVo
;
import
java.util.List
;
/**
* <p>
* 艺人表 服务类
* 艺人表 服务类
(读 kylin_artist,写已迁移至 admin)
* </p>
*
* @author liquidnet
...
...
@@ -23,12 +18,6 @@ public interface ISweetArtistsService extends IService<SweetArtists> {
ResponseDto
<
PageInfo
<
SweetArtists
>>
getList
(
int
page
,
int
size
,
String
name
);
ResponseDto
<
Boolean
>
add
(
SweetArtistsListParam
sweetArtistsList
);
ResponseDto
<
SweetArtistsVo
>
detail
(
String
artistsId
);
ResponseDto
<
Boolean
>
change
(
String
artistsId
,
SweetArtistsListParam
sweetArtistsList
);
ResponseDto
<
SweetArtists
>
del
(
String
artistsId
);
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/java/com/liquidnet/client/admin/web/controller/zhengzai/kylin/KylinArtistController.java
View file @
cf4aa441
...
...
@@ -11,7 +11,9 @@ import com.liquidnet.service.kylin.dao.KylinArtistDao;
import
com.liquidnet.service.kylin.dao.KylinArtistOperationLogDao
;
import
com.liquidnet.service.kylin.dao.KylinArtistPerformanceDao
;
import
com.liquidnet.service.kylin.dto.param.ArtistParam
;
import
com.liquidnet.service.kylin.dto.param.ArtistProductSaveParam
;
import
com.liquidnet.service.kylin.dto.param.ArtistSearchParam
;
import
com.liquidnet.service.kylin.dto.vo.ArtistGoodsOptionVo
;
import
com.liquidnet.service.kylin.dto.vo.ArtistVo
;
import
com.liquidnet.service.kylin.service.admin.IKylinArtistOperationLogService
;
import
com.liquidnet.service.kylin.service.admin.IKylinArtistPerformanceService
;
...
...
@@ -24,6 +26,7 @@ import org.springframework.stereotype.Controller;
import
org.springframework.ui.ModelMap
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -305,4 +308,66 @@ public class KylinArtistController extends BaseController {
}
}
/**
* 关联商品页面
*/
@RequiresPermissions
(
"kylin:artist:update"
)
@GetMapping
(
"/products/{artistId}"
)
public
String
productsPage
(
@PathVariable
(
"artistId"
)
String
artistId
,
ModelMap
mmap
)
{
ArtistVo
artistVo
=
kylinArtistService
.
detail
(
artistId
);
mmap
.
put
(
"artistId"
,
artistId
);
mmap
.
put
(
"artistName"
,
artistVo
!=
null
?
artistVo
.
getArtistName
()
:
""
);
return
prefix
+
"/products"
;
}
/**
* 查询艺人已关联商品
*/
@RequiresPermissions
(
"kylin:artist:update"
)
@GetMapping
(
"/products/list"
)
@ResponseBody
public
AjaxResult
productsList
(
@RequestParam
String
artistId
)
{
return
AjaxResult
.
success
(
kylinArtistService
.
listArtistProducts
(
artistId
));
}
/**
* 保存艺人关联商品
*/
@Log
(
title
=
"保存艺人关联商品"
,
businessType
=
BusinessType
.
UPDATE
)
@RequiresPermissions
(
"kylin:artist:update"
)
@PostMapping
(
"/products/save"
)
@ResponseBody
public
AjaxResult
productsSave
(
@RequestBody
ArtistProductSaveParam
param
)
{
try
{
Boolean
result
=
kylinArtistService
.
saveArtistProducts
(
param
.
getArtistId
(),
param
.
getSpuIds
());
if
(
result
)
{
return
success
(
"保存成功"
);
}
return
error
(
"艺人不存在"
);
}
catch
(
IllegalArgumentException
e
)
{
return
error
(
e
.
getMessage
());
}
}
/**
* 搜索可选商品(按名称)
*/
@GetMapping
(
"/searchGoods"
)
@ResponseBody
public
AjaxResult
searchGoods
(
@RequestParam
(
value
=
"keyword"
,
required
=
false
)
String
keyword
,
@RequestParam
(
value
=
"artistId"
,
required
=
false
)
String
artistId
,
@RequestParam
(
value
=
"excludeSpuIds"
,
required
=
false
)
String
excludeSpuIds
)
{
List
<
String
>
excludeList
=
new
ArrayList
<>();
if
(
excludeSpuIds
!=
null
&&
!
excludeSpuIds
.
isEmpty
())
{
for
(
String
spuId
:
excludeSpuIds
.
split
(
","
))
{
if
(
spuId
!=
null
&&
!
spuId
.
trim
().
isEmpty
())
{
excludeList
.
add
(
spuId
.
trim
());
}
}
}
List
<
ArtistGoodsOptionVo
>
list
=
kylinArtistService
.
searchGoods
(
keyword
,
artistId
,
excludeList
);
return
AjaxResult
.
success
(
list
);
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/kylin/artist/artists.html
View file @
cf4aa441
...
...
@@ -127,6 +127,7 @@
var
actions
=
[];
actions
.
push
(
'<a class="btn btn-info btn-xs '
+
detailFlag
+
'" href="javascript:void(0)" onclick="$.operate.detail(
\'
'
+
row
.
artistId
+
'
\'
)"><i class="fa fa-eye"></i>详情</a> '
);
actions
.
push
(
'<a class="btn btn-success btn-xs '
+
updateFlag
+
'" href="javascript:void(0)" onclick="$.operate.edit(
\'
'
+
row
.
artistId
+
'
\'
)"><i class="fa fa-edit"></i>编辑</a> '
);
actions
.
push
(
'<a class="btn btn-primary btn-xs '
+
updateFlag
+
'" href="javascript:void(0)" onclick="openProductModal(
\'
'
+
row
.
artistId
+
'
\'
)"><i class="fa fa-shopping-bag"></i>关联商品</a> '
);
actions
.
push
(
'<a class="btn btn-warning btn-xs '
+
detailFlag
+
'" href="javascript:void(0)" onclick="showOperationLog(
\'
'
+
row
.
artistId
+
'
\'
)"><i class="fa fa-history"></i>操作日志</a> '
);
return
actions
.
join
(
''
);
}
...
...
@@ -171,6 +172,21 @@
var
url
=
prefix
+
'/operationLog/'
+
artistId
;
$
.
modal
.
openTab
(
"艺人操作记录"
,
url
);
}
function
openProductModal
(
artistId
)
{
var
url
=
prefix
+
'/products/'
+
artistId
;
$
.
modal
.
openOptions
({
title
:
'关联商品'
,
url
:
url
,
width
:
'900'
,
height
:
'600'
,
btn
:
[
'保存'
,
'关闭'
],
yes
:
function
(
index
,
layero
)
{
var
iframeWin
=
layero
.
find
(
'iframe'
)[
0
];
iframeWin
.
contentWindow
.
submitHandler
(
index
,
layero
);
}
});
}
</script>
</body>
</html>
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/kylin/artist/detail.html
View file @
cf4aa441
...
...
@@ -282,54 +282,6 @@
暂无演出信息
</div>
</div>
<!-- 关联商品信息 -->
<div>
<div
class=
"section-title"
>
艺人关联商品信息
<span
th:if=
"*{productVoList != null}"
style=
"font-size: 14px; color: #666; margin-left: 10px;"
>
(共
<span
th:text=
"*{productVoList.size()}"
>
2
</span>
条)
</span>
</div>
<div
class=
"table-container"
th:if=
"*{productVoList != null and !productVoList.isEmpty()}"
>
<table
class=
"custom-table"
>
<thead>
<tr>
<th
width=
"15%"
>
商品编码
</th>
<th
width=
"20%"
>
商品名称
</th>
<th
width=
"15%"
>
商品头图
</th>
<th
width=
"15%"
>
商品分类
</th>
<th
width=
"15%"
>
商品售价
</th>
<th
width=
"15%"
>
上架状态
</th>
</tr>
</thead>
<tbody>
<tr
th:each=
"product : ${ArtistVo.productVoList}"
>
<td
th:text=
"${product.productCode} ?: '--'"
>
goods001
</td>
<td
th:text=
"${product.productName} ?: '--'"
>
摩登天空T恤
</td>
<td>
<div
class=
"product-image"
th:if=
"${product.imageUrl}"
>
<img
th:src=
"${product.imageUrl}"
alt=
"商品图片"
>
</div>
<span
th:unless=
"${product.imageUrl}"
>
--
</span>
</td>
<td
th:text=
"${product.category} ?: '--'"
>
服饰
</td>
<td
th:text=
"${product.price} ?: '--'"
>
99.00元
</td>
<td>
<span
th:if=
"${product.status == 1}"
class=
"status-badge status-on"
>
已上架
</span>
<span
th:if=
"${product.status == 0}"
class=
"status-badge status-off"
>
未上架
</span>
<span
th:if=
"${product.status != 1 and product.status != 0}"
th:text=
"${product.status}"
>
--
</span>
</td>
</tr>
</tbody>
</table>
</div>
<div
th:if=
"*{productVoList == null or productVoList.isEmpty()}"
class=
"empty-data"
>
暂无关联商品信息
</div>
</div>
</div>
</div>
</div>
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/kylin/artist/products.html
0 → 100644
View file @
cf4aa441
<!DOCTYPE html>
<html
lang=
"zh"
xmlns:th=
"http://www.thymeleaf.org"
>
<head>
<th:block
th:include=
"include :: header('关联商品')"
/>
<link
rel=
"stylesheet"
th:href=
"@{/ajax/libs/select2/select2.min.css}"
/>
<style>
body
{
background
:
#fff
;
}
.page-wrap
{
padding
:
16px
;
}
.section-title
{
font-weight
:
bold
;
margin
:
16px
0
8px
;
}
.img-thumb
{
width
:
40px
;
height
:
40px
;
object-fit
:
cover
;
border-radius
:
4px
;
}
.select2-container
{
min-width
:
380px
;
}
.add-row
{
margin-bottom
:
16px
;
display
:
flex
;
align-items
:
center
;
gap
:
10px
;
}
</style>
</head>
<body
class=
"white-bg"
>
<div
class=
"page-wrap"
>
<div
class=
"section-title"
>
艺人:
<span
th:text=
"${artistName}"
>
--
</span>
<span
style=
"font-size:12px;color:#999;margin-left:8px;"
th:text=
"'ID: ' + ${artistId}"
></span>
</div>
<div
class=
"add-row"
>
<select
id=
"goodsSelect"
style=
"width:400px;"
>
<option
value=
""
>
默认最近20条,输入名称搜索全部匹配
</option>
</select>
<span
style=
"color:#999;font-size:12px;"
>
选中商品后自动添加到列表
</span>
</div>
<div
class=
"section-title"
>
已关联商品
</div>
<div
class=
"table-responsive"
>
<table
class=
"table table-bordered"
>
<thead>
<tr>
<th>
商品SPU ID
</th>
<th>
头图
</th>
<th>
商品名称
</th>
<th>
状态
</th>
<th>
操作
</th>
</tr>
</thead>
<tbody
id=
"linkedProductsBody"
>
<tr
id=
"linkedProductsEmptyRow"
>
<td
colspan=
"5"
style=
"text-align:center;color:#999;"
>
暂无关联商品
</td>
</tr>
</tbody>
</table>
</div>
</div>
<th:block
th:include=
"include :: footer"
/>
<script
th:src=
"@{/ajax/libs/select2/select2.min.js}"
></script>
<script
th:inline=
"javascript"
>
var
artistId
=
/*[[${artistId}]]*/
''
;
var
prefix
=
ctx
+
'kylin/artist'
;
var
linkedProducts
=
[];
$
(
function
()
{
initSelect2
();
loadLinkedProducts
();
});
function
initSelect2
()
{
$
(
'#goodsSelect'
).
select2
({
allowClear
:
true
,
placeholder
:
'默认最近20条,输入名称搜索全部匹配'
,
minimumInputLength
:
0
,
ajax
:
{
url
:
prefix
+
'/searchGoods'
,
dataType
:
'json'
,
delay
:
300
,
data
:
function
(
params
)
{
return
{
keyword
:
params
.
term
||
''
,
artistId
:
artistId
,
excludeSpuIds
:
linkedProducts
.
map
(
function
(
item
)
{
return
item
.
spuId
;
}).
join
(
','
)
};
},
processResults
:
function
(
resp
)
{
var
list
=
(
resp
&&
resp
.
data
)
?
resp
.
data
:
[];
return
{
results
:
list
.
map
(
function
(
item
)
{
var
text
=
item
.
name
||
item
.
spuId
;
if
(
item
.
spuNo
)
{
text
+=
' ('
+
item
.
spuNo
+
')'
;
}
return
{
id
:
item
.
spuId
,
text
:
text
,
disabled
:
item
.
selectable
===
false
,
_raw
:
item
};
})};
}
}
}).
on
(
'select2:select'
,
function
(
e
)
{
var
raw
=
e
.
params
.
data
.
_raw
;
if
(
raw
&&
raw
.
selectable
===
false
)
{
$
.
modal
.
alertWarning
(
'该商品不可关联'
);
$
(
this
).
val
(
null
).
trigger
(
'change'
);
return
;
}
if
(
raw
)
{
addLinkedProduct
(
raw
);
}
$
(
this
).
val
(
null
).
trigger
(
'change'
);
});
}
function
loadLinkedProducts
()
{
$
.
get
(
prefix
+
'/products/list'
,
{
artistId
:
artistId
},
function
(
resp
)
{
if
(
resp
.
code
===
0
&&
resp
.
data
)
{
linkedProducts
=
resp
.
data
.
map
(
function
(
item
)
{
return
{
spuId
:
item
.
spuId
,
name
:
item
.
productName
,
coverPic
:
item
.
imageUrl
,
shelfStatusLabel
:
item
.
status
===
1
?
'已上架'
:
'未上架'
};
});
renderLinkedProducts
();
}
});
}
function
renderLinkedProducts
()
{
var
$body
=
$
(
'#linkedProductsBody'
);
$body
.
empty
();
if
(
!
linkedProducts
.
length
)
{
$body
.
append
(
'<tr><td colspan="5" style="text-align:center;color:#999;">暂无关联商品</td></tr>'
);
return
;
}
linkedProducts
.
forEach
(
function
(
item
,
index
)
{
$body
.
append
(
'<tr>'
+
'<td>'
+
(
item
.
spuId
||
'--'
)
+
'</td>'
+
'<td>'
+
(
item
.
coverPic
?
'<img class="img-thumb" src="'
+
item
.
coverPic
+
'">'
:
'--'
)
+
'</td>'
+
'<td>'
+
(
item
.
name
||
'--'
)
+
'</td>'
+
'<td>'
+
(
item
.
shelfStatusLabel
||
'--'
)
+
'</td>'
+
'<td><button type="button" class="btn btn-danger btn-xs" onclick="removeLinkedProduct('
+
index
+
')">移除</button></td>'
+
'</tr>'
);
});
}
function
addLinkedProduct
(
raw
)
{
if
(
!
raw
||
!
raw
.
spuId
)
{
return
;
}
if
(
linkedProducts
.
some
(
function
(
item
)
{
return
item
.
spuId
===
raw
.
spuId
;
}))
{
$
.
modal
.
alertWarning
(
'该商品已在列表中'
);
return
;
}
linkedProducts
.
push
({
spuId
:
raw
.
spuId
,
name
:
raw
.
name
,
coverPic
:
raw
.
coverPic
,
shelfStatusLabel
:
raw
.
shelfStatusLabel
});
renderLinkedProducts
();
}
function
removeLinkedProduct
(
index
)
{
linkedProducts
.
splice
(
index
,
1
);
renderLinkedProducts
();
}
function
submitHandler
(
index
,
layero
)
{
var
spuIds
=
linkedProducts
.
map
(
function
(
item
)
{
return
item
.
spuId
;
});
$
.
ajax
({
url
:
prefix
+
'/products/save'
,
type
:
'post'
,
contentType
:
'application/json'
,
data
:
JSON
.
stringify
({
artistId
:
artistId
,
spuIds
:
spuIds
}),
success
:
function
(
resp
)
{
if
(
resp
.
code
===
0
)
{
if
(
parent
&&
parent
.
$
&&
parent
.
$
.
modal
)
{
parent
.
$
.
modal
.
msgSuccess
(
'保存成功'
);
if
(
parent
.
$
.
table
)
{
parent
.
$
.
table
.
refresh
();
}
}
else
{
$
.
modal
.
msgSuccess
(
'保存成功'
);
}
if
(
typeof
index
!==
'undefined'
)
{
parent
.
layer
.
close
(
index
);
}
else
{
$
.
modal
.
close
();
}
}
else
{
$
.
modal
.
alertError
(
resp
.
msg
||
'保存失败'
);
}
}
});
}
</script>
</body>
</html>
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/kylin/performances/artistLineup.html
View file @
cf4aa441
...
...
@@ -699,8 +699,10 @@
$
(
'#selected-artists-container'
).
html
(
''
);
// 打开弹窗
$
(
'#associateArtistModal'
).
modal
(
'show'
);
// 加载初始艺人列表(含已关联状态)
loadAllArtistsForModal
(
timesId
,
true
);
// 已绑定艺人从 getSessionArtists 初始化(含逻辑删除但仍关联的);可选列表走 getAllArtists
initSelectedArtistsFromSession
(
timesId
,
function
()
{
loadAllArtistsForModal
(
timesId
);
});
}
// 防抖
...
...
@@ -715,15 +717,45 @@
const
debouncedSearch
=
debounce
(
function
()
{
const
timesId
=
$
(
'#associateArtistModal'
).
data
(
'timesId'
);
loadAllArtistsForModal
(
timesId
,
false
);
loadAllArtistsForModal
(
timesId
);
},
300
);
/** 从本场次已绑定阵容初始化已选艺人(不按 status 过滤) */
function
initSelectedArtistsFromSession
(
timesId
,
callback
)
{
$
.
ajax
({
url
:
ctx
+
"kylin/artist/getSessionArtists"
,
type
:
"GET"
,
data
:
{
performancesId
:
performancesId
,
timesId
:
timesId
},
success
:
function
(
response
)
{
if
(
response
.
code
===
0
)
{
selectedArtists
=
(
response
.
data
||
[])
.
map
(
function
(
a
)
{
return
{
artistId
:
a
.
artistId
,
artistName
:
a
.
artistName
,
avatarUrl
:
a
.
avatarUrl
,
sort
:
a
.
sort
||
0
};
})
.
sort
(
function
(
a
,
b
)
{
return
b
.
sort
-
a
.
sort
;
});
updateSelectedArtistsView
();
}
if
(
callback
)
callback
();
},
error
:
function
()
{
if
(
callback
)
callback
();
}
});
}
/**
* 从后端加载
艺人列表
* 从后端加载
可选艺人列表(仅 status=1)
* @param {string} timesId
* @param {boolean} isInitialLoad 是否首次加载(用于初始化已选艺人)
*/
function
loadAllArtistsForModal
(
timesId
,
isInitialLoad
)
{
function
loadAllArtistsForModal
(
timesId
)
{
const
keyword
=
$
(
'#artist-search-input'
).
val
().
trim
();
// 显示加载中
...
...
@@ -742,7 +774,7 @@
success
:
function
(
response
)
{
if
(
response
.
code
===
0
)
{
currentModalArtists
=
response
.
data
||
[];
renderArtistsInModal
(
currentModalArtists
,
isInitialLoad
);
renderArtistsInModal
(
currentModalArtists
);
}
else
{
$
(
'#modal-artist-list'
).
html
(
'<div class="modal-empty">加载艺人列表失败,请重试</div>'
...
...
@@ -760,9 +792,8 @@
/**
* 渲染搜索结果列表
* @param {Array} artists
* @param {boolean} isInitialLoad
*/
function
renderArtistsInModal
(
artists
,
isInitialLoad
)
{
function
renderArtistsInModal
(
artists
)
{
const
listContainer
=
$
(
'#modal-artist-list'
);
if
(
!
artists
||
artists
.
length
===
0
)
{
...
...
@@ -771,14 +802,6 @@
return
;
}
// 首次加载时,从后端的 associated 字段初始化已选列表,并按 sort 降序排列(sort 越大越靠前)
if
(
isInitialLoad
)
{
selectedArtists
=
artists
.
filter
(
a
=>
a
.
associated
)
.
map
(
a
=>
({
artistId
:
a
.
artistId
,
artistName
:
a
.
artistName
,
avatarUrl
:
a
.
avatarUrl
,
sort
:
a
.
sort
||
0
}))
.
sort
((
a
,
b
)
=>
b
.
sort
-
a
.
sort
);
}
let
html
=
''
;
artists
.
forEach
(
function
(
artist
)
{
const
isSelected
=
selectedArtists
.
some
(
a
=>
a
.
artistId
===
artist
.
artistId
);
...
...
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 @
cf4aa441
...
...
@@ -14,10 +14,10 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.HashSet
;
import
java.util.HashMap
;
import
java.util.stream.Collectors
;
import
com.liquidnet.service.kylin.service.admin.IKylinArtistOperationLogService
;
...
...
@@ -79,6 +79,7 @@ public class KylinArtistPerformanceServiceImpl extends ServiceImpl<KylinArtistPe
// 删除缓存演出阵容
dataUtils
.
delPerformanceArtists
(
performanceId
);
dataUtils
.
delArtistPerformancesCache
(
artistId
);
int
result
=
artistPerformanceMapper
.
deleteById
(
mid
);
// 记录删除后的关联数量
...
...
@@ -95,8 +96,9 @@ public class KylinArtistPerformanceServiceImpl extends ServiceImpl<KylinArtistPe
@Override
public
List
<
KylinArtistAssociationStatusDto
>
getAllArtists
(
String
performancesId
,
String
timesId
,
String
keyword
)
{
// 1.
获取所有艺人
// 1.
可选艺人:仅启用中(已逻辑删除的不出现在选艺人列表;已绑定展示走 getSessionArtists)
List
<
KylinArtist
>
allArtists
=
artistMapper
.
selectList
(
new
QueryWrapper
<
KylinArtist
>()
.
eq
(
"status"
,
1
)
.
like
(
keyword
!=
null
&&
!
keyword
.
isEmpty
(),
"artist_name"
,
keyword
)
.
orderByDesc
(
"created_at"
));
...
...
@@ -108,7 +110,7 @@ public class KylinArtistPerformanceServiceImpl extends ServiceImpl<KylinArtistPe
.
collect
(
Collectors
.
toMap
(
KylinArtistPerformanceDao:
:
getArtistId
,
KylinArtistPerformanceDao:
:
getSort
,
(
existing
,
replacement
)
->
existing
// 重复 key 保留已有值
(
existing
,
replacement
)
->
existing
));
// 3. 组装返回结果
...
...
@@ -190,6 +192,9 @@ public class KylinArtistPerformanceServiceImpl extends ServiceImpl<KylinArtistPe
// 删除缓存演出阵容
dataUtils
.
delPerformanceArtists
(
performancesId
);
for
(
String
artistId
:
affectedArtistIds
)
{
dataUtils
.
delArtistPerformancesCache
(
artistId
);
}
return
true
;
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/kylin/service/impl/KylinArtistServiceImpl.java
View file @
cf4aa441
This diff is collapsed.
Click to expand it.
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/kylin/utils/DataUtils.java
View file @
cf4aa441
...
...
@@ -631,4 +631,39 @@ public class DataUtils {
final
String
redisKey
=
KylinRedisConst
.
PERFORMANCES_ARTISTS
+
performancesId
;
redisDataSourceUtil
.
getRedisKylinUtil
().
del
(
redisKey
);
}
/**
* 删除艺人 C 端缓存(详情/相册/演出/商品)
*/
public
void
delArtistCache
(
String
artistId
)
{
if
(
artistId
==
null
||
artistId
.
isEmpty
())
{
return
;
}
redisDataSourceUtil
.
getRedisKylinUtil
().
del
(
KylinRedisConst
.
ARTIST_DETAIL
+
artistId
);
redisDataSourceUtil
.
getRedisKylinUtil
().
del
(
KylinRedisConst
.
ARTIST_ALBUM
+
artistId
);
redisDataSourceUtil
.
getRedisKylinUtil
().
del
(
KylinRedisConst
.
ARTIST_PERFORMANCES
+
artistId
);
redisDataSourceUtil
.
getRedisKylinUtil
().
del
(
KylinRedisConst
.
ARTIST_PRODUCTS
+
artistId
);
}
public
void
delArtistDetailAndAlbumCache
(
String
artistId
)
{
if
(
artistId
==
null
||
artistId
.
isEmpty
())
{
return
;
}
redisDataSourceUtil
.
getRedisKylinUtil
().
del
(
KylinRedisConst
.
ARTIST_DETAIL
+
artistId
);
redisDataSourceUtil
.
getRedisKylinUtil
().
del
(
KylinRedisConst
.
ARTIST_ALBUM
+
artistId
);
}
public
void
delArtistPerformancesCache
(
String
artistId
)
{
if
(
artistId
==
null
||
artistId
.
isEmpty
())
{
return
;
}
redisDataSourceUtil
.
getRedisKylinUtil
().
del
(
KylinRedisConst
.
ARTIST_PERFORMANCES
+
artistId
);
}
public
void
delArtistProductsCache
(
String
artistId
)
{
if
(
artistId
==
null
||
artistId
.
isEmpty
())
{
return
;
}
redisDataSourceUtil
.
getRedisKylinUtil
().
del
(
KylinRedisConst
.
ARTIST_PRODUCTS
+
artistId
);
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/kylin/utils/SweetArtistCacheUtils.java
0 → 100644
View file @
cf4aa441
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
kylin
.
utils
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.liquidnet.common.cache.redis.util.RedisDataSourceUtil
;
import
com.liquidnet.service.sweet.constant.SweetConstant
;
import
com.liquidnet.service.sweet.entity.SweetManualArtists
;
import
com.liquidnet.service.sweet.entity.SweetManualArtistsFive
;
import
com.liquidnet.service.sweet.entity.SweetManualArtistsMdsk
;
import
com.liquidnet.service.sweet.entity.SweetManualArtistsTfc
;
import
com.liquidnet.service.sweet.mapper.SweetManualArtistsFiveMapper
;
import
com.liquidnet.service.sweet.mapper.SweetManualArtistsMapper
;
import
com.liquidnet.service.sweet.mapper.SweetManualArtistsMdskMapper
;
import
com.liquidnet.service.sweet.mapper.SweetManualArtistsTfcMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.HashSet
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
/**
* admin 修改 kylin 艺人后,失效 sweet 小程序相关 Redis 缓存
*/
@Slf4j
@Component
public
class
SweetArtistCacheUtils
{
@Autowired
private
RedisDataSourceUtil
redisDataSourceUtil
;
@Autowired
private
SweetManualArtistsMapper
sweetManualArtistsMapper
;
@Autowired
private
SweetManualArtistsMdskMapper
sweetManualArtistsMdskMapper
;
@Autowired
private
SweetManualArtistsTfcMapper
sweetManualArtistsTfcMapper
;
@Autowired
private
SweetManualArtistsFiveMapper
sweetManualArtistsFiveMapper
;
public
void
invalidateByArtistId
(
String
artistId
)
{
if
(
artistId
==
null
||
artistId
.
isEmpty
())
{
return
;
}
try
{
redisDataSourceUtil
.
getRedisSweetUtil
().
del
(
SweetConstant
.
REDIS_KEY_SWEET_ARTISTS_DETAILS
.
concat
(
artistId
));
invalidateManualTimeList
(
sweetManualArtistsMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
SweetManualArtists
.
class
).
eq
(
SweetManualArtists:
:
getArtistsId
,
artistId
)
).
stream
().
map
(
SweetManualArtists:
:
getManualId
).
collect
(
Collectors
.
toSet
()),
SweetConstant
.
REDIS_KEY_SWEET_MANUAL_TIME_LIST
);
invalidateManualTimeList
(
sweetManualArtistsMdskMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
SweetManualArtistsMdsk
.
class
).
eq
(
SweetManualArtistsMdsk:
:
getArtistsId
,
artistId
)
).
stream
().
map
(
SweetManualArtistsMdsk:
:
getManualId
).
collect
(
Collectors
.
toSet
()),
SweetConstant
.
REDIS_KEY_SWEET_MDSK_MANUAL_TIME_LIST
);
invalidateManualTimeList
(
sweetManualArtistsTfcMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
SweetManualArtistsTfc
.
class
).
eq
(
SweetManualArtistsTfc:
:
getArtistsId
,
artistId
)
).
stream
().
map
(
SweetManualArtistsTfc:
:
getManualId
).
collect
(
Collectors
.
toSet
()),
SweetConstant
.
REDIS_KEY_SWEET_TFC_MANUAL_TIME_LIST
);
invalidateManualTimeList
(
sweetManualArtistsFiveMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
SweetManualArtistsFive
.
class
).
eq
(
SweetManualArtistsFive:
:
getArtistsId
,
artistId
)
).
stream
().
map
(
SweetManualArtistsFive:
:
getManualId
).
collect
(
Collectors
.
toSet
()),
SweetConstant
.
REDIS_KEY_SWEET_FIVE_MANUAL_TIME_LIST
);
}
catch
(
Exception
e
)
{
log
.
error
(
"invalidate sweet artist cache failed, artistId={}"
,
artistId
,
e
);
}
}
private
void
invalidateManualTimeList
(
Set
<
String
>
manualIds
,
String
keyPrefix
)
{
if
(
manualIds
==
null
||
manualIds
.
isEmpty
())
{
return
;
}
for
(
String
manualId
:
new
HashSet
<>(
manualIds
))
{
if
(
manualId
!=
null
&&
!
manualId
.
isEmpty
())
{
redisDataSourceUtil
.
getRedisSweetUtil
().
del
(
keyPrefix
.
concat
(
manualId
));
}
}
}
}
liquidnet-bus-common/liquidnet-common-service-base/src/main/java/com/liquidnet/service/base/constant/RedisKeyExpireConst.java
View file @
cf4aa441
...
...
@@ -57,6 +57,9 @@ public class RedisKeyExpireConst {
// 演出关联阵容缓存过期时间
public
static
final
long
PERFORMANCES_ARTISTS_EXPIRE
=
30
*
24
*
60
*
60
;
// C端艺人详情相关缓存过期时间
public
static
final
long
ARTIST_FRONT_CACHE_EXPIRE
=
30
*
24
*
60
*
60
;
/**
* 演出关联收钱吧商品缓存过期时间 (30天)
*/
...
...
liquidnet-bus-config/liquidnet-config/liquidnet-service-kylin.yml
View file @
cf4aa441
...
...
@@ -161,6 +161,8 @@ global-auth:
-
${liquidnet.info.context}/health
# 演出阵容
-
${liquidnet.info.context}/performance/artists/**
# 艺人详情 C 端(无需登录)
-
${liquidnet.info.context}/artist/**
oncheck-url-pattern
:
-
${liquidnet.info.context}/order/details
-
${liquidnet.info.context}/order/transfer*
...
...
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/entity/KylinArtist.java
View file @
cf4aa441
...
...
@@ -36,6 +36,11 @@ public class KylinArtist implements Serializable, Cloneable {
*/
private
String
artistName
;
/**
* 姓名拼音
*/
private
String
pinyin
;
/**
* 艺人类型 1音乐人 2艺术家 3厂牌 4品牌方
*/
...
...
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/entity/KylinArtistProduct.java
0 → 100644
View file @
cf4aa441
package
com
.
liquidnet
.
service
.
kylin
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* 艺人关联商品
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
KylinArtistProduct
implements
Serializable
,
Cloneable
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
value
=
"mid"
,
type
=
IdType
.
AUTO
)
private
Long
mid
;
private
String
relationId
;
private
String
artistId
;
private
String
spuId
;
private
Integer
sort
;
private
Integer
status
;
private
LocalDateTime
createdAt
;
private
LocalDateTime
updatedAt
;
private
static
final
KylinArtistProduct
obj
=
new
KylinArtistProduct
();
public
static
KylinArtistProduct
getNew
()
{
try
{
return
(
KylinArtistProduct
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
KylinArtistProduct
();
}
}
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/mapper/KylinArtistProductMapper.java
0 → 100644
View file @
cf4aa441
package
com
.
liquidnet
.
service
.
kylin
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.liquidnet.service.kylin.entity.KylinArtistProduct
;
import
java.util.List
;
public
interface
KylinArtistProductMapper
extends
BaseMapper
<
KylinArtistProduct
>
{
List
<
KylinArtistProduct
>
selectByArtistId
(
String
artistId
);
int
deleteByArtistId
(
String
artistId
);
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/resources/com.liquidnet.service.kylin.mapper/KylinArtistMapper.xml
View file @
cf4aa441
...
...
@@ -19,7 +19,7 @@
a.introduction,
a.created_at,
(SELECT COUNT(1) FROM kylin_artist_performance ap WHERE ap.artist_id = a.artist_id) as performance_count,
0
as product_count
(SELECT COUNT(1) FROM kylin_artist_product ap2 WHERE ap2.artist_id = a.artist_id AND ap2.status = 1)
as product_count
FROM kylin_artist a
<where>
a.status = 1
...
...
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/resources/com.liquidnet.service.kylin.mapper/KylinArtistProductMapper.xml
0 → 100644
View file @
cf4aa441
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.liquidnet.service.kylin.mapper.KylinArtistProductMapper"
>
<select
id=
"selectByArtistId"
parameterType=
"java.lang.String"
resultType=
"com.liquidnet.service.kylin.entity.KylinArtistProduct"
>
SELECT mid, relation_id, artist_id, spu_id, sort, status, created_at, updated_at
FROM kylin_artist_product
WHERE artist_id = #{artistId} AND status = 1
ORDER BY sort DESC, mid DESC
</select>
<delete
id=
"deleteByArtistId"
parameterType=
"java.lang.String"
>
DELETE FROM kylin_artist_product
WHERE artist_id = #{artistId}
</delete>
</mapper>
liquidnet-bus-do/liquidnet-service-sweet-do/src/main/resources/com.liquidnet.service.sweet.mapper/SweetManualArtistsFiveMapper.xml
View file @
cf4aa441
...
...
@@ -23,11 +23,11 @@
<select
id=
"getManualList"
parameterType=
"java.util.Map"
resultMap=
"getManualListResult"
>
select manual_relation_id,
sa.`artist
s_id`
,
sa.`
name`
,
sa.`artist
_id` as artists_id
,
sa.`
artist_name` as name
,
sa.pinyin,
sa.describes,
sa.pic_url,
sa.
introduction as
describes,
sa.
avatar_url as
pic_url,
ss.stage_id,
ss.title,
performance_start,
...
...
@@ -35,7 +35,7 @@
signature_start,
signature_end
from sweet_manual_artists_Five as sma
left join
sweet_artists as sa on sa.artists
_id = sma.artists_id
left join
kylin_artist as sa on sa.artist
_id = sma.artists_id
left join sweet_stage as ss on ss.stage_id = sma.stage_id
<where>
sma.status = 1 and manual_id = #{manualId}
...
...
@@ -45,8 +45,8 @@
<select
id=
"getManualDetails"
parameterType=
"java.util.Map"
resultMap=
"getManualListResult"
>
select manual_relation_id,
sa.`
name`
,
sa.`artist
s_id`
,
sa.`
artist_name` as name
,
sa.`artist
_id` as artists_id
,
ss.title,
ss.stage_id,
performance_start,
...
...
@@ -54,7 +54,7 @@
signature_start,
signature_end
from sweet_manual_artists_Five as sma
left join
sweet_artists as sa on sa.artists
_id = sma.artists_id
left join
kylin_artist as sa on sa.artist
_id = sma.artists_id
left join sweet_stage as ss on ss.stage_id = sma.stage_id
where manual_relation_id = #{manualRelationId}
</select>
...
...
@@ -62,7 +62,7 @@
<select
id=
"getStageNameList"
parameterType=
"java.util.Map"
resultMap=
"getStageNameListResult"
>
select ss.title
from sweet_manual_artists_Five as sma
left join
sweet_artists as sa on sa.artists
_id = sma.artists_id
left join
kylin_artist as sa on sa.artist
_id = sma.artists_id
left join sweet_stage as ss on ss.stage_id = sma.stage_id
where sma.status = 1
and manual_id = #{manualId}
...
...
liquidnet-bus-do/liquidnet-service-sweet-do/src/main/resources/com.liquidnet.service.sweet.mapper/SweetManualArtistsMapper.xml
View file @
cf4aa441
...
...
@@ -23,11 +23,11 @@
<select
id=
"getManualList"
parameterType=
"java.util.Map"
resultMap=
"getManualListResult"
>
select manual_relation_id,
sa.`artist
s_id`
,
sa.`
name`
,
sa.`artist
_id` as artists_id
,
sa.`
artist_name` as name
,
sa.pinyin,
sa.describes,
sa.pic_url,
sa.
introduction as
describes,
sa.
avatar_url as
pic_url,
ss.stage_id,
ss.title,
performance_start,
...
...
@@ -35,7 +35,7 @@
signature_start,
signature_end
from sweet_manual_artists as sma
left join
sweet_artists as sa on sa.artists
_id = sma.artists_id
left join
kylin_artist as sa on sa.artist
_id = sma.artists_id
left join sweet_stage as ss on ss.stage_id = sma.stage_id
<where>
sma.status = 1 and manual_id = #{manualId}
...
...
@@ -45,8 +45,8 @@
<select
id=
"getManualDetails"
parameterType=
"java.util.Map"
resultMap=
"getManualListResult"
>
select manual_relation_id,
sa.`
name`
,
sa.`artist
s_id`
,
sa.`
artist_name` as name
,
sa.`artist
_id` as artists_id
,
ss.title,
ss.stage_id,
performance_start,
...
...
@@ -54,7 +54,7 @@
signature_start,
signature_end
from sweet_manual_artists as sma
left join
sweet_artists as sa on sa.artists
_id = sma.artists_id
left join
kylin_artist as sa on sa.artist
_id = sma.artists_id
left join sweet_stage as ss on ss.stage_id = sma.stage_id
where manual_relation_id = #{manualRelationId}
</select>
...
...
@@ -62,7 +62,7 @@
<select
id=
"getStageNameList"
parameterType=
"java.util.Map"
resultMap=
"getStageNameListResult"
>
select ss.title
from sweet_manual_artists as sma
left join
sweet_artists as sa on sa.artists
_id = sma.artists_id
left join
kylin_artist as sa on sa.artist
_id = sma.artists_id
left join sweet_stage as ss on ss.stage_id = sma.stage_id
where sma.status = 1
and manual_id = #{manualId}
...
...
@@ -74,7 +74,7 @@
select ss.title, ss.stage_id
from sweet_manual_artists as sma
join sweet_manual as sm on sm.manual_id = sma.manual_id
left join
sweet_artists as sa on sa.artists
_id = sma.artists_id
left join
kylin_artist as sa on sa.artist
_id = sma.artists_id
left join sweet_stage as ss on ss.stage_id = sma.stage_id
where sma.status = 1
and sm.performance_id = #{performanceId}
...
...
@@ -82,11 +82,11 @@
</select>
<select
id=
"getManualListAr"
resultType=
"com.liquidnet.service.sweet.dto.SweetManualArtistListArDto"
>
select manual_relation_id,
sa.`artist
s_id`
,
sa.`
name`
,
sa.`artist
_id` as artists_id
,
sa.`
artist_name` as name
,
sa.pinyin,
sa.describes,
sa.pic_url,
sa.
introduction as
describes,
sa.
avatar_url as
pic_url,
ss.stage_id,
ss.title,
performance_start,
...
...
@@ -95,7 +95,7 @@
signature_end
from sweet_manual_artists as sma
join sweet_manual as sm on sm.manual_id = sma.manual_id
left join
sweet_artists as sa on sa.artists
_id = sma.artists_id
left join
kylin_artist as sa on sa.artist
_id = sma.artists_id
left join sweet_stage as ss on ss.stage_id = sma.stage_id
<where>
sma.status = 1 and sm.performance_id = #{performanceId}
...
...
liquidnet-bus-do/liquidnet-service-sweet-do/src/main/resources/com.liquidnet.service.sweet.mapper/SweetManualArtistsMdskMapper.xml
View file @
cf4aa441
...
...
@@ -23,11 +23,11 @@
<select
id=
"getManualList"
parameterType=
"java.util.Map"
resultMap=
"getManualListResult"
>
select manual_relation_id,
sa.`artist
s_id`
,
sa.`
name`
,
sa.`artist
_id` as artists_id
,
sa.`
artist_name` as name
,
sa.pinyin,
sa.describes,
sa.pic_url,
sa.
introduction as
describes,
sa.
avatar_url as
pic_url,
ss.stage_id,
ss.title,
performance_start,
...
...
@@ -35,7 +35,7 @@
signature_start,
signature_end
from sweet_manual_artists_mdsk as sma
left join
sweet_artists as sa on sa.artists
_id = sma.artists_id
left join
kylin_artist as sa on sa.artist
_id = sma.artists_id
left join sweet_stage as ss on ss.stage_id = sma.stage_id
<where>
sma.status = 1 and manual_id = #{manualId}
...
...
@@ -45,8 +45,8 @@
<select
id=
"getManualDetails"
parameterType=
"java.util.Map"
resultMap=
"getManualListResult"
>
select manual_relation_id,
sa.`
name`
,
sa.`artist
s_id`
,
sa.`
artist_name` as name
,
sa.`artist
_id` as artists_id
,
ss.title,
ss.stage_id,
performance_start,
...
...
@@ -54,7 +54,7 @@
signature_start,
signature_end
from sweet_manual_artists_mdsk as sma
left join
sweet_artists as sa on sa.artists
_id = sma.artists_id
left join
kylin_artist as sa on sa.artist
_id = sma.artists_id
left join sweet_stage as ss on ss.stage_id = sma.stage_id
where manual_relation_id = #{manualRelationId}
</select>
...
...
@@ -62,7 +62,7 @@
<select
id=
"getStageNameList"
parameterType=
"java.util.Map"
resultMap=
"getStageNameListResult"
>
select ss.title
from sweet_manual_artists_mdsk as sma
left join
sweet_artists as sa on sa.artists
_id = sma.artists_id
left join
kylin_artist as sa on sa.artist
_id = sma.artists_id
left join sweet_stage as ss on ss.stage_id = sma.stage_id
where sma.status = 1
and manual_id = #{manualId}
...
...
liquidnet-bus-do/liquidnet-service-sweet-do/src/main/resources/com.liquidnet.service.sweet.mapper/SweetManualArtistsTfcMapper.xml
View file @
cf4aa441
...
...
@@ -23,11 +23,11 @@
<select
id=
"getManualList"
parameterType=
"java.util.Map"
resultMap=
"getManualListResult"
>
select manual_relation_id,
sa.`artist
s_id`
,
sa.`
name`
,
sa.`artist
_id` as artists_id
,
sa.`
artist_name` as name
,
sa.pinyin,
sa.describes,
sa.pic_url,
sa.
introduction as
describes,
sa.
avatar_url as
pic_url,
ss.stage_id,
ss.title,
performance_start,
...
...
@@ -35,7 +35,7 @@
signature_start,
signature_end
from sweet_manual_artists_tfc as sma
left join
sweet_artists as sa on sa.artists
_id = sma.artists_id
left join
kylin_artist as sa on sa.artist
_id = sma.artists_id
left join sweet_stage as ss on ss.stage_id = sma.stage_id
<where>
sma.status = 1 and manual_id = #{manualId}
...
...
@@ -45,8 +45,8 @@
<select
id=
"getManualDetails"
parameterType=
"java.util.Map"
resultMap=
"getManualListResult"
>
select manual_relation_id,
sa.`
name`
,
sa.`artist
s_id`
,
sa.`
artist_name` as name
,
sa.`artist
_id` as artists_id
,
ss.title,
ss.stage_id,
performance_start,
...
...
@@ -54,7 +54,7 @@
signature_start,
signature_end
from sweet_manual_artists_tfc as sma
left join
sweet_artists as sa on sa.artists
_id = sma.artists_id
left join
kylin_artist as sa on sa.artist
_id = sma.artists_id
left join sweet_stage as ss on ss.stage_id = sma.stage_id
where manual_relation_id = #{manualRelationId}
</select>
...
...
@@ -62,7 +62,7 @@
<select
id=
"getStageNameList"
parameterType=
"java.util.Map"
resultMap=
"getStageNameListResult"
>
select ss.title
from sweet_manual_artists_tfc as sma
left join
sweet_artists as sa on sa.artists
_id = sma.artists_id
left join
kylin_artist as sa on sa.artist
_id = sma.artists_id
left join sweet_stage as ss on ss.stage_id = sma.stage_id
where sma.status = 1
and manual_id = #{manualId}
...
...
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/controller/KylinArtistController.java
0 → 100644
View file @
cf4aa441
package
com
.
liquidnet
.
service
.
kylin
.
controller
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.dto.vo.returns.KylinArtistDetailFrontVo
;
import
com.liquidnet.service.kylin.dto.vo.returns.KylinArtistPerformanceFrontVo
;
import
com.liquidnet.service.kylin.dto.vo.returns.KylinArtistProductFrontVo
;
import
com.liquidnet.service.kylin.service.IKylinArtistFrontService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
@Api
(
tags
=
"前端-艺人"
)
@RestController
@RequestMapping
(
"artist"
)
@Slf4j
public
class
KylinArtistController
{
@Autowired
private
IKylinArtistFrontService
kylinArtistFrontService
;
@GetMapping
(
"detail/{artistId}"
)
@ApiOperation
(
"艺人详情(简介)"
)
@ApiImplicitParam
(
type
=
"path"
,
dataType
=
"String"
,
name
=
"artistId"
,
value
=
"艺人ID"
,
required
=
true
)
public
ResponseDto
<
KylinArtistDetailFrontVo
>
detail
(
@PathVariable
String
artistId
)
{
KylinArtistDetailFrontVo
vo
=
kylinArtistFrontService
.
getArtistDetail
(
artistId
);
if
(
vo
==
null
)
{
return
ResponseDto
.
failure
(
"艺人不存在"
);
}
return
ResponseDto
.
success
(
vo
);
}
@GetMapping
(
"{artistId}/album"
)
@ApiOperation
(
"艺人相册"
)
@ApiImplicitParam
(
type
=
"path"
,
dataType
=
"String"
,
name
=
"artistId"
,
value
=
"艺人ID"
,
required
=
true
)
public
ResponseDto
<
List
<
String
>>
album
(
@PathVariable
String
artistId
)
{
return
ResponseDto
.
success
(
kylinArtistFrontService
.
getArtistAlbum
(
artistId
));
}
@GetMapping
(
"{artistId}/performances"
)
@ApiOperation
(
"艺人关联演出(未开售/已开售,不含已结束)"
)
@ApiImplicitParam
(
type
=
"path"
,
dataType
=
"String"
,
name
=
"artistId"
,
value
=
"艺人ID"
,
required
=
true
)
public
ResponseDto
<
List
<
KylinArtistPerformanceFrontVo
>>
performances
(
@PathVariable
String
artistId
)
{
return
ResponseDto
.
success
(
kylinArtistFrontService
.
getArtistPerformances
(
artistId
));
}
@GetMapping
(
"{artistId}/products"
)
@ApiOperation
(
"艺人关联商品"
)
@ApiImplicitParam
(
type
=
"path"
,
dataType
=
"String"
,
name
=
"artistId"
,
value
=
"艺人ID"
,
required
=
true
)
public
ResponseDto
<
List
<
KylinArtistProductFrontVo
>>
products
(
@PathVariable
String
artistId
)
{
return
ResponseDto
.
success
(
kylinArtistFrontService
.
getArtistProducts
(
artistId
));
}
}
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/KylinArtistFrontServiceImpl.java
0 → 100644
View file @
cf4aa441
This diff is collapsed.
Click to expand it.
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/utils/DataUtils.java
View file @
cf4aa441
...
...
@@ -1782,4 +1782,23 @@ public class DataUtils {
final
String
redisKey
=
KylinRedisConst
.
PERFORMANCES_ARTISTS
+
performancesId
;
redisUtil
.
set
(
redisKey
,
artistLineupVos
,
RedisKeyExpireConst
.
PERFORMANCES_ARTISTS_EXPIRE
);
}
public
void
delArtistCache
(
String
artistId
)
{
if
(
artistId
==
null
||
artistId
.
isEmpty
())
{
return
;
}
redisUtil
.
del
(
KylinRedisConst
.
ARTIST_DETAIL
+
artistId
);
redisUtil
.
del
(
KylinRedisConst
.
ARTIST_ALBUM
+
artistId
);
redisUtil
.
del
(
KylinRedisConst
.
ARTIST_PERFORMANCES
+
artistId
);
redisUtil
.
del
(
KylinRedisConst
.
ARTIST_PRODUCTS
+
artistId
);
}
@SuppressWarnings
(
"unchecked"
)
public
<
T
>
T
getArtistFrontCache
(
String
redisKey
)
{
return
(
T
)
redisUtil
.
get
(
redisKey
);
}
public
void
setArtistFrontCache
(
String
redisKey
,
Object
value
)
{
redisUtil
.
set
(
redisKey
,
value
,
RedisKeyExpireConst
.
ARTIST_FRONT_CACHE_EXPIRE
);
}
}
liquidnet-bus-service/liquidnet-service-sweet/pom.xml
View file @
cf4aa441
...
...
@@ -85,6 +85,12 @@
<version>
1.0-SNAPSHOT
</version>
<scope>
compile
</scope>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-service-kylin-do
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<scope>
compile
</scope>
</dependency>
<dependency>
<groupId>
org.springframework.data
</groupId>
<artifactId>
spring-data-mongodb
</artifactId>
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/controller/SweetArtistsController.java
View file @
cf4aa441
...
...
@@ -4,12 +4,7 @@ package com.liquidnet.service.sweet.controller;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.sweet.entity.SweetArtists
;
import
com.liquidnet.service.sweet.entity.SweetArtistsList
;
import
com.liquidnet.service.sweet.entity.SweetArtistsUrl
;
import
com.liquidnet.service.sweet.entity.SweetStage
;
import
com.liquidnet.service.sweet.param.SweetArtistsListParam
;
import
com.liquidnet.service.sweet.service.ISweetArtistsService
;
import
com.liquidnet.service.sweet.service.ISweetStageService
;
import
com.liquidnet.service.sweet.vo.SweetArtistsVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
...
...
@@ -18,11 +13,9 @@ import io.swagger.annotations.ApiOperation;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* <p>
* 艺人表 前端控制器
* 艺人表 前端控制器
(读 kylin_artist,写已迁移至 admin /kylin/artist)
* </p>
*
* @author liquidnet
...
...
@@ -49,20 +42,6 @@ public class SweetArtistsController {
return
sweetArtistsService
.
getList
(
page
,
size
,
name
);
}
@PostMapping
(
"add"
)
@ApiOperation
(
"添加艺人"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String"
,
name
=
"picUrl"
,
value
=
"封面图片"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String"
,
name
=
"name"
,
value
=
"艺人姓名"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String"
,
name
=
"pinyin"
,
value
=
"姓名拼音"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String"
,
name
=
"describes"
,
value
=
"艺人简介"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String[]"
,
name
=
"picArray"
,
value
=
"图片数组"
,
required
=
false
),
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String[]"
,
name
=
"videoArray"
,
value
=
"视频数组"
,
required
=
false
)
})
public
ResponseDto
<
Boolean
>
add
(
SweetArtistsListParam
sweetArtistsList
)
{
return
sweetArtistsService
.
add
(
sweetArtistsList
);
}
@GetMapping
(
"detail"
)
@ApiOperation
(
"艺人详情"
)
@ApiImplicitParams
({
...
...
@@ -71,28 +50,4 @@ public class SweetArtistsController {
public
ResponseDto
<
SweetArtistsVo
>
detail
(
@RequestParam
()
String
artistsId
)
{
return
sweetArtistsService
.
detail
(
artistsId
);
}
@PostMapping
(
"change"
)
@ApiOperation
(
"修改艺人"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String"
,
name
=
"picUrl"
,
value
=
"封面图片"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String"
,
name
=
"artistsId"
,
value
=
"艺人Id"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String"
,
name
=
"name"
,
value
=
"艺人姓名"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String"
,
name
=
"pinyin"
,
value
=
"姓名拼音"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String"
,
name
=
"describes"
,
value
=
"艺人简介"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String[]"
,
name
=
"picArray"
,
value
=
"图片数组"
,
required
=
false
),
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String[]"
,
name
=
"videoArray"
,
value
=
"视频数组"
,
required
=
false
)
})
public
ResponseDto
<
Boolean
>
change
(
@RequestParam
()
String
artistsId
,
SweetArtistsListParam
sweetArtistsList
)
{
return
sweetArtistsService
.
change
(
artistsId
,
sweetArtistsList
);
}
@GetMapping
(
"del"
)
@ApiOperation
(
"删除艺人"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String"
,
name
=
"artistsId"
,
value
=
"艺人Id"
,
required
=
true
),
})
public
ResponseDto
<
SweetArtists
>
del
(
@RequestParam
()
String
artistsId
)
{
return
sweetArtistsService
.
del
(
artistsId
);
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/impl/SweetArtistsServiceImpl.java
View file @
cf4aa441
This diff is collapsed.
Click to expand it.
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/utils/RedisDataUtils.java
View file @
cf4aa441
...
...
@@ -15,6 +15,8 @@ import com.liquidnet.service.base.constant.MQConst;
import
com.liquidnet.service.base.constant.RedisKeyExpireConst
;
import
com.liquidnet.service.feign.slime.api.FeignSlimeApiClient
;
import
com.liquidnet.service.slime.dto.vo.SlimeFieldsDetailsVo
;
import
com.liquidnet.service.kylin.entity.KylinArtist
;
import
com.liquidnet.service.kylin.mapper.KylinArtistMapper
;
import
com.liquidnet.service.sweet.constant.SweetConstant
;
import
com.liquidnet.service.sweet.dto.*
;
import
com.liquidnet.service.sweet.dto.param.poster.SweetStrawberryParam
;
...
...
@@ -58,7 +60,7 @@ public class RedisDataUtils {
@Autowired
private
SweetManualShopMapper
sweetManualShopMapper
;
@Autowired
private
SweetArtistsMapper
sweetArtists
Mapper
;
private
KylinArtistMapper
kylinArtist
Mapper
;
@Autowired
private
SweetIntegralActivityDrawMapper
sweetIntegralActivityDrawMapper
;
@Autowired
...
...
@@ -405,7 +407,21 @@ public class RedisDataUtils {
// 艺人详情
public
SweetArtists
setArtistsDetails
(
String
artistsId
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_ARTISTS_DETAILS
.
concat
(
artistsId
);
SweetArtists
sweetArtists
=
sweetArtistsMapper
.
selectOne
(
Wrappers
.
lambdaQuery
(
SweetArtists
.
class
).
eq
(
SweetArtists:
:
getArtistsId
,
artistsId
).
eq
(
SweetArtists:
:
getStatus
,
1
));
KylinArtist
kylinArtist
=
kylinArtistMapper
.
selectOne
(
Wrappers
.
lambdaQuery
(
KylinArtist
.
class
).
eq
(
KylinArtist:
:
getArtistId
,
artistsId
)
);
SweetArtists
sweetArtists
=
null
;
if
(
kylinArtist
!=
null
)
{
sweetArtists
=
SweetArtists
.
getNew
();
sweetArtists
.
setArtistsId
(
kylinArtist
.
getArtistId
());
sweetArtists
.
setName
(
kylinArtist
.
getArtistName
());
sweetArtists
.
setPinyin
(
kylinArtist
.
getPinyin
());
sweetArtists
.
setDescribes
(
kylinArtist
.
getIntroduction
());
sweetArtists
.
setPicUrl
(
kylinArtist
.
getAvatarUrl
());
sweetArtists
.
setStatus
(
kylinArtist
.
getStatus
());
sweetArtists
.
setCreatedAt
(
kylinArtist
.
getCreatedAt
());
sweetArtists
.
setUpdatdAt
(
kylinArtist
.
getUpdatedAt
());
}
redisUtil
.
set
(
redisKey
,
sweetArtists
);
return
sweetArtists
;
}
...
...
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