From 4f917b7213e321d1d6c707e64d7b248714f1ba6d Mon Sep 17 00:00:00 2001 From: SL Date: Wed, 11 Dec 2024 14:44:36 +0800 Subject: [PATCH] fix:add Add method for adding a single channel member --- .../manager/ChannelMembersManager.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/wkim/src/main/java/com/xinbida/wukongim/manager/ChannelMembersManager.java b/wkim/src/main/java/com/xinbida/wukongim/manager/ChannelMembersManager.java index b638fd2..081402a 100644 --- a/wkim/src/main/java/com/xinbida/wukongim/manager/ChannelMembersManager.java +++ b/wkim/src/main/java/com/xinbida/wukongim/manager/ChannelMembersManager.java @@ -68,6 +68,37 @@ public class ChannelMembersManager extends BaseManager { return ChannelMembersDbManager.getInstance().queryWithRole(channelID, channelType, role); } + public synchronized void save(WKChannelMember member) { + if (member == null) { + return; + } + + List list = new ArrayList<>(); + list.add(member); + int handelType = 0; // 修改 + WKChannelMember tempMember = ChannelMembersDbManager.getInstance().query(member.channelID, member.channelType, member.memberUID); + if (tempMember == null) { + handelType = 1;// 新增 + } else { + if (member.isDeleted == 1 && tempMember.isDeleted == 0) { + handelType = 2;// 删除 + } + if (member.isDeleted == 0 && tempMember.isDeleted == 1) { + handelType = 1;// 新增 + } + } + ChannelMembersDbManager.getInstance().insert(member); + if (handelType == 0) { + setRefreshChannelMember(member, true); + } + if (handelType == 1) { + setOnAddChannelMember(list); + } + if (handelType == 2) { + setOnRemoveChannelMember(list); + } + } + /** * 批量保存成员 *