|  | @@ -13,6 +13,7 @@ import com.yonge.cooleshow.biz.dal.dao.CourseGroupDao;
 | 
											
												
													
														|  |  import com.yonge.cooleshow.biz.dal.dto.CheckCourseTimeDto;
 |  |  import com.yonge.cooleshow.biz.dal.dto.CheckCourseTimeDto;
 | 
											
												
													
														|  |  import com.yonge.cooleshow.biz.dal.dto.LiveCourseGroupDto;
 |  |  import com.yonge.cooleshow.biz.dal.dto.LiveCourseGroupDto;
 | 
											
												
													
														|  |  import com.yonge.cooleshow.biz.dal.dto.LiveCourseGroupDto.CoursePlanDto;
 |  |  import com.yonge.cooleshow.biz.dal.dto.LiveCourseGroupDto.CoursePlanDto;
 | 
											
												
													
														|  | 
 |  | +import com.yonge.cooleshow.biz.dal.dto.LiveSaleOutDto;
 | 
											
												
													
														|  |  import com.yonge.cooleshow.biz.dal.dto.UserAccountRecordDto;
 |  |  import com.yonge.cooleshow.biz.dal.dto.UserAccountRecordDto;
 | 
											
												
													
														|  |  import com.yonge.cooleshow.biz.dal.dto.req.OrderRefundReq;
 |  |  import com.yonge.cooleshow.biz.dal.dto.req.OrderRefundReq;
 | 
											
												
													
														|  |  import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 |  |  import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 | 
											
										
											
												
													
														|  | @@ -1071,13 +1072,13 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
 | 
											
												
													
														|  |          List<CourseGroup> courseGroupList = this.list(Wrappers.<CourseGroup>lambdaQuery()
 |  |          List<CourseGroup> courseGroupList = this.list(Wrappers.<CourseGroup>lambdaQuery()
 | 
											
												
													
														|  |                  .eq(CourseGroup::getType, CourseScheduleEnum.LIVE.getCode())
 |  |                  .eq(CourseGroup::getType, CourseScheduleEnum.LIVE.getCode())
 | 
											
												
													
														|  |                  .eq(CourseGroup::getSalesEndDate, LocalDate.now().plusDays(-1))
 |  |                  .eq(CourseGroup::getSalesEndDate, LocalDate.now().plusDays(-1))
 | 
											
												
													
														|  | -                .eq(CourseGroup::getStatus, CourseGroupEnum.APPLY.getCode()));
 |  | 
 | 
											
												
													
														|  | 
 |  | +                .in(CourseGroup::getStatus, CourseGroupEnum.APPLY.getCode(),CourseGroupEnum.OUT_SALE.getCode()));
 | 
											
												
													
														|  |          if (CollectionUtils.isEmpty(courseGroupList)) {
 |  |          if (CollectionUtils.isEmpty(courseGroupList)) {
 | 
											
												
													
														|  |              return;
 |  |              return;
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |          courseGroupList.forEach(courseGroup -> {
 |  |          courseGroupList.forEach(courseGroup -> {
 | 
											
												
													
														|  |              try {
 |  |              try {
 | 
											
												
													
														|  | -                if (courseGroup.getPreStudentNum() >= courseGroup.getMixStudentNum()) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +                if (courseGroup.getPreStudentNum() >= courseGroup.getMixStudentNum() &&courseGroup.getStatus().equals(CourseGroupEnum.APPLY.getCode())) {
 | 
											
												
													
														|  |                      //人数达标则修改课程组为进行中状态
 |  |                      //人数达标则修改课程组为进行中状态
 | 
											
												
													
														|  |                      courseGroup.setStatus(CourseGroupEnum.ING.getCode());
 |  |                      courseGroup.setStatus(CourseGroupEnum.ING.getCode());
 | 
											
												
													
														|  |                      //创建群聊 并添加人员到群中
 |  |                      //创建群聊 并添加人员到群中
 | 
											
										
											
												
													
														|  | @@ -1135,6 +1136,10 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
 | 
											
												
													
														|  |       * @param courseGroup 课程组
 |  |       * @param courseGroup 课程组
 | 
											
												
													
														|  |       */
 |  |       */
 | 
											
												
													
														|  |      private void sendMessage(CourseGroup courseGroup) {
 |  |      private void sendMessage(CourseGroup courseGroup) {
 | 
											
												
													
														|  | 
 |  | +        // 直播课下架后,不推送直播课成课失败消息
 | 
											
												
													
														|  | 
 |  | +        if (courseGroup.getStatus().equals(CourseGroupEnum.OUT_SALE.getCode())) {
 | 
											
												
													
														|  | 
 |  | +            return;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  |          // 发短信
 |  |          // 发短信
 | 
											
												
													
														|  |          try {
 |  |          try {
 | 
											
												
													
														|  |              SysUser user = sysUserFeignService.queryUserById(courseGroup.getTeacherId());
 |  |              SysUser user = sysUserFeignService.queryUserById(courseGroup.getTeacherId());
 | 
											
										
											
												
													
														|  | @@ -1266,5 +1271,54 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
 | 
											
												
													
														|  |          result.setAvatar(sysUser.getAvatar());
 |  |          result.setAvatar(sysUser.getAvatar());
 | 
											
												
													
														|  |          return result;
 |  |          return result;
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    @Override
 | 
											
												
													
														|  | 
 |  | +    @Transactional
 | 
											
												
													
														|  | 
 |  | +    public Boolean liveSaleOut(LiveSaleOutDto dto) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        CourseGroup liveCourseGroupVo = this.getById(dto.getCourseGourpId());
 | 
											
												
													
														|  | 
 |  | +        if (liveCourseGroupVo == null || !CourseScheduleEnum.LIVE.getCode().equals(liveCourseGroupVo.getType())) {
 | 
											
												
													
														|  | 
 |  | +            throw new BizException("没找到课程组信息");
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        // 条件检查
 | 
											
												
													
														|  | 
 |  | +        if(dto.getStatus() == 0 && StringUtils.isEmpty(dto.getReason())) {
 | 
											
												
													
														|  | 
 |  | +            throw  new BizException("请填写下架原因");
 | 
											
												
													
														|  | 
 |  | +        } else if (dto.getStatus() == 0  && !CourseGroupEnum.APPLY.getCode().equals(liveCourseGroupVo.getStatus())) {
 | 
											
												
													
														|  | 
 |  | +            throw new BizException("只能下架销售中的课程组");
 | 
											
												
													
														|  | 
 |  | +        } else if (dto.getStatus() == 1  && !CourseGroupEnum.OUT_SALE.getCode().equals(liveCourseGroupVo.getStatus())) {
 | 
											
												
													
														|  | 
 |  | +            throw new BizException("只能上架被下架的课程组");
 | 
											
												
													
														|  | 
 |  | +        } else if ( new Date().compareTo(liveCourseGroupVo.getSalesEndDate()) > 0) {
 | 
											
												
													
														|  | 
 |  | +            throw new BizException("课程组售卖时间已结束,不能操作");
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        if (dto.getStatus() == 0) {
 | 
											
												
													
														|  | 
 |  | +            liveCourseGroupVo.setStatus(CourseGroupEnum.OUT_SALE.getCode());
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +            // 发送下架消息
 | 
											
												
													
														|  | 
 |  | +            sendOutSaleMessage(dto, liveCourseGroupVo);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        } else {
 | 
											
												
													
														|  | 
 |  | +            liveCourseGroupVo.setStatus(CourseGroupEnum.APPLY.getCode());
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        return this.updateById(liveCourseGroupVo);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    private void sendOutSaleMessage(LiveSaleOutDto dto, CourseGroup liveCourseGroupVo) {
 | 
											
												
													
														|  | 
 |  | +        // 发送课程下架通知
 | 
											
												
													
														|  | 
 |  | +        try {
 | 
											
												
													
														|  | 
 |  | +            SysUser user = sysUserFeignService.queryUserById(liveCourseGroupVo.getTeacherId());
 | 
											
												
													
														|  | 
 |  | +            Map<Long, String> receivers = new HashMap<>();
 | 
											
												
													
														|  | 
 |  | +            receivers.put(user.getId(), user.getPhone());
 | 
											
												
													
														|  | 
 |  | +            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.LIVE_COURSE_OUT_SALE_REASON,
 | 
											
												
													
														|  | 
 |  | +                                               receivers, null, 0, null, ClientEnum.TEACHER.getCode(),
 | 
											
												
													
														|  | 
 |  | +                                               liveCourseGroupVo.getName(), dto.getReason());
 | 
											
												
													
														|  | 
 |  | +        } catch (Exception e) {
 | 
											
												
													
														|  | 
 |  | +            log.warn("直播课下架推送发送失败,{}", e.getMessage());
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 |