|
@@ -26,6 +26,7 @@ import com.yonge.toolset.base.exception.BizException;
|
|
|
import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
|
|
|
import com.yonge.toolset.utils.easyexcel.ErrMsg;
|
|
|
import com.yonge.toolset.utils.easyexcel.ExcelDataReaderProperty;
|
|
|
+import com.yonge.toolset.utils.easyexcel.ExcelException;
|
|
|
import com.yonge.toolset.utils.string.StringUtil;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -87,6 +88,12 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
@Autowired
|
|
|
private UserAccountService userAccountService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private MusicTagService musicTagService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SubjectService subjectService;
|
|
|
+
|
|
|
public MusicSheetDao getDao() {
|
|
|
return musicSheetDao;
|
|
|
}
|
|
@@ -587,19 +594,95 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
|
|
|
List<ErrMsg> errMsgList = new ArrayList<>();
|
|
|
dataList.sort(Comparator.comparingInt(ExcelDataReaderProperty::getRowIndex));
|
|
|
- List<MusicSheetDto> userWithdrawalList = new ArrayList<>();
|
|
|
+ List<MusicSheetDto> musicSheetDtoList = new ArrayList<>();
|
|
|
+ List<MusicTagVo> musicTagVoList = musicTagService.selectMusicTagTree();
|
|
|
|
|
|
for (ExcelDataReaderProperty<MusicSheetExport> readerProperty : dataList) {
|
|
|
+ MusicSheetDto musicSheetDto = new MusicSheetDto();
|
|
|
+ musicSheetDto.setUserId(userId);
|
|
|
+ musicSheetDto.setAuditVersion(YesOrNoEnum.NO);
|
|
|
+ musicSheetDto.setSourceType(SourceTypeEnum.PLATFORM);
|
|
|
+ musicSheetDto.setChargeType(ChargeTypeEnum.FREE);
|
|
|
+ musicSheetDto.setAuditStatus(AuthStatusEnum.PASS);
|
|
|
+ musicSheetDto.setState(YesOrNoEnum.NO);
|
|
|
+ musicSheetDto.setDelFlag(false);
|
|
|
+ musicSheetDto.setCreateBy(userId);
|
|
|
+ musicSheetDto.setUpdateBy(userId);
|
|
|
+ musicSheetDto.setCreateTime(new Date());
|
|
|
+ musicSheetDto.setUpdateTime(new Date());
|
|
|
String errMsg = readerProperty.getErrorMessage();
|
|
|
if (!StringUtil.isEmpty(errMsg)) {
|
|
|
errMsgList.add(new ErrMsg(readerProperty.getRowIndex(), errMsg));
|
|
|
continue;
|
|
|
}
|
|
|
MusicSheetExport sheetExport = readerProperty.getClazz();
|
|
|
- // sheetExport TODO 导入
|
|
|
+ BeanUtils.copyProperties(sheetExport,musicSheetDto);
|
|
|
+ // TODO 导入
|
|
|
+ String musicTags = sheetExport.getMusicTags();
|
|
|
+ if (musicTags == null || musicTags.equals("")) {
|
|
|
+ errMsgList.add(new ErrMsg(readerProperty.getRowIndex(), "曲目标签不能为空"));
|
|
|
+ }
|
|
|
+ List<String> stringList = Arrays.asList(musicTags.split(",|,"));
|
|
|
+ String musicTagIds = "";
|
|
|
+ List<MusicTag> childrenMusicTag = new ArrayList<>();
|
|
|
+ for (MusicTagVo musicTagVo : musicTagVoList) {
|
|
|
+ childrenMusicTag.addAll(musicTagVo.getChildren());
|
|
|
+ }
|
|
|
+ for (String s : stringList) {
|
|
|
+ boolean b = false;
|
|
|
+ for (MusicTag musicTag : childrenMusicTag) {
|
|
|
+ if(musicTag.getName().equals(s)) {
|
|
|
+ musicTagIds = musicTags + "," + musicTag.getId();
|
|
|
+ b = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!b) {
|
|
|
+ errMsgList.add(new ErrMsg(readerProperty.getRowIndex(), "曲目名称错误:" + s));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (StringUtil.isEmpty(sheetExport.getComposer())) {
|
|
|
+ errMsgList.add(new ErrMsg(readerProperty.getRowIndex(), "音乐人不能为空"));
|
|
|
+ }
|
|
|
+ if (StringUtil.isEmpty(sheetExport.getMusicSubjects())) {
|
|
|
+ errMsgList.add(new ErrMsg(readerProperty.getRowIndex(), "曲目声部不能为空"));
|
|
|
+ } else {
|
|
|
+ List<Subject> subjects = subjectService.subjectSelect();
|
|
|
+ List<Subject> childrenSubject = new ArrayList<>();
|
|
|
+ for (Subject subject : subjects) {
|
|
|
+ childrenSubject.addAll(subject.getSubjects());
|
|
|
+ }
|
|
|
+ List<Subject> collect = childrenSubject.stream()
|
|
|
+ .filter(subject -> subject.getName().equals(sheetExport.getMusicSubjects()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (CollectionUtils.isEmpty(collect)) {
|
|
|
+ errMsgList.add(new ErrMsg(readerProperty.getRowIndex(), "曲目声部名错误:" + sheetExport.getMusicSubjects()));
|
|
|
+ } else {
|
|
|
+ musicSheetDto.setMusicSubject(collect.get(0).getId().toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!StringUtil.isEmpty(sheetExport.getAudioFileUrls())) {
|
|
|
+
|
|
|
+ List<MusicSheetAccompaniment> background = new ArrayList<>();
|
|
|
+ String[] audioFileUrls = sheetExport.getAudioFileUrls().split(",|,");
|
|
|
+ for (int i = 0; i < audioFileUrls.length; i++) {
|
|
|
+ MusicSheetAccompaniment musicSheetAccompaniment = new MusicSheetAccompaniment();
|
|
|
+ musicSheetAccompaniment.setAudioFileUrl(audioFileUrls[i]);
|
|
|
+ background.add(musicSheetAccompaniment);
|
|
|
+ }
|
|
|
+ musicSheetDto.setBackground(background);
|
|
|
+ }
|
|
|
+
|
|
|
+ musicSheetDto.setMusicTag(musicTagIds);
|
|
|
|
|
|
+ musicSheetDtoList.add(musicSheetDto);
|
|
|
}
|
|
|
|
|
|
+ if(!CollectionUtils.isEmpty(errMsgList)) {
|
|
|
+ throw new ExcelException("导入异常", errMsgList);
|
|
|
+ }
|
|
|
+
|
|
|
+ musicSheetDtoList.forEach(musicSheetDto -> saveMusicSheet(musicSheetDto,userId));
|
|
|
+
|
|
|
}
|
|
|
|
|
|
private SysUser getSysUser(Long userId) {
|