Browse Source

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 years ago
parent
commit
fc4994b794

+ 36 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

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