|
|
@@ -10,6 +10,7 @@ import com.ym.mec.auth.api.entity.SysUser;
|
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
|
import com.ym.mec.biz.dal.dto.ImGroupMemberDto;
|
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
|
+import com.ym.mec.biz.dal.enums.EFriendRoleType;
|
|
|
import com.ym.mec.biz.dal.enums.GroupType;
|
|
|
import com.ym.mec.biz.dal.page.GroupMemberQueryInfo;
|
|
|
import com.ym.mec.biz.dal.wrapper.ImGroupMemberWrapper;
|
|
|
@@ -152,13 +153,18 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
|
|
|
imGroupMember.setCreateTime(date);
|
|
|
imGroupMember.setImGroupId(imGroupId);
|
|
|
imGroupMember.setIsAdmin(isAdmin);
|
|
|
+ SysUser user = teacherDao.getUser(userId);
|
|
|
imGroupMember.setRoleType(roleType);
|
|
|
+ if(StringUtils.isNotEmpty(roleType)){
|
|
|
+ imGroupMember.setType(EFriendRoleType.getByName(roleType).name());
|
|
|
+ imGroupMember.setNickname(user.getRealName());
|
|
|
+ }else {
|
|
|
+ imGroupMember.setNickname(user.getUsername());
|
|
|
+ }
|
|
|
imGroupMember.setUpdateTime(date);
|
|
|
imGroupMember.setUserId(userId);
|
|
|
//初始化群主数据
|
|
|
this.initImGroupMember(imGroupMember,imGroup.getGroupType());
|
|
|
- SysUser user = teacherDao.getUser(userId);
|
|
|
- imGroupMember.setNickname(sysUserService.getImName(user));
|
|
|
|
|
|
imGroupMemberDao.insert(imGroupMember);
|
|
|
|
|
|
@@ -197,6 +203,7 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
public void initImGroupMember(ImGroupMember imGroupMember, ImGroup.GroupTypeEnum groupType){
|
|
|
try {
|
|
|
List<GroupMemberWrapper.Member> members = imPluginContext.getPluginService().groupUserGagList(imGroupMember.getImGroupId());
|
|
|
@@ -253,6 +260,7 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
public void initImGroupMembers(List<ImGroupMember> imGroupMembers, ImGroup.GroupTypeEnum groupType){
|
|
|
if (CollectionUtils.isEmpty(imGroupMembers)) {
|
|
|
return;
|
|
|
@@ -333,8 +341,8 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
|
|
|
return true;
|
|
|
}
|
|
|
//检查用户是否已存在
|
|
|
- List<ImGroupMember> imGroupMemberList = imGroupMemberDao.queryByImGroupIdAndUserId(imGroupId.toString(), user.getId().toString());
|
|
|
- if(imGroupMemberList != null && imGroupMemberList.size() > 0){
|
|
|
+ List<ImGroupMember> imGroupMemberList = imGroupMemberDao.queryByImGroupIdAndUserId(imGroupId, user.getId().toString());
|
|
|
+ if(CollectionUtils.isNotEmpty(imGroupMemberList)){
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
@@ -345,17 +353,22 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
|
|
|
imGroupMember.setImGroupId(imGroupId);
|
|
|
imGroupMember.setIsAdmin(isAdmin);
|
|
|
imGroupMember.setRoleType(roleType);
|
|
|
+ if(StringUtils.isNotEmpty(roleType)){
|
|
|
+ imGroupMember.setType(EFriendRoleType.getByName(roleType).name());
|
|
|
+ imGroupMember.setNickname(user.getRealName());
|
|
|
+ }else {
|
|
|
+ imGroupMember.setNickname(user.getUsername());
|
|
|
+ }
|
|
|
imGroupMember.setUpdateTime(date);
|
|
|
imGroupMember.setUserId(user.getId());
|
|
|
this.initImGroupMember(imGroupMember,imGroup.getGroupType());
|
|
|
- imGroupMember.setNickname(sysUserService.getImName(user));
|
|
|
imGroupMemberDao.insert(imGroupMember);
|
|
|
|
|
|
imGroup.setMemberNum(1);
|
|
|
imGroup.setUpdateTime(date);
|
|
|
imGroupDao.update(imGroup);
|
|
|
|
|
|
- String groupId = imGroup.getId().toString();
|
|
|
+ String groupId = imGroup.getId();
|
|
|
|
|
|
if (RongCloudImPlugin.PLUGIN_NAME.equals(imPluginContext.defaultService())) {
|
|
|
// 融云IM用户加群
|
|
|
@@ -443,13 +456,13 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
|
|
|
}
|
|
|
|
|
|
|
|
|
- if (imGroupMemberList.size() > 0) {
|
|
|
+ if (CollectionUtils.isNotEmpty(imGroupMemberList)) {
|
|
|
Map<Integer, String> usernameMap = new HashMap<>();
|
|
|
Map<Integer, String> realNameMap = new HashMap<>();
|
|
|
- if(usernameIds.size() > 0){
|
|
|
+ if(CollectionUtils.isNotEmpty(usernameIds)){
|
|
|
usernameMap = MapUtil.convertIntegerMap(teacherDao.queryUserNameByIdList(usernameIds));
|
|
|
}
|
|
|
- if(realNameIds.size() > 0){
|
|
|
+ if(CollectionUtils.isNotEmpty(realNameIds)){
|
|
|
realNameMap = MapUtil.convertIntegerMap(teacherDao.queryNameByIdList(realNameIds));
|
|
|
}
|
|
|
for (ImGroupMember imGroupMember : imGroupMemberList) {
|
|
|
@@ -561,17 +574,28 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
|
|
|
List<ImGroupMember> imGroupMemberList = imGroupMemberDao.queryByImGroupIdAndUserId(imGroupId.toString(), userIdList.stream().map(Objects::toString)
|
|
|
.collect(Collectors.joining(",")));
|
|
|
|
|
|
- if (imGroupMemberList == null || imGroupMemberList.size() == 0) {
|
|
|
+ if (CollectionUtils.isEmpty(imGroupMemberList)) {
|
|
|
throw new BizException("更新失败:找不到用户信息");
|
|
|
}
|
|
|
-
|
|
|
Date date = new Date();
|
|
|
- for (ImGroupMember imGroupMember : imGroupMemberList) {
|
|
|
- imGroupMember.setRoleType(roleType);
|
|
|
- imGroupMember.setUpdateTime(date);
|
|
|
+ ImGroupMember imGroupMember = imGroupMemberList.get(0);
|
|
|
+ imGroupMember.setGroupRoleType(null);
|
|
|
+ imGroupMember.setRoleType(roleType);
|
|
|
+ imGroupMember.setType(EFriendRoleType.getByName(roleType).name());
|
|
|
+ imGroupMember.setUpdateTime(date);
|
|
|
+ ImGroup group = imGroupDao.get(imGroupId);
|
|
|
+ if(!imGroupMember.getIsAdmin()){
|
|
|
+ this.initImGroupMembers(imGroupMemberList,group.getGroupType());
|
|
|
+ if(imGroupMember.getIsAdmin()){
|
|
|
+ try {
|
|
|
+ imPluginContext.getPluginService().changeGroupOwner(imGroupId,imGroupMember.getUserId().toString(),null);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error(e.getMessage());
|
|
|
+ throw new BizException("更新失败:设置群主异常");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- imGroupMemberDao.batchUpdate(imGroupMemberList);
|
|
|
-
|
|
|
+ imGroupMemberDao.update(imGroupMember);
|
|
|
return true;
|
|
|
}
|
|
|
|