|
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
|
|
|
import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
|
+import com.yonge.cooleshow.common.enums.PostStatusEnum;
|
|
|
import com.yonge.cooleshow.common.enums.SysUserType;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.MusicSheetDao;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.MusicSheetDto;
|
|
@@ -45,14 +46,15 @@ import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* MusicSheetService服务实现类
|
|
|
+ *
|
|
|
* @author yzp
|
|
|
- * @date 2022-03-26 00:01:37
|
|
|
* @version v1.0
|
|
|
+ * @date 2022-03-26 00:01:37
|
|
|
**/
|
|
|
@Service
|
|
|
-public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet> implements MusicSheetService {
|
|
|
+public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet> implements MusicSheetService {
|
|
|
|
|
|
- private static final Logger log = LoggerFactory.getLogger(MusicSheetServiceImpl.class);
|
|
|
+ private static final Logger log = LoggerFactory.getLogger(MusicSheetServiceImpl.class);
|
|
|
|
|
|
@Autowired
|
|
|
private MusicSheetDao musicSheetDao;
|
|
@@ -107,7 +109,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) {
|
|
|
MusicSheet musicSheet = new MusicSheet();
|
|
|
BeanUtils.copyProperties(musicSheetDto, musicSheet);
|
|
|
//保存主表
|
|
@@ -138,7 +140,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
public boolean state(Long id) {
|
|
|
MusicSheet musicSheet = this.getById(id);
|
|
|
if (musicSheet == null) {
|
|
|
- throw new BizException("未找到曲目信息");
|
|
|
+ throw new BizException("未找到曲目信息");
|
|
|
}
|
|
|
if (YesOrNoEnum.NO.getCode().equals(musicSheet.getState().getCode())) {
|
|
|
musicSheet.setState(YesOrNoEnum.YES);
|
|
@@ -172,14 +174,14 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
musicSheetShareVo.setName(sysUser.getUsername());
|
|
|
musicSheetShareVo.setAvatar(sysUser.getAvatar());
|
|
|
|
|
|
- String teacherMusicShareUrl= sysConfigService.findConfigValue(SysConfigConstant.TEACHER_MUSIC_SHEET_SHARE_URL);
|
|
|
+ String teacherMusicShareUrl = sysConfigService.findConfigValue(SysConfigConstant.TEACHER_MUSIC_SHEET_SHARE_URL);
|
|
|
musicSheetShareVo.setUrl(MessageFormatter.arrayFormat(teacherMusicShareUrl, sysUser.getId()));
|
|
|
|
|
|
return musicSheetShareVo;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public MusicSheetDetailVo detail(Long id, SysUser sysUser,SysUserType userType) {
|
|
|
+ public MusicSheetDetailVo detail(Long id, SysUser sysUser, SysUserType userType) {
|
|
|
MusicSheetDetailVo detail = baseMapper.detail(id);
|
|
|
if (detail == null) {
|
|
|
throw new BizException("未找到曲目信息");
|
|
@@ -193,7 +195,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
}
|
|
|
if (ChargeTypeEnum.FREE.getCode().equals(detail.getChargeType().getCode())) {
|
|
|
detail.setPlay(YesOrNoEnum.YES);
|
|
|
- } else if (SysUserType.STUDENT.getCode().equals(userType.getCode())) {
|
|
|
+ } else if (SysUserType.STUDENT.getCode().equals(userType.getCode())) {
|
|
|
setStudentMusicSheet(sysUser.getId(), detail);
|
|
|
} else {
|
|
|
detail.setPlay(YesOrNoEnum.YES);
|
|
@@ -209,7 +211,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
* 设置学生曲目信息
|
|
|
*
|
|
|
* @param studentId 学生id
|
|
|
- * @param detail 曲目详情
|
|
|
+ * @param detail 曲目详情
|
|
|
*/
|
|
|
private void setStudentMusicSheet(Long studentId, MusicSheetDetailVo detail) {
|
|
|
detail.setPlay(YesOrNoEnum.NO);
|
|
@@ -225,7 +227,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
detail.setPlay(YesOrNoEnum.YES);
|
|
|
}
|
|
|
}
|
|
|
- } else if (ChargeTypeEnum.VIP.getCode().equals(detail.getChargeType().getCode())) {
|
|
|
+ } else if (ChargeTypeEnum.VIP.getCode().equals(detail.getChargeType().getCode())) {
|
|
|
// 会员 判断是否为会员, 会员可播放
|
|
|
StudentVo studentVo = studentService.detail(studentId);
|
|
|
if (studentVo != null && YesOrNoEnum.YES.getCode().equals(studentVo.getIsVip().getCode())) {
|
|
@@ -272,26 +274,26 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
|
|
|
@Override
|
|
|
public IPage<MusicSheetVo> myMusic(IPage<MusicSheetVo> page, StudentMusicSheetSearch query) {
|
|
|
- return page.setRecords(baseMapper.selectMyMusicPage(page,query));
|
|
|
+ return page.setRecords(baseMapper.selectMyMusicPage(page, query));
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public IPage<MusicSheetVo> favoriteMusic(IPage<MusicSheetVo> page, StudentMusicSheetSearch query) {
|
|
|
- return page.setRecords(baseMapper.selectFavoriteMusicPage(page,query));
|
|
|
+ return page.setRecords(baseMapper.selectFavoriteMusicPage(page, query));
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public IPage<MusicSheetVo> practiceMusic(IPage<MusicSheetVo> page, StudentMusicSheetSearch query) {
|
|
|
// 预计最近练习表数据量会很多
|
|
|
// 先找到最近练习的曲目id 在根据曲目id进行精确查找
|
|
|
- IPage<Long> practiceMusicIdPage = musicSheetPracticeRecordService.selectPracticeMusic(query,page.getPages(),page.getSize());
|
|
|
+ IPage<Long> practiceMusicIdPage = musicSheetPracticeRecordService.selectPracticeMusic(query, page.getPages(), page.getSize());
|
|
|
List<Long> practiceMusicIdList = practiceMusicIdPage.getRecords();
|
|
|
if (CollectionUtils.isEmpty(practiceMusicIdList)) {
|
|
|
page.setRecords(new ArrayList<>());
|
|
|
return page;
|
|
|
}
|
|
|
// 构建分页信息
|
|
|
- page.setRecords(baseMapper.selectPracticeMusicPage(query,practiceMusicIdList));
|
|
|
+ page.setRecords(baseMapper.selectPracticeMusicPage(query, practiceMusicIdList));
|
|
|
page.setPages(practiceMusicIdPage.getPages());
|
|
|
page.setCurrent(practiceMusicIdPage.getCurrent());
|
|
|
page.setSize(practiceMusicIdPage.getSize());
|
|
@@ -301,17 +303,17 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
|
|
|
@Override
|
|
|
public IPage<StudentMusicSheetOrderVo> selectStudentOrderPage(IPage<StudentMusicSheetOrderVo> page, StudentMusicSheetOrderSearch query) {
|
|
|
- return page.setRecords(baseMapper.selectStudentOrderPage(page,query));
|
|
|
+ return page.setRecords(baseMapper.selectStudentOrderPage(page, query));
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public IPage<TeacherMusicSheetVo> selectTeacherPage(IPage<TeacherMusicSheetVo> page, TeacherMusicSheetSearch query) {
|
|
|
- return page.setRecords(baseMapper.selectTeacherPage(page,query));
|
|
|
+ return page.setRecords(baseMapper.selectTeacherPage(page, query));
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public IPage<TeacherMusicSheetVo> selectAuditPage(IPage<TeacherMusicSheetVo> page, TeacherMusicSheetAuditSearch query) {
|
|
|
- return page.setRecords(baseMapper.selectAuditPage(page,query));
|
|
|
+ return page.setRecords(baseMapper.selectAuditPage(page, query));
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -320,31 +322,31 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
|
|
|
MusicSheet musicSheet = this.getById(param.getMusicSheetId());
|
|
|
if (musicSheet == null) {
|
|
|
- throw new BizException("未找到曲目信息");
|
|
|
+ throw new BizException("未找到曲目信息");
|
|
|
}
|
|
|
if (!AuthStatusEnum.DOING.getCode().equals(musicSheet.getAuditStatus().getCode())) {
|
|
|
- throw new BizException("曲目已经过审批");
|
|
|
+ throw new BizException("曲目已经过审批");
|
|
|
}
|
|
|
|
|
|
boolean flag = false;
|
|
|
- if (musicSheetAuthRecordService.audit(param,userId)) {
|
|
|
+ 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);
|
|
|
}
|
|
|
- flag = this.updateById(musicSheet);
|
|
|
+ flag = this.updateById(musicSheet);
|
|
|
}
|
|
|
|
|
|
// 发送审核通知
|
|
|
- Map<Long,String> receivers = new HashMap<>();
|
|
|
+ Map<Long, String> receivers = new HashMap<>();
|
|
|
SysUser teacher = sysUserFeignService.queryUserById(musicSheet.getUserId());
|
|
|
receivers.put(musicSheet.getUserId(), teacher.getPhone());
|
|
|
try {
|
|
|
sendMusicSheetAuditMessage(param, musicSheet, receivers);
|
|
|
} catch (Exception e) {
|
|
|
- log.warn("曲目审核消息发送失败,{}",e.getMessage());
|
|
|
+ log.warn("曲目审核消息发送失败,{}", e.getMessage());
|
|
|
}
|
|
|
|
|
|
return flag;
|
|
@@ -354,11 +356,11 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
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())){
|
|
|
+ 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());
|
|
|
+ receivers, null, 0, null, ClientEnum.TEACHER.getCode(), musicSheet.getMusicSheetName(),
|
|
|
+ param.getRemark());
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -377,17 +379,17 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
@Override
|
|
|
public Integer countTeacherMusicSheet(SysUser sysUser) {
|
|
|
return this.lambdaQuery()
|
|
|
- .eq(MusicSheet::getAuditStatus,AuthStatusEnum.PASS)
|
|
|
- .eq(MusicSheet::getCreateBy,sysUser.getId())
|
|
|
- .eq(MusicSheet::getState,YesOrNoEnum.YES)
|
|
|
- .eq(MusicSheet::getDelFlag,YesOrNoEnum.NO)
|
|
|
- .eq(MusicSheet::getSourceType,SourceTypeEnum.TEACHER.getCode())
|
|
|
+ .eq(MusicSheet::getAuditStatus, AuthStatusEnum.PASS)
|
|
|
+ .eq(MusicSheet::getCreateBy, sysUser.getId())
|
|
|
+ .eq(MusicSheet::getState, YesOrNoEnum.YES)
|
|
|
+ .eq(MusicSheet::getDelFlag, YesOrNoEnum.NO)
|
|
|
+ .eq(MusicSheet::getSourceType, SourceTypeEnum.TEACHER.getCode())
|
|
|
.count();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public boolean saveMusicSheet(MusicSheetDto musicSheetDto,Long userId) {
|
|
|
+ public boolean saveMusicSheet(MusicSheetDto musicSheetDto, Long userId) {
|
|
|
|
|
|
if (musicSheetDto.getId() != null) {
|
|
|
musicSheetAccompanimentService.delByMusicSheetId(musicSheetDto.getId());
|
|
@@ -398,15 +400,15 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
}
|
|
|
|
|
|
// 删除曲目专辑关联
|
|
|
- delAlbumSheetRef(musicSheetDto.getId(),musicSheetDto.getMusicSubject());
|
|
|
+ delAlbumSheetRef(musicSheetDto.getId(), musicSheetDto.getMusicSubject());
|
|
|
|
|
|
List<MusicSheetAccompaniment> list;
|
|
|
- if (!AudioTypeEnum.MIDI.getCode().equals(musicSheetDto.getAudioType().getCode())){
|
|
|
+ if (!AudioTypeEnum.MIDI.getCode().equals(musicSheetDto.getAudioType().getCode())) {
|
|
|
list = musicSheetDto.getBackground();
|
|
|
- if (CollectionUtils.isEmpty(list)){
|
|
|
+ if (CollectionUtils.isEmpty(list)) {
|
|
|
throw new BizException("mp3音频文件对应的主音或者伴奏文件没有提供");
|
|
|
}
|
|
|
- return saveMp3AndAccompaniment(musicSheetDto,userId);
|
|
|
+ return saveMp3AndAccompaniment(musicSheetDto, userId);
|
|
|
} else {
|
|
|
MusicSheet musicSheet = new MusicSheet();
|
|
|
BeanUtils.copyProperties(musicSheetDto, musicSheet);
|
|
@@ -425,12 +427,12 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
/**
|
|
|
* 删除专辑曲目关联
|
|
|
*
|
|
|
- * @param id 曲目id
|
|
|
+ * @param id 曲目id
|
|
|
* @param subjectId 声部id
|
|
|
*/
|
|
|
- private void delAlbumSheetRef(Long id,String subjectId) {
|
|
|
+ private void delAlbumSheetRef(Long id, String subjectId) {
|
|
|
|
|
|
- if (id == null ) {
|
|
|
+ if (id == null) {
|
|
|
return;
|
|
|
}
|
|
|
MusicSheet musicSheet = this.getById(id);
|
|
@@ -458,8 +460,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
}
|
|
|
|
|
|
// 检查已经购买
|
|
|
- checkoutPay(orderReqInfo.getUserId(),musicSheetPayDto.getMusicSheetId());
|
|
|
-
|
|
|
+ checkoutPay(orderReqInfo.getUserId(), musicSheetPayDto.getMusicSheetId());
|
|
|
|
|
|
|
|
|
orderCreateRes.setRes(true);
|
|
@@ -469,14 +470,14 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
orderCreateRes.setGoodNum(1);
|
|
|
orderCreateRes.setOriginalPrice(musicSheet.getMusicPrice());
|
|
|
orderCreateRes.setExpectPrice(musicSheet.getMusicPrice());
|
|
|
- return HttpResponseResult.succeed(orderCreateRes);
|
|
|
+ return HttpResponseResult.succeed(orderCreateRes);
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 检查是否已购买当前曲目
|
|
|
*
|
|
|
- * @param userId 用户id
|
|
|
+ * @param userId 用户id
|
|
|
* @param musicSheetId 曲目id
|
|
|
*/
|
|
|
private void checkoutPay(Long userId, Long musicSheetId) {
|
|
@@ -484,21 +485,19 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
.lambdaQuery()
|
|
|
.eq(MusicSheetPurchaseRecord::getMusicSheetId, musicSheetId)
|
|
|
.eq(MusicSheetPurchaseRecord::getStudentId, userId)
|
|
|
- .eq(MusicSheetPurchaseRecord::getOrderStatus,OrderStatusEnum.PAID)
|
|
|
+ .eq(MusicSheetPurchaseRecord::getOrderStatus, OrderStatusEnum.PAID)
|
|
|
.list();
|
|
|
if (!CollectionUtils.isEmpty(list)) {
|
|
|
- throw new BizException("已经购买了当前曲目");
|
|
|
+ throw new BizException("已经购买了当前曲目");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public void buyMusicSheetSuccess(UserOrderDetailVo userOrderDetailVo) {
|
|
|
-
|
|
|
MusicSheet musicSheet = this.getById(userOrderDetailVo.getBizId());
|
|
|
-
|
|
|
// 曲目服务费比例
|
|
|
- String musicSheetServiceFee= sysConfigService.findConfigValue(SysConfigConstant.MUSIC_SHEET_SERVICE_FEE);
|
|
|
+ String musicSheetServiceFee = sysConfigService.findConfigValue(SysConfigConstant.MUSIC_SHEET_SERVICE_FEE);
|
|
|
BigDecimal serviceFee = new BigDecimal(musicSheetServiceFee).divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
|
|
|
//支付金额
|
|
|
BigDecimal actualPrice = userOrderDetailVo.getActualPrice();
|
|
@@ -516,17 +515,17 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
|
|
|
// 消息通知
|
|
|
try {
|
|
|
- sendBuyMessage(userOrderDetailVo.getMerchId(),userOrderDetailVo.getUserId(),userOrderDetailVo.getBizId());
|
|
|
- }catch (Exception e) {
|
|
|
- log.warn("学生购买曲目消息推送失败 {}",e.getMessage());
|
|
|
+ sendBuyMessage(userOrderDetailVo.getMerchId(), userOrderDetailVo.getUserId(), userOrderDetailVo.getBizId());
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.warn("学生购买曲目消息推送失败 {}", e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 发送购买消息通知
|
|
|
*
|
|
|
- * @param teacherId 老师id
|
|
|
- * @param studentId 学生id
|
|
|
+ * @param teacherId 老师id
|
|
|
+ * @param studentId 学生id
|
|
|
* @param musicSheetId 曲目id
|
|
|
*/
|
|
|
@Override
|
|
@@ -535,35 +534,35 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
SysUser teacher = sysUserFeignService.queryUserById(teacherId);
|
|
|
SysUser student = sysUserFeignService.queryUserById(studentId);
|
|
|
if (StringUtil.isEmpty(teacher.getPhone())) {
|
|
|
- log.warn("teacher id {} name {} 手机号不存在,消息推送失败",teacher.getId(),teacher.getUsername());
|
|
|
+ log.warn("teacher id {} name {} 手机号不存在,消息推送失败", teacher.getId(), teacher.getUsername());
|
|
|
}
|
|
|
|
|
|
MusicSheet musicSheet = this.getById(musicSheetId);
|
|
|
// 推送老师
|
|
|
- Map<Long,String> teacherReceivers = new HashMap<>();
|
|
|
+ Map<Long, String> teacherReceivers = new HashMap<>();
|
|
|
teacherReceivers.put(teacherId, teacher.getPhone());
|
|
|
|
|
|
sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
|
|
|
- MessageTypeEnum.STUDENT_BUY_TEACHER_MUSIC_SHEET, teacherReceivers, null,
|
|
|
- 0, null,ClientEnum.TEACHER.getCode(),student.getUsername(),musicSheet.getMusicSheetName());
|
|
|
+ MessageTypeEnum.STUDENT_BUY_TEACHER_MUSIC_SHEET, teacherReceivers, null,
|
|
|
+ 0, null, ClientEnum.TEACHER.getCode(), student.getUsername(), musicSheet.getMusicSheetName());
|
|
|
|
|
|
// 推送学生
|
|
|
- Map<Long,String> studentReceivers = new HashMap<>();
|
|
|
+ Map<Long, String> studentReceivers = new HashMap<>();
|
|
|
studentReceivers.put(studentId, student.getPhone());
|
|
|
|
|
|
|
|
|
String url = sysMessageService.selectConfigUrl(MessageTypeEnum.STUDENT_BUY_MUSIC_SHEET_SUCCESS.getCode());
|
|
|
|
|
|
sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
|
|
|
- MessageTypeEnum.STUDENT_BUY_MUSIC_SHEET_SUCCESS, studentReceivers, null,
|
|
|
- 0, url,ClientEnum.STUDENT.getCode(),musicSheet.getMusicSheetName());
|
|
|
+ MessageTypeEnum.STUDENT_BUY_MUSIC_SHEET_SUCCESS, studentReceivers, null,
|
|
|
+ 0, url, ClientEnum.STUDENT.getCode(), musicSheet.getMusicSheetName());
|
|
|
// 推送学生
|
|
|
- Map<Long,String> studentSMS = new HashMap<>();
|
|
|
+ Map<Long, String> studentSMS = new HashMap<>();
|
|
|
studentSMS.put(studentId, student.getPhone());
|
|
|
// 推送短信
|
|
|
url = sysMessageService.selectConfigUrl(MessageTypeEnum.SMS_STUDENT_BUY_MUSIC_SHEET_SUCCESS.getCode());
|
|
|
sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_STUDENT_BUY_MUSIC_SHEET_SUCCESS,
|
|
|
- studentSMS,null,0,url,null,musicSheet.getMusicSheetName());
|
|
|
+ studentSMS, null, 0, url, null, musicSheet.getMusicSheetName());
|
|
|
|
|
|
return true;
|
|
|
}
|
|
@@ -572,8 +571,8 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
* 保存购买记录
|
|
|
*
|
|
|
* @param userOrderDetailVo 订单信息
|
|
|
- * @param actualPrice 付款价格
|
|
|
- * @param serviceFeeAmount 服务费
|
|
|
+ * @param actualPrice 付款价格
|
|
|
+ * @param serviceFeeAmount 服务费
|
|
|
*/
|
|
|
private void addMusicSheetPurchaseRecord(UserOrderDetailVo userOrderDetailVo, BigDecimal actualPrice, BigDecimal serviceFeeAmount) {
|
|
|
MusicSheetPurchaseRecord musicSheetPurchaseRecord = musicSheetPurchaseRecordService
|
|
@@ -597,23 +596,46 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
* 添加金额到老师账户
|
|
|
*
|
|
|
* @param userOrderDetailVo 订单信息
|
|
|
- * @param actualPrice 付款价格
|
|
|
- * @param serviceFeeAmount 服务费
|
|
|
- * @param musicSheetId 曲目id
|
|
|
+ * @param actualPrice 付款价格
|
|
|
+ * @param serviceFeeAmount 服务费
|
|
|
+ * @param musicSheetId 曲目id
|
|
|
*/
|
|
|
private void addTeacherAccount(UserOrderDetailVo userOrderDetailVo, BigDecimal actualPrice, BigDecimal serviceFeeAmount,
|
|
|
Long musicSheetId) {
|
|
|
- UserAccountRecordDto userAccountRecordDto = new UserAccountRecordDto();
|
|
|
- userAccountRecordDto.setUserId(userOrderDetailVo.getMerchId());
|
|
|
- userAccountRecordDto.setFrozenType(FrozenTypeEnum.NONE);
|
|
|
|
|
|
- userAccountRecordDto.setTransAmount(actualPrice.subtract(serviceFeeAmount).setScale(2, RoundingMode.HALF_UP));
|
|
|
- userAccountRecordDto.setInOrOut(InOrOutEnum.IN);
|
|
|
- userAccountRecordDto.setBizType(AccountBizTypeEnum.MUSIC);
|
|
|
- userAccountRecordDto.setBizId(musicSheetId);
|
|
|
- userAccountRecordDto.setBizName(userOrderDetailVo.getGoodName());
|
|
|
- userAccountRecordDto.setOrderNo(userOrderDetailVo.getOrderNo());
|
|
|
- userAccountService.accountChange(userAccountRecordDto);
|
|
|
+ BigDecimal transAmount = actualPrice.subtract(serviceFeeAmount).setScale(2, RoundingMode.HALF_UP);
|
|
|
+
|
|
|
+ //插入老师账户变更记录
|
|
|
+ HttpResponseResult<UserAccountRecord> recordRes = userAccountService.accountRecord(
|
|
|
+ new UserAccountRecordDto(userOrderDetailVo.getMerchId(), PostStatusEnum.WAIT, transAmount, InOrOutEnum.IN,
|
|
|
+ AccountBizTypeEnum.MUSIC, musicSheetId, userOrderDetailVo.getGoodName(), userOrderDetailVo.getOrderNo()));
|
|
|
+
|
|
|
+ if (recordRes.getStatus()) {
|
|
|
+ userAccountService.accountChange(recordRes.getData().getId(), PostStatusEnum.RECORDED);
|
|
|
+ }
|
|
|
+
|
|
|
+ //todo 插入平台实收
|
|
|
+
|
|
|
+ //判断是否分润
|
|
|
+ if (null != userOrderDetailVo.getRecomUserId()) {
|
|
|
+ // 分润比例
|
|
|
+ BigDecimal shareFeeRate = new BigDecimal(sysConfigService.findConfigValue(SysConfigConstant.SHARE_FEE))
|
|
|
+ .divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
|
|
|
+
|
|
|
+ //分润金额
|
|
|
+ BigDecimal shareFee = serviceFeeAmount.multiply(shareFeeRate).setScale(2, RoundingMode.HALF_UP);
|
|
|
+
|
|
|
+ //插入分润老师账户变更记录
|
|
|
+ HttpResponseResult<UserAccountRecord> recomRecordRes = userAccountService.accountRecord(
|
|
|
+ new UserAccountRecordDto(userOrderDetailVo.getRecomUserId(), PostStatusEnum.WAIT, shareFee, InOrOutEnum.IN,
|
|
|
+ AccountBizTypeEnum.MUSIC_SHARE, musicSheetId, userOrderDetailVo.getGoodName(), userOrderDetailVo.getOrderNo()));
|
|
|
+
|
|
|
+ if (recomRecordRes.getStatus()) {
|
|
|
+ userAccountService.accountChange(recomRecordRes.getData().getId(), PostStatusEnum.RECORDED);
|
|
|
+ }
|
|
|
+
|
|
|
+ //todo 插入平台分润支出
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -621,7 +643,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
public void orderAfterSheet(UserOrderDetailVo userOrderDetailVo) {
|
|
|
// 保存购买记录
|
|
|
MusicSheetPurchaseRecord musicSheetPurchaseRecord = musicSheetPurchaseRecordService
|
|
|
- .checkPurchase(userOrderDetailVo.getUserId(),userOrderDetailVo.getBizId());
|
|
|
+ .checkPurchase(userOrderDetailVo.getUserId(), userOrderDetailVo.getBizId());
|
|
|
if (musicSheetPurchaseRecord == null) {
|
|
|
musicSheetPurchaseRecord = new MusicSheetPurchaseRecord();
|
|
|
}
|
|
@@ -638,7 +660,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void buyMusicSheetCancel(UserOrderDetailVo userOrderDetailVo) {
|
|
|
MusicSheetPurchaseRecord musicSheetPurchaseRecord = musicSheetPurchaseRecordService
|
|
|
- .checkPurchase(userOrderDetailVo.getUserId(),userOrderDetailVo.getBizId());
|
|
|
+ .checkPurchase(userOrderDetailVo.getUserId(), userOrderDetailVo.getBizId());
|
|
|
if (musicSheetPurchaseRecord == null) return;
|
|
|
musicSheetPurchaseRecordService.removeById(musicSheetPurchaseRecord.getId());
|
|
|
}
|
|
@@ -688,9 +710,9 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
continue;
|
|
|
}
|
|
|
MusicSheetExport sheetExport = readerProperty.getClazz();
|
|
|
- BeanUtils.copyProperties(sheetExport,musicSheetDto);
|
|
|
+ BeanUtils.copyProperties(sheetExport, musicSheetDto);
|
|
|
|
|
|
- if(AudioTypeEnum.MIDI.getCode().equals(musicSheetDto.getAudioType().getCode())) {
|
|
|
+ if (AudioTypeEnum.MIDI.getCode().equals(musicSheetDto.getAudioType().getCode())) {
|
|
|
musicSheetDto.setMp3Type(null);
|
|
|
}
|
|
|
|
|
@@ -703,7 +725,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
StringBuilder musicTagIds = new StringBuilder();
|
|
|
if (musicTags == null || musicTags.equals("")) {
|
|
|
errMsgList.add(new ErrMsg(readerProperty.getRowIndex(), "曲目标签不能为空"));
|
|
|
- } else {
|
|
|
+ } else {
|
|
|
String[] stringList = musicTags.split("[,,]");
|
|
|
List<MusicTag> childrenMusicTag = new ArrayList<>();
|
|
|
for (MusicTagVo musicTagVo : musicTagVoList) {
|
|
@@ -739,8 +761,8 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
childrenSubject.addAll(subject.getSubjects());
|
|
|
}
|
|
|
List<Subject> collect = childrenSubject.stream()
|
|
|
- .filter(subject -> subject.getName().equals(sheetExport.getMusicSubjects()))
|
|
|
- .collect(Collectors.toList());
|
|
|
+ .filter(subject -> subject.getName().equals(sheetExport.getMusicSubjects()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
if (CollectionUtils.isEmpty(collect)) {
|
|
|
errMsgList.add(new ErrMsg(readerProperty.getRowIndex(), "曲目声部名错误:" + sheetExport.getMusicSubjects()));
|
|
|
} else {
|
|
@@ -764,11 +786,11 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
musicSheetDtoList.add(musicSheetDto);
|
|
|
}
|
|
|
|
|
|
- if(!CollectionUtils.isEmpty(errMsgList)) {
|
|
|
+ if (!CollectionUtils.isEmpty(errMsgList)) {
|
|
|
throw new ExcelException("导入异常", errMsgList);
|
|
|
}
|
|
|
|
|
|
- musicSheetDtoList.forEach(musicSheetDto -> saveMusicSheet(musicSheetDto,userId));
|
|
|
+ musicSheetDtoList.forEach(musicSheetDto -> saveMusicSheet(musicSheetDto, userId));
|
|
|
|
|
|
}
|
|
|
|
|
@@ -776,7 +798,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
public MusicSheetWebsiteDetailVo websiteDetail(Long musicSheetId, SysUser sysUser) {
|
|
|
MusicSheetDetailVo detail = detail(musicSheetId, null, null);
|
|
|
MusicSheetWebsiteDetailVo musicSheetWebsiteDetailVo = new MusicSheetWebsiteDetailVo();
|
|
|
- BeanUtils.copyProperties(detail,musicSheetWebsiteDetailVo);
|
|
|
+ BeanUtils.copyProperties(detail, musicSheetWebsiteDetailVo);
|
|
|
|
|
|
// 曲目收藏数
|
|
|
long musicSheetFavoriteNum = musicFavoriteService.getMusicSheetFavoriteNum(musicSheetId);
|
|
@@ -836,7 +858,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
|
|
|
private SysUser getSysUser(Long userId) {
|
|
|
return Optional.ofNullable(userId)
|
|
|
- .map(sysUserFeignService::queryUserById)
|
|
|
- .orElseThrow(() -> new BizException("用户不存在"));
|
|
|
+ .map(sysUserFeignService::queryUserById)
|
|
|
+ .orElseThrow(() -> new BizException("用户不存在"));
|
|
|
}
|
|
|
}
|