|
@@ -11,8 +11,6 @@ import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
|
|
import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
|
|
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.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;
|
|
@@ -63,36 +61,48 @@ public class PianoRoomChangeRecordServiceImpl extends ServiceImpl<PianoRoomChang
|
|
//保存记录
|
|
//保存记录
|
|
save(pianoRoomChangeRecord);
|
|
save(pianoRoomChangeRecord);
|
|
//入琴房账户
|
|
//入琴房账户
|
|
|
|
+ setPianoRoomTime(pianoRoomChangeRecord.getUserId(), pianoRoomChangeRecord.getTimes(), pianoRoomChangeRecord.getInOrOut());
|
|
|
|
+ //琴房推送
|
|
|
|
+ sendMessage(pianoRoomChangeRecord);
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 增/减老师琴房课时长
|
|
|
|
+ *
|
|
|
|
+ * @param userId 老师id
|
|
|
|
+ * @param times 时长
|
|
|
|
+ * @param inOrOut 增/减
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public void setPianoRoomTime(Long userId, Integer times, InOrOutEnum inOrOut) {
|
|
DistributedLock.of(redissonClient)
|
|
DistributedLock.of(redissonClient)
|
|
- .runIfLockToFunction(CacheNameEnum.LOCK_CHANGE_PIANO_ROOM_ACCOUNT.getRedisKey(pianoRoomChangeRecord.getUserId())
|
|
|
|
- , (o) -> {
|
|
|
|
- PianoRoomTime pianoRoomTime = pianoRoomTimeService.getOne(Wrappers.<PianoRoomTime>lambdaQuery()
|
|
|
|
- .eq(PianoRoomTime::getTeacherId, pianoRoomChangeRecord.getUserId()));
|
|
|
|
|
|
+ .runIfLockToFunction(CacheNameEnum.LOCK_CHANGE_PIANO_ROOM_ACCOUNT.getRedisKey(userId)
|
|
|
|
+ , (o) -> {
|
|
|
|
+ PianoRoomTime pianoRoomTime = pianoRoomTimeService.getOne(Wrappers.<PianoRoomTime>lambdaQuery()
|
|
|
|
+ .eq(PianoRoomTime::getTeacherId, userId));
|
|
|
|
|
|
- if (null == pianoRoomTime) {
|
|
|
|
- pianoRoomTime = new PianoRoomTime();
|
|
|
|
- pianoRoomTime.setRemainTime(0);
|
|
|
|
- pianoRoomTime.setFrozenTime(0);
|
|
|
|
- pianoRoomTime.setTeacherId(pianoRoomChangeRecord.getUserId());
|
|
|
|
- pianoRoomTimeService.save(pianoRoomTime);
|
|
|
|
- }
|
|
|
|
|
|
+ if (null == pianoRoomTime) {
|
|
|
|
+ pianoRoomTime = new PianoRoomTime();
|
|
|
|
+ pianoRoomTime.setRemainTime(0);
|
|
|
|
+ pianoRoomTime.setFrozenTime(0);
|
|
|
|
+ pianoRoomTime.setTeacherId(userId);
|
|
|
|
+ pianoRoomTimeService.save(pianoRoomTime);
|
|
|
|
+ }
|
|
|
|
|
|
- if (InOrOutEnum.IN.equals(pianoRoomChangeRecord.getInOrOut())) {
|
|
|
|
- pianoRoomTime.setRemainTime(pianoRoomTime.getRemainTime() + pianoRoomChangeRecord.getTimes());
|
|
|
|
- } else {
|
|
|
|
- pianoRoomTime.setRemainTime(pianoRoomTime.getRemainTime() - pianoRoomChangeRecord.getTimes());
|
|
|
|
- }
|
|
|
|
|
|
+ if (InOrOutEnum.IN.equals(inOrOut)) {
|
|
|
|
+ pianoRoomTime.setRemainTime(pianoRoomTime.getRemainTime() + times);
|
|
|
|
+ } else {
|
|
|
|
+ pianoRoomTime.setRemainTime(pianoRoomTime.getRemainTime() - times);
|
|
|
|
+ }
|
|
|
|
|
|
- if (pianoRoomTime.getRemainTime() < 0) {
|
|
|
|
- throw new BizException("扣除时长超过老师可用时长");
|
|
|
|
- }
|
|
|
|
- pianoRoomTime.setUpdateTime(new Date());
|
|
|
|
- pianoRoomTimeService.updateById(pianoRoomTime);
|
|
|
|
- return null;
|
|
|
|
- }, null, 10l);
|
|
|
|
- //琴房推送
|
|
|
|
- sendMessage(pianoRoomChangeRecord);
|
|
|
|
- return true;
|
|
|
|
|
|
+ if (pianoRoomTime.getRemainTime() < 0) {
|
|
|
|
+ throw new BizException("扣除时长超过老师可用时长");
|
|
|
|
+ }
|
|
|
|
+ pianoRoomTime.setUpdateTime(new Date());
|
|
|
|
+ pianoRoomTimeService.updateById(pianoRoomTime);
|
|
|
|
+ return null;
|
|
|
|
+ }, null, 10l);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|