|
@@ -112,7 +112,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
}
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public boolean saveMp3AndAccompaniment(MusicSheetDto musicSheetDto, Long userId) {
|
|
|
+ public boolean saveMp3AndAccompaniment(MusicSheetDto musicSheetDto, Long userId, Long originalMusicSheetId, Long lastMusicSheetId) {
|
|
|
MusicSheet musicSheet = new MusicSheet();
|
|
|
BeanUtils.copyProperties(musicSheetDto, musicSheet);
|
|
|
//保存主表
|
|
@@ -122,7 +122,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
this.saveOrUpdate(musicSheet);
|
|
|
|
|
|
if (musicSheet.getAuditStatus() == null || AuthStatusEnum.DOING.getCode().equals(musicSheet.getAuditStatus().getCode())) {
|
|
|
- musicSheetAuthRecordService.setAuditDoing(musicSheet.getId());
|
|
|
+ musicSheetAuthRecordService.setAuditDoing(musicSheet.getId(), originalMusicSheetId, lastMusicSheetId);
|
|
|
}
|
|
|
|
|
|
Long sheetId = musicSheet.getId();
|
|
@@ -369,20 +369,22 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
throw new BizException("曲目已经过审批");
|
|
|
}
|
|
|
|
|
|
- boolean flag = false;
|
|
|
- if (musicSheetAuthRecordService.audit(param, userId)) {
|
|
|
- musicSheet.setAuditStatus(param.getAuthStatus());
|
|
|
- musicSheet.setUpdateBy(userId);
|
|
|
- musicSheet.setUpdateTime(new Date());
|
|
|
- if (AuthStatusEnum.PASS.getCode().equals(param.getAuthStatus().getCode())) {
|
|
|
- musicSheet.setState(YesOrNoEnum.YES);
|
|
|
+ boolean flag;
|
|
|
+ Long originalMusicSheetId = musicSheetAuthRecordService.audit(param, userId);
|
|
|
+ musicSheet.setAuditStatus(param.getAuthStatus());
|
|
|
+ musicSheet.setUpdateBy(userId);
|
|
|
+ musicSheet.setUpdateTime(new Date());
|
|
|
+ if (AuthStatusEnum.PASS.getCode().equals(param.getAuthStatus().getCode())) {
|
|
|
+ musicSheet.setState(YesOrNoEnum.YES);
|
|
|
+ // 替换曲目id
|
|
|
+ replaceMusicSheet(param, musicSheet, originalMusicSheetId);
|
|
|
|
|
|
- // 修改老师标签
|
|
|
- teacherService.setTeacherTag(musicSheet.getUserId(), TeacherTagEnum.MUSIC);
|
|
|
+ // 修改老师标签
|
|
|
+ teacherService.setTeacherTag(musicSheet.getUserId(), TeacherTagEnum.MUSIC);
|
|
|
|
|
|
- }
|
|
|
- flag = this.updateById(musicSheet);
|
|
|
}
|
|
|
+ flag = this.updateById(musicSheet);
|
|
|
+
|
|
|
|
|
|
// 发送审核通知
|
|
|
Map<Long, String> receivers = new HashMap<>();
|
|
@@ -397,6 +399,29 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
return flag;
|
|
|
}
|
|
|
|
|
|
+ private void replaceMusicSheet(TeacherMusicSheetAuditReq param, MusicSheet musicSheet, Long originalMusicSheetId) {
|
|
|
+ if (!musicSheet.getId().equals(originalMusicSheetId)) {
|
|
|
+ musicSheet.setId(originalMusicSheetId);
|
|
|
+ MusicSheet originalMusicSheet = getById(originalMusicSheetId);
|
|
|
+ originalMusicSheet.setId(param.getMusicSheetId());
|
|
|
+ this.saveOrUpdate(originalMusicSheet);
|
|
|
+
|
|
|
+ // 替换 伴奏
|
|
|
+ List<MusicSheetAccompaniment> musicSheetAccompanimentList = musicSheetAccompanimentService.getByMusicSheetId(
|
|
|
+ musicSheet.getId()).stream()
|
|
|
+ .peek(musicSheetAccompaniment -> musicSheetAccompaniment.setMusicSheetId(
|
|
|
+ originalMusicSheetId))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ List<MusicSheetAccompaniment> originalMusicSheetAccompanimentList = musicSheetAccompanimentService.getByMusicSheetId(
|
|
|
+ originalMusicSheetId).stream()
|
|
|
+ .peek(musicSheetAccompaniment -> musicSheetAccompaniment.setMusicSheetId(
|
|
|
+ musicSheet.getId()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ musicSheetAccompanimentList.addAll(originalMusicSheetAccompanimentList);
|
|
|
+ musicSheetAccompanimentService.saveOrUpdateBatch(musicSheetAccompanimentList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 发送曲目审核消息
|
|
|
private void sendMusicSheetAuditMessage(TeacherMusicSheetAuditReq param, MusicSheet musicSheet, Map<Long, String> receivers) {
|
|
|
if (AuthStatusEnum.PASS.getCode().equals(param.getAuthStatus().getCode())) {
|
|
@@ -437,31 +462,30 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
public boolean saveMusicSheet(MusicSheetDto musicSheetDto, Long userId) {
|
|
|
|
|
|
MusicSheet oldMusicSheet = null;
|
|
|
+ Long originalMusicSheetId = null;
|
|
|
+ Long lastMusicSheetId = musicSheetDto.getId();
|
|
|
if (musicSheetDto.getId() != null) {
|
|
|
oldMusicSheet = getById(musicSheetDto.getId());
|
|
|
}
|
|
|
// 保存审核拒绝的数据
|
|
|
if (musicSheetDto.getId() != null && AuthStatusEnum.DOING.getCode().equals(musicSheetDto.getAuditStatus().getCode())) {
|
|
|
// 保存删除的曲目
|
|
|
- if (oldMusicSheet.getAuditStatus().equals(AuthStatusEnum.UNPASS)) {
|
|
|
- oldMusicSheet.setId(null);
|
|
|
+ if (oldMusicSheet != null && !AuthStatusEnum.DOING.equals(oldMusicSheet.getAuditStatus())) {
|
|
|
oldMusicSheet.setDelFlag(true);
|
|
|
- this.save(oldMusicSheet);
|
|
|
- // 删除的曲目的伴奏
|
|
|
- musicSheetAccompanimentService.lambdaUpdate()
|
|
|
- .eq(MusicSheetAccompaniment::getMusicSheetId,musicSheetDto.getId())
|
|
|
- .set(MusicSheetAccompaniment::getMusicSheetId,oldMusicSheet.getId())
|
|
|
- .update();
|
|
|
- // 审核拒绝的原因
|
|
|
- musicSheetAuthRecordService.lambdaUpdate()
|
|
|
- .eq(MusicSheetAuthRecord::getMusicSheetId,musicSheetDto.getId())
|
|
|
- .set(MusicSheetAuthRecord::getMusicSheetId,oldMusicSheet.getId())
|
|
|
- .update();
|
|
|
+ this.saveOrUpdate(oldMusicSheet);
|
|
|
+ List<MusicSheetAuthRecord> list = musicSheetAuthRecordService.lambdaQuery()
|
|
|
+ .eq(MusicSheetAuthRecord::getMusicSheetId,
|
|
|
+ musicSheetDto.getId())
|
|
|
+ .list();
|
|
|
+ if (!CollectionUtils.isEmpty(list)) {
|
|
|
+ originalMusicSheetId = list.get(0).getOriginalMusicSheetId();
|
|
|
+ }
|
|
|
+ musicSheetDto.setId(null);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
- if (musicSheetDto.getId() != null) {
|
|
|
+ if (musicSheetDto.getId() != null && musicSheetDto.getSourceType().equals(SourceTypeEnum.PLATFORM)) {
|
|
|
musicSheetAccompanimentService.delByMusicSheetId(musicSheetDto.getId());
|
|
|
}
|
|
|
|
|
@@ -480,7 +504,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
if (CollectionUtils.isEmpty(list)) {
|
|
|
throw new BizException("mp3音频文件对应的主音或者伴奏文件没有提供");
|
|
|
}
|
|
|
- return saveMp3AndAccompaniment(musicSheetDto, userId);
|
|
|
+ return saveMp3AndAccompaniment(musicSheetDto, userId,originalMusicSheetId,lastMusicSheetId);
|
|
|
} else {
|
|
|
MusicSheet musicSheet = new MusicSheet();
|
|
|
BeanUtils.copyProperties(musicSheetDto, musicSheet);
|
|
@@ -489,7 +513,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
musicSheet.setState(YesOrNoEnum.NO);
|
|
|
this.saveOrUpdate(musicSheet);
|
|
|
if (musicSheet.getAuditStatus() == null || AuthStatusEnum.DOING.getCode().equals(musicSheet.getAuditStatus().getCode())) {
|
|
|
- musicSheetAuthRecordService.setAuditDoing(musicSheet.getId());
|
|
|
+ musicSheetAuthRecordService.setAuditDoing(musicSheet.getId(),originalMusicSheetId,lastMusicSheetId);
|
|
|
}
|
|
|
|
|
|
return true;
|
|
@@ -998,6 +1022,24 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public MusicSheetDetailVo auditDetail(Long authMusicSheetId) {
|
|
|
+
|
|
|
+ MusicSheetAuthRecord musicSheetAuthRecord = musicSheetAuthRecordService.getById(authMusicSheetId);
|
|
|
+ MusicSheetDetailVo detail = detail(musicSheetAuthRecord.getMusicSheetId(), null, null);
|
|
|
+ List<MusicSheetDetailVo> musicSheetDetailVos = auditDetailList(authMusicSheetId);
|
|
|
+ if (!CollectionUtils.isEmpty(musicSheetDetailVos)) {
|
|
|
+ detail.setLastMusicSheet(musicSheetDetailVos.get(0));
|
|
|
+ }
|
|
|
+ return detail;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<MusicSheetDetailVo> auditDetailList(Long authMusicSheetId) {
|
|
|
+ MusicSheetAuthRecord musicSheetAuthRecord = musicSheetAuthRecordService.getById(authMusicSheetId);
|
|
|
+ return baseMapper.auditDetailList(musicSheetAuthRecord.getOriginalMusicSheetId(),authMusicSheetId);
|
|
|
+ }
|
|
|
+
|
|
|
private SysUser getSysUser(Long userId) {
|
|
|
return Optional.ofNullable(userId)
|
|
|
.map(sysUserFeignService::queryUserById)
|