Browse Source

1. 单曲声部调整必填,合奏为非必填
2. 处理后台存储的声轨顺序问题
3. 合奏后台生成图片的限制需要去掉
4. 添加曲谱类型字段

yuanliang 2 years ago
parent
commit
5faa6e627c

+ 14 - 3
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetController.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.admin.controller;
 
+import com.yonge.cooleshow.biz.dal.enums.MusicSheetTypeEnum;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -106,7 +107,13 @@ public class MusicSheetController extends BaseController {
                 && musicSheetDto.getMusicPrice()==null){
             return failed("此曲谱为收费曲谱,需要提供价格");
         }
-        if (StringUtil.isEmpty(musicSheetDto.getMusicSubject())) {
+
+        // 单曲时声部必填,合奏非必填,默认单曲
+        if (musicSheetDto.getMusicSheetType() == null || StringUtil.isEmpty(musicSheetDto.getMusicSheetType())) {
+            musicSheetDto.setMusicSheetType(MusicSheetTypeEnum.SINGLE.getCode());
+        }
+        if (MusicSheetTypeEnum.SINGLE.getCode().equals(musicSheetDto.getMusicSheetType())
+                && StringUtil.isEmpty(musicSheetDto.getMusicSubject())) {
             return failed("曲目声部不能为空");
         }
 
@@ -121,7 +128,9 @@ public class MusicSheetController extends BaseController {
             return failed("每个一级标签只能选一个二级标签");
         }
 
-        if (StringUtil.isEmpty(musicSheetDto.getMusicImg())) {
+        // 合奏图片不做限制
+        if (MusicSheetTypeEnum.SINGLE.getCode().equals(musicSheetDto.getMusicSheetType()) &&
+                StringUtil.isEmpty(musicSheetDto.getMusicImg())) {
             throw new BizException("曲目渲染失败");
         }
 
@@ -177,7 +186,9 @@ public class MusicSheetController extends BaseController {
             musicSheet.setNotation(YesOrNoEnum.NO);
         }
 
-        if (StringUtil.isEmpty(musicSheet.getMusicImg())) {
+        // 合奏时图片不做限制
+        if (MusicSheetTypeEnum.SINGLE.getCode().equals(musicSheet.getMusicSheetType())
+                && StringUtil.isEmpty(musicSheet.getMusicImg())) {
             throw new BizException("曲目渲染失败");
         }
 

+ 13 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheet.java

@@ -250,6 +250,11 @@ public class MusicSheet implements Serializable {
 	@ApiModelProperty(value = "数据修复时间")
 	private Date correctTime;
 
+	//曲谱类型 SINGLE/CONCERT ,使用MusicSheetTypeEnum
+	@TableField("music_sheet_type_")
+	@ApiModelProperty(value = "曲谱类型(SINGLE:单曲,CONCERT:合奏)")
+	private String musicSheetType;
+
 	public Integer getVirtualNumber() {
 		return virtualNumber;
 	}
@@ -706,4 +711,12 @@ public class MusicSheet implements Serializable {
 	public void setCorrectTime(Date correctTime) {
 		this.correctTime = correctTime;
 	}
+
+	public String getMusicSheetType() {
+		return musicSheetType;
+	}
+
+	public void setMusicSheetType(String musicSheetType) {
+		this.musicSheetType = musicSheetType;
+	}
 }

+ 32 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MusicSheetTypeEnum.java

@@ -0,0 +1,32 @@
+package com.yonge.cooleshow.biz.dal.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.yonge.toolset.base.enums.BaseEnum;
+
+/**
+ * @author yl
+ * @version v1.0
+ * @apiNote 曲谱类型,用于曲目管理页面新增编辑时的类型判断
+ */
+public enum MusicSheetTypeEnum implements BaseEnum<String, MusicSheetTypeEnum> {
+    /**
+     * 单曲
+     */
+    SINGLE("SINGLE"),
+    /**
+     * 合奏
+     */
+    CONCERT("CONCERT");
+
+    @EnumValue
+    private final String code;
+
+    MusicSheetTypeEnum(String code) {
+        this.code = code;
+    }
+
+    @Override
+    public String getCode() {
+        return this.code;
+    }
+}

+ 11 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java

@@ -391,6 +391,10 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         } else {
             detail.setPlay(YesOrNoEnum.YES);
         }
+        List<MusicSheetAccompaniment> background = detail.getBackground();
+        if (CollectionUtils.isNotEmpty(background)) {
+            background.sort(Comparator.comparing(MusicSheetAccompaniment::getSortNumber));
+        }
         return detail;
     }
 
@@ -1522,7 +1526,13 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
     @Override
     public List<MusicSheetDetailVo> auditDetailList(Long authMusicSheetId) {
         MusicSheetAuthRecord musicSheetAuthRecord = musicSheetAuthRecordService.getById(authMusicSheetId);
-        return baseMapper.auditDetailList(musicSheetAuthRecord.getOriginalMusicSheetId(),authMusicSheetId);
+        List<MusicSheetDetailVo> sheetDetailVos = baseMapper.auditDetailList(musicSheetAuthRecord.getOriginalMusicSheetId(), authMusicSheetId);
+        for (MusicSheetDetailVo next : sheetDetailVos) {
+            if (CollectionUtils.isNotEmpty(next.getBackground())) {
+                next.getBackground().sort(Comparator.comparing(MusicSheetAccompaniment::getSortNumber));
+            }
+        }
+        return sheetDetailVos;
     }
 
     @Override

+ 4 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml

@@ -37,6 +37,7 @@
         <result column="music_img_" jdbcType="VARCHAR" property="musicImg"/>
         <result column="first_tone_" jdbcType="VARCHAR" property="firstTone"/>
         <result column="fixed_tone_" jdbcType="VARCHAR" property="fixedTone"/>
+        <result column="music_sheet_type_" jdbcType="VARCHAR" property="musicSheetType"/>
     </resultMap>
 
     <sql id="Base_Column_List">
@@ -86,7 +87,8 @@
         t.music_json_ as musicJSON,
         t.music_svg_ as musicSvg,
         t.music_jian_svg_ as musicJianSvg,
-        t.music_first_svg_ as musicFirstSvg
+        t.music_first_svg_ as musicFirstSvg,
+        t.music_sheet_type_ as musicSheetType
     </sql>
 
     <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.MusicSheetVo">
@@ -324,6 +326,7 @@
         <result column="musicSvg" jdbcType="VARCHAR" property="musicSvg"/>
         <result column="musicJianSvg" jdbcType="VARCHAR" property="musicJianSvg"/>
         <result column="musicFirstSvg" jdbcType="VARCHAR" property="musicFirstSvg"/>
+        <result column="musicSheetType" jdbcType="VARCHAR" property="musicSheetType"/>
         <collection property="background" ofType="com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment">
             <id column="accompanimentId" jdbcType="BIGINT" property="id"/>
             <result column="accompanimentMusicSheetId" jdbcType="BIGINT" property="musicSheetId"/>