Bladeren bron

Merge branch 'zx_online_cbs' of http://git.dayaedu.com/yonge/cooleshow into test

zouxuan 1 jaar geleden
bovenliggende
commit
1bd5fdb226

+ 2 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetAuthRecordController.java

@@ -6,6 +6,7 @@ import com.yonge.cooleshow.biz.dal.service.MusicSheetAuthRecordService;
 import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherMusicSheetVo;
+import com.yonge.cooleshow.biz.dal.wrapper.MusicSheetWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.page.PageInfo;
@@ -52,7 +53,7 @@ public class MusicSheetAuthRecordController extends BaseController {
 
     @GetMapping(value = "/auditDetailList/{batchNo}")
     @ApiOperation(value = "审核中心-乐谱审核详情历史记录",  notes = "传入曲目审核批次号")
-    public HttpResponseResult<List<MusicSheetDetailVo>> auditDetailList(@PathVariable String batchNo) {
+    public HttpResponseResult<List<MusicSheetWrapper.MusicSheetDetailVo>> auditDetailList(@PathVariable String batchNo) {
         return succeed(musicSheetAuthRecordService.auditDetailList(batchNo));
     }
 }

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

@@ -87,7 +87,7 @@ public class MusicSheetController extends BaseController {
      */
     @GetMapping("/detail/{id}")
     @ApiOperation(value = "详情", notes = "传入musicTag")
-    public HttpResponseResult<MusicSheetDetailVo> detail(@ApiParam(value = "曲谱编号", required = true) @PathVariable("id") Long id,
+    public HttpResponseResult<MusicSheetDetailVo> detail(@ApiParam(value = "曲谱编号", required = true) @PathVariable("id") String id,
                                                          @RequestParam(required = false) String tenantAlbumId) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null  || sysUser.getId() == null) {

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

@@ -71,7 +71,7 @@ public class MusicSheetController extends BaseController {
      */
     @GetMapping("/detail/{id}")
     @ApiOperation(value = "详情", notes = "传入musicTag")
-    public HttpResponseResult<MusicSheetDetailVo> detail(@ApiParam(value = "曲谱编号", required = true) @PathVariable("id") Long id,
+    public HttpResponseResult<MusicSheetDetailVo> detail(@ApiParam(value = "曲谱编号", required = true) @PathVariable("id") String id,
                                                          @RequestParam(required = false) String tenantAlbumId) {
         SysUser sysUser = sysUserService.getUser();
         MusicSheetDetailVo detail = musicSheetService.detail(id, sysUser, ClientEnum.TEACHER,tenantAlbumId);
@@ -112,15 +112,6 @@ public class MusicSheetController extends BaseController {
         }
     }
 
-    /*@ApiOperation(value = "新增/修改", notes = "曲目表- 传入 MusicSheetWrapper.MusicSheet")
-    @PostMapping("/save")
-    public HttpResponseResult<Long> cbsAdd(@Validated @RequestBody CbsMusicSheetWrapper.AddMusicSheet addMusicSheet) {
-        SysUser sysUser = sysUserService.getUser();
-        addMusicSheet.setCreateBy(sysUser.getId());
-        addMusicSheet.setSourceType(EMusicSourceType.PERSON);
-        return succeed(cbsMusicScoreService.musicSheetAdd(addMusicSheet));
-    }*/
-
     @ApiOperation(value = "曲目分页查询", httpMethod="POST", consumes="application/json", produces="application/json")
     @PostMapping(value="/list", consumes="application/json", produces="application/json")
     public HttpResponseResult<PageInfo<MusicSheetVo>> list(@RequestBody StudentMusicSheetSearch query) {

+ 0 - 56
cooleshow-app/src/main/java/com/yonge/cooleshow/website/controller/MusicSheetController.java

@@ -43,9 +43,6 @@ public class MusicSheetController extends BaseController {
 	@Resource
 	private MusicSheetService musicSheetService;
 
-//    @Autowired
-//    private TeacherService teacherService;
-
     /**
      * 曲目收藏
      */
@@ -154,32 +151,6 @@ public class MusicSheetController extends BaseController {
         teacherAuditMusicSheetVo.setList(PageUtil.pageInfo(musicSheetVoIPage));
         return succeed(teacherAuditMusicSheetVo);
     }
-
-    /*@ApiOperation(value = "老师新增曲目", httpMethod="POST", consumes="application/json", produces="application/json")
-    @PostMapping(value="/create", consumes="application/json", produces="application/json")
-    public HttpResponseResult<Object> create(@Valid @RequestBody MusicSheetDto musicSheetDto) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null  || sysUser.getId() == null) {
-            return failed("用户信息获取失败");
-        }
-
-        if (ChargeTypeEnum.CHARGE.getCode().equals(musicSheetDto.getChargeType().getCode())
-                && musicSheetDto.getMusicPrice()==null){
-            return failed("此曲谱为收费曲谱,需要提供价格");
-        }
-
-        musicSheetDto.setUserId(sysUser.getId());
-        musicSheetDto.setAuditStatus(AuthStatusEnum.DOING);
-        musicSheetDto.setSubmitAuditTime(new Date());
-        musicSheetDto.setSourceType(SourceTypeEnum.TEACHER);
-
-        musicSheetDto.setFavoriteCount(0);
-        musicSheetDto.setCreateBy(sysUser.getId());
-        musicSheetDto.setCreateTime(new Date());
-        musicSheetService.saveMusicSheet(musicSheetDto,sysUser.getId());
-        return succeed("新增曲谱成功");
-    }*/
-
     /**
      * 启用/停用
      */
@@ -192,33 +163,6 @@ public class MusicSheetController extends BaseController {
         return status(musicSheetService.state(id,"", ClientEnum.TEACHER));
     }
 
-
-    /*@ApiOperation(value = "修改", httpMethod="POST", consumes="application/json", produces="application/json")
-    @PostMapping(value="/update", consumes="application/json", produces="application/json")
-    public HttpResponseResult<Object> update(@Valid @RequestBody MusicSheetDto musicSheet) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null  || sysUser.getId() == null) {
-            return failed("用户信息获取失败");
-        }
-        if (musicSheet.getId()==null){
-            return failed("缺少ID");
-        }
-
-        musicSheet.setUserId(sysUser.getId());
-        musicSheet.setSubmitAuditTime(new Date());
-        musicSheet.setCreateTime(new Date());
-        musicSheet.setCreateBy(sysUser.getId());
-        musicSheet.setUpdateBy(sysUser.getId());
-        musicSheet.setUpdateTime(new Date());
-        musicSheet.setSubmitAuditTime(new Date());
-        musicSheet.setAuditStatus(AuthStatusEnum.DOING);
-        if ( musicSheetService.saveMusicSheet(musicSheet,sysUser.getId())){
-            return succeed("修改成功");
-        } else {
-            return failed("修改失败");
-        }
-    }*/
-
     @ApiOperation(value = "关联的曲目列表")
     @GetMapping(value="/queryRelatedList")
     public HttpResponseResult<PageInfo<MusicSheetVo>> queryRelatedList(MusicSheetRelatedQueryInfo queryInfo) {

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

@@ -10,6 +10,7 @@ import com.yonge.cooleshow.biz.dal.dto.search.*;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.vo.*;
+import com.yonge.cooleshow.biz.dal.wrapper.MusicSheetWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.music.MusicCompareWrapper;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
@@ -171,7 +172,7 @@ public interface MusicSheetDao extends BaseMapper<MusicSheet> {
      * @param musicSheetId 曲目id
      * @return
      */
-    List<MusicSheetDetailVo> auditDetailList(@Param("musicSheetId") Long musicSheetId, @Param("batchNo") String batchNo);
+    List<MusicSheetWrapper.MusicSheetDetailVo> auditDetailList(@Param("musicSheetId") Long musicSheetId, @Param("batchNo") String batchNo);
 
     /**
      * 单曲数量统计

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/TeacherMusicSheetAuditReq.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.biz.dal.dto.req;
 
 
+import com.yonge.cooleshow.biz.dal.enums.AccompanimentTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.AudioTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
@@ -69,6 +70,8 @@ public class TeacherMusicSheetAuditReq {
     @ApiModelProperty(value = "曲目音频类型 MP3:mp3, MIDI:midi,")
     private AudioTypeEnum audioType;
 
+    private AccompanimentTypeEnum accompanimentType;
+
     @ApiModelProperty(value = "音频文件存储路径")
     private String audioFileUrl;  //音频文件存储路径
 }

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

@@ -7,6 +7,7 @@ import com.yonge.cooleshow.biz.dal.dto.search.TeacherMusicSheetAuditSearch;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheetAuthRecord;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherMusicSheetVo;
+import com.yonge.cooleshow.biz.dal.wrapper.MusicSheetWrapper;
 
 import java.util.List;
 
@@ -50,5 +51,5 @@ public interface MusicSheetAuthRecordService extends IService<MusicSheetAuthReco
 
     MusicSheetDetailVo auditDetail(Long musicSheetAuthRecordId);
 
-    List<MusicSheetDetailVo> auditDetailList(String batchNo);
+    List<MusicSheetWrapper.MusicSheetDetailVo> auditDetailList(String batchNo);
 }

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

@@ -14,6 +14,7 @@ import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.OrderTypeEnum;
 import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
+import com.yonge.cooleshow.biz.dal.wrapper.MusicSheetWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.music.MusicCompareWrapper;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -92,7 +93,7 @@ public interface MusicSheetService extends IService<MusicSheet> {
      * @param sysUser 登录用户
      * @return 曲谱信息
      */
-    MusicSheetDetailVo detail(Long id, SysUser sysUser, ClientEnum userType,String tenantAlbumId);
+    MusicSheetDetailVo detail(String id, SysUser sysUser, ClientEnum userType,String tenantAlbumId);
 
     /**
      * 学生端 曲目分页查询
@@ -398,7 +399,7 @@ public interface MusicSheetService extends IService<MusicSheet> {
 
     MusicSheet initMusicSheet(CbsMusicSheetWrapper.AddMusicSheet addMusicSheet);
 
-    void initMusicSheetDetailVo(CbsMusicSheetWrapper.AddMusicSheet addMusicSheet,MusicSheetDetailVo sheetDetailVo);
+    void initMusicSheetDetailVo(CbsMusicSheetWrapper.AddMusicSheet addMusicSheet, MusicSheetWrapper.MusicSheetDetailVo sheetDetailVo);
 
     void sync();
 }

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

@@ -4,9 +4,12 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayaedu.cbs.common.enums.music.EAudioType;
+import com.dayaedu.cbs.common.enums.music.EMusicAvailableType;
 import com.dayaedu.cbs.openfeign.client.MusicFeignClientService;
 import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetApplicationExtendClientWrapper;
 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.req.TeacherMusicSheetAuditReq;
@@ -20,6 +23,7 @@ import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherMusicSheetVo;
 import com.yonge.cooleshow.biz.dal.wrapper.AddMusicSheetWrapper;
+import com.yonge.cooleshow.biz.dal.wrapper.MusicSheetWrapper;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.cooleshow.common.service.IdGeneratorService;
 import com.yonge.toolset.base.exception.BizException;
@@ -56,6 +60,8 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
     @Resource
     private SubjectService subjectService;
     @Resource
+    private MusicTagService musicTagService;
+    @Resource
     private SysMessageService sysMessageService;
     @Resource
     private InstrumentService instrumentService;
@@ -81,19 +87,25 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
         musicSheetAuthRecord.setReason(param.getRemark());
         musicSheetAuthRecord.setVerifyUserId(userId);
         musicSheetAuthRecord.setAuditState(param.getAuthStatus());
+        String musicSheetJson = musicSheetAuthRecord.getMusicSheetJson();
+        CbsMusicSheetWrapper.AddMusicSheet addMusicSheet = JSON.parseObject(musicSheetJson, CbsMusicSheetWrapper.AddMusicSheet.class);
+        addMusicSheet.setIsEvaluated(param.getCanEvaluate()==YesOrNoEnum.YES);
+        addMusicSheet.setIsPlayBeat(true);
+        addMusicSheet.setIsUseSystemBeat(param.getHasBeat()!=YesOrNoEnum.YES);
+        addMusicSheet.setIsShowFingering(param.getShowFingering()==YesOrNoEnum.YES);
+        addMusicSheet.setIsConvertibleScore(param.getNotation()==YesOrNoEnum.YES);
+        addMusicSheet.setExtConfigJson(param.getExtConfigJson());
+        addMusicSheet.setAudioType(EAudioType.valueOf(param.getAccompanimentType().getCode()));
+        musicSheetAuthRecord.setMusicSheetJson(JSON.toJSONString(addMusicSheet));
         MusicSheet musicSheet = musicSheetService.getById(musicSheetAuthRecord.getMusicSheetId());
         if (musicSheet == null) {
             throw new BizException("曲目信息不存在");
         }
-        musicSheet.setAuditStatus(param.getAuthStatus());
-        musicSheet.setUpdateBy(userId);
         if (param.getAuthStatus().equals(AuthStatusEnum.PASS)) {
-            musicSheetService.updateById(musicSheet);
+//            musicSheetService.updateById(musicSheet);
             // 修改老师标签
             teacherService.setTeacherTag(musicSheet.getUserId(), TeacherTagEnum.MUSIC);
             //同步到内容平台
-            String musicSheetJson = musicSheetAuthRecord.getMusicSheetJson();
-            CbsMusicSheetWrapper.AddMusicSheet addMusicSheet = JSON.parseObject(musicSheetJson, CbsMusicSheetWrapper.AddMusicSheet.class);
             CbsMusicSheetWrapper.MusicSheetExtend musicSheetExtend = new CbsMusicSheetWrapper.MusicSheetExtend();
             musicSheetExtend.setApplicationId(applicationId);
             musicSheetExtend.setUserId(addMusicSheet.getCreateBy());
@@ -106,17 +118,23 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
             addMusicSheet.setIsEvaluated(param.getCanEvaluate()==YesOrNoEnum.YES);
             addMusicSheet.setIsPlayBeat(true);
             addMusicSheet.setIsUseSystemBeat(param.getHasBeat()!=YesOrNoEnum.YES);
-            if(musicSheet.getCbsMusicSheetId() == null){
-                musicSheet.setCbsMusicSheetId(IdWorker.getId());
-            }
             addMusicSheet.setId(musicSheet.getCbsMusicSheetId());
+            addMusicSheet.setAvailableType(EMusicAvailableType.PLATFORM);
+            addMusicSheet.setUpdateBy(userId);
             //修改声部和乐器为内容平台id
             String musicalInstrumentIds = addMusicSheet.getMusicalInstrumentIds();
-            List<Subject> subjectList = subjectService.findBySubjectByIdList(musicalInstrumentIds);
-            addMusicSheet.setMusicalInstrumentIds(subjectList.stream().map(e->e.getCbsSubjectId().toString()).distinct().collect(Collectors.joining(",")));
-            addMusicSheet.setSubjectIds(subjectList.stream().map(e->e.getParentSubjectId().toString()).distinct().collect(Collectors.joining(",")));
-            musicFeignClientService.musicSheetAdd(addMusicSheet);
+            List<Instrument> instruments = instrumentService.lambdaQuery().in(Instrument::getId, musicalInstrumentIds.split(",")).list();
+            addMusicSheet.setMusicalInstrumentIds(musicalInstrumentIds);
+            String subjectIds = instruments.stream().map(e -> e.getSubjectId().toString()).distinct().collect(Collectors.joining(","));
+            List<Subject> subjectList = subjectService.findBySubjectByIdList(subjectIds);
+            addMusicSheet.setSubjectIds(subjectList.stream().map(e -> e.getCbsSubjectId().toString()).distinct().collect(Collectors.joining(",")));
+            R<Long> longR = musicFeignClientService.musicSheetAdd(addMusicSheet);
+            if (!longR.getCode().equals(200)) {
+                throw new BizException("同步到内容平台失败");
+            }
         }else {
+            musicSheet.setAuditStatus(param.getAuthStatus());
+            musicSheet.setUpdateBy(userId);
             musicSheetService.updateById(musicSheet);
         }
         this.updateById(musicSheetAuthRecord);
@@ -144,29 +162,6 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
     }
 
 
-    /*@Override
-    public void setAuditDoing(Long musicSheetId, Long originalMusicSheetId, Long lastMusicSheetId) {
-        List<MusicSheetAuthRecord> list = this.lambdaQuery()
-                                              .eq(MusicSheetAuthRecord::getMusicSheetId, musicSheetId)
-                                              .eq(MusicSheetAuthRecord::getAuditState, AuthStatusEnum.DOING.getCode())
-                                              .list();
-        if (!CollectionUtils.isEmpty(list)) {
-            return;
-        }
-        MusicSheetAuthRecord musicSheetAuthRecord = new MusicSheetAuthRecord();
-        musicSheetAuthRecord.setMusicSheetId(musicSheetId);
-        musicSheetAuthRecord.setAuditState(AuthStatusEnum.DOING);
-        if (originalMusicSheetId == null) {
-            originalMusicSheetId = musicSheetId;
-            musicSheetAuthRecord.setFirstAuth(0);
-        } else {
-            musicSheetAuthRecord.setFirstAuth(1);
-        }
-        musicSheetAuthRecord.setCreateTime(new Date());
-        musicSheetAuthRecord.setOriginalMusicSheetId(originalMusicSheetId);
-        this.saveOrUpdate(musicSheetAuthRecord);
-    }*/
-
     @Override
     public String selectAuditReason(Long musicSheetId) {
         MusicSheetAuthRecord one = this.lambdaQuery()
@@ -191,7 +186,9 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
         if(CollectionUtils.isEmpty(list)){
             throw new BizException("乐器信息不存在");
         }
-        addMusicSheet.setSubjectIds(list.stream().map(e->e.getSubjectId().toString()).distinct().collect(Collectors.joining(",")));
+        String subjectIds = list.stream().map(e -> e.getSubjectId().toString()).distinct().collect(Collectors.joining(","));
+        List<Subject> subjectList = subjectService.findBySubjectByIdList(subjectIds);
+        addMusicSheet.setSubjectIds(subjectList.stream().map(e -> e.getId().toString()).distinct().collect(Collectors.joining(",")));
         List<CbsMusicSheetApplicationExtendClientWrapper.AddMusicSheetApplicationExtend> extendList = new ArrayList<>();
         CbsMusicSheetApplicationExtendClientWrapper.AddMusicSheetApplicationExtend extend = new CbsMusicSheetApplicationExtendClientWrapper.AddMusicSheetApplicationExtend();
         extend.setApplicationId(applicationId);
@@ -219,6 +216,7 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
         musicSheet.setUserId(userId);
         musicSheet.setCreateBy(userId);
         musicSheet.setUpdateBy(userId);
+        musicSheet.setCbsMusicSheetId(IdWorker.getId());
         musicSheetService.save(musicSheet);
         List<MusicSheetAccompaniment> musicSheetAccompaniments = musicSheetAccompanimentService.initMusicSheetAccompaniment(musicSheetAuthRecord.getMusicSheetJson(),musicSheet.getId());
         musicSheetAccompanimentService.saveBatch(musicSheetAccompaniments);
@@ -236,7 +234,7 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
         if(musicSheetAuthRecord.getId() == null){
             throw new BizException("先选择要修改的曲目");
         }
-        MusicSheetAuthRecord record = baseMapper.selectById(musicSheetAuthRecord.getId());
+        MusicSheetAuthRecord record = this.lambdaQuery().eq(MusicSheetAuthRecord::getMusicSheetId, musicSheetAuthRecord.getId()).last("LIMIT 1").one();
         if (record == null){
             throw new BizException("审核记录不存在");
         }
@@ -290,16 +288,32 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
     }
 
     @Override
-    public List<MusicSheetDetailVo> auditDetailList(String batchNo) {
-        List<MusicSheetDetailVo> sheetDetailVos = musicSheetService.getDao().auditDetailList(null, batchNo);
+    public List<MusicSheetWrapper.MusicSheetDetailVo> auditDetailList(String batchNo) {
+        List<MusicSheetWrapper.MusicSheetDetailVo> sheetDetailVos = musicSheetService.getDao().auditDetailList(null, batchNo);
         if (CollectionUtils.isNotEmpty(sheetDetailVos)) {
-            for (MusicSheetDetailVo sheetDetailVo : sheetDetailVos) {
+            String userName = sheetDetailVos.get(0).getUserName();
+            String realName = sheetDetailVos.get(0).getRealName();
+            for (MusicSheetWrapper.MusicSheetDetailVo sheetDetailVo : sheetDetailVos) {
+                sheetDetailVo.setUserName(userName);
+                sheetDetailVo.setRealName(realName);
                 String musicSheetJson = sheetDetailVo.getMusicSheetJson();
                 if(StringUtils.isNotEmpty(musicSheetJson)){
                     CbsMusicSheetWrapper.AddMusicSheet addMusicSheet = JSON.parseObject(musicSheetJson, CbsMusicSheetWrapper.AddMusicSheet.class);
                     musicSheetService.initMusicSheetDetailVo(addMusicSheet,sheetDetailVo);
                     sheetDetailVo.setMusicSheetJson(null);
                     sheetDetailVo.setSubmitAuditTime(sheetDetailVo.getCreateTime());
+                    //获取声部
+                    String musicSubject = sheetDetailVo.getMusicSubject();
+                    if(StringUtils.isNotEmpty(musicSheetJson)){
+                        List<Subject> list = subjectService.findBySubjectByIdList(musicSubject);
+                        sheetDetailVo.setSubjectNames(list.stream().map(e->e.getName()).collect(Collectors.joining(",")));
+                    }
+                    //获取标签
+                    String musicTagIds = sheetDetailVo.getMusicTag();
+                    if(StringUtils.isNotEmpty(musicTagIds)){
+                        List<MusicTag> list = musicTagService.lambdaQuery().in(MusicTag::getId, musicTagIds.split(",")).list();
+                        sheetDetailVo.setMusicTagNames(list.stream().map(e->e.getName()).collect(Collectors.joining(",")));
+                    }
                 }
             }
         }

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

@@ -8,8 +8,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.beust.jcommander.internal.Lists;
 import com.dayaedu.cbs.common.enums.EClientType;
-import com.dayaedu.cbs.common.enums.music.*;
+import com.dayaedu.cbs.common.enums.music.EAudioType;
 import com.dayaedu.cbs.common.enums.music.EMusicAvailableType;
+import com.dayaedu.cbs.common.enums.music.EMusicPlayMode;
+import com.dayaedu.cbs.common.enums.music.EMusicSourceType;
 import com.dayaedu.cbs.common.enums.school.EMusicSheetType;
 import com.dayaedu.cbs.openfeign.client.MusicFeignClientService;
 import com.dayaedu.cbs.openfeign.properties.OpenFeignClientConfigProperties;
@@ -283,10 +285,10 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         if (musicSheet == null) {
             throw new BizException("未找到曲目信息");
         }
-        if (YesOrNoEnum.YES.equals(musicSheet.getState()) &&
-                musicSheet.getSourceType().equals(SourceTypeEnum.TEACHER) && StringUtil.isEmpty(reason)) {
-            throw new BizException("请填写下架原因");
-        }
+//        if (YesOrNoEnum.YES.equals(musicSheet.getState()) &&
+//                musicSheet.getSourceType().equals(SourceTypeEnum.TEACHER) && StringUtil.isEmpty(reason)) {
+//            throw new BizException("请填写下架原因");
+//        }
         CbsMusicSheetWrapper.MusicSheetApplicationQuery query = new CbsMusicSheetWrapper.MusicSheetApplicationQuery();
         query.setApplicationId(applicationId);
         query.setMusicSheetIds(Collections.singletonList(musicSheet.getCbsMusicSheetId()));
@@ -491,7 +493,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 
     @Override
     public MusicSheetDetailVo detail(Long id, SysUser sysUser, ClientEnum userType) {
-        return detail(id, sysUser, userType,null);
+        return detail(id.toString(), sysUser, userType,null);
     }
 
     private void musicSheetApplicationToMusicSheet(CbsMusicSheetWrapper.MusicSheetApplication musicSheetApplication, MusicSheetVo sheet) {
@@ -564,9 +566,20 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
     }
 
     @Override
-    public MusicSheetDetailVo detail(Long id, SysUser sysUser, ClientEnum userType,String tenantAlbumId) {
-        MusicSheetDetailVo detailVo = baseMapper.detail(id);
+    public MusicSheetDetailVo detail(String id, SysUser sysUser, ClientEnum userType,String tenantAlbumId) {
+        MusicSheetDetailVo detailVo = baseMapper.detail(Long.parseLong(id));
         if (detailVo == null) {
+            //获取待审核曲目信息
+            MusicSheetAuthRecord record = musicSheetAuthRecordService.lambdaQuery().eq(MusicSheetAuthRecord::getMusicSheetId, id).last("LIMIT 1").one();
+            if(Objects.nonNull(record)){
+                String musicSheetJson = record.getMusicSheetJson();
+                if(StringUtils.isNotEmpty(musicSheetJson)){
+                    CbsMusicSheetWrapper.AddMusicSheet addMusicSheet = JSON.parseObject(musicSheetJson, CbsMusicSheetWrapper.AddMusicSheet.class);
+                    MusicSheetWrapper.MusicSheetDetailVo musicSheetDetailVo = new MusicSheetWrapper.MusicSheetDetailVo();
+                    musicSheetService.initMusicSheetDetailVo(addMusicSheet,musicSheetDetailVo);
+                    return JSON.parseObject(JSON.toJSONString(musicSheetDetailVo),MusicSheetDetailVo.class);
+                }
+            }
             throw new BizException("未找到曲目信息");
         }
         if(detailVo.getDelFlag()){
@@ -598,7 +611,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
             }
             return detailVo;
         }
-        MusicSheetDetailVo detail = this.getCbsDetail(id);
+        MusicSheetDetailVo detail = this.getCbsDetail(Long.parseLong(id));
         // 设置收藏人数
         detail.setFavoriteCount(detail.getFavoriteCount() + detail.getVirtualNumber());
 
@@ -620,12 +633,12 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 
 
         // 收藏
-        YesOrNoEnum favorite = musicFavoriteService.checkFavorite(id,sysUser.getId(),userType);
+        YesOrNoEnum favorite = musicFavoriteService.checkFavorite(Long.parseLong(id),sysUser.getId(),userType);
         detail.setFavorite(favorite);
 
         // 播放状态
         if (AuthStatusEnum.UNPASS.getCode().equals(detail.getAuditStatus().getCode())) {
-            String reason = musicSheetAuthRecordService.selectAuditReason(id);
+            String reason = musicSheetAuthRecordService.selectAuditReason(Long.parseLong(id));
             detail.setReason(reason);
         }
         if (StringUtil.isEmpty(tenantAlbumId)) {
@@ -672,7 +685,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 
 
 
-        List<MusicSheetAccompaniment> background = detail.getBackground();
+        /*List<MusicSheetAccompaniment> background = detail.getBackground();
         if (CollectionUtils.isNotEmpty(background)) {
             // 兼容管乐迷曲目同步数据
             long count = background.stream().map(MusicSheetAccompaniment::getSortNumber)
@@ -684,7 +697,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
                 // 酷乐秀原音排序字段
                 background.sort(Comparator.comparing(MusicSheetAccompaniment::getSortNumber));
             }
-        }
+        }*/
         return detail;
     }
 
@@ -2057,7 +2070,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
     }
 
     @Override
-    public void initMusicSheetDetailVo(CbsMusicSheetWrapper.AddMusicSheet addMusicSheet, MusicSheetDetailVo musicSheetAudit) {
+    public void initMusicSheetDetailVo(CbsMusicSheetWrapper.AddMusicSheet addMusicSheet, MusicSheetWrapper.MusicSheetDetailVo musicSheetAudit) {
         musicSheetAudit.setProviderType(SourceTypeEnum.TEACHER);
         musicSheetAudit.setSourceType(SourceTypeEnum.TEACHER);
         musicSheetAudit.setMusicSheetName(addMusicSheet.getName());

+ 251 - 102
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/MusicSheetWrapper.java

@@ -1,11 +1,17 @@
 package com.yonge.cooleshow.biz.dal.wrapper;
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.dayaedu.cbs.common.enums.EClientType;
 import com.dayaedu.cbs.common.enums.music.*;
 import com.dayaedu.cbs.common.enums.school.EMusicSheetType;
 import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
+import com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment;
+import com.yonge.cooleshow.biz.dal.enums.*;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -15,8 +21,13 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 import java.util.Optional;
 
 /**
@@ -117,182 +128,320 @@ public class MusicSheetWrapper {
     @NoArgsConstructor
     @AllArgsConstructor
 	@ApiModel(" MusicSheet-曲谱表")
-    public static class MusicSheet {
+    public static class MusicSheet implements Serializable {
 
-        @ApiModelProperty("主键")
-        private Long id;
+        @TableId(value = "id_", type = IdType.AUTO)
+        @ApiModelProperty(value = "主键id")
+        private String id;  //主键ID
 
-        @ApiModelProperty("曲谱分类")
-        private Integer musicSheetCategoriesId;
+        @TableField(value = "cbs_music_sheet_id_")
+        @ApiModelProperty(value = "内容平台曲目ID")
+        private String cbsMusicSheetId;  //主键ID
 
-        @ApiModelProperty("曲谱名称")
-        private String musicSheetName;
+        @NotBlank(message = "曲谱名称不能为空!")
+        @Size(max = 64, message = "曲谱名称长度不能超过64位!")
+        @TableField("music_sheet_name_")
+        @ApiModelProperty(value = "曲谱名称")
+        private String musicSheetName;  //曲谱名称
 
-        @ApiModelProperty("可用途径 ORG 机构 PLATFORM 平台")
-        private String availableType;
 
-        //曲谱类型 SINGLE/CONCERT ,使用MusicSheetTypeEnum
-        @ApiModelProperty(value = "曲谱类型(SINGLE:单曲,CONCERT:合奏)")
-        private EMusicSheetType musicSheetType;
+        @NotBlank(message = "曲谱封面图不能为空!")
+        @TableField("title_img_")
+        @ApiModelProperty(value = "封面图")
+        private String titleImg;  //曲谱名称
 
-        @ApiModelProperty("封面图")
-        private String titleImg;
+        @TableField("user_id_")
+        @ApiModelProperty(value = "曲谱来源(平台用户ID或者是老师ID)")
+        private Long userId;  //曲谱来源(平台用户ID或者是老师ID)
 
+        @TableField("notation_")
+        @ApiModelProperty("是否可以转简谱(0:否,1:是)")
+        private YesOrNoEnum notation;
 
-        @ApiModelProperty("曲谱来源id")
-        private Long userId;
+        @TableField("music_img_")
+        @ApiModelProperty("曲目图片")
+        private String musicImg;
 
+        @TableField("source_type_")
+        @ApiModelProperty(value = "曲目来源类型 TEACHER 老师 PLATFORM 平台")
+        private SourceTypeEnum sourceType;
 
-        @ApiModelProperty("曲目来源类型 TEACHER 老师 PLATFORM 平台")
-        private String sourceType;
 
+        @TableField("provider_type_")
+        @ApiModelProperty(value = "提供方 TENANT 机构 PLATFORM 平台")
+        private SourceTypeEnum providerType;
 
-        @ApiModelProperty("作曲人")
-        private String composer;
+        @NotBlank(message = "艺术家不能为空!")
+        @Size(max = 32, message = "艺术家长度不能超过32位!")
+        @TableField("composer_")
+        @ApiModelProperty(value = "艺术家")
+        private String composer;  //音乐家
 
+        @TableField("music_subject_")
+        @ApiModelProperty(value = "曲谱声部(适用的乐器,可能是多个,用逗号分隔)")
+        private String musicSubject;  //曲谱声部(适用的乐器,可能是多个,用逗号分隔)
 
-        @ApiModelProperty("曲谱声部(适用的乐器,可能是多个,用逗号分隔)")
-        private String musicSubject;
+        @NotNull(message = "曲谱音频文件类型不能为空!")
+        @TableField("audio_type_")
+        @ApiModelProperty(value = "曲目音频类型 MP3:mp3, MIDI:midi,")
+        private AudioTypeEnum audioType;
 
+        @TableField("mp3_type_")
+        @ApiModelProperty(value = "mp3类型 MP3:mp3, MP3_METRONOME:MP3_METRONOME,")
+        private AudioTypeEnum mp3Type;
 
-        @ApiModelProperty("mp3曲谱类型  MP3;MP3_METRONOME")
-        private String mp3Type;
 
+        @TableField("favorite_count_")
+        @ApiModelProperty(value = "收藏数")
+        private Integer favoriteCount;
 
-        @ApiModelProperty("曲目图片")
-        private String musicImg;
 
+        @ApiModelProperty("虚拟人数 ")
+        @TableField(value = "virtual_number_")
+        private Integer virtualNumber;
 
-        @ApiModelProperty("曲谱音频文件类型(midi;mp3)")
-        private String audioType;
+        @NotBlank(message = "曲谱标签不能为空!")
+        @TableField("music_tag_")
+        @ApiModelProperty(value = "曲谱标签(多个标签用逗号分隔)")
+        private String musicTag;  //曲谱标签(多个标签用逗号分隔)
 
+        @NotNull(message = "伴奏类型不能为空!")
+        @TableField("accompaniment_type_")
+        @ApiModelProperty(value = "伴奏类型 HOMEMODE:自制伴奏  COMMON:普通伴奏")
+        private AccompanimentTypeEnum accompanimentType;
 
-        @ApiModelProperty("是否可以转简谱(0:否,1:是)")
-        private Integer notation;
+        @TableField("play_speed_")
+        // @NotNull(message = "默认播放速度不能为空!")
+        @ApiModelProperty(value = "默认播放速度")
+        private String playSpeed;  //默认播放速度
 
+        @TableField("can_evaluate_")
+        @ApiModelProperty(value = "是否可以评测(0:否;1:是)")
+        private YesOrNoEnum canEvaluate;  //是否可以评测(0:否;1:是)
 
-        @ApiModelProperty("曲谱标签(多个标签用逗号分隔)")
-        private String musicTag;
+        @TableField("show_fingering_")
+        @ApiModelProperty(value = "是否展示指法(0:否;1:是)")
+        private YesOrNoEnum showFingering;  //是否展示指法(0:否;1:是)
 
+        // @NotNull(message = "收费类型不能为空!")
+        @TableField("charge_type_")
+        @ApiModelProperty(value = "收费类型(FREE:免费;VIP:会员;CHARGE:单曲收费)")
+        private ChargeTypeEnum chargeType;  //收费类型(0:免费;1:会员;2:单曲收费)
 
-        @ApiModelProperty("默认播放速度")
-        private String playSpeed;
+        @NotNull(message = "收费类型不能为空!")
+        @TableField("payment_type_")
+        @ApiModelProperty(value = "收费类型(FREE:免费;VIP:会员;CHARGE:单曲收费)")
+        private String paymentType;
 
 
-        @ApiModelProperty("是否可以评测(0:否;1:是)")
-        private Boolean canEvaluate;
+        @TableField("state_")
+        @ApiModelProperty(value = "曲目状态(0:停用,1:启用)")
+        private YesOrNoEnum state;
 
+        @TableField("reason_")
+        @ApiModelProperty(value = "曲目停用原因")
+        private String reason;
 
-        @ApiModelProperty("伴奏类型  HOMEMODE:自制 COMMON:普通")
-        private String accompanimentType;
+        @TableField("audit_status_")
+        @ApiModelProperty(value = "审核状态(DOING:待审核;PASS:通过;UNPASS:未通过)")
+        private AuthStatusEnum auditStatus;
 
+        @TableField("submit_audit_time_")
+        @ApiModelProperty(value = "提交审核时间")
+        private Date submitAuditTime;
 
-        @ApiModelProperty("是否展示指法(0:否;1:是)")
-        private Boolean showFingering;
+        @TableField("first_pass_audit_time_")
+        @ApiModelProperty(value = "第一次通过审核时间")
+        private Date firstPassAuditTime;
 
+        @TableField("sort_number_")
+        @ApiModelProperty(value = "排序号")
+        private Integer sortNumber;  //排序号
 
-        @ApiModelProperty("曲目状态(0:停用,1:启用)")
-        private Boolean status;
+        @TableField("top_flag_")
+        @ApiModelProperty(value = "是否置顶(0:否;1:是)")
+        private YesOrNoEnum topFlag;  //是否置顶(0:否;1:是)
 
+        @TableField("hot_flag_")
+        @ApiModelProperty(value = "是否热门曲谱(0:否;1:是)")
+        private YesOrNoEnum hotFlag;  //是否热门曲谱(0:否;1:是)
 
-        @ApiModelProperty("曲目停用原因")
-        private String reason;
+        @TableField("exquisite_flag_")
+        @ApiModelProperty(value = "精品标志(0:否;1:是)")
+        private YesOrNoEnum exquisiteFlag;
 
+        @TableField("music_price_")
+        @ApiModelProperty(value = "曲谱价格")
+        private java.math.BigDecimal musicPrice;  //曲谱价格
 
-        @ApiModelProperty("排序号")
-        private Integer sortNumber;
+        @TableField("audio_file_url_")
+        @ApiModelProperty(value = "音频文件存储路径")
+        private String audioFileUrl;  //音频文件存储路径
 
+        @NotBlank(message = "XML文件存储路径不能为空!")
+        @TableField("xml_file_url_")
+        @ApiModelProperty(value = "XML文件存储路径")
+        private String xmlFileUrl;  //XML文件存储路径
 
-        @ApiModelProperty("midi路径")
-        private String midiUrl;
 
+        @TableField("midi_url_")
+        @ApiModelProperty(value = "midi路径")
+        private String midiUrl;  //XML文件存储路径
 
-        @ApiModelProperty("伴奏含节拍器路径")
-        private String metronomeUrl;
 
+        @TableField("metronome_url_")
+        @ApiModelProperty(value = "伴奏含节拍器路径")
+        private String metronomeUrl;  //XML文件存储路径
 
-        @ApiModelProperty("伴奏(不含节拍器)路径")
-        private String url;
 
+        @TableField("url_")
+        @ApiModelProperty(value = "伴奏(不含节拍器)路径")
+        private String url;  //XML文件存储路径
 
-        @ApiModelProperty("音频文件存储路径")
-        private String audioFileUrl;
+        @TableField("has_beat_")
+        @ApiModelProperty(value = "是否自带节拍器(0:否;1:是)")
+        private YesOrNoEnum hasBeat;  //是否自带节拍器(0:否;1:是)
 
+        @TableField("audit_version_")
+        @ApiModelProperty(value = "是否审核时可见 (0:否  1:是)")
+        private YesOrNoEnum auditVersion;
 
-        @ApiModelProperty("XML文件存储路径")
-        private String xmlFileUrl;
+        @TableField("create_time_")
+        @ApiModelProperty(value = "创建时间")
+        private java.util.Date createTime;  //创建时间
 
+        @TableField("create_by_")
+        @ApiModelProperty(value = "创建人(老师或者是后台平台用户)")
+        private Long createBy;  //创建人(老师或者是后台平台用户)
 
-        @ApiModelProperty("是否自带节拍器(0:否;1:是)")
-        private Boolean hasBeat;
+        @TableField("update_time_")
+        @ApiModelProperty(value = "更新时间")
+        private java.util.Date updateTime;  //更新时间
 
+        @TableField("update_by_")
+        @ApiModelProperty(value = "更新人(老师或者是后台平台用户)")
+        private Long updateBy;  //更新人(老师或者是后台平台用户)
 
-        @ApiModelProperty("曲目配置")
-        private String extConfigJson;
+        @TableField("remark_")
+        @ApiModelProperty(value = "备注")
+        private String remark;  //备注,填写未通过审核的原因
 
 
-        @ApiModelProperty("创建时间")
-        private Date createTime;
+        @TableField("ext_config_json_")
+        @ApiModelProperty("曲目配置信息")
+        private String extConfigJson;
 
-        @ApiModelProperty("创建人(老师或者是后台平台用户)")
-        private Long createBy;
+        @TableField("music_json_")
+        private String musicJSON;
 
-        @ApiModelProperty("创建用户")
-        private String createUser;
+        @TableField("music_svg_")
+        private String musicSvg;
 
-        @ApiModelProperty("更新时间")
-        private Date updateTime;
+        @TableField("music_jian_svg_")
+        private String musicJianSvg;
 
-        @ApiModelProperty("更新人(老师或者是后台平台用户)")
-        private Long updateBy;
+        @TableField("music_first_svg_")
+        private String musicFirstSvg;
 
-        @ApiModelProperty("更新用户")
-        private String updateUser;
+        @TableField("first_tone_")
+        @ApiModelProperty("首调")
+        private String firstTone;
 
-        @ApiModelProperty("备注")
-        private String remark;
+        @TableField("fixed_tone_")
+        @ApiModelProperty("固定调")
+        private String fixedTone;
 
-        @ApiModelProperty("假删除标识 0:未删除 1:已删除")
+        @TableField("del_flag_")
+        @ApiModelProperty(value = "假删除标识 0:未删除 1:已删除")
         private Boolean delFlag;
 
-        @ApiModelProperty("伴奏")
-        private List<MusicSheetAccompanimentWrapper.MusicSheetAccompaniment> background;
+        @TableField("correct_time_")
+        @ApiModelProperty(value = "数据修复时间")
+        private Date correctTime;
 
-        @ApiModelProperty("曲目缓存")
-        private String musicJSON;
+        //曲谱类型 SINGLE/CONCERT ,使用MusicSheetTypeEnum
+        @TableField("music_sheet_type_")
+        @ApiModelProperty(value = "曲谱类型(SINGLE:单曲,CONCERT:合奏)")
+        private MusicSheetTypeEnum musicSheetType;
 
-        @ApiModelProperty("曲目缓存svg")
-        private String musicSvg;
+        public ChargeTypeEnum getChargeType() {
+            if (Objects.isNull(this.chargeType) && StringUtils.isNotEmpty(getPaymentType())) {
 
-        @ApiModelProperty("曲目缓存简谱svg")
-        private String musicJianSvg;
+                return ChargeTypeEnum.valueOf(getPaymentType().split(",")[0]);
+            }
+            return chargeType;
+        }
+    }
 
-        @ApiModelProperty("曲目缓存首调svg")
-        private String musicFirstSvg;
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public static class MusicSheetDetailVo extends MusicSheet {
 
-        @ApiModelProperty("是否节奏音乐")
-        private Boolean rhythmFlag;
+        @ApiModelProperty("曲谱伴奏")
+        private List<MusicSheetAccompaniment> background;
 
-        @ApiModelProperty("内容平台曲目ID")
-        private Long cbsMusicSheetId;
+        @ApiModelProperty("是否能播放(0:否,1:是) 学生端进入小酷Ai判断 试用/完整 播放")
+        private YesOrNoEnum play;
 
-        @ApiModelProperty("内容平台声部ID")
-        private String cbsSubjectId;
 
-        @ApiModelProperty("所属学校ID")
-        private String schoolIds;
+        @ApiModelProperty("收藏0:否,1:是")
+        private YesOrNoEnum favorite;
 
-        @ApiModelProperty(value = "是否审核时可见 (0:否  1:是)")
-        private YesOrNoEnum auditVersion;
+        @ApiModelProperty("订单状态(WAIT_PAY:待支付;PAYING:支付中,PAID:已付款)")
+        private OrderStatusEnum orderStatus;
 
-        public String jsonString() {
-            return JSON.toJSONString(this);
-        }
+        @ApiModelProperty("支付订单号")
+        private String orderNo;
 
-        public static MusicSheet from(String json) {
-            return JSON.parseObject(json, MusicSheet.class);
-        }
-	}
+        @ApiModelProperty("上传老师名称")
+        private String userName;
+
+        @ApiModelProperty("上传用户头像")
+        private String userAvatar;
+
+        @ApiModelProperty("标签名")
+        private String musicTagNames;
+
+        @ApiModelProperty("声部名")
+        private String subjectNames;
+
+        @ApiModelProperty("声部code")
+        private String code;
+
+        @ApiModelProperty("声部频率")
+        private Integer aiDefaultFrequency;
+
+        @ApiModelProperty("审核理由")
+        private String reason;
+
+        @ApiModelProperty("是否使用节拍器")
+        private Boolean isPlayBeat;
+
+//    @ApiModelProperty("上一次审核的曲目信息")
+//    private MusicSheetDetailVo lastMusicSheet;
+
+        @ApiModelProperty("真实姓名")
+        private String realName;
+
+        @ApiModelProperty("审核时间")
+        private Date auditTime;
+
+        @ApiModelProperty("审核人")
+        private String  auditName;
+
+        @ApiModelProperty("审核理由")
+        private String auditReason;
+
+        @ApiModelProperty("是否为课件")
+        private YesOrNoEnum coursewareStatus = YesOrNoEnum.NO;
+
+        @ApiModelProperty("课件id")
+        private Long coursewareId;
+
+        @ApiModelProperty("曲目json文件")
+        private String musicSheetJson;
+    }
 
     @Data
     @ApiModel(" MusicSheet-曲目表")

+ 35 - 19
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml

@@ -96,17 +96,16 @@
     </sql>
     <insert id="batchInsert">
         insert into music_sheet
-        (cbs_music_sheet_id_,provider_type_,music_tag_,payment_type_,charge_type_,top_flag_,exquisite_flag_,sort_number_,state_,audit_status_
+        (cbs_music_sheet_id_,music_tag_,payment_type_,charge_type_,top_flag_,exquisite_flag_,sort_number_,state_,audit_status_
             ,music_sheet_name_,music_subject_,music_svg_,composer_,accompaniment_type_,play_speed_,
-         music_price_,notation_,music_sheet_type_,source_type_,audio_type_,show_fingering_,can_evaluate_,create_by_,user_id_
+         music_price_,notation_,music_sheet_type_,source_type_,provider_type_,audio_type_,show_fingering_,can_evaluate_,create_by_,user_id_
         )
         values
         <foreach collection="vos" item="item" separator=",">
-            (#{item.musicSheetId},CASE WHEN #{item.availableType} = 'PLATFORM' THEN 'PLATFORM'
-            WHEN #{item.availableType} = 'PERSON' THEN 'TEACHER' ELSE 'TENANT' END,
+            (#{item.musicSheetId},
              #{item.musicTagIds},#{item.paymentType},#{item.paymentType},
              #{item.topFlag},#{item.exquisiteFlag},#{item.sortNo},0
-             ,CASE WHEN #{item.delFlag} THEN 'DOING' ELSE 'PASS' END
+             ,'PASS'
             ,#{item.musicSheetUpdate.name},
             #{item.musicSheetUpdate.subjectIds},
             #{item.musicSheetUpdate.musicSvg},
@@ -119,6 +118,9 @@
             CASE WHEN #{item.musicSheetUpdate.sourceType} = 'PLATFORM' THEN 'PLATFORM'
                 WHEN #{item.musicSheetUpdate.sourceType} = 'PERSON' THEN 'TEACHER'
                 ELSE 'TENANT' END,
+            CASE WHEN #{item.musicSheetUpdate.sourceType} = 'PLATFORM' THEN 'PLATFORM'
+                WHEN #{item.musicSheetUpdate.sourceType} = 'PERSON' THEN 'TEACHER'
+                ELSE 'TENANT' END,
             #{item.musicSheetUpdate.playMode},
             #{item.musicSheetUpdate.showFingering},
             #{item.musicSheetUpdate.canEvaluate},
@@ -134,9 +136,14 @@
         <if test="param.sortByAlbumIdDesc != null">
             left join tenant_album_music tam on tam.music_sheet_id_ = t.id_ and tam.tenant_album_id_ = #{param.sortByAlbumIdDesc} and tam.del_flag_=0
         </if>
+        <if test="param.auditStatus != null">
+            left join music_sheet_auth_record msar ON msar.music_sheet_id_ = t.id_
+        </if>
         <where>
-            t.cbs_music_sheet_id_ IS NOT NULL
             <include refid="QueryInfo"/>
+            <if test="param.auditStatus == null">
+                AND t.cbs_music_sheet_id_ IS NOT NULL
+            </if>
             <if test="param.auditVersion != null ">
                 and #{param.auditVersion} = t.audit_version_
             </if>
@@ -199,7 +206,7 @@
             and t.state_ = #{param.state}
         </if>
         <if test="param.auditStatus != null">
-            and t.audit_status_ = #{param.auditStatus}
+            and msar.audit_state_ = #{param.auditStatus}
         </if>
         <if test="param.createBy != null">
             and t.create_by_ = #{param.createBy}
@@ -410,14 +417,17 @@
         ,su.avatar_ as addUserAvatar
         from music_sheet t
         left join sys_user su on t.create_by_ = su.id_
+        <if test="param.auditStatus != null">
+            left join music_sheet_auth_record msar ON msar.music_sheet_id_ = t.id_
+        </if>
         <where>
             <include refid="QueryInfo"/>
             <if test="param.auditVersion != null ">
                 and #{param.auditVersion} = t.audit_version_
             </if>
-
         </where>
         order by
+
         <choose>
             <when test="param.musicSortType != null and param.musicSortType.code == 'TOP'">
                 t.top_flag_ desc, t.sort_number_ desc,
@@ -434,7 +444,6 @@
                 </if>
             </otherwise>
         </choose>
-
         t.id_ desc
     </select>
 
@@ -451,6 +460,9 @@
         left join sys_user su on t.create_by_ = su.id_
         left join music_sheet_purchase_record mspr on mspr.music_sheet_id_ = t.id_
         left join music_favorite mf on t.id_ = mf.music_sheet_id_ and mspr.student_id_ = mf.user_id_
+        <if test="param.auditStatus != null">
+            left join music_sheet_auth_record msar ON msar.music_sheet_id_ = t.id_
+        </if>
         <where>
             <include refid="QueryInfo"/>
             <if test="param.studentId != null">
@@ -482,6 +494,9 @@
         from music_sheet t
         left join sys_user su on t.create_by_ = su.id_
         left join music_favorite mf on t.id_ = mf.music_sheet_id_
+        <if test="param.auditStatus != null">
+            left join music_sheet_auth_record msar ON msar.music_sheet_id_ = t.id_
+        </if>
         <where>
             <include refid="QueryInfo"/>
             <if test="clientType != null">
@@ -504,6 +519,9 @@
         ,if(mf.id_ is not null,1,0) as favorite
         from sys_music_compare_record mspr
         left join music_sheet t on mspr.music_sheet_id_ = t.id_
+        <if test="param.auditStatus != null">
+            left join music_sheet_auth_record msar ON msar.music_sheet_id_ = t.id_
+        </if>
         left join sys_user su on t.create_by_ = su.id_
         left join music_favorite mf on (t.id_ = mf.music_sheet_id_ and mspr.user_id_ = mf.user_id_ <if test="param.clientType != null"> AND mf.client_type_ = #{param.clientType}</if> )
         <where>
@@ -765,13 +783,10 @@
         </where>
     </select>
 
-    <select id="auditDetailList" resultMap="DetailResultMap">
+    <select id="auditDetailList" resultType="com.yonge.cooleshow.biz.dal.wrapper.MusicSheetWrapper$MusicSheetDetailVo">
         SELECT
         su.username_ as userName
         ,su.avatar_ as userAvatar
-        ,s2.name_ as subjectNames
-        ,s2.code_ as code
-        ,s2.ai_default_frequency_ as aiDefaultFrequency
         ,su.real_name_ as realName
         ,msar.update_time_ as auditTime
         ,msar.create_time_ as submitAuditTime
@@ -779,11 +794,12 @@
         ,su2.username_ as auditName
         ,msar.reason_ as auditReason
         ,msar.music_sheet_json_ as musicSheetJson
+        ,msar.batch_no_ as batchNo
+        ,msar.music_sheet_id_ as id
         from music_sheet_auth_record  msar
         left join music_sheet t on t.id_ = msar.music_sheet_id_
         left join sys_user su on su.id_ = t.create_by_
         left join sys_user su2 on msar.verify_user_id_ = su2.id_
-        left join subject s2 on t.music_subject_ = s2.id_
         <where>
             <if test="musicSheetId != null">
                 and #{musicSheetId} = msar.music_sheet_id_
@@ -792,7 +808,6 @@
                 and #{batchNo} = msar.batch_no_
             </if>
         </where>
-
         order by msar.id_ desc
     </select>
 
@@ -825,13 +840,12 @@
     </update>
     <update id="updateBatchByCbsId">
         <foreach collection="vos" item="item" index="index" separator=";">
-            update music_sheet ms set ms.provider_type_ = CASE WHEN #{item.availableType} = 'PLATFORM' THEN 'PLATFORM'
-            WHEN #{item.availableType} = 'PERSON' THEN 'TEACHER' ELSE 'TENANT' END,
+            update music_sheet ms set
             ms.music_tag_ = #{item.musicTagIds},ms.payment_type_ = #{item.paymentType},
             ms.charge_type_ = #{item.paymentType},
             ms.music_price_ = #{item.musicPrice},ms.top_flag_ = #{item.topFlag},
             ms.exquisite_flag_ = #{item.exquisiteFlag},ms.sort_number_ = #{item.sortNo},ms.del_flag_ = 0,
-            ms.audit_status_ = CASE WHEN #{item.delFlag} THEN 'DOING' ELSE 'PASS' END,
+            ms.audit_status_ = 'PASS',
             ms.state_ = #{item.status}
             <if test="item.musicSheetUpdate != null">
                 ,ms.music_sheet_name_ = #{item.musicSheetUpdate.name},
@@ -840,7 +854,6 @@
                 ms.composer_ = #{item.musicSheetUpdate.composer},
                 ms.accompaniment_type_ = #{item.musicSheetUpdate.audioType},
                 ms.play_speed_ = #{item.musicSheetUpdate.playSpeed},
-                ms.music_price_ = #{item.musicSheetUpdate.musicPrice},
                 ms.notation_ = #{item.musicSheetUpdate.notation},
                 ms.music_sheet_type_ = #{item.musicSheetUpdate.musicSheetType},
                 ms.create_by_ = #{item.musicSheetUpdate.userId},
@@ -850,6 +863,9 @@
                 ms.can_evaluate_ = #{item.musicSheetUpdate.canEvaluate},
                 ms.source_type_ = CASE WHEN #{item.musicSheetUpdate.sourceType} = 'PLATFORM' THEN 'PLATFORM'
                 WHEN #{item.musicSheetUpdate.sourceType} = 'PERSON' THEN 'TEACHER'
+                ELSE 'TENANT' END,
+                ms.provider_type_ = CASE WHEN #{item.musicSheetUpdate.sourceType} = 'PLATFORM' THEN 'PLATFORM'
+                WHEN #{item.musicSheetUpdate.sourceType} = 'PERSON' THEN 'TEACHER'
                 ELSE 'TENANT' END
             </if>
             where ms.cbs_music_sheet_id_ = #{item.musicSheetId}