Преглед изворни кода

Merge branch 'saas_2022_05_17_activity' of http://git.dayaedu.com/yonge/mec into master_saas

zouxuan пре 3 година
родитељ
комит
6de9d26f6d
20 измењених фајлова са 208 додато и 75 уклоњено
  1. 4 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java
  2. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveRoomReservationService.java
  3. 5 7
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java
  4. 47 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveRoomReservationServiceImpl.java
  5. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImSendGroupMessageServiceImpl.java
  6. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/LiveGoodsMapperServiceImpl.java
  7. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/LiveGoodsServiceImpl.java
  8. 6 6
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankSettingServiceImpl.java
  9. 4 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java
  10. 18 9
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TempLittleArtistTrainingCampServiceImpl.java
  11. 4 0
      mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java
  12. 5 0
      mec-client-api/src/main/java/com/ym/mec/task/fallback/TaskRemoteServiceFallback.java
  13. 0 5
      mec-student/src/main/java/com/ym/mec/student/controller/ActivityUserMapperController.java
  14. 32 0
      mec-student/src/main/java/com/ym/mec/student/controller/ImLiveRoomVideoController.java
  15. 2 2
      mec-student/src/main/java/com/ym/mec/student/controller/MemberRankController.java
  16. 31 25
      mec-student/src/main/java/com/ym/mec/student/controller/PracticeGroupController.java
  17. 19 0
      mec-task/src/main/java/com/ym/mec/task/jobs/CheckCampStateTask.java
  18. 5 5
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/ImSendGroupMessageController.java
  19. 5 5
      mec-web/src/main/java/com/ym/mec/web/controller/ImSendGroupMessageController.java
  20. 10 1
      mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

+ 4 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java

@@ -221,7 +221,10 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
 
     STUDENT_SMS_CLOUD_PAYMENT("STUDENT_SMS_CLOUD_PAYMENT",  "待缴费订单"),
     STUDENT_PUSH_CLOUD_PAYMENT("STUDENT_PUSH_CLOUD_PAYMENT",  "待缴费订单"),
-    IM_SHARE_LIVE_URL("IM_SHARE_LIVE_URL",  "直播链接分享")
+    IM_SHARE_LIVE_URL("IM_SHARE_LIVE_URL",  "直播链接分享"),
+
+    //直播推送
+    JIGUANG_LIVE_RESERVATION("IM_LIVE_RESERVATION","直播开播预约提醒-极光推送"),
     ;
 
     MessageTypeEnum(String code, String msg) {

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveRoomReservationService.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
 import com.ym.mec.biz.dal.entity.ImLiveRoomReservation;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
 import com.ym.mec.common.page.PageInfo;
@@ -32,5 +33,10 @@ public interface ImLiveRoomReservationService extends IService<ImLiveRoomReserva
      * <p> liveState 直播状态 0未开始 1开始 2结束
      */
     PageInfo<ImLiveBroadcastRoomVo> queryPageStudent(Map<String, Object> param);
+
+    /**
+     * 预约直播间推送极光
+     */
+    void push(ImLiveBroadcastRoom room);
 }
 

+ 5 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java

@@ -895,6 +895,9 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
         list.forEach(this::createLiveRoom);
     }
 
+    @Autowired
+    private ImLiveRoomReservationService imLiveRoomReservationService;
+
     /**
      * 去融云创建房间
      */
@@ -906,6 +909,8 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
             createSpeakerInfo(room, sysUser);
             //去融云创建房间
             imFeignService.createLiveRoom(room.getRoomUid(), room.getRoomTitle());
+            //推送预约直播间消息
+            imLiveRoomReservationService.push(room);
         } catch (Exception e) {
             log.error(">>>>>>>>>> createLiveRoom error roomUid:{} msg:{}", room.getRoomUid(), e.getMessage());
         }
