|  | @@ -1599,11 +1599,15 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public PageInfo<VipGroup> findVipGroups(VipGroupQueryInfo queryInfo) {
 | 
	
		
			
				|  |  | +        if (queryInfo.getGroupType().equals(GroupType.LIVE.getCode())) {
 | 
	
		
			
				|  |  | +            queryInfo.setOrganId(null);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 | 
	
		
			
				|  |  |          Map<String, Object> params = new HashMap<>();
 | 
	
		
			
				|  |  |          MapUtil.populateMap(params, queryInfo);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          List<VipGroup> dataList = null;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          int count = vipGroupDao.countVipGroupByOrgan(params);
 | 
	
		
			
				|  |  |          if (queryInfo.isExport() && count > 50000) {
 | 
	
		
			
				|  |  |              throw new BizException("数据集太大,不能导出.最大数据集不能超过50000");
 | 
	
	
		
			
				|  | @@ -1618,9 +1622,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |                  Map<String, Integer> vipGroupOverCourseMaps = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(vipGroupOverCourses)), HashMap.class);
 | 
	
		
			
				|  |  |                  List<Integer> educationalTeacherIds = dataList.stream().filter(data -> Objects.nonNull(data.getEducationalTeacherId())).map(VipGroup::getEducationalTeacherId).collect(Collectors.toList());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +                // 报名人数
 | 
	
		
			
				|  |  |                  List<ClassGroup> classGroupsByVipGroups = classGroupDao
 | 
	
		
			
				|  |  |                          .findByMusicGroupsAndType(vipGroupIds.stream().map(vipGroupId -> String.valueOf(vipGroupId)).collect(Collectors.toList()),
 | 
	
		
			
				|  |  | -                                GroupType.VIP.getCode());
 | 
	
		
			
				|  |  | +                                StringUtils.isBlank(queryInfo.getGroupType())? GroupType.VIP.getCode():queryInfo.getGroupType());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  Map<String, ClassGroup> vipGroupClassGroupMap = classGroupsByVipGroups.stream().collect(Collectors.toMap(ClassGroup::getMusicGroupId, classGroup -> classGroup));
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1635,6 +1640,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  List<Integer> organIds = dataList.stream().map(VipGroup::getOrganId).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +                // 直播课 分部为 organIdList
 | 
	
		
			
				|  |  | +                organIds.addAll(dataList.stream().filter(o -> StringUtils.isNotBlank(o.getOrganIdList()))
 | 
	
		
			
				|  |  | +                        .flatMap( o -> Arrays.stream(o.getOrganIdList().split(",")))
 | 
	
		
			
				|  |  | +                        .map(Integer::parseInt)
 | 
	
		
			
				|  |  | +                        .collect(Collectors.toSet()));
 | 
	
		
			
				|  |  |                  List<Organization> organs = organizationDao.findOrgans(organIds);
 | 
	
		
			
				|  |  |                  Map<Integer, String> organNameMap = new HashMap<>();
 | 
	
		
			
				|  |  |                  if (!CollectionUtils.isEmpty(organs)) {
 | 
	
	
		
			
				|  | @@ -1666,6 +1676,23 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |                      vipGroup.setCurrentClassTimes(aLong1 == null ? 0 : aLong1.intValue());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                      vipGroup.setOrganName(organNameMap.get(vipGroup.getOrganId()));
 | 
	
		
			
				|  |  | +                    // 直播课 分部为 organIdList
 | 
	
		
			
				|  |  | +                    if (vipGroup.getGroupType().equals(GroupType.LIVE.getCode())) {
 | 
	
		
			
				|  |  | +                        String organIdList = vipGroup.getOrganIdList();
 | 
	
		
			
				|  |  | +                        if (StringUtils.isNotBlank(organIdList)) {
 | 
	
		
			
				|  |  | +                            List<String> organNames = new ArrayList<>();
 | 
	
		
			
				|  |  | +                            for (String s : organIdList.split(",")) {
 | 
	
		
			
				|  |  | +                                String s1 = organNameMap.get(Integer.parseInt(s));
 | 
	
		
			
				|  |  | +                                if (StringUtils.isNotBlank(s1) && !organNames.contains(s1)) {
 | 
	
		
			
				|  |  | +                                    organNames.add(s1);
 | 
	
		
			
				|  |  | +                                }
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            vipGroup.setOrganName(String.join(",", organNames));
 | 
	
		
			
				|  |  | +                        } else {
 | 
	
		
			
				|  |  | +                            vipGroup.setOrganName("");
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                      if ((Objects.isNull(aLong1) || aLong1 <= 0)
 | 
	
		
			
				|  |  |                              && (Objects.isNull(classGroup) || Optional.ofNullable(classGroup.getStudentNum()).orElse(0) <= 0)) {
 | 
	
	
		
			
				|  | @@ -4253,7 +4280,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |      public void updateVipGroupStatusToFinished() {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          Date now = new Date();
 | 
	
		
			
				|  |  | -    	//更新至已结束
 | 
	
		
			
				|  |  | +        //更新至已结束
 | 
	
		
			
				|  |  |          List<VipGroup> vipGroupList = vipGroupDao.queryRequiredOverList();
 | 
	
		
			
				|  |  |          if (vipGroupList != null && vipGroupList.size() > 0) {
 | 
	
		
			
				|  |  |              for (VipGroup vipGroup : vipGroupList) {
 | 
	
	
		
			
				|  | @@ -4277,9 +4304,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |          //关闭没有学生的课程组
 | 
	
		
			
				|  |  |          List<VipGroupClassGroupMapper> vipGroupClassGroupMapperList = classGroupStudentMapperDao.queryWaitCancelVipGroup();
 | 
	
		
			
				|  |  |          if(vipGroupClassGroupMapperList != null && vipGroupClassGroupMapperList.size() > 0){
 | 
	
		
			
				|  |  | -        	vipGroupList = vipGroupDao.queryByIds(vipGroupClassGroupMapperList.stream().map(t -> t.getId().toString()).collect(Collectors.joining(",")));
 | 
	
		
			
				|  |  | -        	for(VipGroup vipGroup : vipGroupList){
 | 
	
		
			
				|  |  | -        		vipGroup.setStatus(VipGroupStatusEnum.CANCEL);
 | 
	
		
			
				|  |  | +            vipGroupList = vipGroupDao.queryByIds(vipGroupClassGroupMapperList.stream().map(t -> t.getId().toString()).collect(Collectors.joining(",")));
 | 
	
		
			
				|  |  | +            for(VipGroup vipGroup : vipGroupList){
 | 
	
		
			
				|  |  | +                vipGroup.setStatus(VipGroupStatusEnum.CANCEL);
 | 
	
		
			
				|  |  |                  vipGroup.setUpdateTime(now);
 | 
	
		
			
				|  |  |                  vipGroup.setStopReason("没有学员");
 | 
	
		
			
				|  |  |                  
 | 
	
	
		
			
				|  | @@ -4289,11 +4316,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  //删除考勤
 | 
	
		
			
				|  |  |                  teacherAttendanceDao.deleteByMusicGroupId(vipGroup.getId() + "", GroupType.VIP);
 | 
	
		
			
				|  |  | -        	}
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |              vipGroupDao.batchUpdate(vipGroupList);
 | 
	
		
			
				|  |  |              
 | 
	
		
			
				|  |  |              for(VipGroupClassGroupMapper vgcgm : vipGroupClassGroupMapperList){
 | 
	
		
			
				|  |  | -            	imGroupService.cancel(vgcgm.getClassGroupId().toString());
 | 
	
		
			
				|  |  | +                imGroupService.cancel(vgcgm.getClassGroupId().toString());
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          
 | 
	
	
		
			
				|  | @@ -4397,4 +4424,34 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |          List<StudentVipGroupShowListDto> collect = vipGroups.stream().sorted(Comparator.comparing(StudentVipGroupShowListDto::getCreateTime).reversed()).collect(Collectors.toList());
 | 
	
		
			
				|  |  |          return collect;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 直播课程组信息
 | 
	
		
			
				|  |  | +     *
 | 
	
		
			
				|  |  | +     * @param id 直播课程组id
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    public VipGroupApplyDto liveGroupDetail(Long id) {
 | 
	
		
			
				|  |  | +        VipGroup vipGroup = this.get(id);
 | 
	
		
			
				|  |  | +        if (Objects.isNull(vipGroup)) {
 | 
	
		
			
				|  |  | +            throw new BizException("未找到此课程");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (!vipGroup.getGroupType().equals(GroupType.LIVE.getCode())) {
 | 
	
		
			
				|  |  | +            throw new BizException("此课程不是直播课程");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        VipGroupApplyDto vipGroupApplyDto = new VipGroupApplyDto();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        VipGroupApplyBaseInfoDto baseInfoDto = JSON.parseObject(JSON.toJSONString(vipGroup), VipGroupApplyBaseInfoDto.class);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        //  分部名  声部  乐团主管
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        String organIdList = baseInfoDto.getOrganIdList();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        baseInfoDto.setOrganName(organizationDao.findByOrganIds(organIdList).stream().collect(Collectors.joining(",")));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // todo
 | 
	
		
			
				|  |  | +        return vipGroupApplyDto;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  }
 |