Browse Source

Merge branch 'zx_saas_imGroup' of http://git.dayaedu.com/yonge/mec into dev

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java
zouxuan 1 year ago
parent
commit
fcb0539333

+ 0 - 4
mec-application/src/main/java/com/ym/mec/teacher/controller/ImGroupMemberController.java

@@ -36,10 +36,6 @@ public class ImGroupMemberController extends BaseController {
 		if (CollectionUtils.isEmpty(member.getUserIds())) {
 			throw BizException.from("群成员不能为空");
 		}
-		// 群成员禁言时长无效
-		if (member.getGroupMute() && Optional.of(member.getMuteTime()).orElse(0) <= 0) {
-			throw BizException.from("群成员禁言时长无效");
-		}
 		// 更新群成员禁言
 		imGroupMemberService.groupMemberMute(member);
 		return succeed();

+ 0 - 4
mec-application/src/main/java/com/ym/mec/web/controller/ImGroupMemberController.java

@@ -40,10 +40,6 @@ public class ImGroupMemberController extends BaseController {
 		if (CollectionUtils.isEmpty(member.getUserIds())) {
 			throw BizException.from("群成员不能为空");
 		}
-		// 群成员禁言时长无效
-		if (member.getGroupMute() && Optional.of(member.getMuteTime()).orElse(0) <= 0) {
-			throw BizException.from("群成员禁言时长无效");
-		}
 		// 更新群成员禁言
 		imGroupMemberService.groupMemberMute(member);
 		return succeed();

+ 0 - 4
mec-application/src/main/java/com/ym/mec/web/controller/education/EduImGroupMemberController.java

@@ -36,10 +36,6 @@ public class EduImGroupMemberController extends BaseController {
 		if (CollectionUtils.isEmpty(member.getUserIds())) {
 			throw BizException.from("群成员不能为空");
 		}
-		// 群成员禁言时长无效
-		if (member.getGroupMute() && Optional.of(member.getMuteTime()).orElse(0) <= 0) {
-			throw BizException.from("群成员禁言时长无效");
-		}
 		// 更新群成员禁言
 		imGroupMemberService.groupMemberMute(member);
 		return succeed();

+ 3 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImGroupMemberPlus.java

@@ -57,7 +57,9 @@ public class ImGroupMemberPlus implements Serializable {
     @TableField(value = "role_type_")
     private String roleType;
 
-
+    @ApiModelProperty(value = "第三方群角色")
+    @TableField(value = "group_role_type_")
+    private String groupRoleType;
     /**
      * 群角色
      */

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/ImGroupMemberWrapper.java

@@ -158,8 +158,8 @@ public class ImGroupMemberWrapper {
         @ApiModelProperty(value = "群ID",required = true)
         private String groupId;
 
-        @ApiModelProperty("禁言时长(分钟), 0取消禁方;不能小于0")
-        private Integer muteTime;
+//        @ApiModelProperty("禁言时长(分钟), 0取消禁方;不能小于0")
+//        private Integer muteTime;
 
         @ApiModelProperty("群禁言状态")
         private Boolean groupMute;
@@ -167,13 +167,13 @@ public class ImGroupMemberWrapper {
         @ApiModelProperty("群成员ID")
         private List<String> userIds;
 
-        public Integer getMuteTime() {
+        /*public Integer getMuteTime() {
             // 禁言时长不能小于0,最小为1分钟
             if (Objects.nonNull(muteTime) && muteTime < 0) {
                 return 1;
             }
             return Optional.ofNullable(muteTime).orElse(0);
-        }
+        }*/
 
         public String jsonString() {
             return JSON.toJSONString(this);

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/im/impl/ImGroupCoreServiceImpl.java

@@ -202,7 +202,7 @@ public class ImGroupCoreServiceImpl implements ImGroupCoreService {
             imGroupMember.setRoleType(o.getRoleType());
             imGroupMember.setType(EFriendRoleType.getByName(o.getRoleType()).name());
             imGroupMember.setTenantId(o.getTenantId());
-
+            imGroupMember.setGroupRoleType(o.getGroupRoleType());
             return imGroupMember;
         }).collect(Collectors.toList());
 

+ 41 - 15
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java

@@ -6,6 +6,29 @@ import com.google.common.collect.Lists;
 import com.microsvc.toolkit.middleware.im.ImPluginContext;
 import com.microsvc.toolkit.middleware.im.impl.RongCloudImPlugin;
 import com.microsvc.toolkit.middleware.im.message.GroupMemberWrapper;
+import com.ym.mec.biz.dal.dto.SimpleUserDto;
+import com.ym.mec.biz.dal.enums.EFriendRoleType;
+import com.ym.mec.biz.dal.enums.im.ClientEnum;
+import com.ym.mec.biz.dal.enums.im.EImGroupRoleType;
+import com.ym.mec.biz.dal.wrapper.ImGroupMemberWrapper;
+import com.ym.mec.biz.dal.wrapper.ImGroupWrapper;
+import com.ym.mec.biz.service.*;
+import com.ym.mec.biz.service.im.ImGroupCoreService;
+import com.ym.mec.common.page.QueryInfo;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.joda.time.DateTime;
+import org.redisson.api.RBucket;
+import org.redisson.api.RedissonClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DuplicateKeyException;
+import org.springframework.security.authentication.LockedException;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysRole;
 import com.ym.mec.auth.api.entity.SysUser;
@@ -504,21 +527,24 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
                 List<com.ym.mec.biz.dal.entity.ImGroupMember> imGroupMemberList = new ArrayList<>();
                 List<GroupModel> groupModelList = new ArrayList<>();
 
-                List<ImGroupMemberWrapper.ImGroupMember> groupMembers = Lists.newArrayList();
-                for (ImGroupModel imGroupModel : educationGroupModels) {
-                    String userId = imGroupModel.getMemberList().get(0).getId();
-                    com.ym.mec.biz.dal.entity.ImGroupMember imGroupMember = new com.ym.mec.biz.dal.entity.ImGroupMember();
-                    imGroupMember.setCreateTime(date);
-                    imGroupMember.setImGroupId(imGroupModel.getId());
-                    imGroupMember.setIsAdmin(false);
-                    imGroupMember.setRoleType(imGroupModel.getUserRole());
-                    imGroupMember.setUpdateTime(date);
-                    imGroupMember.setUserId(Integer.parseInt(userId));
-                    imGroupMember.setNickname(realNameMap.get(imGroupMember.getUserId()));
-                    imGroupMemberList.add(imGroupMember);
-                    GroupMember groupMember = new GroupMember(userId, imGroupModel.getId());
-                    GroupModel groupModel = new GroupModel(imGroupModel.getId(), new GroupMember[]{groupMember}, imGroupModel.getName());
-                    groupModelList.add(groupModel);
+            List<ImGroupMemberWrapper.ImGroupMember> groupMembers = Lists.newArrayList();
+            for (ImGroupModel imGroupModel : educationGroupModels) {
+                String userId = imGroupModel.getMemberList().get(0).getId();
+                com.ym.mec.biz.dal.entity.ImGroupMember imGroupMember = new com.ym.mec.biz.dal.entity.ImGroupMember();
+                imGroupMember.setCreateTime(date);
+                imGroupMember.setImGroupId(imGroupModel.getId());
+                imGroupMember.setIsAdmin(false);
+                imGroupMember.setRoleType(imGroupModel.getUserRole());
+                if(StringUtils.isNotEmpty(imGroupModel.getUserRole())){
+                    imGroupMember.setType(EFriendRoleType.getByName(imGroupModel.getUserRole()).name());
+                }
+                imGroupMember.setUpdateTime(date);
+                imGroupMember.setUserId(Integer.parseInt(userId));
+                imGroupMember.setNickname(realNameMap.get(imGroupMember.getUserId()));
+                imGroupMemberList.add(imGroupMember);
+                GroupMember groupMember = new GroupMember(userId, imGroupModel.getId());
+                GroupModel groupModel = new GroupModel(imGroupModel.getId(), new GroupMember[]{groupMember}, imGroupModel.getName());
+                groupModelList.add(groupModel);
 
                     // 腾讯云IM用户加群
                     groupMembers.add(ImGroupMemberWrapper.ImGroupMember.builder()

+ 6 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupMemberServiceImpl.java

@@ -157,9 +157,9 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 		imGroupMember.setRoleType(roleType);
 		if(StringUtils.isNotEmpty(roleType)){
 			imGroupMember.setType(EFriendRoleType.getByName(roleType).name());
-			imGroupMember.setNickname(user.getRealName());
+			imGroupMember.setNickname(StringUtils.isEmpty(user.getRealName())?user.getUsername():user.getRealName());
 		}else {
-			imGroupMember.setNickname(user.getUsername());
+			imGroupMember.setNickname(StringUtils.isEmpty(user.getUsername())?user.getRealName():user.getUsername());
 		}
 		imGroupMember.setUpdateTime(date);
 		imGroupMember.setUserId(userId);
@@ -355,9 +355,9 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 		imGroupMember.setRoleType(roleType);
 		if(StringUtils.isNotEmpty(roleType)){
 			imGroupMember.setType(EFriendRoleType.getByName(roleType).name());
-			imGroupMember.setNickname(user.getRealName());
+			imGroupMember.setNickname(StringUtils.isEmpty(user.getRealName())?user.getUsername():user.getRealName());
 		}else {
-			imGroupMember.setNickname(user.getUsername());
+			imGroupMember.setNickname(StringUtils.isEmpty(user.getUsername())?user.getRealName():user.getUsername());
 		}
 		imGroupMember.setUpdateTime(date);
 		imGroupMember.setUserId(user.getId());
@@ -434,6 +434,7 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 			if(StringUtils.isEmpty(entry.getValue())){
 				usernameIds.add(entry.getKey());
 			}else {
+				imGroupMember.setType(EFriendRoleType.getByName(entry.getValue()).name());
 				realNameIds.add(entry.getKey());
 			}
 			imGroupMember.setUpdateTime(date);
@@ -656,7 +657,7 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 			ImPluginService pluginService = imPluginContext.getPluginService();
 			if (member.getGroupMute()) {
 				// 群成员禁言
-				pluginService.groupUserGagCreate(member.getUserIds(), member.getGroupId(), member.getMuteTime().longValue());
+				pluginService.groupUserGagCreate(member.getUserIds(), member.getGroupId(), -1L);
 			} else {
 				// 群成员解除禁言
 				pluginService.groupUserGagRemove(member.getUserIds(), member.getGroupId());

+ 10 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupServiceImpl.java

@@ -234,8 +234,6 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
         imGroup.setType(type);
         imGroup.setGroupType(imGroupDto.getGroupType());
         imGroup.setUpdateTime(date);
-
-
         try {
             String imGroupId = createImGroup(imGroup, null, null);
             imGroup.setId(imGroupId);
@@ -243,11 +241,8 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
             log.error("群组创建失败",e);
             throw new BizException("群组创建失败");
         }
-
+        //当前用户不知道具体角色,由于是通过后台添加,所以默认给了乐团主管
         List<ImGroupMember> groupMemberList = imGroupMemberDao.queryMembers(groupId, userIdList, TenantContextHolder.getTenantId());
-        if(currentUserId != null){
-            groupMemberList.get(0).setRoleType("乐团主管");
-        }
         imGroupMemberService.initImGroupMembers(groupMemberList,imGroup.getGroupType());
         addImGroupMember(groupId, groupMemberList);
         return groupId;
@@ -586,7 +581,9 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
             imGroupMember.setIsAdmin(schoolStaffType.equals(ESchoolStaffType.ORCHESTRA_LEADER));
             imGroupMember.setRoleType(schoolStaffType.getDescribe());
             imGroupMember.setNickname(name);
-            imGroupMember.setType(EFriendRoleType.getByName(schoolStaffType.getDescribe()).name());
+            if (StringUtils.isNotEmpty(schoolStaffType.getDescribe())) {
+                imGroupMember.setType(EFriendRoleType.getByName(schoolStaffType.getDescribe()).name());
+            }
             imGroupMember.setTenantId(imGroup.getTenantId());
             imGroupMemberDao.insert(imGroupMember);
 
@@ -666,7 +663,10 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
             imGroupMember.setUserId(groupMember.getUserId().intValue());
             imGroupMember.setIsAdmin(false);
             imGroupMember.setRoleType(groupMember.getRoleType());
-            imGroupMember.setType(EFriendRoleType.getByName(groupMember.getRoleType()).name());
+            imGroupMember.setNickname(groupMember.getNickname());
+            if (StringUtils.isNotEmpty(groupMember.getRoleType())) {
+                imGroupMember.setType(EFriendRoleType.getByName(groupMember.getRoleType()).name());
+            }
             imGroupMember.setTenantId(imGroup.getTenantId());
             imGroupMemberList.add(imGroupMember);
             groupMember.setImUserIdFormat(false);
@@ -779,9 +779,9 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
                 imGroupMember.setRoleType(roleType);
                 if(StringUtils.isNotEmpty(roleType)){
                     imGroupMember.setType(EFriendRoleType.getByName(roleType).name());
-                    imGroupMember.setNickname(user.getRealName());
+                    imGroupMember.setNickname(StringUtils.isEmpty(user.getRealName())?user.getUsername():user.getRealName());
                 }else {
-                    imGroupMember.setNickname(user.getUsername());
+                    imGroupMember.setNickname(StringUtils.isEmpty(user.getUsername())?user.getRealName():user.getUsername());
                 }
                 imGroupMember.setType(EFriendRoleType.getByName(roleType).name());
                 imGroupMember.setTenantId(imGroup.getTenantId());

+ 2 - 1
mec-biz/src/main/resources/config/mybatis/ImGroupMemberMapper.xml

@@ -14,6 +14,7 @@
 		<result column="is_admin_" property="isAdmin" />
 		<result column="role_type_" property="roleType"/>
 		<result column="type_" property="type"/>
+		<result column="group_role_type_" property="groupRoleType"/>
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
         <result column="tenant_id_" property="tenantId"/>
@@ -147,7 +148,7 @@
 	</select>
     <select id="queryMembers" resultMap="ImGroupMember">
 		SELECT #{groupId} im_group_id_,CASE WHEN su.username_ IS NULL OR su.username_ = '' THEN su.real_name_ ELSE su.username_ END nickname_,
-		       #{tenantId} tenant_id_,su.id_ user_id_,su.avatar_
+		       #{tenantId} tenant_id_,su.id_ user_id_,su.avatar_,'乐团主管' role_type_,'ORCHESTRA_MANAGER' type_,'Admin' group_role_type_
 		FROM sys_user su
 		WHERE su.id_ IN
 		<foreach collection="userIdList" item="item" open="(" separator="," close=")">