@@ -995,13 +1000,6 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
      * 测试
      */
     public Map<String, Object> test(String roomUid) {
-        List<ImUserState> userStateList = new ArrayList<>();
-        ImUserState userState1 = new ImUserState();
-        userState1.setStatus("3");
-        userState1.setUserid("100071");
-        userStateList.add(userState1);
-        opsRoom(userStateList);
-
         //test
         Map<String, Object> result = new HashMap<>();
         //点赞数

+ 47 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveRoomReservationServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -8,6 +9,7 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.ImLiveRoomReservationDao;
 import com.ym.mec.biz.dal.dao.SysConfigDao;
+import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
 import com.ym.mec.biz.dal.entity.ImLiveRoomReservation;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
@@ -19,6 +21,7 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.PageUtil;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -27,6 +30,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * 直播预约记录(ImLiveRoomReservation)表服务实现类
@@ -37,7 +41,7 @@ import java.util.*;
 @Service("imLiveRoomReservationService")
 public class ImLiveRoomReservationServiceImpl extends ServiceImpl<ImLiveRoomReservationDao, ImLiveRoomReservation> implements ImLiveRoomReservationService {
 
-    private final static Logger logger = LoggerFactory.getLogger(ImLiveRoomReservationServiceImpl.class);
+    private final static Logger log = LoggerFactory.getLogger(ImLiveRoomReservationServiceImpl.class);
 
     @Autowired
     private SysUserFeignService sysUserFeignService;
@@ -57,7 +61,7 @@ public class ImLiveRoomReservationServiceImpl extends ServiceImpl<ImLiveRoomRese
         optional.filter(a -> Objects.nonNull(a.getUserId())).orElseThrow(() -> new BizException("学员id不能为空"));
         entity.setPushState(-1);
         entity.setCreateTime(new Date());
-        this.baseMapper.insert(entity);
+        this.saveOrUpdate(entity);
     }
 
     /**
@@ -87,10 +91,51 @@ public class ImLiveRoomReservationServiceImpl extends ServiceImpl<ImLiveRoomRese
         return PageUtil.pageInfo(page);
     }
 
+    /**
+     * 预约直播间推送极光
+     */
+    @Override
+    public void push(ImLiveBroadcastRoom room) {
+        List<ImLiveRoomReservation> list = this.list(Wrappers.<ImLiveRoomReservation>lambdaQuery()
+                .eq(ImLiveRoomReservation::getRoomUid, room.getRoomUid())
+                .eq(ImLiveRoomReservation::getPushState, -1));
+        if (CollectionUtils.isEmpty(list)) {
+            return;
+        }
+        SysUser user = getUser(room.getSpeakerId());
+        String baseUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
+        String memo = "10?" + baseUrl + "/#/live?roomUid=" + room.getRoomUid();
+        Map<Integer, String> pushStudentList = new HashMap<>();
+        for (ImLiveRoomReservation obj : list) {
+            pushStudentList.put(obj.getUserId(), obj.getUserId().toString());
+        }
+        //推送状态
+        AtomicInteger pushState = new AtomicInteger(0);
+        try {
+            // 约直播间通知发送
+            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.JIGUANG_LIVE_RESERVATION, pushStudentList,
+                    null, 0, memo, "STUDENT", user.getUsername(), room.getRoomTitle());
+        } catch (Exception e) {
+            log.error("推送消息失败", e);
+            pushState.set(1);
+        }
+        log.info("ImLiveRoomReservation push >>> state:{}  |>>>> memo:{} |>>>> studentList :{} |>>>> username:{}  |>>>>room:{}", pushState.get(), memo, pushStudentList, user.getUsername(), JSONObject.toJSONString(room));
+        //修改推送状态
+        this.update(Wrappers.<ImLiveRoomReservation>lambdaUpdate()
+                .set(ImLiveRoomReservation::getPushState, pushState.get())
+                .eq(ImLiveRoomReservation::getRoomUid, room.getRoomUid()));
+    }
+
     private SysUser getUser() {
         return Optional.ofNullable(sysUserFeignService.queryUserInfo())
                 .orElseThrow(() -> new BizException("用户信息获取失败,请刷新页面或者重新登录!"));
     }
 
+    private SysUser getUser(Integer userId) {
+        return Optional.ofNullable(userId)
+                .map(sysUserFeignService::queryUserById)
+                .orElseThrow(() -> new BizException("用户不存在"));
+    }
+
 }
 

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImSendGroupMessageServiceImpl.java

