|
@@ -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;
|
|
|
+
|
|
|
+ }
|
|
|
}
|