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

Commit 51f1f38b authored by wangyifan's avatar wangyifan

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

parent 4575268b
......@@ -69,6 +69,12 @@ public class ArtistVo {
@ApiModelProperty("演出开始时间")
private String timeStart;
@ApiModelProperty("场次ID")
private String timesId;
@ApiModelProperty("场次名称")
private String timeTitle;
}
@Data
......
package com.liquidnet.service.kylin.service.admin;
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 java.util.List;
/**
* <p>
* 艺人管理 服务类
......@@ -13,4 +20,16 @@ import com.liquidnet.service.kylin.entity.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;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.core.page.TableDataInfo;
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.dto.param.ArtistParam;
import com.liquidnet.service.kylin.dto.param.ArtistSearchParam;
import com.liquidnet.service.kylin.dto.vo.ArtistVo;
import com.liquidnet.service.kylin.service.admin.IKylinArtistService;
import io.swagger.annotations.Api;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -40,7 +40,7 @@ public class KylinArtistController extends BaseController {
private String platformUrl;
@Autowired
private KylinArtistServiceImpl kylinArtistService;
private IKylinArtistService kylinArtistService;
@GetMapping("/create")
@RequiresPermissions("kylin:artist:create")
......@@ -95,8 +95,8 @@ public class KylinArtistController extends BaseController {
if (albumImagesJson != null && !albumImagesJson.isEmpty() && !albumImagesJson.equals("[]")) {
try {
com.fasterxml.jackson.databind.ObjectMapper mapper = new com.fasterxml.jackson.databind.ObjectMapper();
List<String> albumImages = mapper.readValue(albumImagesJson,
mapper.getTypeFactory().constructCollectionType(List.class, String.class));
List<String> albumImages = mapper.readValue(albumImagesJson,
mapper.getTypeFactory().constructCollectionType(List.class, String.class));
param.setAlbumImages(albumImages);
} catch (Exception e) {
return error("相册图片数据格式错误");
......@@ -127,8 +127,8 @@ public class KylinArtistController extends BaseController {
if (albumImagesJson != null && !albumImagesJson.isEmpty() && !albumImagesJson.equals("[]")) {
try {
com.fasterxml.jackson.databind.ObjectMapper mapper = new com.fasterxml.jackson.databind.ObjectMapper();
List<String> albumImages = mapper.readValue(albumImagesJson,
mapper.getTypeFactory().constructCollectionType(List.class, String.class));
List<String> albumImages = mapper.readValue(albumImagesJson,
mapper.getTypeFactory().constructCollectionType(List.class, String.class));
param.setAlbumImages(albumImages);
} catch (Exception e) {
return error("相册图片数据格式错误");
......
......@@ -204,11 +204,12 @@
"buckType": 1
},
autoReplace: true,
dropZoneTitle: "请上传艺人头像(1:1比例)",
dropZoneTitle: "请上传艺人头像(1:1比例,仅限1张)",
maxFileCount: 1,
maxFileSize: 5120,
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) {
......@@ -225,11 +226,25 @@
"pathName": "artist/album",
"buckType": 1
},
dropZoneTitle: "请上传艺人相册图片",
maxFileCount: 20,
uploadAsync: true, // 异步上传,每次上传一个文件
dropZoneTitle: "请上传艺人相册图片(最多20张)",
maxFileCount: 20, // 最多20张
maxFileSize: 5120,
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) {
......
......@@ -8,6 +8,7 @@ import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
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.ArtistSearchParam;
import com.liquidnet.service.kylin.dto.vo.ArtistVo;
......@@ -162,8 +163,24 @@ public class KylinArtistServiceImpl extends ServiceImpl<KylinArtistMapper, Kylin
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 {
log.error("[detail] query artist is null, artistId: {}", artistId);
......
......@@ -61,7 +61,7 @@ public class KylinArtistDao implements Serializable {
private Integer productCount;
/**
* 创建时间
* 创建时间(艺人入驻时间)
*/
private LocalDateTime createdAt;
}
......@@ -11,31 +11,11 @@ public class KylinArtistPerformanceDao implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 艺人ID
*/
private String artistId;
/**
* 艺人名称
*/
private String artistName;
/**
* 艺人头像
*/
private String artistUrl;
/**
* 演出ID
*/
private String performanceId;
/**
* 艺人在演出排序 越大越靠前
*/
private Integer sort;
/**
* 演出标题
*/
......@@ -46,4 +26,14 @@ public class KylinArtistPerformanceDao implements Serializable {
*/
private String timeStart;
/**
* 演出场次ID
*/
private String timesId;
/**
* 演出场次标题
*/
private String timeTitle;
}
......@@ -27,6 +27,11 @@ public class KylinArtistPerformance implements Serializable{
*/
private String performancesId;
/**
* 场次ID
*/
private String timesId;
/**
* 该艺人在本演出中的排序权重,越大越靠前
*/
......
......@@ -15,6 +15,6 @@ public interface KylinArtistPerformanceMapper extends BaseMapper<KylinArtistPerf
* @param artistId 艺人ID
* @return 演出信息列表
*/
List<KylinArtistPerformanceDao> selectPerformancesByArtistId(@Param("artistId") String artistId);
List<KylinArtistPerformanceDao> selectPerformanceDaoByArtistId(@Param("artistId") String artistId);
}
......@@ -17,7 +17,9 @@
END as artist_type_name,
a.avatar_url,
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
<where>
a.status = 1
......
......@@ -2,8 +2,26 @@
<!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">
<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>
</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