|
@@ -1,20 +1,25 @@
|
|
package com.ym.mec.biz.service.impl;
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
import com.ym.mec.biz.dal.dto.CourseScheduleDto;
|
|
import com.ym.mec.biz.dal.dto.CourseScheduleDto;
|
|
|
|
+import com.ym.mec.biz.dal.dto.PracticeGroupDto;
|
|
import com.ym.mec.biz.dal.dto.TeacherBasicDto;
|
|
import com.ym.mec.biz.dal.dto.TeacherBasicDto;
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
import com.ym.mec.biz.dal.enums.*;
|
|
import com.ym.mec.biz.dal.enums.*;
|
|
|
|
+import com.ym.mec.biz.dal.page.PracticeGroupQueryInfo;
|
|
import com.ym.mec.biz.service.PracticeGroupService;
|
|
import com.ym.mec.biz.service.PracticeGroupService;
|
|
import com.ym.mec.biz.service.SysConfigService;
|
|
import com.ym.mec.biz.service.SysConfigService;
|
|
import com.ym.mec.biz.service.SysMessageService;
|
|
import com.ym.mec.biz.service.SysMessageService;
|
|
import com.ym.mec.biz.service.TeacherService;
|
|
import com.ym.mec.biz.service.TeacherService;
|
|
|
|
+import com.ym.mec.common.constant.CommonConstants;
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
import com.ym.mec.common.entity.ImGroupMember;
|
|
import com.ym.mec.common.entity.ImGroupMember;
|
|
import com.ym.mec.common.entity.ImGroupModel;
|
|
import com.ym.mec.common.entity.ImGroupModel;
|
|
import com.ym.mec.common.exception.BizException;
|
|
import com.ym.mec.common.exception.BizException;
|
|
|
|
+import com.ym.mec.common.page.PageInfo;
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
import com.ym.mec.im.ImFeignService;
|
|
import com.ym.mec.im.ImFeignService;
|
|
import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
|
|
import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
|
|
@@ -37,6 +42,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
@Autowired
|
|
@Autowired
|
|
private PracticeGroupDao practiceGroupDao;
|
|
private PracticeGroupDao practiceGroupDao;
|
|
@Autowired
|
|
@Autowired
|
|
|
|
+ private VipGroupDao vipGroupDao;
|
|
|
|
+ @Autowired
|
|
private SysConfigService sysConfigService;
|
|
private SysConfigService sysConfigService;
|
|
@Autowired
|
|
@Autowired
|
|
private SubjectDao subjectDao;
|
|
private SubjectDao subjectDao;
|
|
@@ -1099,4 +1106,51 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public PageInfo<PracticeGroupDto> findPracticeGroups(PracticeGroupQueryInfo queryInfo) {
|
|
|
|
+ PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
|
+ MapUtil.populateMap(params, queryInfo);
|
|
|
|
+
|
|
|
|
+ List<PracticeGroupDto> dataList = null;
|
|
|
|
+ int count = practiceGroupDao.countPracticeGroupByOrgan(params);
|
|
|
|
+ if (count > 0) {
|
|
|
|
+ pageInfo.setTotal(count);
|
|
|
|
+ params.put("offset", pageInfo.getOffset());
|
|
|
|
+ dataList = practiceGroupDao.findAllByOrgan(params);
|
|
|
|
+ if(dataList != null && dataList.size() > 0){
|
|
|
|
+ List<Integer> subjectIds = dataList.stream().map(practiceGroup -> practiceGroup.getSubjectId()).distinct().collect(Collectors.toList());
|
|
|
|
+ List<String> practiceGroupIds = dataList.stream().map(e -> String.valueOf(e.getId())).distinct().collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ List<ClassGroup> classGroupsByVipGroups = classGroupDao
|
|
|
|
+ .findByMusicGroupsAndType(practiceGroupIds.stream().map(groupId->String.valueOf(groupId)).collect(Collectors.toList()),
|
|
|
|
+ GroupType.PRACTICE.getCode());
|
|
|
|
+ Map<String, ClassGroup> vipGroupClassGroupMap = classGroupsByVipGroups.stream().collect(Collectors.toMap(ClassGroup::getMusicGroupId, classGroup -> classGroup));
|
|
|
|
+ //当前课时,总课时
|
|
|
|
+// List<Map<Long, Integer>> countGroupOverCourse = courseScheduleDao.countGroupOverCourse(practiceGroupIds,GroupType.PRACTICE.getCode());
|
|
|
|
+ Map<String,Long> totalClassTimeMap = MapUtil.convertIntegerMap(courseScheduleDao.countTotalCourseScheduleNum(practiceGroupIds,GroupType.PRACTICE.getCode()));
|
|
|
|
+ Map<String,Long> currentClassTimeMap = MapUtil.convertIntegerMap(courseScheduleDao.countCourseScheduleNum(practiceGroupIds,GroupType.PRACTICE.getCode()));
|
|
|
|
+ //声部名称列表
|
|
|
|
+ List<Map<Long, String>> subjectNames = subjectDao.findBySubjecIds(StringUtils.join(subjectIds, ","));
|
|
|
|
+ Map<Long, String> map = MapUtil.convertMybatisMap(subjectNames);
|
|
|
|
+ dataList.forEach(e -> {
|
|
|
|
+ e.setSubjectName(map.get(e.getSubjectId().intValue()));
|
|
|
|
+ ClassGroup classGroup = vipGroupClassGroupMap.get(e.getId().toString());
|
|
|
|
+ if(Objects.nonNull(classGroup)){
|
|
|
|
+ e.setStudentNum(classGroup.getStudentNum());
|
|
|
|
+ }
|
|
|
|
+ Long aLong = totalClassTimeMap.get(e.getId() + "");
|
|
|
|
+ e.setTotalClassTimes(aLong==null?0:aLong.intValue());
|
|
|
|
+ Long aLong1 = currentClassTimeMap.get(e.getId() + "");
|
|
|
|
+ e.setCurrentClassTimes(aLong1==null?0:aLong1.intValue());
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (count == 0) {
|
|
|
|
+ dataList = new ArrayList<>();
|
|
|
|
+ }
|
|
|
|
+ pageInfo.setRows(dataList);
|
|
|
|
+ return pageInfo;
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|