Jelajahi Sumber

后台新增聊天功能

zouxuan 2 tahun lalu
induk
melakukan
a41efb89bc

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImGroupDao.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dao;
 package com.ym.mec.biz.dal.dao;
 
 
 import com.ym.mec.biz.dal.dto.ImGroupMemberDto;
 import com.ym.mec.biz.dal.dto.ImGroupMemberDto;
+import com.ym.mec.biz.dal.dto.NameDto;
 import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
@@ -35,4 +36,6 @@ public interface ImGroupDao extends BaseDAO<String, ImGroup> {
 	int updateUserFriendNickname(@Param("userId") Integer userId, @Param("nickName") String nickName);
 	int updateUserFriendNickname(@Param("userId") Integer userId, @Param("nickName") String nickName);
 
 
     void updateMemberNum();
     void updateMemberNum();
+
+    List<NameDto> queryNameByIds(@Param("ids") String ids);
 }
 }

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImUserFriendDao.java

@@ -1,7 +1,9 @@
 package com.ym.mec.biz.dal.dao;
 package com.ym.mec.biz.dal.dao;
 
 
+import java.util.Collection;
 import java.util.List;
 import java.util.List;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
+import com.ym.mec.biz.dal.dto.NameDto;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 import com.ym.mec.biz.dal.dto.ImUserFriendDto;
 import com.ym.mec.biz.dal.dto.ImUserFriendDto;
 import com.ym.mec.biz.dal.entity.ImUserFriend;
 import com.ym.mec.biz.dal.entity.ImUserFriend;
@@ -37,4 +39,6 @@ public interface ImUserFriendDao extends BaseDAO<Long, ImUserFriend> {
 	* @date 2022/1/20 11:56
 	* @date 2022/1/20 11:56
 	*/
 	*/
 	void updateNullNickName();
 	void updateNullNickName();
+
+    List<NameDto> queryNameByIds(@Param("ids") String ids, @Param("userId") Integer userId);
 }
 }

+ 36 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/NameDto.java

@@ -0,0 +1,36 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+public class NameDto {
+    private String id;
+
+    private String name;
+
+    @ApiModelProperty(value = "1 单人, 3 群组",required = false)
+    private Integer type;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+}

+ 0 - 25
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/NamesDto.java

@@ -1,25 +0,0 @@
-package com.ym.mec.biz.dal.dto;
-
-import java.util.List;
-
-public class NamesDto {
-    private Integer id;
-
-    private List<String> names;
-
-    public Integer getId() {
-        return id;
-    }
-
-    public void setId(Integer id) {
-        this.id = id;
-    }
-
-    public List<String> getNames() {
-        return names;
-    }
-
-    public void setNames(List<String> names) {
-        this.names = names;
-    }
-}

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ImGroupService.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service;
 
 
 import com.ym.mec.biz.dal.dto.ImGroupDto;
 import com.ym.mec.biz.dal.dto.ImGroupDto;
 import com.ym.mec.biz.dal.dto.ImGroupMemberDto;
 import com.ym.mec.biz.dal.dto.ImGroupMemberDto;
+import com.ym.mec.biz.dal.dto.NameDto;
 import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.dal.page.GroupMemberQueryInfo;
 import com.ym.mec.biz.dal.page.GroupMemberQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.PageInfo;
@@ -83,4 +84,13 @@ public interface ImGroupService extends BaseService<String, ImGroup> {
 
 
 	//解散群组
 	//解散群组
 	void dismissGroup(String imGroupId);
 	void dismissGroup(String imGroupId);
+
+	/**
+	* @description: 获取群聊、用户详情
+	 * @param nameDto
+	* @return java.lang.Object
+	* @author zx
+	* @date 2022/8/8 10:10
+	*/
+	List<NameDto> queryDetail(List<NameDto> nameDto);
 }
 }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysUserService.java

@@ -8,4 +8,6 @@ public interface SysUserService {
     SysUser getUser();
     SysUser getUser();
 
 
     SysUser queryUserById(Integer userId);
     SysUser queryUserById(Integer userId);
+
+    Boolean updateSysUser(SysUser user);
 }
 }

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

@@ -5,12 +5,15 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.ImGroupDao;
 import com.ym.mec.biz.dal.dao.ImGroupDao;
 import com.ym.mec.biz.dal.dao.ImGroupMemberDao;
 import com.ym.mec.biz.dal.dao.ImGroupMemberDao;
 import com.ym.mec.biz.dal.dao.ImGroupNoticeDao;
 import com.ym.mec.biz.dal.dao.ImGroupNoticeDao;
