|
@@ -11,11 +11,9 @@ import com.yonge.cooleshow.biz.dal.dto.UserAccountRecordDto;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.*;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.VideoLessonPurchaseRecordDao;
|
|
|
-import com.yonge.cooleshow.biz.dal.enums.AccountBizTypeEnum;
|
|
|
-import com.yonge.cooleshow.biz.dal.enums.GoodTypeEnum;
|
|
|
-import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
|
|
|
-import com.yonge.cooleshow.biz.dal.enums.OrderStatusEnum;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.*;
|
|
|
import com.yonge.cooleshow.biz.dal.service.SysConfigService;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.SysMessageService;
|
|
|
import com.yonge.cooleshow.biz.dal.service.UserAccountService;
|
|
|
import com.yonge.cooleshow.biz.dal.service.VideoLessonPurchaseRecordService;
|
|
|
import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
|
|
@@ -23,6 +21,7 @@ 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.obj.ObjectUtil;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -59,6 +58,8 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
|
|
|
private SysConfigService sysConfigService;
|
|
|
@Autowired
|
|
|
private UserOrderDao userOrderDao;
|
|
|
+ @Autowired
|
|
|
+ private SysMessageService sysMessageService;
|
|
|
|
|
|
public VideoLessonPurchaseRecordDao getDao() {
|
|
|
return videoLessonPurchaseRecordDao;
|
|
@@ -89,10 +90,10 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
|
|
|
}
|
|
|
|
|
|
//校验课程是否购买
|
|
|
- VideoLessonPurchaseRecord isAlreadyBuy= videoLessonPurchaseRecordDao.selectOne(Wrappers.<VideoLessonPurchaseRecord>lambdaQuery()
|
|
|
+ VideoLessonPurchaseRecord isAlreadyBuy = videoLessonPurchaseRecordDao.selectOne(Wrappers.<VideoLessonPurchaseRecord>lambdaQuery()
|
|
|
.eq(VideoLessonPurchaseRecord::getStudentId, studentId)
|
|
|
.eq(VideoLessonPurchaseRecord::getVideoLessonGroupId, groupId));
|
|
|
- if (!ObjectUtil.isEmpty(isAlreadyBuy)){
|
|
|
+ if (!ObjectUtil.isEmpty(isAlreadyBuy)) {
|
|
|
throw new BizException("已购买过该课程");
|
|
|
}
|
|
|
|
|
@@ -141,7 +142,7 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
|
|
|
throw new BizException("订单不存在!");
|
|
|
}
|
|
|
//修改支付状态
|
|
|
- videoLessonPurchaseRecordDao.updateStatus(orderNo,userOrder.getStatus().getCode());
|
|
|
+ videoLessonPurchaseRecordDao.updateStatus(orderNo, userOrder.getStatus().getCode());
|
|
|
|
|
|
//查询直播课服务费
|
|
|
String videoServiceRateStr = sysConfigService.findConfigValue(SysConfigConstant.VIDEO_LESSON_SERVICE_FEE);
|
|
@@ -149,11 +150,12 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
|
|
|
|
|
|
//查询组信息
|
|
|
VideoLessonGroup lessonGroup = videoLessonGroupDao.selectById(purchaseRecord.getVideoLessonGroupId());
|
|
|
-
|
|
|
+ Long teacherId = lessonGroup.getTeacherId();
|
|
|
+ Long studentId = purchaseRecord.getStudentId();
|
|
|
//记录流水
|
|
|
BigDecimal payMoney = purchaseRecord.getPayMoney();//学生支付金额
|
|
|
UserAccountRecordDto userAccountRecord = new UserAccountRecordDto();
|
|
|
- userAccountRecord.setUserId(lessonGroup.getTeacherId());
|
|
|
+ userAccountRecord.setUserId(teacherId);
|
|
|
//扣除手续费后所得金额
|
|
|
userAccountRecord.setTransAmount(payMoney.subtract(payMoney.multiply(liveServiceRate)).setScale(2, RoundingMode.HALF_UP));
|
|
|
userAccountRecord.setInOrOut(InOrOutEnum.IN);
|
|
@@ -163,6 +165,27 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
|
|
|
userAccountRecord.setOrderNo(orderNo);
|
|
|
userAccountService.accountChange(userAccountRecord);
|
|
|
log.info("buyVideoCourseSuccess ok");
|
|
|
+
|
|
|
+ //查询老师&学生信息
|
|
|
+ SysUser teacher = sysUserFeignService.queryUserById(teacherId);
|
|
|
+ SysUser student = sysUserFeignService.queryUserById(studentId);
|
|
|
+
|
|
|
+ //消息接收者(Key:用户编号 value:消息接收对象)
|
|
|
+ Map<Long, String> teacherReceivers = new HashMap<>();
|
|
|
+ teacherReceivers.put(teacherId, teacher.getPhone());
|
|
|
+ Map<Long,String> studentReceivers = new HashMap<>();
|
|
|
+ studentReceivers.put(studentId, student.getPhone());
|
|
|
+
|
|
|
+ //消息推送-老师端
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_BUY_VIDEO,
|
|
|
+ teacherReceivers, null, 0, null, ClientEnum.TEACHER.getCode(),
|
|
|
+ student.getUsername(), lessonGroup.getLessonName());
|
|
|
+
|
|
|
+ //消息推送-学生端
|
|
|
+ String url = sysMessageService.selectConfigUrl(MessageTypeEnum.VIDEO_BUY.getCode());
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.VIDEO_BUY,
|
|
|
+ studentReceivers, null, 0, null, ClientEnum.STUDENT.getCode(),
|
|
|
+ teacher.getUsername(), lessonGroup.getLessonName(),url);
|
|
|
}
|
|
|
|
|
|
/**
|