记得上下班打卡 | git大法好,push需谨慎

Commit 51f1f38b authored by wangyifan's avatar wangyifan

1. 修复修改艺人图片不展示问题 2. 艺人关联演出列表

parent 4575268b
...@@ -69,6 +69,12 @@ public class ArtistVo { ...@@ -69,6 +69,12 @@ public class ArtistVo {
@ApiModelProperty("演出开始时间") @ApiModelProperty("演出开始时间")
private String timeStart; private String timeStart;
@ApiModelProperty("场次ID")
private String timesId;
@ApiModelProperty("场次名称")
private String timeTitle;
} }
@Data @Data
......
package com.liquidnet.service.kylin.service.admin; package com.liquidnet.service.kylin.service.admin;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
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.ArtistVo;
import com.liquidnet.service.kylin.entity.KylinArtist; import com.liquidnet.service.kylin.entity.KylinArtist;
import java.util.List;
/** /**
* <p> * <p>
* 艺人管理 服务类 * 艺人管理 服务类
...@@ -13,4 +20,16 @@ import com.liquidnet.service.kylin.entity.KylinArtist; ...@@ -13,4 +20,16 @@ import com.liquidnet.service.kylin.entity.KylinArtist;
*/ */
public interface IKylinArtistService extends IService<KylinArtist> { public interface IKylinArtistService extends IService<KylinArtist> {
Boolean create(ArtistParam param);
Boolean update(ArtistParam param);
ArtistVo detail(String artistId);
PageInfo<KylinArtistDao> artistList(ArtistSearchParam param);
Boolean delete(List<String> artistIds);
Boolean checkArtistNameExists(String artistName, String artistId);
} }
...@@ -6,11 +6,11 @@ import com.liquidnet.client.admin.common.core.controller.BaseController; ...@@ -6,11 +6,11 @@ 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;
import com.liquidnet.client.admin.common.core.page.TableDataInfo; import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.common.enums.BusinessType; import com.liquidnet.client.admin.common.enums.BusinessType;
import com.liquidnet.client.admin.zhengzai.kylin.service.impl.KylinArtistServiceImpl;
import com.liquidnet.service.kylin.dao.KylinArtistDao; import com.liquidnet.service.kylin.dao.KylinArtistDao;
import com.liquidnet.service.kylin.dto.param.ArtistParam; import com.liquidnet.service.kylin.dto.param.ArtistParam;
import com.liquidnet.service.kylin.dto.param.ArtistSearchParam; import com.liquidnet.service.kylin.dto.param.ArtistSearchParam;
import com.liquidnet.service.kylin.dto.vo.ArtistVo; import com.liquidnet.service.kylin.dto.vo.ArtistVo;
import com.liquidnet.service.kylin.service.admin.IKylinArtistService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -40,7 +40,7 @@ public class KylinArtistController extends BaseController { ...@@ -40,7 +40,7 @@ public class KylinArtistController extends BaseController {
private String platformUrl; private String platformUrl;
@Autowired @Autowired
private KylinArtistServiceImpl kylinArtistService; private IKylinArtistService kylinArtistService;
@GetMapping("/create") @GetMapping("/create")
@RequiresPermissions("kylin:artist:create") @RequiresPermissions("kylin:artist:create")
...@@ -95,8 +95,8 @@ public class KylinArtistController extends BaseController { ...@@ -95,8 +95,8 @@ public class KylinArtistController extends BaseController {
if (albumImagesJson != null && !albumImagesJson.isEmpty() && !albumImagesJson.equals("[]")) { if (albumImagesJson != null && !albumImagesJson.isEmpty() && !albumImagesJson.equals("[]")) {
try { try {
com.fasterxml.jackson.databind.ObjectMapper mapper = new com.fasterxml.jackson.databind.ObjectMapper(); com.fasterxml.jackson.databind.ObjectMapper mapper = new com.fasterxml.jackson.databind.ObjectMapper();
List<String> albumImages = mapper.readValue(albumImagesJson, List<String> albumImages = mapper.readValue(albumImagesJson,
mapper.getTypeFactory().constructCollectionType(List.class, String.class)); mapper.getTypeFactory().constructCollectionType(List.class, String.class));
param.setAlbumImages(albumImages); param.setAlbumImages(albumImages);
} catch (Exception e) { } catch (Exception e) {
return error("相册图片数据格式错误"); return error("相册图片数据格式错误");
...@@ -127,8 +127,8 @@ public class KylinArtistController extends BaseController { ...@@ -127,8 +127,8 @@ public class KylinArtistController extends BaseController {
if (albumImagesJson != null && !albumImagesJson.isEmpty() && !albumImagesJson.equals("[]")) { if (albumImagesJson != null && !albumImagesJson.isEmpty() && !albumImagesJson.equals("[]")) {
try { try {
com.fasterxml.jackson.databind.ObjectMapper mapper = new com.fasterxml.jackson.databind.ObjectMapper(); com.fasterxml.jackson.databind.ObjectMapper mapper = new com.fasterxml.jackson.databind.ObjectMapper();
List<String> albumImages = mapper.readValue(albumImagesJson, List<String> albumImages = mapper.readValue(albumImagesJson,
mapper.getTypeFactory().constructCollectionType(List.class, String.class)); mapper.getTypeFactory().constructCollectionType(List.class, String.class));
param.setAlbumImages(albumImages); param.setAlbumImages(albumImages);
} catch (Exception e) { } catch (Exception e) {
return error("相册图片数据格式错误"); return error("相册图片数据格式错误");
......
...@@ -204,11 +204,12 @@ ...@@ -204,11 +204,12 @@
"buckType": 1 "buckType": 1
}, },
autoReplace: true, autoReplace: true,
dropZoneTitle: "请上传艺人头像(1:1比例)", dropZoneTitle: "请上传艺人头像(1:1比例,仅限1张)",
maxFileCount: 1, maxFileCount: 1,
maxFileSize: 5120, maxFileSize: 5120,
allowedFileExtensions: ['jpg', 'png', 'jpeg'], allowedFileExtensions: ['jpg', 'png', 'jpeg'],
msgSizeTooLarge: '文件 "{name}" ({size} KB) 超过了允许大小 {maxSize} KB,最大支持上传5M文件' msgSizeTooLarge: '文件 "{name}" ({size} KB) 超过了允许大小 {maxSize} KB,最大支持上传5M文件',
msgFilesTooMany: '只能上传1张头像图片!'
}); });
$("#fileinput-avatar").on("fileuploaded", function (event, data, previewId, index) { $("#fileinput-avatar").on("fileuploaded", function (event, data, previewId, index) {
...@@ -225,11 +226,25 @@ ...@@ -225,11 +226,25 @@
"pathName": "artist/album", "pathName": "artist/album",
"buckType": 1 "buckType": 1
}, },
dropZoneTitle: "请上传艺人相册图片", uploadAsync: true, // 异步上传,每次上传一个文件
maxFileCount: 20, dropZoneTitle: "请上传艺人相册图片(最多20张)",
maxFileCount: 20, // 最多20张
maxFileSize: 5120, maxFileSize: 5120,
allowedFileExtensions: ['jpg', 'png', 'jpeg'], allowedFileExtensions: ['jpg', 'png', 'jpeg'],
msgSizeTooLarge: '文件 "{name}" ({size} KB) 超过了允许大小 {maxSize} KB,最大支持上传5M文件' msgSizeTooLarge: '文件 "{name}" ({size} KB) 超过了允许大小 {maxSize} KB,最大支持上传5M文件',
msgFilesTooMany: '选择的文件数量({n})超过了允许的最大数量{m},相册最多只能上传20张图片!',
showRemove: true,
showUpload: false,
validateInitialCount: true,
maxTotalFileCount: 20
}).on('filebatchselected', function(event, files) {
// 检查选择的文件数量
var currentCount = $("#fileinput-album").fileinput('getFilesCount');
console.log("当前文件总数:", currentCount);
if (currentCount > 20) {
$.modal.alertWarning("相册最多只能上传20张图片!");
return false;
}
}); });
$("#fileinput-album").on("fileuploaded", function (event, data, previewId, index) { $("#fileinput-album").on("fileuploaded", function (event, data, previewId, index) {
......
...@@ -8,6 +8,7 @@ import com.liquidnet.commons.lang.util.BeanUtil; ...@@ -8,6 +8,7 @@ import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator; import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.kylin.dao.KylinArtistDao; import com.liquidnet.service.kylin.dao.KylinArtistDao;
import com.liquidnet.service.kylin.dao.KylinArtistPerformanceDao;
import com.liquidnet.service.kylin.dto.param.ArtistParam; import com.liquidnet.service.kylin.dto.param.ArtistParam;
import com.liquidnet.service.kylin.dto.param.ArtistSearchParam; import com.liquidnet.service.kylin.dto.param.ArtistSearchParam;
import com.liquidnet.service.kylin.dto.vo.ArtistVo; import com.liquidnet.service.kylin.dto.vo.ArtistVo;
...@@ -162,8 +163,24 @@ public class KylinArtistServiceImpl extends ServiceImpl<KylinArtistMapper, Kylin ...@@ -162,8 +163,24 @@ public class KylinArtistServiceImpl extends ServiceImpl<KylinArtistMapper, Kylin
artistVo.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(data.getUpdatedAt())); artistVo.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(data.getUpdatedAt()));
} }
// TODO 设置关联演出 // 设置关联演出
artistVo.setPerformanceVoList(Collections.EMPTY_LIST); List<KylinArtistPerformanceDao> performanceList = artistPerformanceMapper.selectPerformanceDaoByArtistId(artistId);
if (performanceList != null && !performanceList.isEmpty()) {
List<ArtistVo.PerformanceVo> performanceVoList = performanceList.stream()
.map(performance -> {
ArtistVo.PerformanceVo vo = new ArtistVo.PerformanceVo();
vo.setPerformanceId(performance.getPerformanceId());
vo.setTitle(performance.getTitle());
vo.setTimeStart(performance.getTimeStart());
vo.setTimesId(performance.getTimesId());
vo.setTimeTitle(performance.getTimeTitle());
return vo;
})
.collect(Collectors.toList());
artistVo.setPerformanceVoList(performanceVoList);
} else {
artistVo.setPerformanceVoList(Collections.emptyList());
}
} else { } else {
log.error("[detail] query artist is null, artistId: {}", artistId); log.error("[detail] query artist is null, artistId: {}", artistId);
......
...@@ -61,7 +61,7 @@ public class KylinArtistDao implements Serializable { ...@@ -61,7 +61,7 @@ public class KylinArtistDao implements Serializable {
private Integer productCount; private Integer productCount;
/** /**
* 创建时间 * 创建时间(艺人入驻时间)
*/ */
private LocalDateTime createdAt; private LocalDateTime createdAt;
} }
...@@ -11,31 +11,11 @@ public class KylinArtistPerformanceDao implements Serializable { ...@@ -11,31 +11,11 @@ public class KylinArtistPerformanceDao implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* 艺人ID
*/
private String artistId;
/**
* 艺人名称
*/
private String artistName;
/**
* 艺人头像
*/
private String artistUrl;
/** /**
* 演出ID * 演出ID
*/ */
private String performanceId; private String performanceId;
/**
* 艺人在演出排序 越大越靠前
*/
private Integer sort;
/** /**
* 演出标题 * 演出标题
*/ */
...@@ -46,4 +26,14 @@ public class KylinArtistPerformanceDao implements Serializable { ...@@ -46,4 +26,14 @@ public class KylinArtistPerformanceDao implements Serializable {
*/ */
private String timeStart; private String timeStart;
/**
* 演出场次ID
*/
private String timesId;
/**
* 演出场次标题
*/
private String timeTitle;
} }
...@@ -27,6 +27,11 @@ public class KylinArtistPerformance implements Serializable{ ...@@ -27,6 +27,11 @@ public class KylinArtistPerformance implements Serializable{
*/ */
private String performancesId; private String performancesId;
/**
* 场次ID
*/
private String timesId;
/** /**
* 该艺人在本演出中的排序权重,越大越靠前 * 该艺人在本演出中的排序权重,越大越靠前
*/ */
......
...@@ -15,6 +15,6 @@ public interface KylinArtistPerformanceMapper extends BaseMapper<KylinArtistPerf ...@@ -15,6 +15,6 @@ public interface KylinArtistPerformanceMapper extends BaseMapper<KylinArtistPerf
* @param artistId 艺人ID * @param artistId 艺人ID
* @return 演出信息列表 * @return 演出信息列表
*/ */
List<KylinArtistPerformanceDao> selectPerformancesByArtistId(@Param("artistId") String artistId); List<KylinArtistPerformanceDao> selectPerformanceDaoByArtistId(@Param("artistId") String artistId);
} }
...@@ -17,7 +17,9 @@ ...@@ -17,7 +17,9 @@
END as artist_type_name, END as artist_type_name,
a.avatar_url, a.avatar_url,
a.introduction, a.introduction,
a.created_at 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
FROM kylin_artist a FROM kylin_artist a
<where> <where>
a.status = 1 a.status = 1
......
...@@ -2,8 +2,26 @@ ...@@ -2,8 +2,26 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!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.KylinArtistPerformanceMapper"> <mapper namespace="com.liquidnet.service.kylin.mapper.KylinArtistPerformanceMapper">
<select id="selectPerformancesByArtistId" parameterType="java.lang.String" resultType="com.liquidnet.service.kylin.dao.KylinArtistPerformanceDao"> <select id="selectPerformanceDaoByArtistId" parameterType="java.lang.String" resultType="com.liquidnet.service.kylin.dao.KylinArtistPerformanceDao">
SELECT
p.performances_id as performanceId,
p.title,
DATE_FORMAT(p.time_start, '%Y-%m-%d %H:%i:%s') as timeStart,
t.ticket_times_id as timesId,
t.title as timeTitle
FROM kylin_artist_performance ap
INNER JOIN kylin_performances p ON ap.performances_id = p.performances_id
INNER JOIN kylin_ticket_times t ON ap.times_id = t.ticket_times_id
WHERE ap.artist_id = #{artistId}
ORDER BY ap.sort DESC, p.time_start DESC
</select>
<!-- 根据艺人ID获取关联演出数量 -->
<select id="countPerformancesByArtistId" parameterType="java.lang.String" resultType="java.lang.Integer">
SELECT COUNT(1)
FROM kylin_artist_performance
WHERE artist_id = #{artistId}
AND status = 1
</select> </select>
</mapper> </mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment