소스 검색

合作单位乐团主管

zouxuan 4 년 전
부모
커밋
5c538acb07

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

@@ -23,4 +23,8 @@ public interface ImGroupMemberDao extends BaseDAO<Long, ImGroupMember> {
 
 	void batchDeleteByGroupIdAndUserId(List<ImGroupMember> imGroupMemberList);
 
+	boolean isExit(@Param("groupId") String groupId, @Param("userId") String userId);
+
+	void delRepeat();
+
 }

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ImGroupMemberService.java

@@ -74,4 +74,13 @@ public interface ImGroupMemberService extends BaseService<Long, ImGroupMember> {
 	 */
 	void batchDeleteByGroupIdAndUserId(List<ImGroupMember> imGroupMemberList);
 
+	/**
+	 * 是否在群里
+	 * @param groupId
+	 * @param userId
+	 * @return
+	 */
+	boolean isExit(String groupId, String userId);
+
+	void delRepeat();
 }

+ 5 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java

@@ -317,17 +317,17 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 			List<com.ym.mec.biz.dal.entity.ImGroupMember> imGroupMemberList = new ArrayList<>();
 			List<GroupModel> groupModelList = new ArrayList<>();
 			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(Long.parseLong(imGroupModel.getId()));
 				imGroupMember.setIsAdmin(false);
 				imGroupMember.setRoleType(imGroupModel.getUserRole());
 				imGroupMember.setUpdateTime(date);
-				imGroupMember.setUserId(Integer.parseInt(imGroupModel.getMemberList().get(0).getId()));
+				imGroupMember.setUserId(Integer.parseInt(userId));
 				imGroupMember.setNickname(realNameMap.get(imGroupMember.getUserId()));
 				imGroupMemberList.add(imGroupMember);
-
-				GroupMember groupMember = new GroupMember(imGroupMember.getUserId().toString(), imGroupModel.getId());
+				GroupMember groupMember = new GroupMember(userId, imGroupModel.getId());
 				GroupModel groupModel = new GroupModel(imGroupModel.getId(), new GroupMember[] { groupMember }, imGroupModel.getName());
 				groupModelList.add(groupModel);
 			}
@@ -422,6 +422,8 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 		}
 		//更新群成员数量
 		imGroupDao.updateMemberNum();
+		//删除重复的群成员
+		imGroupMemberService.delRepeat();
 	}
 
 	@Override

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

@@ -316,4 +316,14 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 		imGroupMemberDao.batchDeleteByGroupIdAndUserId(imGroupMemberList);
 	}
 
+	@Override
+	public boolean isExit(String groupId, String userId) {
+		return imGroupMemberDao.isExit(groupId,userId);
+	}
+
+	@Override
+	public void delRepeat() {
+		imGroupMemberDao.delRepeat();
+	}
+
 }

+ 7 - 0
mec-biz/src/main/resources/config/mybatis/ImGroupMemberMapper.xml

@@ -117,8 +117,15 @@
 			DELETE FROM im_group_member WHERE im_group_id_ = #{item.imGroupId} AND user_id_ = #{item.userId}
 		</foreach>
 	</delete>
+	<delete id="delRepeat">
+		DELETE FROM im_group_member
+				WHERE id_ IN (SELECT a.id_ FROM (SELECT id_ FROM im_group_member GROUP BY im_group_id_,user_id_ HAVING COUNT(user_id_) > 1) a)
+	</delete>
 
 	<select id="queryByImGroupIdAndUserId" resultMap="ImGroupMember" parameterType="map">
 		SELECT * FROM im_group_member where find_in_set(im_group_id_,#{imGroupIdList}) and find_in_set(user_id_,#{userIdList})
 	</select>
+	<select id="isExit" resultType="java.lang.Boolean">
+		SELECT COUNT(DISTINCT userId) FROM im_group_member WHERE im_group_id_ = #{groupId} AND user_id_ = #{userId}
+	</select>
 </mapper>

+ 17 - 0
mec-common/common-core/src/main/java/com/ym/mec/common/entity/ImGroupModel.java

@@ -1,6 +1,8 @@
 package com.ym.mec.common.entity;
 
+import java.util.Arrays;
 import java.util.List;
+import java.util.Objects;
 
 public class ImGroupModel{
     //群组编号
@@ -143,4 +145,19 @@ public class ImGroupModel{
         this.status = status;
         return this;
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        ImGroupModel that = (ImGroupModel) o;
+        return id.equals(that.id) && Arrays.equals(members, that.members) && memberList.equals(that.memberList);
+    }
+
+    @Override
+    public int hashCode() {
+        int result = Objects.hash(id, memberList);
+        result = 31 * result + Arrays.hashCode(members);
+        return result;
+    }
 }