|
@@ -6,8 +6,11 @@ import com.baomidou.mybatisplus.extension.service.additional.update.impl.LambdaU
|
|
|
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.biz.dal.dao.MusicAlbumDao;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.*;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.album.PurchaseRecordTypeEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.support.WrapperUtil;
|
|
|
+import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
|
|
|
import com.yonge.cooleshow.common.enums.ActivityShareEnum;
|
|
|
import com.yonge.cooleshow.common.enums.PostStatusEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.MusicSheetDao;
|
|
@@ -31,18 +34,19 @@ import com.yonge.toolset.utils.easyexcel.ErrMsg;
|
|
|
import com.yonge.toolset.utils.easyexcel.ExcelDataReaderProperty;
|
|
|
import com.yonge.toolset.utils.easyexcel.ExcelException;
|
|
|
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
-import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
+import java.text.MessageFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -80,6 +84,9 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
private MusicSheetPracticeRecordService musicSheetPracticeRecordService;
|
|
|
|
|
|
@Autowired
|
|
|
+ private MusicAlbumService musicAlbumService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
private StudentService studentService;
|
|
|
|
|
|
@Autowired
|
|
@@ -113,6 +120,10 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
private StudentStarService studentStarService;
|
|
|
@Autowired
|
|
|
private UserOrderService userOrderService;
|
|
|
+ @Autowired
|
|
|
+ private MusicAlbumDao musicAlbumMapper;
|
|
|
+ @Autowired
|
|
|
+ private MusicSheetService musicSheetService;
|
|
|
|
|
|
public MusicSheetDao getDao() {
|
|
|
return musicSheetDao;
|
|
@@ -141,7 +152,16 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
|
|
|
@Override
|
|
|
public IPage<MusicSheetVo> selectPage(IPage<MusicSheetVo> page, MusicSheetSearch query) {
|
|
|
- return page.setRecords(baseMapper.selectPage(page, query));
|
|
|
+
|
|
|
+ List<MusicSheetVo> records = baseMapper.selectPage(page, query);
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(records)) {
|
|
|
+
|
|
|
+ // 更新曲目专辑数量
|
|
|
+ musicSheetService.updateMusicAlbumNumInfo(records);
|
|
|
+ }
|
|
|
+
|
|
|
+ return page.setRecords(records);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -250,7 +270,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
String reason = musicSheetAuthRecordService.selectAuditReason(id);
|
|
|
detail.setReason(reason);
|
|
|
}
|
|
|
- if (ChargeTypeEnum.FREE.getCode().equals(detail.getChargeType().getCode())) {
|
|
|
+ if (detail.getPaymentType().contains(ChargeTypeEnum.FREE.getCode())) {
|
|
|
detail.setPlay(YesOrNoEnum.YES);
|
|
|
} else if (ClientEnum.STUDENT.getCode().equals(userType.getCode())
|
|
|
|| ClientEnum.TEACHER.getCode().equals(userType.getCode())) {
|
|
@@ -282,21 +302,23 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
private void setMusicSheetPlay(Long studentId, MusicSheetDetailVo detail, ClientEnum userType) {
|
|
|
detail.setPlay(YesOrNoEnum.NO);
|
|
|
// 单曲购买 判断购买记录,有记录课播放
|
|
|
- if (ChargeTypeEnum.CHARGE.getCode().equals(detail.getChargeType().getCode())) {
|
|
|
+ if (detail.getPaymentType().contains(ChargeTypeEnum.CHARGE.getCode())) {
|
|
|
// 学生须判断是否能播放曲目
|
|
|
MusicSheetPurchaseRecord musicSheetPurchaseRecord = musicSheetPurchaseRecordService.checkPurchase(
|
|
|
- studentId, detail.getId(), userType);
|
|
|
+ studentId, detail.getId(), userType, PurchaseRecordTypeEnum.MUSIC);
|
|
|
if (musicSheetPurchaseRecord != null) {
|
|
|
detail.setOrderStatus(musicSheetPurchaseRecord.getOrderStatus());
|
|
|
detail.setOrderNo(musicSheetPurchaseRecord.getOrderNo());
|
|
|
if (OrderStatusEnum.PAID.getCode().equals(musicSheetPurchaseRecord.getOrderStatus().getCode())) {
|
|
|
detail.setPlay(YesOrNoEnum.YES);
|
|
|
+ return;
|
|
|
}
|
|
|
}
|
|
|
- } else if (ChargeTypeEnum.VIP.getCode().equals(detail.getChargeType().getCode())) {
|
|
|
+ }
|
|
|
+ if (detail.getPaymentType().contains(ChargeTypeEnum.VIP.getCode())) {
|
|
|
// 先判断是否购买过
|
|
|
MusicSheetPurchaseRecord musicSheetPurchaseRecord = musicSheetPurchaseRecordService.checkPurchase(
|
|
|
- studentId, detail.getId(), userType);
|
|
|
+ studentId, detail.getId(), userType, PurchaseRecordTypeEnum.MUSIC);
|
|
|
if (musicSheetPurchaseRecord != null) {
|
|
|
detail.setPlay(YesOrNoEnum.YES);
|
|
|
} else
|
|
@@ -313,11 +335,49 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ if (detail.getPlay().equals(YesOrNoEnum.YES)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断专辑购买
|
|
|
+
|
|
|
+ // 1 查询曲目所在的专辑
|
|
|
+ List<AlbumMusicRelate> albumMusicRelateList = albumMusicRelateService.lambdaQuery()
|
|
|
+ .eq(AlbumMusicRelate::getMusicSheetId, detail.getId())
|
|
|
+ .list();
|
|
|
+ if (CollectionUtils.isEmpty(albumMusicRelateList)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<Long> albumIdList = albumMusicRelateList.stream()
|
|
|
+ .map(AlbumMusicRelate::getAlbumId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 2 检查是否购买过专辑
|
|
|
+ Integer count = musicSheetPurchaseRecordService.lambdaQuery()
|
|
|
+ .eq(MusicSheetPurchaseRecord::getClientType, userType)
|
|
|
+ .eq(MusicSheetPurchaseRecord::getOrderStatus,
|
|
|
+ OrderStatusEnum.PAID)
|
|
|
+ .in(MusicSheetPurchaseRecord::getMusicSheetId, albumIdList)
|
|
|
+ .eq(MusicSheetPurchaseRecord::getPurchaseType,
|
|
|
+ PurchaseRecordTypeEnum.ALBUM)
|
|
|
+ .eq(MusicSheetPurchaseRecord::getStudentId, studentId)
|
|
|
+ .count();
|
|
|
+ if (count >0) {
|
|
|
+ detail.setPlay(YesOrNoEnum.YES);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public IPage<MusicSheetVo> selectStudentPage(IPage<MusicSheetVo> page, StudentMusicSheetSearch query, ClientEnum clientType) {
|
|
|
List<MusicSheetVo> records = baseMapper.selectStudentMusicPage(page, query, clientType);
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(records)) {
|
|
|
+
|
|
|
+ // 统计单曲归属专辑数
|
|
|
+ updateMusicAlbumNumInfo(records);
|
|
|
+ }
|
|
|
|
|
|
/*if(query.getMyself() != null && query.getMyself() == false){//首页
|
|
|
if(records == null || records.size() == 0){
|
|
@@ -343,6 +403,26 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 更新曲目专辑数
|
|
|
+ * @param records List<MusicSheetVo>
|
|
|
+ * @return List<MusicSheetVo>
|
|
|
+ */
|
|
|
+ public List<MusicSheetVo> updateMusicAlbumNumInfo(List<MusicSheetVo> records) {
|
|
|
+ List<Long> musicIds = records.stream()
|
|
|
+ .map(MusicSheet::getId).distinct().collect(Collectors.toList());
|
|
|
+
|
|
|
+ Map<Long, Integer> collect = getBaseMapper().selectMusicAlbumStatInfo(musicIds).stream()
|
|
|
+ .collect(Collectors.toMap(StatGroupWrapper::getId, StatGroupWrapper::getTotal, (o, n) -> n));
|
|
|
+
|
|
|
+ for (MusicSheetVo item : records) {
|
|
|
+
|
|
|
+ item.setAlbumNums(collect.getOrDefault(item.getId(), 0));
|
|
|
+ }
|
|
|
+
|
|
|
+ return records;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean setFavorite(Long userId, Long musicSheetId, ClientEnum clientType) {
|
|
@@ -363,12 +443,31 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
@Override
|
|
|
public IPage<MusicSheetVo> myMusic(IPage<MusicSheetVo> page, StudentMusicSheetSearch query) {
|
|
|
query.setDelFlag(null);
|
|
|
- return page.setRecords(baseMapper.selectMyMusicPage(page, query));
|
|
|
+
|
|
|
+ List<MusicSheetVo> records = baseMapper.selectMyMusicPage(page, query);
|
|
|
+
|
|
|
+ // 统计曲目专辑数
|
|
|
+ if (CollectionUtils.isNotEmpty(records)) {
|
|
|
+
|
|
|
+ // 更新曲目专辑数量
|
|
|
+ musicSheetService.updateMusicAlbumNumInfo(records);
|
|
|
+ }
|
|
|
+
|
|
|
+ return page.setRecords(records);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public IPage<MusicSheetVo> favoriteMusic(IPage<MusicSheetVo> page, StudentMusicSheetSearch query, ClientEnum clientType) {
|
|
|
- return page.setRecords(baseMapper.selectFavoriteMusicPage(page, query, clientType));
|
|
|
+
|
|
|
+ List<MusicSheetVo> records = baseMapper.selectFavoriteMusicPage(page, query, clientType);
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(records)) {
|
|
|
+
|
|
|
+ // 更新曲目专辑数量
|
|
|
+ musicSheetService.updateMusicAlbumNumInfo(records);
|
|
|
+ }
|
|
|
+
|
|
|
+ return page.setRecords(records);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -390,6 +489,12 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
page.setCurrent(practiceMusicIdPage.getCurrent());
|
|
|
page.setSize(practiceMusicIdPage.getSize());
|
|
|
page.setTotal(practiceMusicIdPage.getTotal());
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(page.getRecords())) {
|
|
|
+
|
|
|
+ // 更新曲目专辑数量
|
|
|
+ musicSheetService.updateMusicAlbumNumInfo(page.getRecords());
|
|
|
+ }
|
|
|
return page;
|
|
|
}
|
|
|
|
|
@@ -627,24 +732,53 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
MusicSheetPayDto musicSheetPayDto = JSON.parseObject(
|
|
|
JSON.toJSONString(orderReqInfo.getBizContent()), MusicSheetPayDto.class);
|
|
|
|
|
|
- MusicSheet musicSheet = this.getById(musicSheetPayDto.getMusicSheetId());
|
|
|
OrderCreateRes orderCreateRes = new OrderCreateRes();
|
|
|
- if (musicSheet == null) {
|
|
|
- throw new BizException("不存在曲目信息");
|
|
|
- }
|
|
|
+ orderCreateRes.setGoodType(orderCreateRes.getGoodType());
|
|
|
+ orderCreateRes.setGoodNum(1);
|
|
|
+ orderCreateRes.setOrderType(orderReqInfo.getOrderType());
|
|
|
+
|
|
|
+ switch (orderReqInfo.getGoodType()) {
|
|
|
+ case MUSIC: // 单曲
|
|
|
+ {
|
|
|
+ MusicSheet musicSheet = this.getById(musicSheetPayDto.getMusicSheetId());
|
|
|
+ if (musicSheet == null) {
|
|
|
+ throw new BizException("不存在曲目信息");
|
|
|
+ }
|
|
|
+
|
|
|
+ orderCreateRes.setRes(true);
|
|
|
+ if (!musicSheet.getSourceType().getCode().equals(SourceTypeEnum.PLATFORM.getCode())) {
|
|
|
+ orderCreateRes.setMerchId(musicSheet.getUserId());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ orderCreateRes.setBizId(musicSheet.getId());
|
|
|
+ orderCreateRes.setOriginalPrice(musicSheet.getMusicPrice());
|
|
|
+ orderCreateRes.setExpectPrice(musicSheet.getMusicPrice());
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ALBUM: // 专辑
|
|
|
+ {
|
|
|
+ MusicAlbum album = musicAlbumMapper.selectById(musicSheetPayDto.getMusicSheetId());
|
|
|
|
|
|
- // 检查已经购买
|
|
|
- checkoutPay(orderReqInfo.getUserId(), musicSheetPayDto.getMusicSheetId(), musicSheetPayDto.getClientType());
|
|
|
+ if (Objects.isNull(album)) {
|
|
|
+ throw new BizException("无效的专辑信息");
|
|
|
+ }
|
|
|
|
|
|
- orderCreateRes.setRes(true);
|
|
|
- if (!musicSheet.getSourceType().getCode().equals(SourceTypeEnum.PLATFORM.getCode())) {
|
|
|
- orderCreateRes.setMerchId(musicSheet.getUserId());
|
|
|
+ orderCreateRes.setRes(true);
|
|
|
+ orderCreateRes.setMerchId(0L);
|
|
|
+ orderCreateRes.setBizId(album.getId());
|
|
|
+ orderCreateRes.setOriginalPrice(BigDecimal.valueOf(album.getAlbumPrice()));
|
|
|
+ orderCreateRes.setExpectPrice(BigDecimal.valueOf(album.getAlbumPrice()));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
}
|
|
|
- orderCreateRes.setGoodType(orderCreateRes.getGoodType());
|
|
|
- orderCreateRes.setBizId(musicSheet.getId());
|
|
|
- orderCreateRes.setGoodNum(1);
|
|
|
- orderCreateRes.setOriginalPrice(musicSheet.getMusicPrice());
|
|
|
- orderCreateRes.setExpectPrice(musicSheet.getMusicPrice());
|
|
|
+
|
|
|
+ // 检查已经购买,抛出已购买异常
|
|
|
+ checkoutPay(orderReqInfo.getUserId(), musicSheetPayDto.getMusicSheetId(), musicSheetPayDto.getClientType(),
|
|
|
+ PurchaseRecordTypeEnum.valueOf(orderReqInfo.getGoodType().getCode()));
|
|
|
+
|
|
|
return HttpResponseResult.succeed(orderCreateRes);
|
|
|
|
|
|
}
|
|
@@ -656,23 +790,23 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
* @param musicSheetId 曲目id
|
|
|
* @param clientType
|
|
|
*/
|
|
|
- private void checkoutPay(Long userId, Long musicSheetId, String clientType) {
|
|
|
+ private void checkoutPay(Long userId, Long musicSheetId, String clientType, PurchaseRecordTypeEnum purchaseType) {
|
|
|
List<MusicSheetPurchaseRecord> list = musicSheetPurchaseRecordService
|
|
|
.lambdaQuery()
|
|
|
.eq(MusicSheetPurchaseRecord::getMusicSheetId, musicSheetId)
|
|
|
.eq(MusicSheetPurchaseRecord::getStudentId, userId)
|
|
|
.eq(MusicSheetPurchaseRecord::getClientType, clientType)
|
|
|
+ .eq(MusicSheetPurchaseRecord::getPurchaseType, purchaseType)
|
|
|
.eq(MusicSheetPurchaseRecord::getOrderStatus, OrderStatusEnum.PAID)
|
|
|
.list();
|
|
|
if (!CollectionUtils.isEmpty(list)) {
|
|
|
- throw new BizException("已经购买了当前曲目");
|
|
|
+ throw new BizException(MessageFormat.format("已经购买了当前{0}", purchaseType.getMsg()));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public void buyMusicSheetSuccess(UserOrderDetailVo userOrderDetailVo) {
|
|
|
- MusicSheet musicSheet = this.getById(userOrderDetailVo.getBizId());
|
|
|
// 曲目服务费比例
|
|
|
String musicSheetServiceFee = sysConfigService.findConfigValue(SysConfigConstant.MUSIC_SHEET_SERVICE_FEE);
|
|
|
BigDecimal serviceFee = new BigDecimal(musicSheetServiceFee).divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
|
|
@@ -689,18 +823,22 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
// 保存购买记录
|
|
|
addMusicSheetPurchaseRecord(userOrderDetailVo, actualPrice, serviceFeeAmount);
|
|
|
|
|
|
- if (!musicSheet.getSourceType().getCode().equals(SourceTypeEnum.PLATFORM.getCode())) {
|
|
|
+ // 曲目判断老师收入
|
|
|
+ if (userOrderDetailVo.getOrderType().equals(OrderTypeEnum.MUSIC)) {
|
|
|
+ MusicSheet musicSheet = this.getById(userOrderDetailVo.getBizId());
|
|
|
+ if (!musicSheet.getSourceType().getCode().equals(SourceTypeEnum.PLATFORM.getCode())) {
|
|
|
|
|
|
- // 老师收入
|
|
|
- BigDecimal teacherAmount = BigDecimal.ONE.subtract(serviceFee).multiply(expectPrice);
|
|
|
+ // 老师收入
|
|
|
+ BigDecimal teacherAmount = BigDecimal.ONE.subtract(serviceFee).multiply(expectPrice);
|
|
|
|
|
|
- // 加入账户
|
|
|
- addTeacherAccount(userOrderDetailVo, teacherAmount, userOrderDetailVo.getBizId());
|
|
|
+ // 加入账户
|
|
|
+ addTeacherAccount(userOrderDetailVo, teacherAmount, userOrderDetailVo.getBizId());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 消息通知
|
|
|
try {
|
|
|
- sendBuyMessage(userOrderDetailVo.getMerchId(), userOrderDetailVo.getUserId(), userOrderDetailVo.getBizId(), userOrderDetailVo.getOrderClient());
|
|
|
+ sendBuyMessage(userOrderDetailVo.getMerchId(), userOrderDetailVo.getUserId(), userOrderDetailVo.getBizId(), userOrderDetailVo.getOrderClient(),userOrderDetailVo.getOrderType());
|
|
|
} catch (Exception e) {
|
|
|
log.warn("购买曲目消息推送失败 {}", e.getMessage());
|
|
|
}
|
|
@@ -708,19 +846,43 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
|
|
|
/**
|
|
|
* 发送购买消息通知
|
|
|
- *
|
|
|
- * @param teacherId 老师id
|
|
|
+ * @param teacherId 老师id
|
|
|
* @param studentId 学生id
|
|
|
* @param musicSheetId 曲目id
|
|
|
* @param orderClient
|
|
|
+ * @param orderType
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public boolean sendBuyMessage(Long teacherId, Long studentId, Long musicSheetId, ClientEnum orderClient) {
|
|
|
+ public boolean sendBuyMessage(Long teacherId, Long studentId, Long musicSheetId, ClientEnum orderClient, OrderTypeEnum orderType) {
|
|
|
+
|
|
|
+ String name = null;
|
|
|
+ MusicSheet musicSheet = null;
|
|
|
+ MessageTypeEnum messageType = null;
|
|
|
+ MessageTypeEnum smsMessageType = null;
|
|
|
+ if (orderType.equals(OrderTypeEnum.MUSIC)) {
|
|
|
+ musicSheet = this.getById(musicSheetId);
|
|
|
+ name = musicSheet.getMusicSheetName();
|
|
|
+ if (orderClient.equals(ClientEnum.STUDENT)) {
|
|
|
+ messageType = MessageTypeEnum.STUDENT_BUY_MUSIC_SHEET_SUCCESS;
|
|
|
+ } else {
|
|
|
+ messageType = MessageTypeEnum.TEACHER_BUY_MUSIC_SHEET_SUCCESS;
|
|
|
+ }
|
|
|
+ smsMessageType = MessageTypeEnum.SMS_STUDENT_BUY_MUSIC_SHEET_SUCCESS;
|
|
|
+ } else if (orderType.equals(OrderTypeEnum.ALBUM)) {
|
|
|
+ name = musicAlbumService.getById(musicSheetId).getAlbumName();
|
|
|
+ if (orderClient.equals(ClientEnum.STUDENT)) {
|
|
|
+ messageType = MessageTypeEnum.STUDENT_BUY_MUSIC_ALBUM_SUCCESS;
|
|
|
+ } else {
|
|
|
+ messageType = MessageTypeEnum.TEACHER_BUY_MUSIC_ALBUM_SUCCESS;
|
|
|
+ }
|
|
|
+ smsMessageType = MessageTypeEnum.SMS_STUDENT_BUY_MUSIC_ALBUM_SUCCESS;
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
- MusicSheet musicSheet = this.getById(musicSheetId);
|
|
|
SysUser student = sysUserFeignService.queryUserById(studentId);
|
|
|
- if (musicSheet.getSourceType().equals(SourceTypeEnum.TEACHER)) {
|
|
|
+ if (orderType.equals(OrderTypeEnum.MUSIC) && musicSheet.getSourceType().equals(SourceTypeEnum.TEACHER)) {
|
|
|
SysUser teacher = sysUserFeignService.queryUserById(teacherId);
|
|
|
if (StringUtil.isEmpty(teacher.getPhone())) {
|
|
|
log.warn("teacher id {} name {} 手机号不存在,消息推送失败", teacher.getId(), teacher.getUsername());
|
|
@@ -731,31 +893,26 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
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());
|
|
|
+ 0, null, ClientEnum.TEACHER.getCode(), student.getUsername(), name);
|
|
|
|
|
|
}
|
|
|
// 推送学生
|
|
|
Map<Long, String> studentReceivers = new HashMap<>();
|
|
|
studentReceivers.put(studentId, student.getPhone());
|
|
|
- MessageTypeEnum messageType;
|
|
|
- if (orderClient.equals(ClientEnum.STUDENT)) {
|
|
|
- messageType = MessageTypeEnum.STUDENT_BUY_MUSIC_SHEET_SUCCESS;
|
|
|
- } else {
|
|
|
- messageType = MessageTypeEnum.TEACHER_BUY_MUSIC_SHEET_SUCCESS;
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
String url = sysMessageService.selectConfigUrl(messageType.getCode());
|
|
|
|
|
|
sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
|
|
|
messageType, studentReceivers, null,
|
|
|
- 0, url, orderClient.getCode(), musicSheet.getMusicSheetName());
|
|
|
+ 0, url, orderClient.getCode(), name);
|
|
|
// 推送学生
|
|
|
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());
|
|
|
+ url = sysMessageService.selectConfigUrl(smsMessageType.getCode());
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, smsMessageType,
|
|
|
+ studentSMS, null, 0, url, null, name);
|
|
|
|
|
|
return true;
|
|
|
}
|
|
@@ -768,8 +925,11 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
* @param serviceFeeAmount 服务费
|
|
|
*/
|
|
|
private void addMusicSheetPurchaseRecord(UserOrderDetailVo userOrderDetailVo, BigDecimal actualPrice, BigDecimal serviceFeeAmount) {
|
|
|
- MusicSheetPurchaseRecord musicSheetPurchaseRecord = musicSheetPurchaseRecordService
|
|
|
- .checkPurchase(userOrderDetailVo.getUserId(), userOrderDetailVo.getBizId(), userOrderDetailVo.getOrderClient());
|
|
|
+ MusicSheetPurchaseRecord musicSheetPurchaseRecord = musicSheetPurchaseRecordService.checkPurchase(
|
|
|
+ userOrderDetailVo.getUserId(),
|
|
|
+ userOrderDetailVo.getBizId(),
|
|
|
+ userOrderDetailVo.getOrderClient(),
|
|
|
+ PurchaseRecordTypeEnum.valueOf(userOrderDetailVo.getOrderType().getCode()));
|
|
|
if (musicSheetPurchaseRecord == null) {
|
|
|
musicSheetPurchaseRecord = new MusicSheetPurchaseRecord();
|
|
|
}
|
|
@@ -783,6 +943,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
musicSheetPurchaseRecord.setMusicSheetServiceFee(serviceFeeAmount);
|
|
|
musicSheetPurchaseRecord.setOrderStatus(OrderStatusEnum.PAID);
|
|
|
musicSheetPurchaseRecord.setStudentId(userOrderDetailVo.getUserId());
|
|
|
+ musicSheetPurchaseRecord.setPurchaseType(PurchaseRecordTypeEnum.valueOf(userOrderDetailVo.getGoodType().getCode()));
|
|
|
musicSheetPurchaseRecordService.saveOrUpdate(musicSheetPurchaseRecord);
|
|
|
}
|
|
|
|
|
@@ -808,8 +969,11 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void orderAfterSheet(UserOrderDetailVo userOrderDetailVo) {
|
|
|
// 保存购买记录
|
|
|
- MusicSheetPurchaseRecord musicSheetPurchaseRecord = musicSheetPurchaseRecordService
|
|
|
- .checkPurchase(userOrderDetailVo.getUserId(), userOrderDetailVo.getBizId(), userOrderDetailVo.getOrderClient());
|
|
|
+ MusicSheetPurchaseRecord musicSheetPurchaseRecord = musicSheetPurchaseRecordService.checkPurchase(
|
|
|
+ userOrderDetailVo.getUserId(),
|
|
|
+ userOrderDetailVo.getBizId(),
|
|
|
+ userOrderDetailVo.getOrderClient(),
|
|
|
+ PurchaseRecordTypeEnum.valueOf(userOrderDetailVo.getOrderType().getCode()));
|
|
|
if (musicSheetPurchaseRecord == null) {
|
|
|
musicSheetPurchaseRecord = new MusicSheetPurchaseRecord();
|
|
|
}
|
|
@@ -820,14 +984,19 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
musicSheetPurchaseRecord.setOriginalPrice(userOrderDetailVo.getOriginalPrice());
|
|
|
musicSheetPurchaseRecord.setOrderStatus(OrderStatusEnum.WAIT_PAY);
|
|
|
musicSheetPurchaseRecord.setStudentId(userOrderDetailVo.getUserId());
|
|
|
+ musicSheetPurchaseRecord.setPurchaseType(PurchaseRecordTypeEnum.valueOf(userOrderDetailVo.getGoodType().getCode()));
|
|
|
+
|
|
|
musicSheetPurchaseRecordService.saveOrUpdate(musicSheetPurchaseRecord);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void buyMusicSheetCancel(UserOrderDetailVo userOrderDetailVo) {
|
|
|
- MusicSheetPurchaseRecord musicSheetPurchaseRecord = musicSheetPurchaseRecordService
|
|
|
- .checkPurchase(userOrderDetailVo.getUserId(), userOrderDetailVo.getBizId(), userOrderDetailVo.getOrderClient());
|
|
|
+ MusicSheetPurchaseRecord musicSheetPurchaseRecord = musicSheetPurchaseRecordService.checkPurchase(
|
|
|
+ userOrderDetailVo.getUserId(),
|
|
|
+ userOrderDetailVo.getBizId(),
|
|
|
+ userOrderDetailVo.getOrderClient(),
|
|
|
+ PurchaseRecordTypeEnum.valueOf(userOrderDetailVo.getGoodType().getCode()));
|
|
|
|
|
|
if (musicSheetPurchaseRecord == null) return;
|
|
|
musicSheetPurchaseRecordService.removeById(musicSheetPurchaseRecord.getId());
|