|
@@ -12,12 +12,14 @@ import com.ym.mec.biz.dal.page.VipClassQueryInfo;
|
|
|
import com.ym.mec.biz.dal.page.queryMusicGroupCourseScheduleQueryInfo;
|
|
|
import com.ym.mec.biz.service.*;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
+import com.ym.mec.common.entity.ImGroupMember;
|
|
|
import com.ym.mec.common.entity.ImGroupModel;
|
|
|
import com.ym.mec.common.entity.ImUserModel;
|
|
|
import com.ym.mec.common.exception.BizException;
|
|
|
import com.ym.mec.common.page.PageInfo;
|
|
|
import com.ym.mec.common.page.QueryInfo;
|
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
+import com.ym.mec.im.ImFeignService;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
@@ -76,6 +78,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
|
|
|
@Autowired
|
|
|
private StudentRegistrationService studentRegistrationService;
|
|
|
+ @Autowired
|
|
|
+ private ImFeignService imFeignService;
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public BaseDAO<Integer, ClassGroup> getDAO() {
|
|
@@ -119,9 +124,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public ClassGroup addClassGroup(ClassGroup classGroup) throws Exception {
|
|
|
String userIds = classGroup.getUserIds();
|
|
|
- if(userIds == null || userIds.isEmpty()) throw new Exception("班级学生不能为空");
|
|
|
+ if (userIds == null || userIds.isEmpty()) throw new Exception("班级学生不能为空");
|
|
|
|
|
|
- HashSet<String> userIdStrSet = new HashSet<>(Arrays.asList(userIds.split(",")));
|
|
|
+ Set<String> userIdStrSet = new HashSet<>(Arrays.asList(userIds.split(",")));
|
|
|
|
|
|
Date date = new Date();
|
|
|
classGroup.setCreateTime(date);
|
|
@@ -133,6 +138,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
insert(classGroup);
|
|
|
|
|
|
//2、插入班级学生关联关系
|
|
|
+ List<ImGroupMember> imGroupMemberList = new ArrayList<>();
|
|
|
List<ClassGroupStudentMapper> classGroupStudentList = new ArrayList<>();
|
|
|
for (String userId : userIdStrSet) {
|
|
|
ClassGroupStudentMapper classGroupStudentMapper = new ClassGroupStudentMapper();
|
|
@@ -148,9 +154,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
studentRegistration.setUserId(Integer.parseInt(userId));
|
|
|
studentRegistration.setMusicGroupId(classGroup.getMusicGroupId());
|
|
|
studentRegistrationDao.updateByUserIdAndMusicGroupId(studentRegistration);
|
|
|
+ imGroupMemberList.add(new ImGroupMember(userId));
|
|
|
}
|
|
|
|
|
|
classGroupStudentMapperDao.classGroupStudentsInsert(classGroupStudentList);
|
|
|
+ ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
|
|
|
+ // 创建群组
|
|
|
+ imFeignService.groupCreate(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
|
|
|
|
|
|
return classGroup;
|
|
|
}
|
|
@@ -164,9 +174,19 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
List<ClassGroup> classGroups = findClassGroupByIds(classGroupIds);
|
|
|
int studentNum = 0; //学生数
|
|
|
String subjectIds = "";
|
|
|
+ List<Integer> classGroupIdList = new ArrayList<>();
|
|
|
for (ClassGroup classGroup : classGroups) {
|
|
|
studentNum += classGroup.getStudentNum();
|
|
|
subjectIds += subjectIds.isEmpty() ? classGroup.getSubjectIdList() : "," + classGroup.getSubjectIdList();
|
|
|
+ classGroupIdList.add(classGroup.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ List<ImGroupMember> imGroupMemberList = new ArrayList<>();
|
|
|
+ List<ClassGroupStudentMapper> classGroupStudentMappers = classGroupStudentMapperDao.findByClassGroups(classGroupIdList);
|
|
|
+
|
|
|
+ for (ClassGroupStudentMapper classGroupStudentMapper : classGroupStudentMappers) {
|
|
|
+ if (classGroupStudentMapper.getStatus().equals(ClassGroupStudentStatusEnum.QUIT)) continue;
|
|
|
+ imGroupMemberList.add(new ImGroupMember(classGroupStudentMapper.getUserId().toString()));
|
|
|
}
|
|
|
|
|
|
//1、插入班级
|
|
@@ -191,6 +211,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
classGroupRelationList.add(classGroupRelation);
|
|
|
}
|
|
|
classGroupRelationService.classGroupRelationsInsert(classGroupRelationList);
|
|
|
+
|
|
|
+ ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
|
|
|
+ // 创建群组
|
|
|
+ imFeignService.groupCreate(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
|
|
|
return classGroup;
|
|
|
}
|
|
|
|
|
@@ -273,6 +297,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
}
|
|
|
courseScheduleDao.batchAddCourseSchedules(courseScheduleList);
|
|
|
+
|
|
|
+ ImGroupMember[] imGroupMembers = {new ImGroupMember(classGroupTeacherMapper.getUserId().toString())};
|
|
|
+ // 创建群组
|
|
|
+ imFeignService.groupCreate(new ImGroupModel(highClassGroup.getId().toString(), imGroupMembers, highClassGroup.getName()));
|
|
|
}
|
|
|
return highClassGroupList;
|
|
|
}
|
|
@@ -397,23 +425,23 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
PageInfo<CourseListDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
Map<String, Object> params = new HashMap<>();
|
|
|
MapUtil.populateMap(params, queryInfo);
|
|
|
- params.put("userId",userId);
|
|
|
+ params.put("userId", userId);
|
|
|
List<CourseListDto> courseListDtos = null;
|
|
|
//获取分页前的所有的乐团编号和vip编号
|
|
|
params.put("offset", pageInfo.getOffset());
|
|
|
List<String> musicGroupIds = courseScheduleDao.queryMusicGroupIds(params);
|
|
|
courseListDtos = new ArrayList<>();
|
|
|
//获取学员所购买的vip课列表详情
|
|
|
- List<CourseListDto> vipCourses = classGroupDao.queryStudentVipCourses(StringUtils.join(musicGroupIds,","));
|
|
|
+ List<CourseListDto> vipCourses = classGroupDao.queryStudentVipCourses(StringUtils.join(musicGroupIds, ","));
|
|
|
//获取vip课的学生列表
|
|
|
Set<String> vipIds = vipCourses.stream().map(CourseListDto::getMusicGroupId).collect(Collectors.toSet());
|
|
|
- Map<String,String> vipStuNames = MapUtil.convertMybatisMap(classGroupDao.findVipStuNames(StringUtils.join(vipIds,",")));
|
|
|
+ Map<String, String> vipStuNames = MapUtil.convertMybatisMap(classGroupDao.findVipStuNames(StringUtils.join(vipIds, ",")));
|
|
|
//获取学员的乐团列表详情
|
|
|
- courseListDtos.addAll(classGroupDao.queryStudentMusicGroupCourses(StringUtils.join(musicGroupIds,",")));
|
|
|
+ courseListDtos.addAll(classGroupDao.queryStudentMusicGroupCourses(StringUtils.join(musicGroupIds, ",")));
|
|
|
courseListDtos.addAll(vipCourses);
|
|
|
//获取所有教学点名称列表
|
|
|
Set<Integer> schoolIds = courseListDtos.stream().map(CourseListDto::getTeacherSchoolId).collect(Collectors.toSet());
|
|
|
- Map<Integer,String> schoolNames = MapUtil.convertMybatisMap(schoolDao.queryNameByIds(StringUtils.join(schoolIds,",")));
|
|
|
+ Map<Integer, String> schoolNames = MapUtil.convertMybatisMap(schoolDao.queryNameByIds(StringUtils.join(schoolIds, ",")));
|
|
|
|
|
|
courseListDtos.forEach(e -> {
|
|
|
e.setAddress(schoolNames.get(e.getTeacherSchoolId()));
|
|
@@ -448,7 +476,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
List<MusicGroup> musicGroups = musicGroupDao.queryListByIds(musicGroupIds);
|
|
|
|
|
|
//获取乐团群用户总数map
|
|
|
- List<Map<String, BigDecimal>> musicGroupUserNums = musicGroupDao.countMusicGroupUserNum(StringUtils.join(musicGroupIds,","));
|
|
|
+ List<Map<String, BigDecimal>> musicGroupUserNums = musicGroupDao.countMusicGroupUserNum(StringUtils.join(musicGroupIds, ","));
|
|
|
Map<String, BigDecimal> musicGroupUserNumMap = MapUtil.convertMybatisMap(musicGroupUserNums);
|
|
|
MusicGroup musicGroup;
|
|
|
Set<Integer> teachers;
|