瀏覽代碼

酷乐秀曲目来源改为内容平台

zouxuan 1 年之前
父節點
當前提交
48990387cf

+ 1 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetController.java

@@ -156,7 +156,7 @@ public class MusicSheetController extends BaseController {
 
         IPage<MusicSheetVo> musicSheetVoIPage = musicSheetService.selectStudentPage(PageUtil.getPage(query), query, ClientEnum.TEACHER);
         if(query.getAuditStatus() != null && !AuthStatusEnum.PASS.getCode().equals(query.getAuditStatus().getCode())){
-            musicSheetAuthRecordService.convertMusicDetail(musicSheetVoIPage,query.getAuditStatus());
+            return succeed(PageUtil.pageInfo(musicSheetAuthRecordService.convertMusicDetail(musicSheetVoIPage,query.getAuditStatus())));
         }
         return succeed(PageUtil.pageInfo(musicSheetVoIPage));
     }

+ 4 - 5
cooleshow-app/src/main/java/com/yonge/cooleshow/website/controller/MusicSheetController.java

@@ -134,7 +134,6 @@ public class MusicSheetController extends BaseController {
         if (sysUser == null  || sysUser.getId() == null) {
             return failed("用户信息获取失败");
         }
-
         // 设置只查老师用户 状态为启用
         query.setCreateBy(sysUser.getId());
         if (query.getAuditStatus() != null && AuthStatusEnum.PASS.getCode().equals(query.getAuditStatus().getCode())) {
@@ -150,15 +149,15 @@ public class MusicSheetController extends BaseController {
         query.setSourceType(SourceTypeEnum.TEACHER);
         query.setMyself(true);
 
-        IPage<MusicSheetVo> musicSheetVoIPage = musicSheetService.selectPage(PageUtil.getPage(query), query);
-        if(query.getAuditStatus() != null && !AuthStatusEnum.PASS.getCode().equals(query.getAuditStatus().getCode())){
-            musicSheetAuthRecordService.convertMusicDetail(musicSheetVoIPage,query.getAuditStatus());
-        }
         TeacherAuditMusicSheetVo teacherAuditMusicSheetVo = musicSheetService.selectTeacherCount(sysUser.getId());
         if (teacherAuditMusicSheetVo == null) {
             teacherAuditMusicSheetVo = new TeacherAuditMusicSheetVo();
         }
+        IPage<MusicSheetVo> musicSheetVoIPage = musicSheetService.selectPage(PageUtil.getPage(query), query);
         teacherAuditMusicSheetVo.setList(PageUtil.pageInfo(musicSheetVoIPage));
+        if(query.getAuditStatus() != null && !AuthStatusEnum.PASS.getCode().equals(query.getAuditStatus().getCode())){
+            teacherAuditMusicSheetVo.setList(PageUtil.pageInfo(musicSheetAuthRecordService.convertMusicDetail(musicSheetVoIPage, query.getAuditStatus())));
+        }
         return succeed(teacherAuditMusicSheetVo);
     }
     /**

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicSheetAuthRecordDao.java

@@ -16,5 +16,5 @@ public interface MusicSheetAuthRecordDao extends BaseMapper<MusicSheetAuthRecord
 
     List<TeacherMusicSheetVo> selectAuditPage(@Param("page") IPage<TeacherMusicSheetVo> page, @Param("param") TeacherMusicSheetAuditSearch query);
 
-    List<MusicSheetAuthRecord> findByMusicSheetIds(@Param("musicSheetIds") List<Long> musicSheetIds, @Param("auditStatus") String auditStatus);
+    List<MusicSheetAuthRecord> findByMusicSheetIds(@Param("musicSheetIds") List musicSheetIds, @Param("auditStatus") String auditStatus);
 }

+ 3 - 6
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheetAuthRecord.java

@@ -1,18 +1,16 @@
 package com.yonge.cooleshow.biz.dal.entity;
 
-import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
 
 /**
  * 曲目审核表
@@ -23,7 +21,6 @@ import org.springframework.format.annotation.DateTimeFormat;
 public class MusicSheetAuthRecord implements Serializable {
 	private static final long serialVersionUID = 1L;
     @ApiModelProperty("审核单id ")
-    @TableId(value = "id_", type = IdType.AUTO)
     private Long id;
 
     @ApiModelProperty("曲目id ")

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetAuthRecordService.java

@@ -58,5 +58,5 @@ public interface MusicSheetAuthRecordService extends IService<MusicSheetAuthReco
     MusicSheetDetailVo auditDetail(String id);
 
     //将曲目信息替换成最新的json中的数据
-    void convertMusicDetail(IPage<MusicSheetVo> musicSheetVoIPage, AuthStatusEnum auditStatus);
+    IPage convertMusicDetail(IPage<MusicSheetVo> musicSheetVoIPage, AuthStatusEnum auditStatus);
 }

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java

@@ -401,7 +401,7 @@ public interface MusicSheetService extends IService<MusicSheet> {
 
     void initMusicSheetDetailVo(CbsMusicSheetWrapper.AddMusicSheet addMusicSheet, MusicSheetWrapper.MusicSheetDetailVo sheetDetailVo);
 
-    void initMusicSheetDetailVo(CbsMusicSheetWrapper.AddMusicSheet addMusicSheet, MusicSheetVo musicSheetAudit);
+    void initMusicSheetDetailVo(CbsMusicSheetWrapper.AddMusicSheet addMusicSheet, MusicSheetWrapper.MusicSheetVo musicSheetAudit);
 
     void initMusicSheetDetailVo(CbsMusicSheetWrapper.AddMusicSheet addMusicSheet, TeacherMusicSheetVo musicSheetAudit);
 

+ 45 - 8
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetAuthRecordServiceImpl.java

@@ -13,6 +13,7 @@ import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
 import com.microsvc.toolkit.common.response.template.R;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.MusicSheetAuthRecordDao;
+import com.yonge.cooleshow.biz.dal.dto.PageUtil;
 import com.yonge.cooleshow.biz.dal.dto.req.TeacherMusicSheetAuditReq;
 import com.yonge.cooleshow.biz.dal.dto.search.TeacherMusicSheetAuditSearch;
 import com.yonge.cooleshow.biz.dal.entity.*;
@@ -25,6 +26,7 @@ import com.yonge.cooleshow.biz.dal.vo.MusicSheetDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherMusicSheetVo;
 import com.yonge.cooleshow.biz.dal.wrapper.AddMusicSheetWrapper;
+import com.yonge.cooleshow.biz.dal.wrapper.InstrumentWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.MusicSheetWrapper;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.cooleshow.common.service.IdGeneratorService;
@@ -363,6 +365,32 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
             if(StringUtils.isNotEmpty(musicSheetJson)){
                 CbsMusicSheetWrapper.AddMusicSheet addMusicSheet = JSON.parseObject(musicSheetJson, CbsMusicSheetWrapper.AddMusicSheet.class);
                 musicSheetService.initMusicSheetDetailVo(addMusicSheet,sheetDetailVo);
+                //获取乐器名称
+                List<MusicSheetAccompaniment> background = sheetDetailVo.getBackground();
+                if (CollectionUtils.isNotEmpty(background)) {
+                    String instrumentIds = background.stream().map(e -> e.getMusicalInstrumentId()).filter(StringUtils::isNotEmpty).collect(Collectors.joining(","));
+                    if (StringUtils.isNotEmpty(instrumentIds)) {
+                        List<Long> instrumentIsList = Arrays.stream(instrumentIds.split(",")).map(Long::valueOf).distinct().collect(Collectors.toList());
+                        List<InstrumentWrapper.Instrument> instruments = instrumentService.getInstruments(instrumentIsList);
+                        Map<Long,InstrumentWrapper.Instrument> instrumentMap =
+                                instruments.stream().collect(Collectors.toMap(InstrumentWrapper.Instrument::getId, o -> o, (o1, o2) -> o1));
+                        for (MusicSheetAccompaniment accompaniment : background) {
+                            if (StringUtils.isNotEmpty(accompaniment.getMusicalInstrumentId())){
+                                StringBuffer sb = new StringBuffer();
+                                for (String s : accompaniment.getMusicalInstrumentId().split(",")) {
+                                    InstrumentWrapper.Instrument instrument = instrumentMap.get(Long.parseLong(s));
+                                    if (instrument != null){
+                                        if(sb.length() > 0) {
+                                            sb.append(",");
+                                        }
+                                        sb.append(instrument.getName());
+                                    }
+                                }
+                                accompaniment.setMusicalInstrumentName(sb.toString());
+                            }
+                        }
+                    }
+                }
                 sheetDetailVo.setMusicSheetJson(null);
                 sheetDetailVo.setSubmitAuditTime(sheetDetailVo.getCreateTime());
                 //获取声部
@@ -393,16 +421,18 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
                         collect.stream().collect(Collectors.groupingBy(TeacherMusicSheetVo::getAuditStatus));
                 for (AuthStatusEnum authStatusEnum : statusEnumListMap.keySet()) {
                     List<TeacherMusicSheetVo> records = statusEnumListMap.get(authStatusEnum);
-                    List<Long> musicSheetIds = records.stream().map(e -> e.getMusicSheetId()).collect(Collectors.toList());
+                    List<String> musicSheetIds = records.stream().map(e -> e.getMusicSheetId()).collect(Collectors.toList());
                     List<MusicSheetAuthRecord> recordList = this.baseMapper.findByMusicSheetIds(musicSheetIds, authStatusEnum.getCode());
                     if (CollectionUtils.isNotEmpty(recordList)){
                         Map<Long,MusicSheetAuthRecord> authRecordMap = recordList.stream()
                                 .collect(Collectors.toMap(MusicSheetAuthRecord::getMusicSheetId, Function.identity(), (o, n) -> n));
                         for (TeacherMusicSheetVo musicSheetVo : records) {
-                            MusicSheetAuthRecord sheetDetailVo = authRecordMap.get(musicSheetVo.getMusicSheetId());
+                            MusicSheetAuthRecord sheetDetailVo = authRecordMap.get(Long.parseLong(musicSheetVo.getMusicSheetId()));
                             if(sheetDetailVo == null){
                                 continue;
                             }
+                            musicSheetVo.setId(sheetDetailVo.getId().toString());
+                            musicSheetVo.setMusicSheetId(sheetDetailVo.getId().toString());
                             String musicSheetJson = sheetDetailVo.getMusicSheetJson();
                             if(StringUtils.isNotEmpty(musicSheetJson)){
                                 CbsMusicSheetWrapper.AddMusicSheet addMusicSheet = JSON.parseObject(musicSheetJson, CbsMusicSheetWrapper.AddMusicSheet.class);
@@ -422,7 +452,7 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
     }
 
     @Override
-    public void convertMusicDetail(IPage<MusicSheetVo> musicSheetVoIPage, AuthStatusEnum auditStatus) {
+    public IPage convertMusicDetail(IPage<MusicSheetVo> musicSheetVoIPage, AuthStatusEnum auditStatus) {
         List<MusicSheetVo> records = musicSheetVoIPage.getRecords();
         if (CollectionUtils.isNotEmpty(records)){
             List<Long> musicSheetIds = records.stream().map(e -> e.getId()).collect(Collectors.toList());
@@ -430,30 +460,37 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
             if (CollectionUtils.isNotEmpty(recordList)){
                 Map<Long,MusicSheetAuthRecord> authRecordMap = recordList.stream()
                         .collect(Collectors.toMap(MusicSheetAuthRecord::getMusicSheetId, Function.identity(), (o, n) -> n));
+                List<MusicSheetWrapper.MusicSheetVo> results = new ArrayList<>();
                 for (MusicSheetVo musicSheetVo : records) {
+                    MusicSheetWrapper.MusicSheetVo vo = JSON.parseObject(JSON.toJSONString(musicSheetVo), MusicSheetWrapper.MusicSheetVo.class);
+                    vo.setId(musicSheetVo.getId().toString());
+                    vo.setCbsMusicSheetId(musicSheetVo.getCbsMusicSheetId().toString());
                     MusicSheetAuthRecord sheetDetailVo = authRecordMap.get(musicSheetVo.getId());
                     if(sheetDetailVo == null){
                         continue;
                     }
+                    vo.setId(sheetDetailVo.getId().toString());
                     String musicSheetJson = sheetDetailVo.getMusicSheetJson();
                     if(StringUtils.isNotEmpty(musicSheetJson)){
                         CbsMusicSheetWrapper.AddMusicSheet addMusicSheet = JSON.parseObject(musicSheetJson, CbsMusicSheetWrapper.AddMusicSheet.class);
-                        musicSheetService.initMusicSheetDetailVo(addMusicSheet,musicSheetVo);
+                        musicSheetService.initMusicSheetDetailVo(addMusicSheet,vo);
                         //获取声部
-                        String musicSubject = musicSheetVo.getMusicSubject();
+                        String musicSubject = vo.getMusicSubject();
                         if(StringUtils.isNotEmpty(musicSheetJson)){
                             List<Subject> list = subjectService.findBySubjectByIdList(musicSubject);
-                            musicSheetVo.setSubjectNames(list.stream().map(e->e.getName()).collect(Collectors.joining(",")));
+                            vo.setSubjectNames(list.stream().map(e->e.getName()).collect(Collectors.joining(",")));
                         }
                         //获取标签
-                        String musicTagIds = musicSheetVo.getMusicTag();
+                        String musicTagIds = vo.getMusicTag();
                         if(StringUtils.isNotEmpty(musicTagIds)){
                             List<MusicTag> list = musicTagService.lambdaQuery().in(MusicTag::getId, musicTagIds.split(",")).list();
-                            musicSheetVo.setMusicTagNames(list.stream().map(e->e.getName()).collect(Collectors.joining(",")));
+                            vo.setMusicTagNames(list.stream().map(e->e.getName()).collect(Collectors.joining(",")));
                         }
                     }
                 }
+                return PageUtil.transPageInfo(musicSheetVoIPage,results);
             }
         }
+        return musicSheetVoIPage;
     }
 }

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

@@ -592,16 +592,16 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
     @Override
     public MusicSheetDetailVo detail(String id, SysUser sysUser, ClientEnum userType,String tenantAlbumId) {
         MusicSheetDetailVo detailVo = baseMapper.detail(Long.parseLong(id));
-        if (detailVo == null || detailVo.getDelFlag()) {
+        if (detailVo == null) {
             MusicSheetDetailVo result = musicSheetAuthRecordService.auditDetail(id);
             if (result != null) {
                 return result;
             }
-            if(detailVo == null){
+            if(result == null){
                 throw new BizException("未找到曲目信息");
             }
         }
-        if(detailVo.getDelFlag()){
+        /*if(detailVo.getDelFlag()){
             //获取乐器名称
             List<MusicSheetAccompaniment> background = detailVo.getBackground();
             if (CollectionUtils.isNotEmpty(background)) {
@@ -629,7 +629,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
                 }
             }
             return detailVo;
-        }
+        }*/
         MusicSheetDetailVo detail = this.getCbsDetail(Long.parseLong(id));
         //兼容审批数据
         MusicSheetAuthRecord one = musicSheetAuthRecordService.lambdaQuery().eq(MusicSheetAuthRecord::getMusicSheetId, detail.getId()).last("limit 1").one();
@@ -2177,7 +2177,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
     }
 
     @Override
-    public void initMusicSheetDetailVo(CbsMusicSheetWrapper.AddMusicSheet addMusicSheet, MusicSheetVo musicSheetAudit) {
+    public void initMusicSheetDetailVo(CbsMusicSheetWrapper.AddMusicSheet addMusicSheet, MusicSheetWrapper.MusicSheetVo musicSheetAudit) {
         musicSheetAudit.setProviderType(SourceTypeEnum.TEACHER);
         musicSheetAudit.setSourceType(SourceTypeEnum.TEACHER);
         musicSheetAudit.setMusicSheetName(addMusicSheet.getName());

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherMusicSheetVo.java

@@ -20,7 +20,7 @@ import java.util.Date;
 public class TeacherMusicSheetVo {
 
     @ApiModelProperty("审核id")
-    private Long id;
+    private String id;
 
     @ApiModelProperty("曲目审核id")
     private Long authMusicSheetId;
@@ -41,7 +41,7 @@ public class TeacherMusicSheetVo {
     private String phone;
 
     @ApiModelProperty("曲谱id")
-    private Long musicSheetId;
+    private String musicSheetId;
 
     @ApiModelProperty("曲谱名称")
     private String musicSheetName;

+ 224 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/MusicSheetWrapper.java

@@ -123,6 +123,230 @@ public class MusicSheetWrapper {
         }
     }
 
+
+
+
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+	@ApiModel(" MusicSheet-曲谱表")
+    public static class MusicSheetVo implements Serializable {
+        @ApiModelProperty("添加人")
+        private String addName;
+
+        @ApiModelProperty("添加头像(老师头像)")
+        private String addUserAvatar;
+
+        @ApiModelProperty("标签名")
+        private String musicTagNames;
+
+        @ApiModelProperty("声部名")
+        private String subjectNames;
+
+        @ApiModelProperty("收藏 0:否,1:是")
+        private YesOrNoEnum favorite = YesOrNoEnum.NO;
+
+        @ApiModelProperty("是否购买/VIP(0:否,1:是) ")
+        private YesOrNoEnum play;
+
+        @ApiModelProperty("专辑中曲目的排序号")
+        private Integer albumSortNumber;  //排序号
+
+        @ApiModelProperty("单曲专辑数")
+        private Integer albumNums;
+
+        @ApiModelProperty("曲目来源名")
+        private String  sourceName;
+
+        @ApiModelProperty("机构专辑ID,逗号隔开")
+        private String tenantAlbumId;
+
+        @ApiModelProperty("所属人信息")
+        private CbsMusicSheetWrapper.MusicSheetExtend musicSheetExtend;
+
+        @ApiModelProperty(value = "主键id")
+        private String id;  //主键ID
+
+        @ApiModelProperty(value = "内容平台曲目ID")
+        private String cbsMusicSheetId;  //主键ID
+
+        @NotBlank(message = "曲谱名称不能为空!")
+        @ApiModelProperty(value = "曲谱名称")
+        private String musicSheetName;  //曲谱名称
+
+
+        @NotBlank(message = "曲谱封面图不能为空!")
+        @ApiModelProperty(value = "封面图")
+        private String titleImg;  //曲谱名称
+
+        @ApiModelProperty(value = "曲谱来源(平台用户ID或者是老师ID)")
+        private Long userId;  //曲谱来源(平台用户ID或者是老师ID)
+
+        @ApiModelProperty("是否可以转简谱(0:否,1:是)")
+        private YesOrNoEnum notation;
+
+        @ApiModelProperty("曲目图片")
+        private String musicImg;
+
+        @ApiModelProperty(value = "曲目来源类型 TEACHER 老师 PLATFORM 平台")
+        private SourceTypeEnum sourceType;
+
+
+        @ApiModelProperty(value = "提供方 TENANT 机构 PLATFORM 平台")
+        private SourceTypeEnum providerType;
+
+        @NotBlank(message = "艺术家不能为空!")
+        @ApiModelProperty(value = "艺术家")
+        private String composer;  //音乐家
+
+        @ApiModelProperty(value = "曲谱声部(适用的乐器,可能是多个,用逗号分隔)")
+        private String musicSubject;  //曲谱声部(适用的乐器,可能是多个,用逗号分隔)
+
+        @ApiModelProperty(value = "曲目音频类型 MP3:mp3, MIDI:midi,")
+        private AudioTypeEnum audioType;
+
+        @ApiModelProperty(value = "mp3类型 MP3:mp3, MP3_METRONOME:MP3_METRONOME,")
+        private AudioTypeEnum mp3Type;
+
+
+        @ApiModelProperty(value = "收藏数")
+        private Integer favoriteCount;
+
+
+        @ApiModelProperty("虚拟人数 ")
+        private Integer virtualNumber;
+
+        @ApiModelProperty(value = "曲谱标签(多个标签用逗号分隔)")
+        private String musicTag;  //曲谱标签(多个标签用逗号分隔)
+
+        @ApiModelProperty(value = "伴奏类型 HOMEMODE:自制伴奏  COMMON:普通伴奏")
+        private AccompanimentTypeEnum accompanimentType;
+
+        // @NotNull(message = "默认播放速度不能为空!")
+        @ApiModelProperty(value = "默认播放速度")
+        private String playSpeed;  //默认播放速度
+
+        @ApiModelProperty(value = "是否可以评测(0:否;1:是)")
+        private YesOrNoEnum canEvaluate;  //是否可以评测(0:否;1:是)
+
+        @ApiModelProperty(value = "是否展示指法(0:否;1:是)")
+        private YesOrNoEnum showFingering;  //是否展示指法(0:否;1:是)
+
+        // @NotNull(message = "收费类型不能为空!")
+        @ApiModelProperty(value = "收费类型(FREE:免费;VIP:会员;CHARGE:单曲收费)")
+        private ChargeTypeEnum chargeType;  //收费类型(0:免费;1:会员;2:单曲收费)
+
+        @NotNull(message = "收费类型不能为空!")
+        @ApiModelProperty(value = "收费类型(FREE:免费;VIP:会员;CHARGE:单曲收费)")
+        private String paymentType;
+
+
+        @ApiModelProperty(value = "曲目状态(0:停用,1:启用)")
+        private YesOrNoEnum state;
+
+        @ApiModelProperty(value = "曲目停用原因")
+        private String reason;
+
+        @ApiModelProperty(value = "审核状态(DOING:待审核;PASS:通过;UNPASS:未通过)")
+        private AuthStatusEnum auditStatus;
+
+        @ApiModelProperty(value = "提交审核时间")
+        private Date submitAuditTime;
+
+        @ApiModelProperty(value = "第一次通过审核时间")
+        private Date firstPassAuditTime;
+
+        @ApiModelProperty(value = "排序号")
+        private Integer sortNumber;  //排序号
+
+        @ApiModelProperty(value = "是否置顶(0:否;1:是)")
+        private YesOrNoEnum topFlag;  //是否置顶(0:否;1:是)
+
+        @ApiModelProperty(value = "是否热门曲谱(0:否;1:是)")
+        private YesOrNoEnum hotFlag;  //是否热门曲谱(0:否;1:是)
+
+        @ApiModelProperty(value = "精品标志(0:否;1:是)")
+        private YesOrNoEnum exquisiteFlag;
+
+        @ApiModelProperty(value = "曲谱价格")
+        private java.math.BigDecimal musicPrice;  //曲谱价格
+
+        @ApiModelProperty(value = "音频文件存储路径")
+        private String audioFileUrl;  //音频文件存储路径
+
+        @ApiModelProperty(value = "XML文件存储路径")
+        private String xmlFileUrl;  //XML文件存储路径
+
+        @ApiModelProperty(value = "midi路径")
+        private String midiUrl;  //XML文件存储路径
+
+        @ApiModelProperty(value = "伴奏含节拍器路径")
+        private String metronomeUrl;  //XML文件存储路径
+
+        @ApiModelProperty(value = "伴奏(不含节拍器)路径")
+        private String url;  //XML文件存储路径
+
+        @ApiModelProperty(value = "是否自带节拍器(0:否;1:是)")
+        private YesOrNoEnum hasBeat;  //是否自带节拍器(0:否;1:是)
+
+        @ApiModelProperty(value = "是否审核时可见 (0:否  1:是)")
+        private YesOrNoEnum auditVersion;
+
+        @ApiModelProperty(value = "创建时间")
+        private java.util.Date createTime;  //创建时间
+
+        @ApiModelProperty(value = "创建人(老师或者是后台平台用户)")
+        private Long createBy;  //创建人(老师或者是后台平台用户)
+
+        @ApiModelProperty(value = "更新时间")
+        private java.util.Date updateTime;  //更新时间
+
+        @ApiModelProperty(value = "更新人(老师或者是后台平台用户)")
+        private Long updateBy;  //更新人(老师或者是后台平台用户)
+
+        @ApiModelProperty(value = "备注")
+        private String remark;  //备注,填写未通过审核的原因
+
+
+        @ApiModelProperty("曲目配置信息")
+        private String extConfigJson;
+
+        private String musicJSON;
+
+        private String musicSvg;
+
+        private String musicJianSvg;
+
+        private String musicFirstSvg;
+
+        @ApiModelProperty("首调")
+        private String firstTone;
+
+        @ApiModelProperty("固定调")
+        private String fixedTone;
+
+        @ApiModelProperty(value = "假删除标识 0:未删除 1:已删除")
+        private Boolean delFlag;
+
+        @ApiModelProperty(value = "数据修复时间")
+        private Date correctTime;
+
+        //曲谱类型 SINGLE/CONCERT ,使用MusicSheetTypeEnum
+        @ApiModelProperty(value = "曲谱类型(SINGLE:单曲,CONCERT:合奏)")
+        private MusicSheetTypeEnum musicSheetType;
+
+        public ChargeTypeEnum getChargeType() {
+            if (Objects.isNull(this.chargeType) && StringUtils.isNotEmpty(getPaymentType())) {
+
+                return ChargeTypeEnum.valueOf(getPaymentType().split(",")[0]);
+            }
+            return chargeType;
+        }
+    }
+
+
+
     @Data
     @Builder
     @NoArgsConstructor