@@ -58,7 +58,7 @@ public class ImSendGroupMessageServiceImpl extends BaseServiceImpl<Long, ImSendG
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public void sendGroupMessage(ImSendGroupMessage messageDto) throws Exception {
-		SysUser user = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("用户不存在"));
+		SysUser user = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("用户不存在"));
 		messageDto.setSenderId(user.getId().toString());
 		messageDto.setOperator(user.getRealName());
 		if(Objects.isNull(messageDto.getSendTime())){
@@ -99,7 +99,7 @@ public class ImSendGroupMessageServiceImpl extends BaseServiceImpl<Long, ImSendG
 	@Transactional(rollbackFor = Exception.class)
 	public void deleteGroupList(Long imSendGroupMessageId, String groupIds) {
 		ImSendGroupMessage sendGroupMessage =
-				Optional.of(imSendGroupMessageDao.get(imSendGroupMessageId)).orElseThrow(() -> new BizException("消息不存在"));
+				Optional.ofNullable(imSendGroupMessageDao.get(imSendGroupMessageId)).orElseThrow(() -> new BizException("消息不存在"));
 		if(sendGroupMessage.getSendFlag()){
 			throw new BizException("消息已发送");
 		}
@@ -118,7 +118,7 @@ public class ImSendGroupMessageServiceImpl extends BaseServiceImpl<Long, ImSendG
 	@Transactional(rollbackFor = Exception.class)
 	public void addGroupList(Long imSendGroupMessageId, String groupIds) {
 		ImSendGroupMessage sendGroupMessage =
-				Optional.of(imSendGroupMessageDao.get(imSendGroupMessageId)).orElseThrow(() -> new BizException("消息不存在"));
+				Optional.ofNullable(imSendGroupMessageDao.get(imSendGroupMessageId)).orElseThrow(() -> new BizException("消息不存在"));
 		if(sendGroupMessage.getSendFlag()){
 			throw new BizException("消息已发送");
 		}

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/LiveGoodsMapperServiceImpl.java

@@ -134,7 +134,7 @@ public class LiveGoodsMapperServiceImpl extends BaseServiceImpl<Integer, LiveGoo
 		ImLiveBroadcastRoom imLiveBroadcastRoom = Optional
 				.of(imLiveBroadcastRoomService.getBaseMapper().selectOne(new QueryWrapper<ImLiveBroadcastRoom>().eq("room_uid_",liveId))).
 				orElseThrow(() -> new RuntimeException("直播间不存在"));
-		LiveGoodsMapper liveGoodsMapper = Optional.of(liveGoodsMapperDao.findByLiveIdAndGoodsId(liveId, liveGoodsId)).
+		LiveGoodsMapper liveGoodsMapper = Optional.ofNullable(liveGoodsMapperDao.findByLiveIdAndGoodsId(liveId, liveGoodsId)).
 				orElseThrow(() -> new RuntimeException("直播间不存在该商品"));
 		if(!liveGoodsMapper.getStatus()){
 			throw new BizException("该商品已下架");

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/LiveGoodsServiceImpl.java

@@ -41,7 +41,7 @@ public class LiveGoodsServiceImpl extends BaseServiceImpl<Integer, LiveGoods>  i
     @Override
 	@Transactional(rollbackFor = Exception.class)
     public void updateLiveGoods(LiveGoods liveGoods) {
-		Optional.of(liveGoodsDao.get(liveGoods.getId())).orElseThrow(() -> new RuntimeException("商品信息不存在"));
+		Optional.ofNullable(liveGoodsDao.get(liveGoods.getId())).orElseThrow(() -> new RuntimeException("商品信息不存在"));
 		//如果商品已在直播间上架,那么不允许变更商品信息
 		if (liveGoodsMapperService.findByLiveGoodsIdAndStatus(liveGoods.getId(),true).size() > 0) {
 			throw new BizException("商品已在直播间上架,不能修改");

+ 6 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankSettingServiceImpl.java

@@ -195,7 +195,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
     @Transactional(rollbackFor = Exception.class)
     public HttpResponseResult buy1(MemberPayParamDto memberPayParamDto) throws Exception {
         logger.info("团练宝购买:memberPayParamDto:{} ", memberPayParamDto);
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("用户信息不存在"));
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("用户信息不存在"));
         //判断用户是否已存在订单
         StudentPaymentOrder memberIngOrder = studentPaymentOrderService.getMemberIngOrder(OrderTypeEnum.MEMBER, DealStatusEnum.ING);
         if (Objects.nonNull(memberIngOrder)) {
@@ -234,7 +234,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
     @Override
     @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
     public HttpResponseResult activeBuy(MemberPayParamDto memberPayParamDto) throws Exception {
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(()-> new BizException("请登录"));
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(()-> new BizException("请登录"));
         Student student = studentService.getLocked(sysUser.getId());
         //判断用户是否已存在订单
         List<StudentPaymentOrder> memberIngOrders = studentPaymentOrderService.queryByCondition(GroupType.ACTIVITY,null,student.getUserId(), DealStatusEnum.ING,OrderTypeEnum.MEMBER);
@@ -259,7 +259,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
             }
             //是否还有购买资格
             activityId = Integer.parseInt(activityDtos.get(0).getActivityId());
-            VipGroupActivity vipGroupActivity = Optional.of(vipGroupActivityDao.get(activityId)).orElseThrow(()-> new BizException("活动不存在"));
+            VipGroupActivity vipGroupActivity = Optional.ofNullable(vipGroupActivityDao.get(activityId)).orElseThrow(()-> new BizException("活动不存在"));
             if(vipGroupActivity.getStudentMaxUsedTimes() != -1){
                 //获取活动购买次数
                 int activityBuyNum = activityUserMapperDao.countActivityBuyNum(vipGroupActivity.getId(),sysUser.getId());
@@ -311,7 +311,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 
     @Override
     public HttpResponseResult<Integer> checkActiveBuy(MemberPayParamDto memberPayParamDto) {
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(()-> new BizException("请登录"));
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(()-> new BizException("请登录"));
         //判断当前商品是否可以购买(库存、上架状态、是否购买过)
         //如果是云教练商品,那么只能购买一次、如果是免费直播课,那么每次上架只能买一次,总共只能买2次
         HttpResponseResult<Integer> succeed = BaseController.succeed(0);
@@ -325,7 +325,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
             }
             //是否还有购买资格
             Integer activityId = Integer.parseInt(activityDtos.get(0).getActivityId());
-            VipGroupActivity vipGroupActivity = Optional.of(vipGroupActivityDao.get(activityId)).orElseThrow(()-> new BizException("活动不存在"));
+            VipGroupActivity vipGroupActivity = Optional.ofNullable(vipGroupActivityDao.get(activityId)).orElseThrow(()-> new BizException("活动不存在"));
             if(vipGroupActivity.getStudentMaxUsedTimes() != -1){
                 //获取活动购买次数
                 int activityBuyNum = activityUserMapperDao.countActivityBuyNum(vipGroupActivity.getId(),sysUser.getId());
@@ -407,7 +407,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
         //转换格式
         BigDecimal valDecimal = new BigDecimal(val);
         //获取单价
-        BigDecimal price = Optional.of("qqhe_2022_buy_member_activity_amount")
+        BigDecimal price = Optional.ofNullable("qqhe_2022_buy_member_activity_amount")
                 .map(sysConfigDao::findConfigValue)
                 .filter(StringUtils::isNotBlank)
                 .map(BigDecimal::new)

+ 4 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -4894,7 +4894,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
     @Override
     @Transactional(rollbackFor = Exception.class)
     public HttpResponseResult studentCreateActivityPracticeGroup(PracticeGroupBuyDto practiceGroupBuyParams) {
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
         studentDao.getLocked(sysUser.getId());
         practiceGroupBuyParams.setStudentId(sysUser.getId());
         String activeConfig = sysConfigDao.findConfigValue("cloud_teacher_active_config");
@@ -5046,6 +5046,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         if (Objects.isNull(practiceGroupSellPrice)) {
             throw new BizException("该分部未设置网管课价格");
         }
+        ActivityUserMapper activityUserMapper = activityUserMappers.get(0);
         BigDecimal oneMonthPrice = practiceGroupSellPrice.getSingleClassMinutesPrice();
         practiceGroupBuyParams.setDrillTimesJson(drillTimesObject.toJSONString());
         practiceGroupBuyParams.setOrganId(sysUser.getOrganId());
@@ -5053,6 +5054,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         practiceGroupBuyParams.setGroupStatus(GroupStatusEnum.NORMAL);
         practiceGroupBuyParams.setType(PracticeGroupType.CHARGE);
         practiceGroupBuyParams.setMemo("小小训练营活动排课");
+        practiceGroupBuyParams.setActivityUserMapperId(activityUserMapper.getId());
+        practiceGroupBuyParams.setVipGroupActivityId(activityUserMapper.getActivityId());
         practiceGroupDao.insert(practiceGroupBuyParams);
 
         //创建班级信息
@@ -5131,7 +5134,6 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             throw new BizException("请设置教师课酬");
         }
 
-        ActivityUserMapper activityUserMapper = activityUserMappers.get(0);
         BigDecimal actualPrice = activityUserMapper.getActualPrice();
         BigDecimal divide = actualPrice.divide(new BigDecimal(practiceCourses.size()), ROUND_DOWN);
         BigDecimal firstAmount = actualPrice.subtract(divide.multiply(new BigDecimal(practiceCourses.size()))).add(divide);

+ 18 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TempLittleArtistTrainingCampServiceImpl.java

@@ -68,16 +68,25 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
     @Override
     public void add(TempLittleArtistTrainingCampDto dto) {
         SysUser user = getUser();
+        Date now = DateUtil.toDate(LocalDate.now().toString());
+        if (dto.getApplyEndDate().getTime() < now.getTime()) {
+            throw new BizException("报名结束时间不能小于今天");
+        }
+        if (dto.getApplyStartDate().getTime() > dto.getApplyEndDate().getTime()) {
+            throw new BizException("报名开始时间不能大于结束时间");
+        }
+        if (dto.getTrainStartDate().getTime() > dto.getTrainEndDate().getTime()) {
+            throw new BizException("训练开始时间不能大于训练结束时间");
+        }
+        //报名结束时间必需小于训练开始时间
+        if (dto.getTrainStartDate().getTime() < dto.getApplyEndDate().getTime()) {
+            throw new BizException("报名结束时间必需小于训练开始时间");
+        }
         TempLittleArtistTrainingCamp entity = new TempLittleArtistTrainingCamp();
         BeanUtils.copyProperties(dto, entity);
-        Date now = new Date();
-        //训练时间必需大于报名时间
-        if (dto.getApplyStartDate().getTime() > dto.getTrainStartDate().getTime()) {
-            throw new BizException("训练时间必需大于报名时间");
-        }
         entity.setState(TempLittleArtistTrainingCamp.NOT_START);
-        //当前时间大于等于报名开始时间  当前时间小于等于报名结束时间
-        if (now.getTime() >= dto.getApplyStartDate().getTime() && now.getTime() <= dto.getApplyEndDate().getTime()) {
+        //报名开始时间 小于等于 今天时间 则报名状态为报名中
+        if (dto.getApplyStartDate().getTime() <= now.getTime()) {
             entity.setState(TempLittleArtistTrainingCamp.APPLY);
         }
         entity.setCreateBy(user.getId());
@@ -282,7 +291,7 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
         if (CollectionUtils.isNotEmpty(campList)) {
             campList.sort(Comparator.comparing(TempLittleArtistTrainingCamp::getApplyStartDate));
         }
-        if(CollectionUtils.isNotEmpty(campList)){
+        if (CollectionUtils.isNotEmpty(campList)) {
             campList.forEach(a -> {
                 int count = tempLittleArtistTrainingCampUserRelationService.count(Wrappers.<TempLittleArtistTrainingCampUserRelation>lambdaQuery()
                         .eq(TempLittleArtistTrainingCampUserRelation::getActivityId, a.getId())
@@ -295,7 +304,7 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
     }
 
     /**
-     * 定时任务-修改训练营状态
+     * 定时任务-修改训练营状态-每天0点执行一次
      */
     @Override
     public void checkCampState() {

+ 4 - 0
mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java

@@ -260,4 +260,8 @@ public interface TaskRemoteService {
      */
     @GetMapping("task/studentSmallClassStatistics")
     void studentSmallClassStatistics();
+
+    @GetMapping("task/checkCampState")
+    void checkCampState();
+
 }

+ 5 - 0
mec-client-api/src/main/java/com/ym/mec/task/fallback/TaskRemoteServiceFallback.java

@@ -309,4 +309,9 @@ public class TaskRemoteServiceFallback implements TaskRemoteService {
     public void studentSmallClassStatistics() {
         logger.error("学员小课统计失败");
     }
+
+    @Override
+    public void checkCampState(){
+        logger.error("校验营地状态失败");
+    }
 }

+ 0 - 5
mec-student/src/main/java/com/ym/mec/student/controller/ActivityUserMapperController.java

@@ -1,11 +1,8 @@
 package com.ym.mec.student.controller;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.service.ActivityUserMapperService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
-import com.ym.mec.common.exception.BizException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -13,8 +10,6 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.Optional;
-
 @RequestMapping("activityUserMapper")
 @Api(tags = "活动排课服务")
 @RestController

+ 32 - 0
mec-student/src/main/java/com/ym/mec/student/controller/ImLiveRoomVideoController.java

@@ -0,0 +1,32 @@
+package com.ym.mec.student.controller;
+
+import com.ym.mec.biz.dal.entity.ImLiveRoomVideo;
+import com.ym.mec.biz.service.ImLiveRoomVideoService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Api(tags = "直播回放录像记录表")
+@RestController
+@RequestMapping("/imLiveRoomVideo")
+public class ImLiveRoomVideoController extends BaseController {
+
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ImLiveRoomVideoService imLiveRoomVideoService;
+
+    @ApiOperation("查询该机构目前推广的直播间")
+    @GetMapping(value = "/queryList")
+    public HttpResponseResult<List<ImLiveRoomVideo>> queryList(String roomUid) {
+        return succeed(imLiveRoomVideoService.queryList(roomUid));
+    }
+}

+ 2 - 2
mec-student/src/main/java/com/ym/mec/student/controller/MemberRankController.java

@@ -56,13 +56,13 @@ public class MemberRankController extends BaseController {
         return succeed(result);
     }
 
-    @ApiOperation(value = "购买会员")
+    @ApiOperation(value = "购买会员(用于后台创建的团练宝订单支付)")
     @PostMapping("/buy")
     public Object buy(@RequestBody MemberPayParamDto memberPayParamDto) throws Exception {
         return memberRankSettingService.buy(memberPayParamDto);
     }
 
-    @ApiOperation(value = "购买会员")
+    @ApiOperation(value = "购买会员(学生端自主购买团练宝会员)")
     @PostMapping("/buy1")
     public Object buy1(@RequestBody MemberPayParamDto memberPayParamDto) throws Exception {
         return memberRankSettingService.buy1(memberPayParamDto);

+ 31 - 25
mec-student/src/main/java/com/ym/mec/student/controller/PracticeGroupController.java

@@ -62,14 +62,14 @@ public class PracticeGroupController extends BaseController {
     @ApiOperation("获取学生的陪练课")
     @GetMapping(value = "/findUserPracticeCourses")
     public Object findUserPracticeCourses(){
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
         return succeed(practiceGroupService.findUserPracticeCourses(sysUser.getId()));
     }
 
     @ApiOperation("检测用户是否能够申请免费陪练课")
     @GetMapping(value = "/checkCanApplyFreePracticeGroup")
     private HttpResponseResult checkCanApplyFreePracticeGroup(){
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
         Map<String,Object> result=practiceGroupService.checkCanApplyFreePracticeGroup(sysUser.getId());
         Integer applyTimes = practiceGroupDao.countUserPracticeApplyRecord(sysUser.getId());
         result.put("canApply", applyTimes < 1 ? 1 : 0);
@@ -80,7 +80,7 @@ public class PracticeGroupController extends BaseController {
     @ApiOperation("获取陪练课预约参数")
     @GetMapping(value = "/getPracticeApplyParams")
     public Object getPracticeApplyParams(){
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
         if (sysUser.getTenantId() == null) {
             return failed( "用户机构信息异常");
         }
@@ -93,28 +93,28 @@ public class PracticeGroupController extends BaseController {
     @ApiOperation("获取可以预约的教师")
     @GetMapping(value = "/getEnableApplyTeachers")
     public Object getEnableApplyTeachers(Integer subjectId){
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
         return succeed(practiceGroupService.getEnableApplyTeachers(sysUser.getId(), subjectId));
     }
 
     @ApiOperation("获取可以预约的教师--付费")
     @GetMapping(value = "/getEnableApplyTeachersWithPay")
     public Object getEnableApplyTeachersWithPay(Integer subjectId){
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
         return succeed(practiceGroupService.getEnableApplyTeachersWithPay(sysUser.getId(), subjectId));
     }
 
     @ApiOperation("获取指定学员所在分部下的教师空闲时间")
     @GetMapping(value = "/getTeacherFreeTimes")
     public Object getTeacherFreeTimes(Integer teacherId, Date firstClassTime){
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
         return succeed(practiceGroupService.getTeacherFreeTimes(sysUser.getId(),teacherId,firstClassTime));
     }
 
     @ApiOperation("获取指定学员所在分部下的教师空闲时间")
     @GetMapping(value = "/getTeachersFreeTimes")
     public Object getTeachersFreeTimes(Integer subjectId, Date firstClassTime){
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
         return succeed(practiceGroupService.getTeachersFreeTimes(sysUser.getId(),subjectId,firstClassTime));
     }
 
@@ -122,7 +122,7 @@ public class PracticeGroupController extends BaseController {
     @PostMapping(value = "/practiceApply")
     @AuditLogAnnotation(operateName = "陪练课预约")
     public Object practiceApply(PracticeGroup practiceGroup){
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
         if(excludeOrganIds.contains(sysUser.getOrganId())){
             throw new BizException("请联系老师确认您的所属分部");
         }
@@ -137,7 +137,7 @@ public class PracticeGroupController extends BaseController {
     @ApiOperation("获取陪练课预约参数——付费")
     @GetMapping(value = "/getPayPracticeApplyParams")
     public Object getPayPracticeApplyParams(Integer organId){
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
         if(sysUser.getTenantId() == null){
             throw new BizException("请联系老师确认您的所属机构");
         }
@@ -147,7 +147,7 @@ public class PracticeGroupController extends BaseController {
     @ApiOperation("获取指定教师的空闲时间——付费")
     @GetMapping(value = "/getPayPracticeTeacherFreeTimes")
     public Object getPayPracticeTeacherFreeTimes(Integer teacherId,Integer buyMonths, boolean renew, Long groupId, PracticeGroupType type){
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
         Map payPracticeTeacherFreeTimes = practiceGroupService.getPayPracticeTeacherFreeTimes(sysUser.getId(),teacherId, buyMonths,renew,groupId);
         if(Objects.nonNull(type)&&PracticeGroupType.COME_ON_PACKAGE.equals(type)){
             Map<Integer, List<String>> weekNumApplyTimesMap = (Map<Integer, List<String>>) payPracticeTeacherFreeTimes.get("teacherFreeDays");
@@ -182,14 +182,14 @@ public class PracticeGroupController extends BaseController {
     @ApiOperation("获取学生上一次的购买信息--付费")
     @GetMapping(value = "/findUserLatestPracticeGroup")
     public HttpResponseResult findUserLatestPracticeGroup(Long groupId){
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
         return succeed(practiceGroupService.findUserLatestPracticeGroup(sysUser.getId(),groupId));
     }
 
     @ApiOperation("检测学生是否是新用户")
     @GetMapping(value = "/isNewStudent")
     public HttpResponseResult isNewStudent(){
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
         int studentExitChargePractices = practiceGroupDao.checkStudentExitChargePractice(sysUser.getId(),"2021-03-09 00:00:00");
         Student student = studentDao.get(sysUser.getId());
         if(student == null){
@@ -210,7 +210,7 @@ public class PracticeGroupController extends BaseController {
     @PostMapping(value = "/buyPracticeGroup")
     @AuditLogAnnotation(operateName = "陪练课购买")
     public HttpResponseResult buyPracticeGroup(@RequestBody PracticeGroupBuyDto practiceGroupBuyParams){
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
         if(excludeOrganIds.contains(sysUser.getOrganId())){
             throw new BizException("请联系老师确认您的所属分部");
         }
@@ -232,7 +232,7 @@ public class PracticeGroupController extends BaseController {
     @ApiOperation(value = "获取网管课购买信息")
     @PostMapping("/getPracticeGroupPayInfo")
     public Object getPracticeGroupPayInfo(Long vipGroupId){
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
         return succeed(practiceGroupService.getPracticeGroupPayInfo(vipGroupId,sysUser.getId()));
     }
 
@@ -243,7 +243,7 @@ public class PracticeGroupController extends BaseController {
 //        if(CollectionUtils.isNotEmpty(practiceGroupBuyParams.getCouponIdList())){
 //            throw new BizException("当前活动不支持优惠券");
 //        }
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
         practiceGroupBuyParams.setUserId(sysUser.getId());
         practiceGroupBuyParams.setOrganId(sysUser.getOrganId());
         return succeed(practiceGroupService.buyActivityPracticeGroup(practiceGroupBuyParams));
@@ -259,8 +259,9 @@ public class PracticeGroupController extends BaseController {
     @ApiOperation("获取用户历史购买的陪练课")
     @GetMapping(value = "/findUserHistoryBuyPracticeGroups")
     public HttpResponseResult findUserHistoryBuyPracticeGroups(Long groupId, PracticeGroupType type){
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
-        return succeed(practiceGroupService.findUserHistoryBuyPracticeGroups(sysUser.getId(), groupId, type));
+        Integer userId = Optional.ofNullable(sysUserFeignService.queryUserInfo())
+                        .map(SysUser::getId).orElseThrow(() -> new BizException("请登录"));
+        return succeed(practiceGroupService.findUserHistoryBuyPracticeGroups(userId, groupId, type));
     }
 
     @ApiOperation("查询订单信息")
@@ -273,14 +274,15 @@ public class PracticeGroupController extends BaseController {
     @PostMapping(value = "/repay")
     @AuditLogAnnotation(operateName = "重新支付")
     public HttpResponseResult repay(Integer groupId, boolean useBalancePayment) throws Exception {
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
         return practiceGroupService.repay(sysUser.getId(),groupId,useBalancePayment);
     }
 
     @ApiOperation("免费陪练课定点推送")
     @GetMapping(value = "/freePush")
     public HttpResponseResult freePush(Integer userId, String pushType){
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
+        Optional.ofNullable(sysUserFeignService.queryUserInfo())
+                .map(SysUser::getId).orElseThrow(() -> new BizException("请登录"));
         String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
 
         String pushUrl = baseApiUrl + "/#/auditionbanner/id";
@@ -309,7 +311,8 @@ public class PracticeGroupController extends BaseController {
     @ApiOperation("陪练课完成报告推送")
     @GetMapping(value = "/reportPush")
     public HttpResponseResult reportPush(Integer userId, String pushType){
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
+        Optional.ofNullable(sysUserFeignService.queryUserInfo())
+                .map(SysUser::getId).orElseThrow(() -> new BizException("请登录"));
         String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
         PracticeGroup userFreePracticeGroup = practiceGroupDao.getUserFreePracticeGroup(userId);
         ClassGroup classGroup = classGroupDao.findByMusicGroupAndType(userFreePracticeGroup.getId().toString(), GroupType.PRACTICE.getCode());
@@ -345,7 +348,8 @@ public class PracticeGroupController extends BaseController {
     @ApiOperation("陪练课完成报告推送")
     @GetMapping(value = "/pushStudyReport")
     public HttpResponseResult pushStudyReport(Date expiredDate, String pushType){
-        Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
+        Optional.ofNullable(sysUserFeignService.queryUserInfo())
+                .map(SysUser::getId).orElseThrow(() -> new BizException("请登录"));
         practiceGroupService.pushStudyReport(expiredDate,pushType);
         return succeed();
     }
@@ -353,15 +357,17 @@ public class PracticeGroupController extends BaseController {
     @ApiOperation("检测用户是否存在待支付的课程组订单")
     @GetMapping(value = "/checkExistWaitPayOrder")
     public HttpResponseResult checkExistWaitPayOrder(Long groupId){
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
-        return succeed(practiceGroupService.checkExistWaitPayOrder(sysUser.getId(),groupId));
+        Integer userId = Optional.ofNullable(sysUserFeignService.queryUserInfo())
+                .map(SysUser::getId).orElseThrow(() -> new BizException("请登录"));
+        return succeed(practiceGroupService.checkExistWaitPayOrder(userId,groupId));
     }
 
     @ApiOperation("取消待支付的订单")
     @PostMapping(value = "/cancelWaitPayOrder")
     @AuditLogAnnotation(operateName = "取消待支付的订单")
     public HttpResponseResult cancelWaitPayOrder(Integer groupId) throws Exception{
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("请登录"));
-        return practiceGroupService.cancelWaitPayOrder(sysUser.getId(), groupId);
+        Integer userId = Optional.ofNullable(sysUserFeignService.queryUserInfo())
+                .map(SysUser::getId).orElseThrow(() -> new BizException("请登录"));
+        return practiceGroupService.cancelWaitPayOrder(userId, groupId);
     }
 }

+ 19 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/CheckCampStateTask.java

@@ -0,0 +1,19 @@
+package com.ym.mec.task.jobs;
+
+import com.ym.mec.task.TaskRemoteService;
+import com.ym.mec.task.core.BaseTask;
+import com.ym.mec.task.core.TaskException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class CheckCampStateTask extends BaseTask {
+
+    @Autowired
+    private TaskRemoteService taskRemoteService;
+
+    @Override
+    public void execute() throws TaskException {
+        taskRemoteService.checkCampState();
+    }
+}

+ 5 - 5
mec-teacher/src/main/java/com/ym/mec/teacher/controller/ImSendGroupMessageController.java

@@ -37,7 +37,7 @@ public class ImSendGroupMessageController extends BaseController {
     @ApiOperation("获取群消息列表")
     @PostMapping(value = "/queryPage")
     public HttpResponseResult<PageInfo<ImSendGroupMessage>> queryPage(ImSendGroupMessageQueryInfo queryInfo) throws Exception {
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
                 orElseThrow(() -> new Exception("请登录"));
         queryInfo.setSenderId(sysUser.getId().toString());
         return succeed(imSendGroupMessageService.queryPage(queryInfo));
@@ -83,11 +83,11 @@ public class ImSendGroupMessageController extends BaseController {
     @ApiOperation("查询群列表(没有在消息列表的)")
     @PostMapping(value = "/queryGroupPage")
     public HttpResponseResult<PageInfo<ImGroup>> queryGroupPage(ImGroupQueryInfo imGroupQueryInfo) throws Exception {
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
                 orElseThrow(() -> new Exception("请登录"));
         imGroupQueryInfo.setUserId(sysUser.getId());
         if(imGroupQueryInfo.getImSendGroupMessageId() != null){
-            ImSendGroupMessage imSendGroupMessage = Optional.of(imSendGroupMessageService.get(imGroupQueryInfo.getImSendGroupMessageId())).
+            ImSendGroupMessage imSendGroupMessage = Optional.ofNullable(imSendGroupMessageService.get(imGroupQueryInfo.getImSendGroupMessageId())).
                     orElseThrow(()->new BizException("消息不存在"));
             imGroupQueryInfo.setIgnoreIds(imSendGroupMessage.getTargetIds());
         }
@@ -97,11 +97,11 @@ public class ImSendGroupMessageController extends BaseController {
     @ApiOperation("查询群列表(在消息列表的)")
     @PostMapping(value = "/queryGroupPage1")
     public HttpResponseResult<PageInfo<ImGroup>> queryGroupPage1(ImGroupQueryInfo imGroupQueryInfo) throws Exception {
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
                 orElseThrow(() -> new Exception("请登录"));
         imGroupQueryInfo.setUserId(sysUser.getId());
         if(imGroupQueryInfo.getImSendGroupMessageId() != null){
-            ImSendGroupMessage imSendGroupMessage = Optional.of(imSendGroupMessageService.get(imGroupQueryInfo.getImSendGroupMessageId())).
+            ImSendGroupMessage imSendGroupMessage = Optional.ofNullable(imSendGroupMessageService.get(imGroupQueryInfo.getImSendGroupMessageId())).
                     orElseThrow(()->new BizException("消息不存在"));
             imGroupQueryInfo.setTargetIds(imSendGroupMessage.getTargetIds());
         }

+ 5 - 5
mec-web/src/main/java/com/ym/mec/web/controller/ImSendGroupMessageController.java

@@ -37,7 +37,7 @@ public class ImSendGroupMessageController extends BaseController {
     @ApiOperation("获取群消息列表")
     @PostMapping(value = "/queryPage")
     public HttpResponseResult<PageInfo<ImSendGroupMessage>> queryPage(ImSendGroupMessageQueryInfo queryInfo) throws Exception {
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
                 orElseThrow(() -> new Exception("请登录"));
         queryInfo.setSenderId(sysUser.getId().toString());
         return succeed(imSendGroupMessageService.queryPage(queryInfo));
@@ -83,11 +83,11 @@ public class ImSendGroupMessageController extends BaseController {
     @ApiOperation("查询群列表(没有在消息列表的)")
     @PostMapping(value = "/queryGroupPage")
     public HttpResponseResult<PageInfo<ImGroup>> queryGroupPage(ImGroupQueryInfo imGroupQueryInfo) throws Exception {
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
                 orElseThrow(() -> new Exception("请登录"));
         imGroupQueryInfo.setUserId(sysUser.getId());
         if(imGroupQueryInfo.getImSendGroupMessageId() != null){
-            ImSendGroupMessage imSendGroupMessage = Optional.of(imSendGroupMessageService.get(imGroupQueryInfo.getImSendGroupMessageId())).
+            ImSendGroupMessage imSendGroupMessage = Optional.ofNullable(imSendGroupMessageService.get(imGroupQueryInfo.getImSendGroupMessageId())).
                     orElseThrow(()->new BizException("消息不存在"));
             imGroupQueryInfo.setIgnoreIds(imSendGroupMessage.getTargetIds());
         }
@@ -97,11 +97,11 @@ public class ImSendGroupMessageController extends BaseController {
     @ApiOperation("查询群列表(在消息列表的)")
     @PostMapping(value = "/queryGroupPage1")
     public HttpResponseResult<PageInfo<ImGroup>> queryGroupPage1(ImGroupQueryInfo imGroupQueryInfo) throws Exception {
-        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).
+        SysUser sysUser = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
                 orElseThrow(() -> new Exception("请登录"));
         imGroupQueryInfo.setUserId(sysUser.getId());
         if(imGroupQueryInfo.getImSendGroupMessageId() != null){
-            ImSendGroupMessage imSendGroupMessage = Optional.of(imSendGroupMessageService.get(imGroupQueryInfo.getImSendGroupMessageId())).
+            ImSendGroupMessage imSendGroupMessage = Optional.ofNullable(imSendGroupMessageService.get(imGroupQueryInfo.getImSendGroupMessageId())).
                     orElseThrow(()->new BizException("消息不存在"));
             imGroupQueryInfo.setTargetIds(imSendGroupMessage.getTargetIds());
         }

+ 10 - 1
mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -118,8 +118,10 @@ public class TaskController extends BaseController {
 	private StudentStatisticsService studentStatisticsService;
 	@Autowired
 	private ImSendGroupMessageService imSendGroupMessageService;
+    @Autowired
+    private TempLittleArtistTrainingCampService tempLittleArtistTrainingCampService;
 
-	@GetMapping(value = "/syncImHistoryMessageTask")
+    @GetMapping(value = "/syncImHistoryMessageTask")
 	// 同步即时通讯聊天记录
 	public void syncImHistoryMessageTask(String date) throws Exception {
 		if(date == null){
@@ -588,4 +590,11 @@ public class TaskController extends BaseController {
     public void studentSmallClassStatistics(){
 		studentStatisticsService.updateStudentStatistics();
     }
+
+    @ApiOperation("定时任务-修改训练营状态-每天0点执行")
+    @GetMapping(value = "/checkCampState")
+    public void  checkCampState(){
+        tempLittleArtistTrainingCampService.checkCampState();
+    }
+
 }