|
@@ -1,7 +1,6 @@
|
|
|
package com.yonge.cooleshow.biz.dal.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
|
|
@@ -10,11 +9,13 @@ import com.yonge.cooleshow.biz.dal.config.RongCloudConfig;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.CourseScheduleStudentPaymentDao;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.CourseScheduleTeacherSalaryDao;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.ImGroupDao;
|
|
|
-import com.yonge.cooleshow.biz.dal.dto.ImGroupDto;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.CourseGroup;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.ImGroup;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
|
|
|
import com.yonge.cooleshow.biz.dal.service.ImGroupMemberService;
|
|
|
import com.yonge.cooleshow.biz.dal.service.ImGroupService;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
|
|
|
import com.yonge.cooleshow.biz.dal.support.PageUtil;
|
|
|
import com.yonge.cooleshow.common.exception.BizException;
|
|
|
import com.yonge.cooleshow.common.page.PageInfo;
|
|
@@ -42,13 +43,15 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
|
|
|
private final static Logger log = LoggerFactory.getLogger(ImGroupServiceImpl.class);
|
|
|
|
|
|
@Resource
|
|
|
+ private CourseGroupService courseGroupService;
|
|
|
+ @Resource
|
|
|
+ private ImUserFriendService imUserFriendService;
|
|
|
+ @Resource
|
|
|
private ImGroupMemberService imGroupMemberService;
|
|
|
@Resource
|
|
|
private SysUserFeignService sysUserFeignService;
|
|
|
@Resource
|
|
|
private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
|
|
|
- @Resource
|
|
|
- private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
|
|
|
|
|
|
@Override
|
|
|
public ImGroupDao getDao() {
|
|
@@ -57,14 +60,7 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void create(ImGroupDto imGroup) throws Exception {
|
|
|
- Set<Long> groupMemberIdList = imGroup.getGroupMemberList();
|
|
|
- if(CollectionUtils.isNotEmpty(groupMemberIdList)){
|
|
|
- groupMemberIdList.removeAll(Collections.singleton(null));
|
|
|
- }
|
|
|
- if (CollectionUtils.isEmpty(groupMemberIdList)){
|
|
|
- throw new BizException("群成员不可为空");
|
|
|
- }
|
|
|
+ public void create(ImGroup imGroup) throws Exception {
|
|
|
//创建本地群聊
|
|
|
Date now = new Date();
|
|
|
imGroup.setType(ImGroup.ImGroupType.FAN);
|
|
@@ -73,30 +69,55 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
|
|
|
imGroup.setUpdateTime(now);
|
|
|
this.baseMapper.insert(imGroup);
|
|
|
Long imGroupId = imGroup.getId();
|
|
|
- //添加群成员
|
|
|
- imGroupMemberService.addGroupMember(imGroupId,imGroup.getCreateBy(),true,ImGroupMember.ImGroupMemberRoleType.TEACHER);
|
|
|
- //最后创建融云群
|
|
|
- this.rtcCreate(groupMemberIdList,imGroupId,imGroup.getName());
|
|
|
+ //处理本地群成员列表
|
|
|
+ List<GroupMember> groupMembers = imGroupMemberService.initGroupMember(imGroupId, imGroup.getCreateBy(), true, ImGroupMember.ImGroupMemberRoleType.TEACHER);
|
|
|
+ //创建融云群
|
|
|
+ this.rtcCreate(imGroup.getCreateBy(),imGroupId,imGroup.getName());
|
|
|
+ //加入融云群
|
|
|
+ imGroupMemberService.join(groupMembers,imGroupId);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void autoCreate(Long courseGroupId,String courseGroupType) throws Exception {
|
|
|
- //获取老师列表
|
|
|
- List<Integer> teacherIds = courseScheduleTeacherSalaryDao.queryTeacherIds(courseGroupId, courseGroupType);
|
|
|
+ //获取课程组
|
|
|
+ CourseGroup courseGroup = courseGroupService.getById(courseGroupId);
|
|
|
+ if(courseGroup.getTeacherId() == null){
|
|
|
+ return;
|
|
|
+ }
|
|
|
//获取学员列表
|
|
|
- List<Integer> studentIds = courseScheduleStudentPaymentDao.queryStudentIds(courseGroupId, courseGroupType);
|
|
|
+ Set<Long> studentIds = courseScheduleStudentPaymentDao.queryStudentIds(courseGroupId, courseGroupType);
|
|
|
+ studentIds.removeAll(Collections.singleton(null));
|
|
|
+ if(CollectionUtils.isEmpty(studentIds)){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Date now = new Date();
|
|
|
+ //创建群聊
|
|
|
+ ImGroup imGroup = new ImGroup();
|
|
|
+ imGroup.setCreateBy(courseGroup.getTeacherId());
|
|
|
+ imGroup.setAutoPassFlag(false);
|
|
|
+ imGroup.setMemberNum(studentIds.size() + 1);
|
|
|
+ imGroup.setName(courseGroup.getName());
|
|
|
+ imGroup.setType(ImGroup.ImGroupType.COURSE);
|
|
|
+ imGroup.setCreateTime(now);
|
|
|
+ imGroup.setUpdateTime(now);
|
|
|
+ this.baseMapper.insert(imGroup);
|
|
|
+ Long imGroupId = imGroup.getId();
|
|
|
+ //处理通讯录
|
|
|
|
|
|
+ //处理本地群成员列表
|
|
|
+ List<GroupMember> groupMembers = imGroupMemberService.initGroupMember(imGroupId, imGroup.getCreateBy(), true, ImGroupMember.ImGroupMemberRoleType.TEACHER);
|
|
|
+ groupMembers.addAll(imGroupMemberService.initGroupMembers(imGroupId,studentIds,ImGroupMember.ImGroupMemberRoleType.STUDENT));
|
|
|
+ //创建融云群
|
|
|
+ this.rtcCreate(courseGroup.getTeacherId(),imGroupId,imGroup.getName());
|
|
|
+ //加入融云群
|
|
|
+ imGroupMemberService.join(groupMembers,imGroupId);
|
|
|
}
|
|
|
|
|
|
//创建融云群
|
|
|
- private void rtcCreate(Set<Long> groupMemberIdList,Long imGroupId,String imGroupName) throws Exception {
|
|
|
- List<GroupMember> groupMemberList = new ArrayList<>();
|
|
|
- for (Long userId : groupMemberIdList) {
|
|
|
- groupMemberList.add(new GroupMember(userId.toString(),imGroupId.toString(),null));
|
|
|
- }
|
|
|
+ private void rtcCreate(Long userId,Long imGroupId,String imGroupName) throws Exception {
|
|
|
//创建融云群
|
|
|
- GroupMember[] groupMembers = groupMemberList.toArray(new GroupMember[groupMemberList.size()]);
|
|
|
+ GroupMember[] groupMembers = new GroupMember[]{new GroupMember(userId.toString(),imGroupId.toString(),null)};
|
|
|
GroupModel groupModel = new GroupModel(imGroupId.toString(),0);
|
|
|
groupModel.setMembers(groupMembers);
|
|
|
groupModel.setName(imGroupName);
|