|
@@ -3,12 +3,20 @@ package com.yonge.cooleshow.biz.dal.service.impl;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
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.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.InOrOutEnum;
|
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
|
|
import com.yonge.cooleshow.biz.dal.service.PianoRoomTimeService;
|
|
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.cooleshow.common.enums.CacheNameEnum;
|
|
import com.yonge.toolset.base.exception.BizException;
|
|
import com.yonge.toolset.base.exception.BizException;
|
|
import com.yonge.toolset.payment.util.DistributedLock;
|
|
import com.yonge.toolset.payment.util.DistributedLock;
|
|
|
|
+import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
|
|
import org.redisson.api.RedissonClient;
|
|
import org.redisson.api.RedissonClient;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
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 com.yonge.cooleshow.biz.dal.service.PianoRoomChangeRecordService;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
|
|
+import java.util.HashMap;
|
|
|
|
+import java.util.Map;
|
|
|
|
|
|
|
|
|
|
@Service
|
|
@Service
|
|
@@ -31,6 +42,10 @@ public class PianoRoomChangeRecordServiceImpl extends ServiceImpl<PianoRoomChang
|
|
private RedissonClient redissonClient;
|
|
private RedissonClient redissonClient;
|
|
@Autowired
|
|
@Autowired
|
|
private PianoRoomTimeService pianoRoomTimeService;
|
|
private PianoRoomTimeService pianoRoomTimeService;
|
|
|
|
+ @Resource
|
|
|
|
+ private SysUserFeignService sysUserFeignService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private SysMessageService sysMessageService;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public PianoRoomChangeRecordVo detail(Long id) {
|
|
public PianoRoomChangeRecordVo detail(Long id) {
|
|
@@ -69,13 +84,36 @@ public class PianoRoomChangeRecordServiceImpl extends ServiceImpl<PianoRoomChang
|
|
}
|
|
}
|
|
|
|
|
|
if (pianoRoomTime.getRemainTime() < 0) {
|
|
if (pianoRoomTime.getRemainTime() < 0) {
|
|
- throw new BizException("时长余额不足");
|
|
|
|
|
|
+ throw new BizException("扣除时长超过老师可用时长");
|
|
}
|
|
}
|
|
pianoRoomTime.setUpdateTime(new Date());
|
|
pianoRoomTime.setUpdateTime(new Date());
|
|
pianoRoomTimeService.updateById(pianoRoomTime);
|
|
pianoRoomTimeService.updateById(pianoRoomTime);
|
|
return null;
|
|
return null;
|
|
}, null, 10l);
|
|
}, null, 10l);
|
|
|
|
+ //琴房推送
|
|
|
|
+ sendMessage(pianoRoomChangeRecord);
|
|
return true;
|
|
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());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|