REQ-3345: 发送消息时重新查询数据

This commit is contained in:
yanglin 2025-02-07 14:00:08 +08:00
parent c274f7d105
commit c27fbb079f
2 changed files with 10 additions and 14 deletions

View File

@ -1,7 +1,6 @@
package cn.axzo.im.group.member; package cn.axzo.im.group.member;
import cn.axzo.im.center.api.vo.PersonAccountAttribute; import cn.axzo.im.center.api.vo.PersonAccountAttribute;
import cn.axzo.im.center.common.enums.AppTypeEnum;
import cn.axzo.im.center.common.enums.GroupMemberType; import cn.axzo.im.center.common.enums.GroupMemberType;
import cn.axzo.im.center.common.enums.YesOrNo; import cn.axzo.im.center.common.enums.YesOrNo;
import cn.axzo.im.channel.netease.client.NimClient; import cn.axzo.im.channel.netease.client.NimClient;
@ -25,6 +24,8 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import static cn.axzo.im.center.api.vo.PersonAccountAttribute.robot;
/** /**
* @author yanglin * @author yanglin
*/ */
@ -66,24 +67,19 @@ public class GroupMemberSyncer {
private List<GroupMember> parseGroupMembers(Group group, NimGroupInfo groupInfo) { private List<GroupMember> parseGroupMembers(Group group, NimGroupInfo groupInfo) {
ArrayList<GroupMember> accounts = new ArrayList<>(); ArrayList<GroupMember> accounts = new ArrayList<>();
for (NimGroupMemberInfo member : groupInfo.getOwnerAndMembers()) { for (NimGroupMemberInfo member : groupInfo.getOwnerAndMembers()) {
PersonAccountAttribute person = ImAccountParser.parsePerson(member.getAccid()).orElse(null); PersonAccountAttribute person = ImAccountParser
.parsePerson(member.getAccid())
.orElse(robot());
GroupMember account = new GroupMember(); GroupMember account = new GroupMember();
accounts.add(account); accounts.add(account);
account.setTid(group.getTid()); account.setTid(group.getTid());
account.setImAccount(member.getAccid()); account.setImAccount(member.getAccid());
account.setMemberType(groupInfo.getOwner().equals(member) account.setMemberType(groupInfo.getOwner().equals(member)
? GroupMemberType.OWNER : GroupMemberType.MEMBER); ? GroupMemberType.OWNER : GroupMemberType.MEMBER);
if (person == null) { account.setPersonId(person.personIdAsLong());
account.setPersonId(0L); account.setPersonOuId(person.ouIdOrDefault());
account.setPersonOuId(0L); account.setAppType(person.getAppType());
account.setAppType(AppTypeEnum.NONE); account.setIsRobot(person.isRobot() ? YesOrNo.YES : YesOrNo.NO);
account.setIsRobot(YesOrNo.YES);
} else {
account.setPersonId(Long.valueOf(person.getPersonId()));
account.setPersonOuId(person.ouIdOrDefault());
account.setAppType(person.getAppType());
account.setIsRobot(YesOrNo.NO);
}
} }
return accounts; return accounts;
} }

View File

@ -95,7 +95,7 @@ class GroupMessageSyncHandler implements Runnable {
messages.add(message); messages.add(message);
message.setTid(group.getTid()); message.setTid(group.getTid());
message.setFromAccount(nimMessage.getFrom()); message.setFromAccount(nimMessage.getFrom());
message.setFromPersonId(Long.parseLong(person.getPersonId())); message.setFromPersonId(person.personIdAsLong());
message.setFromPersonOuId(person.getOuId()); message.setFromPersonOuId(person.getOuId());
message.setFromPersonAppType(person.getAppType()); message.setFromPersonAppType(person.getAppType());
message.setIsFromRobot(person.isRobot() ? YesOrNo.YES : YesOrNo.NO); message.setIsFromRobot(person.isRobot() ? YesOrNo.YES : YesOrNo.NO);