|
@@ -1,7 +1,6 @@
|
|
|
package com.yonge.cooleshow.biz.dal.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
|
|
@@ -23,6 +22,8 @@ import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
|
|
|
import com.yonge.cooleshow.common.constant.SysConfigConstant;
|
|
|
import com.yonge.cooleshow.common.entity.HttpResponseResult;
|
|
|
import com.yonge.cooleshow.common.exception.BizException;
|
|
|
+import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
|
|
|
+import com.yonge.toolset.utils.string.StringUtil;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
@@ -33,10 +34,7 @@ import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Optional;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -78,6 +76,9 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
private SysUserFeignService sysUserFeignService;
|
|
|
|
|
|
@Autowired
|
|
|
+ private SysMessageService sysMessageService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
private UserAccountService userAccountService;
|
|
|
|
|
|
public MusicSheetDao getDao() {
|
|
@@ -261,14 +262,27 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
throw new BizException("曲目已经过审批");
|
|
|
}
|
|
|
|
|
|
+ boolean flag = false;
|
|
|
if (musicSheetAuthRecordService.audit(param,userId)) {
|
|
|
musicSheet.setAuditStatus(param.getAuthStatus());
|
|
|
musicSheet.setUpdateBy(userId);
|
|
|
musicSheet.setUpdateTime(new Date());
|
|
|
- return this.updateById(musicSheet);
|
|
|
- } else {
|
|
|
- return false;
|
|
|
+ flag = this.updateById(musicSheet);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 发送审核通知
|
|
|
+ Map<Long,String> receivers = new HashMap<>();
|
|
|
+ SysUser teacher = sysUserFeignService.queryUserById(musicSheet.getUserId());
|
|
|
+ receivers.put(musicSheet.getUserId(), teacher.getPhone());
|
|
|
+ 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());
|
|
|
}
|
|
|
+
|
|
|
+ return flag;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -380,8 +394,50 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
BigDecimal serviceFeeAmount = actualPrice.multiply(serviceFee).setScale(2, RoundingMode.HALF_UP);
|
|
|
|
|
|
// 保存购买记录
|
|
|
+ addMusicSheetPurchaseRecord(userOrderDetailVo, actualPrice, serviceFeeAmount);
|
|
|
+
|
|
|
+ // 加入账户
|
|
|
+ addTeacherAccount(userOrderDetailVo, actualPrice, serviceFeeAmount, userOrderDetailVo.getBizId());
|
|
|
+
|
|
|
+ // 消息通知
|
|
|
+ sendBuyMessage(userOrderDetailVo.getMerchId(),userOrderDetailVo.getUserId(),userOrderDetailVo.getBizId());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 发送购买消息通知
|
|
|
+ *
|
|
|
+ * @param teacherId 老师id
|
|
|
+ * @param studentId 学生id
|
|
|
+ * @param musicSheetId 曲目id
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public boolean sendBuyMessage(Long teacherId, Long studentId, Long musicSheetId) {
|
|
|
+ SysUser teacher = sysUserFeignService.queryUserById(teacherId);
|
|
|
+ SysUser student = sysUserFeignService.queryUserById(studentId);
|
|
|
+ if (StringUtil.isEmpty(teacher.getPhone())) {
|
|
|
+ log.warn("teacher id {} name {} 手机号不存在,消息推送失败",teacher.getId(),teacher.getUsername());
|
|
|
+ }
|
|
|
+ Map<Long,String> receivers = new HashMap<>();
|
|
|
+ receivers.put(teacherId, teacher.getPhone());
|
|
|
+
|
|
|
+ MusicSheet musicSheet = this.getById(musicSheetId);
|
|
|
+
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
|
|
|
+ MessageTypeEnum.STUDENT_BUY_TEACHER_MUSIC_SHEET, receivers, null,
|
|
|
+ 0, null,ClientEnum.TEACHER.getCode(),student.getUsername(),musicSheet.getMusicSheetName());
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存购买记录
|
|
|
+ *
|
|
|
+ * @param userOrderDetailVo 订单信息
|
|
|
+ * @param actualPrice 付款价格
|
|
|
+ * @param serviceFeeAmount 服务费
|
|
|
+ */
|
|
|
+ private void addMusicSheetPurchaseRecord(UserOrderDetailVo userOrderDetailVo, BigDecimal actualPrice, BigDecimal serviceFeeAmount) {
|
|
|
MusicSheetPurchaseRecord musicSheetPurchaseRecord = musicSheetPurchaseRecordService
|
|
|
- .checkPurchase(userOrderDetailVo.getUserId(),userOrderDetailVo.getBizId());
|
|
|
+ .checkPurchase(userOrderDetailVo.getUserId(), userOrderDetailVo.getBizId());
|
|
|
if (musicSheetPurchaseRecord == null) {
|
|
|
musicSheetPurchaseRecord = new MusicSheetPurchaseRecord();
|
|
|
}
|
|
@@ -395,8 +451,18 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
musicSheetPurchaseRecord.setOrderStatus(OrderStatusEnum.PAID);
|
|
|
musicSheetPurchaseRecord.setStudentId(userOrderDetailVo.getUserId());
|
|
|
musicSheetPurchaseRecordService.save(musicSheetPurchaseRecord);
|
|
|
+ }
|
|
|
|
|
|
- // 加入账户
|
|
|
+ /**
|
|
|
+ * 添加金额到老师账户
|
|
|
+ *
|
|
|
+ * @param userOrderDetailVo 订单信息
|
|
|
+ * @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);
|
|
@@ -404,7 +470,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
userAccountRecordDto.setTransAmount(actualPrice.subtract(serviceFeeAmount).setScale(2, RoundingMode.HALF_UP));
|
|
|
userAccountRecordDto.setInOrOut(InOrOutEnum.IN);
|
|
|
userAccountRecordDto.setBizType(AccountBizTypeEnum.MUSIC);
|
|
|
- userAccountRecordDto.setBizId(musicSheetPurchaseRecord.getMusicSheetId());
|
|
|
+ userAccountRecordDto.setBizId(musicSheetId);
|
|
|
userAccountRecordDto.setBizName(userOrderDetailVo.getGoodName());
|
|
|
userAccountRecordDto.setOrderNo(userOrderDetailVo.getOrderNo());
|
|
|
userAccountService.accountChange(userAccountRecordDto);
|