|
@@ -1,83 +1,123 @@
|
|
|
package com.yonge.cooleshow.biz.dal.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+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.yonge.cooleshow.auth.api.entity.SysUser;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.MusicSheetAuthRecordDao;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.req.TeacherMusicSheetAuditReq;
|
|
|
-import com.yonge.cooleshow.biz.dal.entity.MusicSheetAudit;
|
|
|
+import com.yonge.cooleshow.biz.dal.dto.search.TeacherMusicSheetAuditSearch;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.MusicSheetAuthRecord;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.MusicSheetAuditService;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.MusicSheetAuthRecordService;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.TeacherTagEnum;
|
|
|
+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.common.service.IdGeneratorService;
|
|
|
import com.yonge.toolset.base.exception.BizException;
|
|
|
+import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
-import org.springframework.util.CollectionUtils;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
|
|
|
@Service
|
|
|
public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthRecordDao, MusicSheetAuthRecord> implements MusicSheetAuthRecordService {
|
|
|
-
|
|
|
+ private static final Logger log = LoggerFactory.getLogger(MusicSheetAuthRecordServiceImpl.class);
|
|
|
@Resource
|
|
|
private IdGeneratorService idGeneratorService;
|
|
|
@Resource
|
|
|
- private MusicSheetAuditService musicSheetAuditService;
|
|
|
+ private MusicSheetService musicSheetService;
|
|
|
+ @Resource
|
|
|
+ private MusicFeignClientService musicFeignClientService;
|
|
|
+ @Resource
|
|
|
+ private TeacherService teacherService;
|
|
|
+ @Resource
|
|
|
+ private SysUserService sysUserService;
|
|
|
+ @Resource
|
|
|
+ private SysMessageService sysMessageService;
|
|
|
+ @Resource
|
|
|
+ private MusicSheetAccompanimentService musicSheetAccompanimentService;
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public Long audit(TeacherMusicSheetAuditReq param, Long userId) {
|
|
|
-
|
|
|
+ public void audit(TeacherMusicSheetAuditReq param, Long userId) {
|
|
|
+ musicSheetService.audit(param, userId);
|
|
|
// 查询到审核记录
|
|
|
List<MusicSheetAuthRecord> list = this.lambdaQuery()
|
|
|
.eq(MusicSheetAuthRecord::getMusicSheetId, param.getMusicSheetId())
|
|
|
.eq(MusicSheetAuthRecord::getAuditState, AuthStatusEnum.DOING.getCode())
|
|
|
.list();
|
|
|
-
|
|
|
- MusicSheetAuthRecord musicSheetAuthRecord = new MusicSheetAuthRecord();
|
|
|
- if (!CollectionUtils.isEmpty(list)) {
|
|
|
- musicSheetAuthRecord = list.get(0);
|
|
|
- } else {
|
|
|
- musicSheetAuthRecord.setCreateTime(new Date());
|
|
|
- }
|
|
|
-
|
|
|
- // 替换审核id
|
|
|
- replaceAuthRecord(param, musicSheetAuthRecord);
|
|
|
- musicSheetAuthRecord.setMusicSheetId(param.getMusicSheetId());
|
|
|
- if (param.getAuthStatus().equals(AuthStatusEnum.PASS)) {
|
|
|
- musicSheetAuthRecord.setMusicSheetId(musicSheetAuthRecord.getOriginalMusicSheetId());
|
|
|
+ if (CollectionUtils.isEmpty(list)) {
|
|
|
+ throw new BizException("没有找到待审核记录");
|
|
|
}
|
|
|
+ MusicSheetAuthRecord musicSheetAuthRecord = list.get(0);
|
|
|
musicSheetAuthRecord.setAuditState(param.getAuthStatus());
|
|
|
musicSheetAuthRecord.setReason(param.getRemark());
|
|
|
musicSheetAuthRecord.setVerifyUserId(userId);
|
|
|
- musicSheetAuthRecord.setUpdateTime(new Date());
|
|
|
- this.saveOrUpdate(musicSheetAuthRecord);
|
|
|
- return musicSheetAuthRecord.getOriginalMusicSheetId();
|
|
|
+ musicSheetAuthRecord.setAuditState(param.getAuthStatus());
|
|
|
+ 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);
|
|
|
+ // 修改老师标签
|
|
|
+ teacherService.setTeacherTag(musicSheet.getUserId(), TeacherTagEnum.MUSIC);
|
|
|
+ //同步到内容平台
|
|
|
+ String musicSheetJson = musicSheetAuthRecord.getMusicSheetJson();
|
|
|
+ CbsMusicSheetWrapper.AddMusicSheet addMusicSheet = JSON.parseObject(musicSheetJson, CbsMusicSheetWrapper.AddMusicSheet.class);
|
|
|
+ addMusicSheet.setMusicImg(param.getMusicImg());
|
|
|
+ addMusicSheet.setMusicFirstImg(param.getMusicFirstImg());
|
|
|
+ addMusicSheet.setMusicJianImg(param.getMusicJianImg());
|
|
|
+ addMusicSheet.setId(musicSheet.getCbsMusicSheetId());
|
|
|
+ musicFeignClientService.musicSheetAdd(addMusicSheet);
|
|
|
+ }else {
|
|
|
+ musicSheetService.updateById(musicSheet);
|
|
|
+ }
|
|
|
+ this.updateById(musicSheetAuthRecord);
|
|
|
+ // 发送审核通知
|
|
|
+ Map<Long, String> receivers = new HashMap<>();
|
|
|
+ SysUser teacher = sysUserService.getByUserId(musicSheet.getUserId());
|
|
|
+ receivers.put(musicSheet.getUserId(), teacher.getPhone());
|
|
|
+ try {
|
|
|
+ sendMusicSheetAuditMessage(param, musicSheet, receivers);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.warn("曲目审核消息发送失败,{}", e.getMessage());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- private void replaceAuthRecord(TeacherMusicSheetAuditReq param, MusicSheetAuthRecord musicSheetAuthRecord) {
|
|
|
- if (param.getAuthStatus().equals(AuthStatusEnum.PASS) && !musicSheetAuthRecord.getOriginalMusicSheetId().equals(
|
|
|
- musicSheetAuthRecord.getMusicSheetId())) {
|
|
|
- List<MusicSheetAuthRecord> musicSheetAuthRecords = this.lambdaQuery()
|
|
|
- .eq(MusicSheetAuthRecord::getMusicSheetId,
|
|
|
- musicSheetAuthRecord.getOriginalMusicSheetId())
|
|
|
- .list();
|
|
|
- if (!CollectionUtils.isEmpty(musicSheetAuthRecords)) {
|
|
|
- MusicSheetAuthRecord record = musicSheetAuthRecords.get(0);
|
|
|
- record.setMusicSheetId(param.getMusicSheetId());
|
|
|
- this.saveOrUpdate(record);
|
|
|
- }
|
|
|
-
|
|
|
+ // 发送曲目审核消息
|
|
|
+ private void sendMusicSheetAuditMessage(TeacherMusicSheetAuditReq param, MusicSheet musicSheet, Map<Long, String> receivers) {
|
|
|
+ if (AuthStatusEnum.PASS.getCode().equals(param.getAuthStatus().getCode())) {
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.MUSIC_SHEET_AUTH_PASS,
|
|
|
+ receivers, null, 0, null, ClientEnum.TEACHER.getCode(), musicSheet.getMusicSheetName());
|
|
|
+ } else if (AuthStatusEnum.UNPASS.getCode().equals(param.getAuthStatus().getCode())) {
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.MUSIC_SHEET_AUTH_UNPASS,
|
|
|
+ receivers, null, 0, null, ClientEnum.TEACHER.getCode(), musicSheet.getMusicSheetName(),
|
|
|
+ param.getRemark());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
@Override
|
|
|
public void setAuditDoing(Long musicSheetId, Long originalMusicSheetId, Long lastMusicSheetId) {
|
|
|
List<MusicSheetAuthRecord> list = this.lambdaQuery()
|
|
@@ -127,18 +167,23 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public Integer addRecord(MusicSheetAuthRecord musicSheetAuthRecord) {
|
|
|
this.checkRecord(musicSheetAuthRecord);
|
|
|
//保存曲目信息
|
|
|
- MusicSheetAudit musicSheetAudit = musicSheetAuditService.initMusicSheet(musicSheetAuthRecord.getMusicSheetJson());
|
|
|
- musicSheetAuditService.saveApplicationExtend(musicSheetAuthRecord.getMusicSheetJson());
|
|
|
+ MusicSheet musicSheet = musicSheetService.initMusicSheet(musicSheetAuthRecord.getMusicSheetJson());
|
|
|
+ musicSheetService.save(musicSheet);
|
|
|
+ List<MusicSheetAccompaniment> musicSheetAccompaniments = musicSheetAccompanimentService.initMusicSheetAccompaniment(musicSheetAuthRecord.getMusicSheetJson(),musicSheet.getId());
|
|
|
+ musicSheetAccompanimentService.saveBatch(musicSheetAccompaniments);
|
|
|
String batchNo = idGeneratorService.generatorId("payment") + "";
|
|
|
musicSheetAuthRecord.setBatchNo(batchNo);
|
|
|
musicSheetAuthRecord.setAuditState(AuthStatusEnum.DOING);
|
|
|
+ musicSheetAuthRecord.setMusicSheetId(musicSheet.getId());
|
|
|
return baseMapper.insert(musicSheetAuthRecord);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public void updateRecord(MusicSheetAuthRecord musicSheetAuthRecord) {
|
|
|
this.checkRecord(musicSheetAuthRecord);
|
|
|
if(musicSheetAuthRecord.getId() == null){
|
|
@@ -148,14 +193,53 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
|
|
|
if (record == null){
|
|
|
throw new BizException("曲目信息不存在");
|
|
|
}
|
|
|
+ MusicSheet musicSheet = musicSheetService.initMusicSheet(musicSheetAuthRecord.getMusicSheetJson());
|
|
|
+ MusicSheet musicSheet1 = musicSheetService.getById(record.getMusicSheetId());
|
|
|
+ musicSheet.setCbsMusicSheetId(musicSheet1.getCbsMusicSheetId());
|
|
|
if(record.getAuditState() == AuthStatusEnum.DOING){
|
|
|
+ musicSheetService.removeById(record.getMusicSheetId());
|
|
|
+ musicSheetAccompanimentService.delByMusicSheetId(record.getMusicSheetId());
|
|
|
+ //保存曲目信息
|
|
|
+ musicSheetService.save(musicSheet);
|
|
|
+ List<MusicSheetAccompaniment> musicSheetAccompaniments = musicSheetAccompanimentService.initMusicSheetAccompaniment(musicSheetAuthRecord.getMusicSheetJson(),musicSheet.getId());
|
|
|
+ musicSheetAccompanimentService.saveBatch(musicSheetAccompaniments);
|
|
|
+ record.setMusicSheetId(musicSheet.getId());
|
|
|
record.setMusicSheetJson(musicSheetAuthRecord.getMusicSheetJson());
|
|
|
baseMapper.updateById(record);
|
|
|
}else {
|
|
|
+ //保存曲目信息
|
|
|
+ musicSheetService.save(musicSheet);
|
|
|
+ List<MusicSheetAccompaniment> musicSheetAccompaniments = musicSheetAccompanimentService.initMusicSheetAccompaniment(musicSheetAuthRecord.getMusicSheetJson(),musicSheet.getId());
|
|
|
+ musicSheetAccompanimentService.saveBatch(musicSheetAccompaniments);
|
|
|
+ musicSheetAuthRecord.setMusicSheetId(musicSheet.getId());
|
|
|
musicSheetAuthRecord.setSubmitUserId(record.getSubmitUserId());
|
|
|
musicSheetAuthRecord.setBatchNo(record.getBatchNo());
|
|
|
musicSheetAuthRecord.setAuditState(AuthStatusEnum.DOING);
|
|
|
baseMapper.insert(musicSheetAuthRecord);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public IPage<TeacherMusicSheetVo> selectAuditPage(IPage<TeacherMusicSheetVo> page, TeacherMusicSheetAuditSearch query) {
|
|
|
+ return page.setRecords(baseMapper.selectAuditPage(page, query));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public MusicSheetDetailVo auditDetail(Long musicSheetAuthRecordId) {
|
|
|
+ MusicSheetAuthRecord musicSheetAuthRecord = this.getById(musicSheetAuthRecordId);
|
|
|
+ MusicSheetDetailVo detail = musicSheetService.detail(musicSheetAuthRecord.getMusicSheetId(), null, null);
|
|
|
+ List<MusicSheetDetailVo> sheetDetailVos = musicSheetService.getDao().auditDetailList(musicSheetAuthRecord.getMusicSheetId(),null);
|
|
|
+ musicSheetService.initMusicSheetDetailVo(sheetDetailVos);
|
|
|
+ if (CollectionUtils.isNotEmpty(sheetDetailVos)) {
|
|
|
+ detail.setLastMusicSheet(sheetDetailVos.get(0));
|
|
|
+ }
|
|
|
+ return detail;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<MusicSheetDetailVo> auditDetailList(String batchNo) {
|
|
|
+ List<MusicSheetDetailVo> sheetDetailVos = musicSheetService.getDao().auditDetailList(null, batchNo);
|
|
|
+ musicSheetService.initMusicSheetDetailVo(sheetDetailVos);
|
|
|
+ return sheetDetailVos;
|
|
|
+ }
|
|
|
}
|