|
@@ -102,6 +102,8 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
|
|
|
@Autowired
|
|
|
private StudentStarService studentStarService;
|
|
|
+ @Autowired
|
|
|
+ private UserOrderService userOrderService;
|
|
|
|
|
|
public MusicSheetDao getDao() {
|
|
|
return musicSheetDao;
|
|
@@ -179,7 +181,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public MusicSheetDetailVo detail(Long id, SysUser sysUser,ClientEnum userType) {
|
|
|
+ public MusicSheetDetailVo detail(Long id, SysUser sysUser, ClientEnum userType) {
|
|
|
MusicSheetDetailVo detail = baseMapper.detail(id);
|
|
|
if (detail == null) {
|
|
|
throw new BizException("未找到曲目信息");
|
|
@@ -193,13 +195,13 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
}
|
|
|
if (ChargeTypeEnum.FREE.getCode().equals(detail.getChargeType().getCode())) {
|
|
|
detail.setPlay(YesOrNoEnum.YES);
|
|
|
- } else if (ClientEnum.STUDENT.getCode().equals(userType.getCode())
|
|
|
+ } else if (ClientEnum.STUDENT.getCode().equals(userType.getCode())
|
|
|
|| ClientEnum.TEACHER.getCode().equals(userType.getCode())) {
|
|
|
// 2022 7 20 老师也能购买曲目
|
|
|
if (ClientEnum.TEACHER.getCode().equals(userType.getCode()) && detail.getUserId().equals(sysUser.getId())) {
|
|
|
detail.setPlay(YesOrNoEnum.YES);
|
|
|
} else {
|
|
|
- setMusicSheetPlay(sysUser.getId(), detail,userType);
|
|
|
+ setMusicSheetPlay(sysUser.getId(), detail, userType);
|
|
|
}
|
|
|
} else {
|
|
|
detail.setPlay(YesOrNoEnum.YES);
|
|
@@ -213,11 +215,12 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
|
|
|
/**
|
|
|
* 设置学生曲目信息
|
|
|
- *
|
|
|
+ * <p>
|
|
|
* 2022 7 20 老师也能购买曲目
|
|
|
- * @param studentId 学生id
|
|
|
- * @param detail 曲目详情
|
|
|
- * @param userType 用户类型
|
|
|
+ *
|
|
|
+ * @param studentId 学生id
|
|
|
+ * @param detail 曲目详情
|
|
|
+ * @param userType 用户类型
|
|
|
*/
|
|
|
private void setMusicSheetPlay(Long studentId, MusicSheetDetailVo detail, ClientEnum userType) {
|
|
|
detail.setPlay(YesOrNoEnum.NO);
|
|
@@ -225,7 +228,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
if (ChargeTypeEnum.CHARGE.getCode().equals(detail.getChargeType().getCode())) {
|
|
|
// 学生须判断是否能播放曲目
|
|
|
MusicSheetPurchaseRecord musicSheetPurchaseRecord = musicSheetPurchaseRecordService.checkPurchase(
|
|
|
- studentId, detail.getId(),userType);
|
|
|
+ studentId, detail.getId(), userType);
|
|
|
if (musicSheetPurchaseRecord != null) {
|
|
|
detail.setOrderStatus(musicSheetPurchaseRecord.getOrderStatus());
|
|
|
detail.setOrderNo(musicSheetPurchaseRecord.getOrderNo());
|
|
@@ -241,7 +244,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
detail.setPlay(YesOrNoEnum.YES);
|
|
|
}
|
|
|
} else if (userType.equals(ClientEnum.TEACHER)) {
|
|
|
- TeacherVo teacher= teacherService.detail(studentId);
|
|
|
+ TeacherVo teacher = teacherService.detail(studentId);
|
|
|
if (teacher != null && YesOrNoEnum.YES.getCode().equals(teacher.getIsVip().getCode())) {
|
|
|
detail.setPlay(YesOrNoEnum.YES);
|
|
|
}
|
|
@@ -477,7 +480,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
}
|
|
|
|
|
|
// 检查已经购买
|
|
|
- checkoutPay(orderReqInfo.getUserId(), musicSheetPayDto.getMusicSheetId(),musicSheetPayDto.getClientType());
|
|
|
+ checkoutPay(orderReqInfo.getUserId(), musicSheetPayDto.getMusicSheetId(), musicSheetPayDto.getClientType());
|
|
|
|
|
|
orderCreateRes.setRes(true);
|
|
|
if (!musicSheet.getSourceType().getCode().equals(SourceTypeEnum.PLATFORM.getCode())) {
|
|
@@ -494,7 +497,8 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
|
|
|
/**
|
|
|
* 检查是否已购买当前曲目
|
|
|
- * @param userId 用户id
|
|
|
+ *
|
|
|
+ * @param userId 用户id
|
|
|
* @param musicSheetId 曲目id
|
|
|
* @param clientType
|
|
|
*/
|
|
@@ -534,9 +538,9 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
|
|
|
// 消息通知
|
|
|
try {
|
|
|
- sendBuyMessage(userOrderDetailVo.getMerchId(), userOrderDetailVo.getUserId(), userOrderDetailVo.getBizId());
|
|
|
+ sendBuyMessage(userOrderDetailVo.getMerchId(), userOrderDetailVo.getUserId(), userOrderDetailVo.getBizId(), userOrderDetailVo.getOrderClient());
|
|
|
} catch (Exception e) {
|
|
|
- log.warn("学生购买曲目消息推送失败 {}", e.getMessage());
|
|
|
+ log.warn("购买曲目消息推送失败 {}", e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -546,10 +550,11 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
* @param teacherId 老师id
|
|
|
* @param studentId 学生id
|
|
|
* @param musicSheetId 曲目id
|
|
|
+ * @param orderClient
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public boolean sendBuyMessage(Long teacherId, Long studentId, Long musicSheetId) {
|
|
|
+ public boolean sendBuyMessage(Long teacherId, Long studentId, Long musicSheetId, ClientEnum orderClient) {
|
|
|
SysUser teacher = sysUserFeignService.queryUserById(teacherId);
|
|
|
SysUser student = sysUserFeignService.queryUserById(studentId);
|
|
|
if (StringUtil.isEmpty(teacher.getPhone())) {
|
|
@@ -574,7 +579,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
|
|
|
sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
|
|
|
MessageTypeEnum.STUDENT_BUY_MUSIC_SHEET_SUCCESS, studentReceivers, null,
|
|
|
- 0, url, ClientEnum.STUDENT.getCode(), musicSheet.getMusicSheetName());
|
|
|
+ 0, url, orderClient.getCode(), musicSheet.getMusicSheetName());
|
|
|
// 推送学生
|
|
|
Map<Long, String> studentSMS = new HashMap<>();
|
|
|
studentSMS.put(studentId, student.getPhone());
|
|
@@ -595,7 +600,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
*/
|
|
|
private void addMusicSheetPurchaseRecord(UserOrderDetailVo userOrderDetailVo, BigDecimal actualPrice, BigDecimal serviceFeeAmount) {
|
|
|
MusicSheetPurchaseRecord musicSheetPurchaseRecord = musicSheetPurchaseRecordService
|
|
|
- .checkPurchase(userOrderDetailVo.getUserId(), userOrderDetailVo.getBizId(),userOrderDetailVo.getOrderClient());
|
|
|
+ .checkPurchase(userOrderDetailVo.getUserId(), userOrderDetailVo.getBizId(), userOrderDetailVo.getOrderClient());
|
|
|
if (musicSheetPurchaseRecord == null) {
|
|
|
musicSheetPurchaseRecord = new MusicSheetPurchaseRecord();
|
|
|
}
|
|
@@ -622,11 +627,14 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
*/
|
|
|
private void addTeacherAccount(UserOrderDetailVo userOrderDetailVo, BigDecimal actualPrice, BigDecimal serviceFeeAmount,
|
|
|
Long musicSheetId) {
|
|
|
+ //获取账期时间
|
|
|
+ Date accountPeriodTime = userOrderService.getAccountPeriodTime(userOrderDetailVo);
|
|
|
+
|
|
|
BigDecimal transAmount = actualPrice.subtract(serviceFeeAmount).setScale(2, RoundingMode.HALF_UP);
|
|
|
//插入老师账户变更记录-老师预收
|
|
|
userAccountService.accountRecord(
|
|
|
new UserAccountRecordDto(userOrderDetailVo.getMerchId(), PostStatusEnum.WAIT, transAmount, InOrOutEnum.IN,
|
|
|
- AccountBizTypeEnum.MUSIC, musicSheetId, userOrderDetailVo.getGoodName(), userOrderDetailVo.getOrderNo(),userOrderDetailVo.getUserId()));
|
|
|
+ AccountBizTypeEnum.MUSIC, musicSheetId, userOrderDetailVo.getGoodName(), userOrderDetailVo.getOrderNo(), userOrderDetailVo.getUserId(), accountPeriodTime));
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -634,7 +642,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
public void orderAfterSheet(UserOrderDetailVo userOrderDetailVo) {
|
|
|
// 保存购买记录
|
|
|
MusicSheetPurchaseRecord musicSheetPurchaseRecord = musicSheetPurchaseRecordService
|
|
|
- .checkPurchase(userOrderDetailVo.getUserId(),userOrderDetailVo.getBizId(),userOrderDetailVo.getOrderClient());
|
|
|
+ .checkPurchase(userOrderDetailVo.getUserId(), userOrderDetailVo.getBizId(), userOrderDetailVo.getOrderClient());
|
|
|
if (musicSheetPurchaseRecord == null) {
|
|
|
musicSheetPurchaseRecord = new MusicSheetPurchaseRecord();
|
|
|
}
|
|
@@ -652,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(),userOrderDetailVo.getOrderClient());
|
|
|
+ .checkPurchase(userOrderDetailVo.getUserId(), userOrderDetailVo.getBizId(), userOrderDetailVo.getOrderClient());
|
|
|
|
|
|
if (musicSheetPurchaseRecord == null) return;
|
|
|
musicSheetPurchaseRecordService.removeById(musicSheetPurchaseRecord.getId());
|
|
@@ -852,15 +860,15 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
@Override
|
|
|
public ShareProfitVo shareMusicSheetProfit(SysUser sysUser, Long musicSheetId) {
|
|
|
ShareProfitVo result = new ShareProfitVo();
|
|
|
- MusicSheetDetailVo musicSheet = detail(musicSheetId,null,null);
|
|
|
+ MusicSheetDetailVo musicSheet = detail(musicSheetId, null, null);
|
|
|
|
|
|
result.setTeacherId(sysUser.getId());
|
|
|
result.setType("MUSIC");
|
|
|
result.setMusicSheet(musicSheet);
|
|
|
result.setAvatar(sysUser.getAvatar());
|
|
|
result.setName(sysUser.getUsername());
|
|
|
- String teacherMusicShareProfitUrl= sysConfigService.findConfigValue(SysConfigConstant.TEACHER_MUSIC_SHEET_SHARE_PROFIT_URL);
|
|
|
- result.setUrl(MessageFormatter.arrayFormat(teacherMusicShareProfitUrl,musicSheetId, sysUser.getId()));
|
|
|
+ String teacherMusicShareProfitUrl = sysConfigService.findConfigValue(SysConfigConstant.TEACHER_MUSIC_SHEET_SHARE_PROFIT_URL);
|
|
|
+ result.setUrl(MessageFormatter.arrayFormat(teacherMusicShareProfitUrl, musicSheetId, sysUser.getId()));
|
|
|
return result;
|
|
|
}
|
|
|
|