diff --git a/im-center-server/src/main/java/cn/axzo/im/group/member/GroupMemberSyncer.java b/im-center-server/src/main/java/cn/axzo/im/group/member/GroupMemberSyncer.java index c7f14d6..dba0113 100644 --- a/im-center-server/src/main/java/cn/axzo/im/group/member/GroupMemberSyncer.java +++ b/im-center-server/src/main/java/cn/axzo/im/group/member/GroupMemberSyncer.java @@ -1,7 +1,6 @@ package cn.axzo.im.group.member; 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.YesOrNo; import cn.axzo.im.channel.netease.client.NimClient; @@ -25,6 +24,8 @@ import java.util.ArrayList; import java.util.List; import java.util.Optional; +import static cn.axzo.im.center.api.vo.PersonAccountAttribute.robot; + /** * @author yanglin */ @@ -66,24 +67,19 @@ public class GroupMemberSyncer { private List parseGroupMembers(Group group, NimGroupInfo groupInfo) { ArrayList accounts = new ArrayList<>(); 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(); accounts.add(account); account.setTid(group.getTid()); account.setImAccount(member.getAccid()); account.setMemberType(groupInfo.getOwner().equals(member) ? GroupMemberType.OWNER : GroupMemberType.MEMBER); - if (person == null) { - account.setPersonId(0L); - account.setPersonOuId(0L); - account.setAppType(AppTypeEnum.NONE); - account.setIsRobot(YesOrNo.YES); - } else { - account.setPersonId(Long.valueOf(person.getPersonId())); - account.setPersonOuId(person.ouIdOrDefault()); - account.setAppType(person.getAppType()); - account.setIsRobot(YesOrNo.NO); - } + account.setPersonId(person.personIdAsLong()); + account.setPersonOuId(person.ouIdOrDefault()); + account.setAppType(person.getAppType()); + account.setIsRobot(person.isRobot() ? YesOrNo.YES : YesOrNo.NO); } return accounts; } diff --git a/im-center-server/src/main/java/cn/axzo/im/group/message/GroupMessageSyncHandler.java b/im-center-server/src/main/java/cn/axzo/im/group/message/GroupMessageSyncHandler.java index 8d45970..d10786b 100644 --- a/im-center-server/src/main/java/cn/axzo/im/group/message/GroupMessageSyncHandler.java +++ b/im-center-server/src/main/java/cn/axzo/im/group/message/GroupMessageSyncHandler.java @@ -95,7 +95,7 @@ class GroupMessageSyncHandler implements Runnable { messages.add(message); message.setTid(group.getTid()); message.setFromAccount(nimMessage.getFrom()); - message.setFromPersonId(Long.parseLong(person.getPersonId())); + message.setFromPersonId(person.personIdAsLong()); message.setFromPersonOuId(person.getOuId()); message.setFromPersonAppType(person.getAppType()); message.setIsFromRobot(person.isRobot() ? YesOrNo.YES : YesOrNo.NO);