Explorar o código

fix调整IM群用户昵称

Eric hai 1 ano
pai
achega
4f047d20e5

+ 9 - 1
mec-application/src/main/java/com/ym/mec/student/controller/ImGroupController.java

@@ -4,6 +4,7 @@ import com.google.common.collect.Lists;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.ImUserFriendDto;
 import com.ym.mec.biz.dal.entity.ImGroup;
+import com.ym.mec.biz.dal.enums.im.ClientEnum;
 import com.ym.mec.biz.dal.page.ImGroupNoticeQueryInfo;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
@@ -20,7 +21,9 @@ import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 
 @RequestMapping("${app-config.url.student:}/imGroup")
 @Api(tags = "IM群服务")
@@ -91,7 +94,12 @@ public class ImGroupController extends BaseController {
 			dto = new ImUserFriendDto();
 			SysUser user = sysUserService.queryUserById(userId);
 			dto.setFriend(user);
-			if (user.getUserType().contains("STUDENT") || user.getUserType().contains("SCHOOL")) {
+
+			List<String> userTypes = Lists.newArrayList(user.getUserType().split(","));
+			if (userTypes.size() > 1 || userTypes.contains(ClientEnum.TEACHER.getCode())) {
+				// 增加用户身份数量 > 1 或者包含老师身份,统一使用实名
+				dto.setFriendNickname(Optional.ofNullable(user.getRealName()).orElse(user.getUsername()));
+			} else if (user.getUserType().contains("STUDENT") || user.getUserType().contains("SCHOOL")) {
 				dto.setFriendNickname(user.getUsername());
 			} else {
 				dto.setFriendNickname(user.getRealName());

+ 8 - 1
mec-application/src/main/java/com/ym/mec/teacher/controller/ImGroupController.java

@@ -4,6 +4,7 @@ import com.google.common.collect.Lists;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.ImUserFriendDto;
 import com.ym.mec.biz.dal.entity.ImGroup;
+import com.ym.mec.biz.dal.enums.im.ClientEnum;
 import com.ym.mec.biz.dal.page.ImGroupNoticeQueryInfo;
 import com.ym.mec.biz.service.ImGroupNoticeService;
 import com.ym.mec.biz.service.ImGroupService;
@@ -25,6 +26,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 @RequestMapping("${app-config.url.teacher:}/imGroup")
@@ -114,7 +116,12 @@ public class ImGroupController extends BaseController {
 			dto = new ImUserFriendDto();
 			SysUser user = userLoginService.queryUserById(userId);
 			dto.setFriend(user);
-            if (user.getUserType().contains("STUDENT") || user.getUserType().contains("SCHOOL")) {
+
+			List<String> userTypes = Lists.newArrayList(user.getUserType().split(","));
+			if (userTypes.size() > 1 || userTypes.contains(ClientEnum.TEACHER.getCode())) {
+				// 增加用户身份数量 > 1 或者包含老师身份,统一使用实名
+				dto.setFriendNickname(Optional.ofNullable(user.getRealName()).orElse(user.getUsername()));
+			} else if (user.getUserType().contains("STUDENT") || user.getUserType().contains("SCHOOL")) {
 				dto.setFriendNickname(user.getUsername());
 			} else {
 				dto.setFriendNickname(user.getRealName());

+ 7 - 1
mec-application/src/main/java/com/ym/mec/web/controller/ImGroupController.java

@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.dto.ImGroupMemberDto;
 import com.ym.mec.biz.dal.dto.ImUserFriendDto;
 import com.ym.mec.biz.dal.dto.NameDto;
 import com.ym.mec.biz.dal.entity.ImGroup;
+import com.ym.mec.biz.dal.enums.im.ClientEnum;
 import com.ym.mec.biz.dal.page.ImGroupNoticeQueryInfo;
 import com.ym.mec.biz.dal.vo.ImGroupVo;
 import com.ym.mec.biz.dal.wrapper.ImGroupWrapper;
@@ -29,6 +30,7 @@ import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.stream.Collectors;
@@ -130,7 +132,11 @@ public class ImGroupController extends BaseController {
 			dto.setFriend(user);
 			//这里由原来的优先取老师的realName改成了优先取学员的username,
 			// 因为管理员在修改通讯录备注的时候,如果是多角色,优先改的是学员的username
-            if (user.getUserType().contains("STUDENT") || user.getUserType().contains("SCHOOL")) {
+			List<String> userTypes = Lists.newArrayList(user.getUserType().split(","));
+			if (userTypes.size() > 1 || userTypes.contains(ClientEnum.TEACHER.getCode())) {
+				// 增加用户身份数量 > 1 或者包含老师身份,统一使用实名
+				dto.setFriendNickname(Optional.ofNullable(user.getRealName()).orElse(user.getUsername()));
+			} else if (user.getUserType().contains("STUDENT") || user.getUserType().contains("SCHOOL")) {
 				dto.setFriendNickname(user.getUsername());
 			} else {
 				dto.setFriendNickname(user.getRealName());

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ImGroupMemberDto.java

@@ -12,6 +12,8 @@ public class ImGroupMemberDto extends ImGroupMember {
 
     private String imUserId;
 
+    private String userType;
+
     @ApiModelProperty(value = "群编号;")
     private String groupId;
 
@@ -43,5 +45,11 @@ public class ImGroupMemberDto extends ImGroupMember {
         return getImGroupId();
     }
 
+    public String getUserType() {
+        return userType;
+    }
 
+    public void setUserType(String userType) {
+        this.userType = userType;
+    }
 }

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java

@@ -731,7 +731,8 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
 
             try {
                 String username = userInfo.getUsername();
-                if (Lists.newArrayList(userInfo.getUserType().split(",")).contains(ClientEnum.TEACHER.getCode())) {
+                List<String> userTypes = Lists.newArrayList(userInfo.getUserType().split(","));
+                if (userTypes.size() > 1 || userTypes.contains(ClientEnum.TEACHER.getCode())) {
                     username = Optional.ofNullable(userInfo.getRealName()).orElse(username);
                 }
 

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

@@ -324,6 +324,17 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
             imGroupMemberDto.setType(EFriendRoleType.getByName(imGroupMemberDto.getRoleType()).name());
             imGroupMemberDto.getUser().setUsername(imGroupMemberDto.getGroupNickname());
             imGroupMemberDto.setNickname(imGroupMemberDto.getGroupNickname());
+
+            if (StringUtils.isNotBlank(imGroupMemberDto.getUserType()) && Objects.nonNull(imGroupMemberDto.getUser())) {
+
+                List<String> userTypes = Lists.newArrayList(imGroupMemberDto.getUserType().split(","));
+                if (userTypes.size() > 1 || userTypes.contains(ClientEnum.TEACHER.getCode())) {
+                    // 增加用户身份数量 > 1 或者包含老师身份,统一使用实名
+                    imGroupMemberDto.setGroupNickname(imGroupMemberDto.getUser().getRealName());
+                }
+
+            }
+
         }
         return imGroupMemberDtos;
     }
@@ -961,7 +972,8 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
             String username = user.getUsername();
 
             // 老师默认使用真实姓名
-            if (Lists.newArrayList(user.getUserType().split(",")).contains(ClientEnum.TEACHER.getCode())) {
+            List<String> userTypes = Lists.newArrayList(user.getUserType().split(","));
+            if (userTypes.size() > 1 || userTypes.contains(ClientEnum.TEACHER.getCode())) {
                 username = Optional.ofNullable(user.getRealName()).orElse(username);
             }
             // 自动激活学生IM帐号

+ 31 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImUserFriendServiceImpl.java

@@ -9,6 +9,7 @@ import com.ym.mec.biz.dal.dao.*;
 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.enums.im.ClientEnum;
 import com.ym.mec.biz.dal.enums.school.ESchoolStaffType;
 import com.ym.mec.biz.dal.mapper.SchoolStaffMapper;
 import com.ym.mec.biz.dal.wrapper.ImGroupWrapper;
@@ -124,19 +125,41 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
         String syncImUserFriendKey = "syncImUserFriend:" + userId;
         if(redisTemplate.hasKey(syncImUserFriendKey)){
             List<ImUserFriendDto> imUserFriendDtoList = imUserFriendDao.queryFriendListByUserId(userId, search);
-            imUserFriendDtoList.stream().forEach(i->{
-                i.setImUserId(imGroupCoreService.getImUserId(String.valueOf(i.getUserId()),""));
-            });
-            return imUserFriendDtoList;
+
+            // 获取好友昵称
+            return getImUserFriendNickname(imUserFriendDtoList);
         }else {
             List<ImUserFriendDto> imUserFriendDtoList = teacherService.queryGroupStudents1(userId, null);
-            imUserFriendDtoList.stream().forEach(i->{
-                i.setImUserId(imGroupCoreService.getImUserId(String.valueOf(i.getUserId()),""));
-            });
-            return imUserFriendDtoList;
+
+            // 获取好友昵称
+            return getImUserFriendNickname(imUserFriendDtoList);
         }
     }
 
+    /**
+     * 获取好友昵称
+     * @param imUserFriendDtoList List<ImUserFriendDto>
+     */
+    private List<ImUserFriendDto> getImUserFriendNickname(List<ImUserFriendDto> imUserFriendDtoList) {
+
+        for (ImUserFriendDto item : imUserFriendDtoList) {
+            // 设置用户imUserId
+            item.setImUserId(imGroupCoreService.getImUserId(String.valueOf(item.getUserId()),""));
+
+            // 设置用户好友昵称
+            if (Objects.nonNull(item.getFriend())) {
+                String username = item.getFriend().getUsername();
+
+                List<String> userTypes = Lists.newArrayList(item.getFriend().getUserType().split(","));
+                if (userTypes.size() > 1 || userTypes.contains(ClientEnum.TEACHER.getCode())) {
+                    username = Optional.ofNullable(item.getFriend().getRealName()).orElse(username);
+                }
+                item.setFriendNickname(username);
+            }
+        }
+        return imUserFriendDtoList;
+    }
+
     @Override
     public ImUserFriendDto queryFriendDetail(Integer userId, Integer friendUserId) {
         ImUserFriendDto imUserFriendDto = imUserFriendDao.queryFriendDetail(userId, friendUserId);

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -758,7 +758,8 @@ public class StudentManageServiceImpl implements StudentManageService {
 
             try {
                 String username = userInfo.getUsername();
-                if (Lists.newArrayList(userInfo.getUserType().split(",")).contains(ClientEnum.TEACHER.getCode())) {
+                List<String> userTypes = Lists.newArrayList(userInfo.getUserType().split(","));
+                if (userTypes.size() > 1 || userTypes.contains(ClientEnum.TEACHER.getCode())) {
                     username = Optional.ofNullable(userInfo.getRealName()).orElse(username);
                 }
 

+ 1 - 0
mec-biz/src/main/resources/config/mybatis/ImGroupMapper.xml

@@ -170,6 +170,7 @@
 		     , CASE WHEN find_in_set('STUDENT',u.user_type_) THEN u.username_ ELSE u.real_name_ END username_
 		     , IFNULL(NULLIF(u.username_, ''), u.real_name_) AS group_nickname_
 		     , u.real_name_
+		     , u.user_type_
 		     , st.member_rank_setting_id_,s.name_ subject_name_,st.subject_id_list_ subject_id_
 		FROM im_group_member igm
 		LEFT JOIN sys_user u ON igm.user_id_ = u.id_

+ 6 - 3
mec-im/src/main/java/com/ym/controller/UserController.java

@@ -91,7 +91,8 @@ public class UserController {
             if (Objects.nonNull(userInfo)) {
 
                 String username = userInfo.getUsername();
-                if (Lists.newArrayList(userInfo.getUserType().split(",")).contains(ClientEnum.TEACHER.getCode())) {
+                List<String> userTypes = Lists.newArrayList(userInfo.getUserType().split(","));
+                if (userTypes.size() > 1 || userTypes.contains(ClientEnum.TEACHER.getCode())) {
                     username = Optional.ofNullable(userInfo.getRealName()).orElse(username);
                 }
 
@@ -127,7 +128,8 @@ public class UserController {
         if (Objects.nonNull(userInfo)) {
 
             String username = userInfo.getUsername();
-            if (Lists.newArrayList(userInfo.getUserType().split(",")).contains(ClientEnum.TEACHER.getCode())) {
+            List<String> userTypes = Lists.newArrayList(userInfo.getUserType().split(","));
+            if (userTypes.size() > 1 || userTypes.contains(ClientEnum.TEACHER.getCode())) {
                 username = Optional.ofNullable(userInfo.getRealName()).orElse(username);
             }
 
@@ -160,7 +162,8 @@ public class UserController {
             if (Objects.nonNull(userInfo)) {
 
                 String username = userInfo.getUsername();
-                if (Lists.newArrayList(userInfo.getUserType().split(",")).contains(ClientEnum.TEACHER.getCode())) {
+                List<String> userTypes = Lists.newArrayList(userInfo.getUserType().split(","));
+                if (userTypes.size() > 1 || userTypes.contains(ClientEnum.TEACHER.getCode())) {
                     username = Optional.ofNullable(userInfo.getRealName()).orElse(username);
                 }