فهرست منبع

视频课推送

cy 3 سال پیش
والد
کامیت
6a5464550d

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/SysMessageDao.java

@@ -52,4 +52,6 @@ public interface SysMessageDao extends BaseDAO<Long, SysMessage> {
 	 * 修改单个消息状态
 	 */
 	public int updateOneStatus(@Param("id") Long id, @Param("status") int status);
+
+    String selectConfigUrl(String messageType);
 }

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/SysMessageService.java

@@ -126,4 +126,5 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	
 	public List<SysMessage> queryUserInRecentMinList(String mobile, int recentMin, MessageSendMode type);
 
+	String selectConfigUrl(String messageType);
 }

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java

@@ -936,6 +936,8 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         }
         courseScheduleTeacherSalaryService.getDao().insertBatch(teacherSalaryList);
         log.info("buyPracticeCourseSuccess ok");
+
+
     }
 
     /**

+ 5 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/SysMessageServiceImpl.java

@@ -409,4 +409,9 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	public List<SysMessage> queryUserInRecentMinList(String mobile, int recentMin, MessageSendMode type) {
 		return sysMessageDao.queryUserInRecentMinList(mobile, recentMin, type);
 	}
+
+	@Override
+	public String selectConfigUrl(String messageType) {
+		return sysMessageDao.selectConfigUrl(messageType);
+	}
 }

+ 32 - 9
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonPurchaseRecordServiceImpl.java

@@ -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);
     }
 
     /**

+ 3 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/SysMessageMapper.xml

@@ -202,4 +202,7 @@
 		from sys_message where receiver_ = #{mobile} and type_ = #{type} and <![CDATA[DATE_ADD(send_time_,
 		INTERVAL #{recentMin} MINUTE) >= now()]]>
 	</select>
+	<select id="selectConfigUrl" resultType="java.lang.String" parameterType="java.lang.String">
+		SELECT url_ FROM sys_message_config WHERE message_type_=#{messageType}
+	</select>
 </mapper>