+import com.ym.mec.biz.dal.dao.ImUserFriendDao;
 import com.ym.mec.biz.dal.dto.ImGroupDto;
 import com.ym.mec.biz.dal.dto.ImGroupDto;
 import com.ym.mec.biz.dal.dto.ImGroupMemberDto;
 import com.ym.mec.biz.dal.dto.ImGroupMemberDto;
+import com.ym.mec.biz.dal.dto.NameDto;
 import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.dal.entity.ImGroupMember;
 import com.ym.mec.biz.dal.entity.ImGroupMember;
 import com.ym.mec.biz.service.ImGroupMemberService;
 import com.ym.mec.biz.service.ImGroupMemberService;
 import com.ym.mec.biz.service.ImGroupService;
 import com.ym.mec.biz.service.ImGroupService;
+import com.ym.mec.biz.service.SysUserService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.exception.BizException;
@@ -48,7 +51,10 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 	private ImFeignService imFeignService;
 	private ImFeignService imFeignService;
 
 
 	@Autowired
 	@Autowired
-	private SysUserFeignService sysUserFeignService;
+	private SysUserService sysUserService;
+
+	@Autowired
+	private ImUserFriendDao imUserFriendDao;
 
 
 	@Override
 	@Override
 	public BaseDAO<String, ImGroup> getDAO() {
 	public BaseDAO<String, ImGroup> getDAO() {
@@ -106,8 +112,7 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 		List<String> userIdList = imGroupDto.getUserIdList();
 		List<String> userIdList = imGroupDto.getUserIdList();
 		Integer currentUserId = null;
 		Integer currentUserId = null;
 		if (CollectionUtils.isEmpty(userIdList)){
 		if (CollectionUtils.isEmpty(userIdList)){
-			currentUserId = sysUserFeignService.queryUserInfo().getId();
-			userIdList.add(currentUserId.toString());
+			userIdList.add(sysUserService.getUserId().toString());
 		}
 		}
 		String groupName = imGroupDto.getGroupName();
 		String groupName = imGroupDto.getGroupName();
 		String type = imGroupDto.getType();
 		String type = imGroupDto.getType();
@@ -192,13 +197,13 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 		imGroupDao.updateNickname(userId, nickName);
 		imGroupDao.updateNickname(userId, nickName);
 		imGroupDao.updateUserFriendNickname(userId, nickName);
 		imGroupDao.updateUserFriendNickname(userId, nickName);
 		//修改sysUser名称,如果包含学员的角色,那么修改userName。否则修改realName
 		//修改sysUser名称,如果包含学员的角色,那么修改userName。否则修改realName
-		SysUser sysUser = sysUserFeignService.queryUserById(userId);
+		SysUser sysUser = sysUserService.queryUserById(userId);
 		if(sysUser.getUserType().contains("STUDENT")){
 		if(sysUser.getUserType().contains("STUDENT")){
 			sysUser.setUsername(nickName);
 			sysUser.setUsername(nickName);
 		}else {
 		}else {
 			sysUser.setRealName(nickName);
 			sysUser.setRealName(nickName);
 		}
 		}
-		sysUserFeignService.updateSysUser(sysUser);
+		sysUserService.updateSysUser(sysUser);
 		//同步融云基本信息
 		//同步融云基本信息
 		imFeignService.update(new ImUserModel(sysUser.getId().toString(),nickName,sysUser.getAvatar()));
 		imFeignService.update(new ImUserModel(sysUser.getId().toString(),nickName,sysUser.getAvatar()));
 	}
 	}
@@ -219,4 +224,25 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 		imGroupMemberDao.deleteByImGroupId(imGroupId);
 		imGroupMemberDao.deleteByImGroupId(imGroupId);
 		imGroupNoticeDao.deleteByImGroupId(imGroupId);
 		imGroupNoticeDao.deleteByImGroupId(imGroupId);
 	}
 	}
