Browse Source

琴房推送消息

liweifan 3 years ago
parent
commit
6e82de1760

+ 5 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MessageTypeEnum.java

@@ -96,6 +96,11 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     LIVE_COURSE_OUT_SALE_REASON("老师直播课下架通知"),
     VIDEO_COURSE_OUT_SALE_REASON("老师视频课下架通知"),
 
+    PIANO_ROOM_TIMES_ADD("后台增加琴房时长通知"),
+    PIANO_ROOM_TIMES_SUB("后台扣除琴房时长通知"),
+
+
+
     ;
 
     MessageTypeEnum(String msg) {

+ 39 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/PianoRoomChangeRecordServiceImpl.java

@@ -3,12 +3,20 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 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.entity.PianoRoomTime;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
+import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
 import com.yonge.cooleshow.biz.dal.service.PianoRoomTimeService;
+import com.yonge.cooleshow.biz.dal.service.SysMessageService;
+import com.yonge.cooleshow.biz.dal.vo.VideoLessonGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.VideoLessonShelvesVo;
 import com.yonge.cooleshow.common.enums.CacheNameEnum;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.payment.util.DistributedLock;
+import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import org.redisson.api.RedissonClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -21,7 +29,10 @@ import com.yonge.cooleshow.biz.dal.dao.PianoRoomChangeRecordDao;
 import com.yonge.cooleshow.biz.dal.service.PianoRoomChangeRecordService;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
 
 
 @Service
@@ -31,6 +42,10 @@ public class PianoRoomChangeRecordServiceImpl extends ServiceImpl<PianoRoomChang
     private RedissonClient redissonClient;
     @Autowired
     private PianoRoomTimeService pianoRoomTimeService;
+    @Resource
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private SysMessageService sysMessageService;
 
     @Override
     public PianoRoomChangeRecordVo detail(Long id) {
@@ -69,13 +84,36 @@ public class PianoRoomChangeRecordServiceImpl extends ServiceImpl<PianoRoomChang
                             }
 
                             if (pianoRoomTime.getRemainTime() < 0) {
-                                throw new BizException("时长余额不足");
+                                throw new BizException("扣除时长超过老师可用时长");
                             }
                             pianoRoomTime.setUpdateTime(new Date());
                             pianoRoomTimeService.updateById(pianoRoomTime);
                             return null;
                         }, null, 10l);
+        //琴房推送
+        sendMessage(pianoRoomChangeRecord);
         return true;
     }
 
+
+    private void sendMessage(PianoRoomChangeRecord record) {
+        // 发送课程下架通知
+        try {
+            SysUser user = sysUserFeignService.queryUserById(record.getUserId());
+            Map<Long, String> receivers = new HashMap<>();
+            receivers.put(user.getId(), user.getPhone());
+            if(InOrOutEnum.IN.equals(record.getInOrOut())){
+                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.PIANO_ROOM_TIMES_ADD,
+                        receivers, null, 0, null, ClientEnum.TEACHER.getCode(),
+                        record.getTimes(), record.getReason());
+            }else if(InOrOutEnum.OUT.equals(record.getInOrOut())){
+                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.PIANO_ROOM_TIMES_SUB,
+                        receivers, null, 0, null, ClientEnum.TEACHER.getCode(),
+                        record.getTimes(), record.getReason());
+            }
+        } catch (Exception e) {
+            log.warn("视频课下架推送发送失败,{}", e.getMessage());
+        }
+    }
+
 }