+
+    @Override
+    public List<NameDto> queryDetail(List<NameDto> nameDto) {
+		List<NameDto> dtos = new ArrayList<>();
+		if(CollectionUtils.isNotEmpty(nameDto)){
+			Map<Integer, List<NameDto>> collect = nameDto.stream().collect(Collectors.groupingBy(NameDto::getType));
+			for (Integer integer : collect.keySet()) {
+				List<NameDto> nameDtos = collect.get(integer);
+				if(CollectionUtils.isNotEmpty(nameDtos)){
+					String idList = nameDtos.stream().map(e -> e.getId()).collect(Collectors.joining(","));
+					if(integer.equals(3)){
+						dtos.addAll(imGroupDao.queryNameByIds(idList));
+					}else if (integer.equals(1)){
+						Integer userId = sysUserService.getUserId();
+						dtos.addAll(imUserFriendDao.queryNameByIds(idList,userId));
+					}
+				}
+			}
+		}
+        return dtos;
+    }
 }
 }

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysUserServiceImpl.java

@@ -39,4 +39,9 @@ public class SysUserServiceImpl implements SysUserService {
                 .orElseThrow(() -> new BizException("用户信息获取失败"));
                 .orElseThrow(() -> new BizException("用户信息获取失败"));
         return user;
         return user;
     }
     }
+
+    @Override
+    public Boolean updateSysUser(SysUser user) {
+        return sysUserFeignService.updateSysUser(user);
+    }
 }
 }

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

@@ -180,4 +180,12 @@
 			LIMIT 1
 			LIMIT 1
 		</if>
 		</if>
 	</select>
 	</select>
+	<resultMap id="NameDto" type="com.ym.mec.biz.dal.dto.NameDto">
+		<result property="id" column="id_" />
+		<result property="name" column="name_" />
+		<result property="type" column="type_"/>
+	</resultMap>
+    <select id="queryNameByIds" resultMap="NameDto">
+		select id_,name_,3 type_ from im_group where FIND_IN_SET(id_,#{ids})
+	</select>
 </mapper>
 </mapper>

+ 8 - 0
mec-biz/src/main/resources/config/mybatis/ImUserFriendMapper.xml

@@ -119,4 +119,12 @@
 		LEFT JOIN subject sb ON s.subject_id_list_ = sb.id_
 		LEFT JOIN subject sb ON s.subject_id_list_ = sb.id_
 		WHERE iuf.user_id_ = #{userId} AND iuf.friend_id_ = #{friendUserId}
 		WHERE iuf.user_id_ = #{userId} AND iuf.friend_id_ = #{friendUserId}
 	</select>
 	</select>
+	<resultMap id="NameDto" type="com.ym.mec.biz.dal.dto.NameDto">
+		<result property="id" column="id_" />
+		<result property="name" column="name_" />
+		<result property="type" column="type_"/>
+	</resultMap>
+    <select id="queryNameByIds" resultMap="NameDto">
+		select friend_id_ id_,friend_nickname_ name_,1 type_ from im_user_friend where user_id_ = #{userId} and find_in_set(friend_id_,#{ids})
+	</select>
 </mapper>
 </mapper>

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

@@ -4,6 +4,7 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.ImGroupDto;
 import com.ym.mec.biz.dal.dto.ImGroupDto;
 import com.ym.mec.biz.dal.dto.ImGroupMemberDto;
 import com.ym.mec.biz.dal.dto.ImGroupMemberDto;
 import com.ym.mec.biz.dal.dto.ImUserFriendDto;
 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.entity.ImGroup;
 import com.ym.mec.biz.dal.page.ImGroupNoticeQueryInfo;
 import com.ym.mec.biz.dal.page.ImGroupNoticeQueryInfo;
 import com.ym.mec.biz.dal.page.ImGroupQueryInfo;
 import com.ym.mec.biz.dal.page.ImGroupQueryInfo;
@@ -176,4 +177,10 @@ public class ImGroupController extends BaseController {
 	public Object updateRoleType(String imGroupId, Integer userId, String roleType) {
 	public Object updateRoleType(String imGroupId, Integer userId, String roleType) {
 		return succeed(imGroupMemberService.updateRoleType(imGroupId,userId,roleType));
 		return succeed(imGroupMemberService.updateRoleType(imGroupId,userId,roleType));
 	}
 	}
+
+	@ApiOperation("获取群聊、用户详情")
+	@PostMapping(value = "/queryDetail")
+	public HttpResponseResult<List<NameDto>> queryDetail(@RequestBody List<NameDto> nameDto) {
+		return succeed(imGroupService.queryDetail(nameDto));
+	}
 }
 }