diff --git a/im-client/src/main/java/net/sopod/soim/client/handler/cmd/GroupHandler.java b/im-client/src/main/java/net/sopod/soim/client/handler/cmd/GroupHandler.java index 90e62a3..2c66bf2 100644 --- a/im-client/src/main/java/net/sopod/soim/client/handler/cmd/GroupHandler.java +++ b/im-client/src/main/java/net/sopod/soim/client/handler/cmd/GroupHandler.java @@ -45,6 +45,8 @@ public class GroupHandler implements CmdHandler { } else if (args.getUsersGroupId() != null) { this.handleGroupUsers(args.getUsersGroupId()); + } else { + this.handleUserGroups(); } } @@ -81,7 +83,11 @@ public class GroupHandler implements CmdHandler { List groupsList = res.getGroupsList(); List userLines = groupsList.stream() - .map(g -> g.getGid() + "|" + g.getGroupName() + "|" + g.getUserLimit() + "|" + g.getUserNum() + "|" + ImClock.millis2time(g.getCreateTime())) + .map(g -> g.getGid() + " | " + + g.getGroupName() + " | " + + g.getUserLimit() + " | " + + g.getUserNum() + " | " + + ImClock.millis2time(g.getCreateTime())) .collect(Collectors.toList()); Console.logList("群聊搜索结果", userLines); } @@ -120,4 +126,21 @@ public class GroupHandler implements CmdHandler { Console.logList("群用户列表", userLines); } + private void handleUserGroups() { + Group.ReqUserGroups req = Group.ReqUserGroups.newBuilder().build(); + CompletableFuture future = soImSession.send(req); + Group.ResUserGroups res = future.join(); + List groupsList = res.getGroupsList(); + List userLines = groupsList.stream() + .map(g -> g.getGid() + " | " + + g.getGroupName() + " | " + + g.getUserLimit() + " | " + + g.getUserNum() + "/" + + g.getUserLimit() + " | " + + g.getMasterUid() + " | " + + ImClock.millis2time(g.getCreateTime())) + .collect(Collectors.toList()); + Console.logList("我的群聊", userLines); + } + } diff --git a/im-das-api/im-das-group-api/src/main/java/net/sopod/soim/das/group/api/model/dto/GroupView.java b/im-das-api/im-das-group-api/src/main/java/net/sopod/soim/das/group/api/model/dto/GroupView.java new file mode 100644 index 0000000..2d3e1b5 --- /dev/null +++ b/im-das-api/im-das-group-api/src/main/java/net/sopod/soim/das/group/api/model/dto/GroupView.java @@ -0,0 +1,36 @@ +package net.sopod.soim.das.group.api.model.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * GroupView + * + * @author tmy + * @date 2022-06-06 21:04 + */ +@Data +@Accessors(chain = true) +public class GroupView implements Serializable { + + private static final long serialVersionUID = -9110996998635374890L; + + private Long gid; + + /** 群主id */ + private Long masterUid; + + private String gName; + + private Integer userLimit; + + private Integer userNum; + + private Integer unreadNum; + + private Date createTime; + +} diff --git a/im-das-api/im-das-group-api/src/main/java/net/sopod/soim/das/group/api/service/DasGroupService.java b/im-das-api/im-das-group-api/src/main/java/net/sopod/soim/das/group/api/service/DasGroupService.java index 22a263c..2ae7730 100644 --- a/im-das-api/im-das-group-api/src/main/java/net/sopod/soim/das/group/api/service/DasGroupService.java +++ b/im-das-api/im-das-group-api/src/main/java/net/sopod/soim/das/group/api/service/DasGroupService.java @@ -1,5 +1,6 @@ package net.sopod.soim.das.group.api.service; +import net.sopod.soim.das.group.api.model.dto.GroupView; import net.sopod.soim.das.group.api.model.entity.ImGroup; import java.util.List; @@ -16,6 +17,8 @@ public interface DasGroupService { Long saveGroup(ImGroup imGroup); - List listGroup(String groupNameLike); + List searchGroup(String groupNameLike); + + List listUserGroup(Long uid); } diff --git a/im-das/im-das-group/src/main/java/net/sopod/soim/das/group/service/DasGroupServiceImpl.java b/im-das/im-das-group/src/main/java/net/sopod/soim/das/group/service/DasGroupServiceImpl.java index fe6df92..95ceee5 100644 --- a/im-das/im-das-group/src/main/java/net/sopod/soim/das/group/service/DasGroupServiceImpl.java +++ b/im-das/im-das-group/src/main/java/net/sopod/soim/das/group/service/DasGroupServiceImpl.java @@ -2,17 +2,24 @@ package net.sopod.soim.das.group.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import net.sopod.soim.common.util.Collects; import net.sopod.soim.common.util.ImClock; import net.sopod.soim.das.common.config.LogicTables; +import net.sopod.soim.das.group.api.model.dto.GroupView; import net.sopod.soim.das.group.api.model.entity.ImGroup; +import net.sopod.soim.das.group.api.model.entity.ImGroupUser; import net.sopod.soim.das.group.api.service.DasGroupService; import net.sopod.soim.das.group.dao.ImGroupMapper; +import net.sopod.soim.das.group.dao.ImGroupUserMapper; import net.sopod.soim.logic.api.segmentid.core.SegmentIdGenerator; import org.apache.dubbo.config.annotation.DubboService; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.Collections; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * DasGroupServiceImpl @@ -26,6 +33,9 @@ public class DasGroupServiceImpl implements DasGroupService { @Resource private ImGroupMapper imGroupMapper; + @Resource + private ImGroupUserMapper imGroupUserMapper; + @Resource private DasGroupUserServiceImpl dasGroupUserService; @@ -54,10 +64,47 @@ public class DasGroupServiceImpl implements DasGroupService { } @Override - public List listGroup(String groupNameLike) { + public List searchGroup(String groupNameLike) { LambdaQueryWrapper imGroupQuery = new QueryWrapper().lambda() .likeRight(ImGroup::getGroupName, groupNameLike); return imGroupMapper.selectList(imGroupQuery); } + @Override + public List listUserGroup(Long uid) { + LambdaQueryWrapper groupUsersWrapper = new QueryWrapper().lambda() + .select(ImGroupUser::getGroupId, ImGroupUser::getUnreadNum) + .eq(ImGroupUser::getUid, uid); + List imGroupUsers = imGroupUserMapper.selectList(groupUsersWrapper); + if (Collects.isEmpty(imGroupUsers)) { + return Collections.emptyList(); + } + // 准备数据 + List groupIds = imGroupUsers.stream().map(ImGroupUser::getGroupId).collect(Collectors.toList()); + Map guMap = Collects.collect2Map(imGroupUsers, ImGroupUser::getGroupId); + // 查询群信息 + LambdaQueryWrapper imGroupWrapper = new QueryWrapper().lambda() + .select(ImGroup::getId, + ImGroup::getGroupName, + ImGroup::getMasterUid, + ImGroup::getUserNum, + ImGroup::getUserLimit) + .in(ImGroup::getId, groupIds) + .eq(ImGroup::getStatus, LogicTables.STATUS_NORMAL); + // 查询群信息 + List imGroups = imGroupMapper.selectList(imGroupWrapper); + // 映射结果 + return imGroups.stream().map(g -> { + ImGroupUser gu = guMap.get(g.getId()); + return new GroupView() + .setGid(g.getId()) + .setGName(g.getGroupName()) + .setMasterUid(g.getMasterUid()) + .setUserNum(g.getUserNum()) + .setCreateTime(g.getCreateTime()) + .setUserLimit(g.getUserLimit()) + .setUnreadNum(gu.getUnreadNum()); + }).collect(Collectors.toList()); + } + } diff --git a/im-entry/src/main/java/net/sopod/soim/entry/handlers/group/ReqSearchGroupHandler.java b/im-entry/src/main/java/net/sopod/soim/entry/handlers/group/ReqSearchGroupHandler.java index aa05a9d..702bfec 100644 --- a/im-entry/src/main/java/net/sopod/soim/entry/handlers/group/ReqSearchGroupHandler.java +++ b/im-entry/src/main/java/net/sopod/soim/entry/handlers/group/ReqSearchGroupHandler.java @@ -34,6 +34,7 @@ public class ReqSearchGroupHandler extends AccountMessageHandler { + + @DubboReference + private ImGroupService imGroupService; + + @Override + public MessageLite handle(ImContext ctx, Account account, Group.ReqUserGroups req) { + List groupViews = imGroupService.listUserGroups(account.getUid()); + List groupInfos = groupViews.stream().map(g -> Group.GroupInfo.newBuilder() + .setGid(g.getGid()) + .setGroupName(g.getGName()) + .setUserLimit(g.getUserLimit()) + .setUserNum(g.getUserNum()) + .setMasterUid(g.getMasterUid()) + .setCreateTime(g.getCreateTime() == null ? 0L : g.getCreateTime().getTime()) + .build() + ).collect(Collectors.toList()); + + return Group.ResUserGroups.newBuilder() + .addAllGroups(groupInfos) + .build(); + } + +} diff --git a/im-service-api/im-entry-protocol/src/main/java/net/sopod/soim/data/msg/group/Group.java b/im-service-api/im-entry-protocol/src/main/java/net/sopod/soim/data/msg/group/Group.java index 03a667a..e0ad12b 100644 --- a/im-service-api/im-entry-protocol/src/main/java/net/sopod/soim/data/msg/group/Group.java +++ b/im-service-api/im-entry-protocol/src/main/java/net/sopod/soim/data/msg/group/Group.java @@ -53,6 +53,12 @@ public final class Group { * @return The createTime. */ long getCreateTime(); + + /** + * int64 masterUid = 6; + * @return The masterUid. + */ + long getMasterUid(); } /** * Protobuf type {@code net.sopod.soim.data.msg.group.GroupInfo} @@ -126,6 +132,11 @@ public final class Group { createTime_ = input.readInt64(); break; } + case 48: { + + masterUid_ = input.readInt64(); + break; + } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { @@ -240,6 +251,17 @@ public final class Group { return createTime_; } + public static final int MASTERUID_FIELD_NUMBER = 6; + private long masterUid_; + /** + * int64 masterUid = 6; + * @return The masterUid. + */ + @java.lang.Override + public long getMasterUid() { + return masterUid_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -269,6 +291,9 @@ public final class Group { if (createTime_ != 0L) { output.writeInt64(5, createTime_); } + if (masterUid_ != 0L) { + output.writeInt64(6, masterUid_); + } unknownFields.writeTo(output); } @@ -297,6 +322,10 @@ public final class Group { size += com.google.protobuf.CodedOutputStream .computeInt64Size(5, createTime_); } + if (masterUid_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(6, masterUid_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -322,6 +351,8 @@ public final class Group { != other.getUserNum()) return false; if (getCreateTime() != other.getCreateTime()) return false; + if (getMasterUid() + != other.getMasterUid()) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -345,6 +376,9 @@ public final class Group { hash = (37 * hash) + CREATETIME_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getCreateTime()); + hash = (37 * hash) + MASTERUID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getMasterUid()); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -488,6 +522,8 @@ public final class Group { createTime_ = 0L; + masterUid_ = 0L; + return this; } @@ -519,6 +555,7 @@ public final class Group { result.userLimit_ = userLimit_; result.userNum_ = userNum_; result.createTime_ = createTime_; + result.masterUid_ = masterUid_; onBuilt(); return result; } @@ -583,6 +620,9 @@ public final class Group { if (other.getCreateTime() != 0L) { setCreateTime(other.getCreateTime()); } + if (other.getMasterUid() != 0L) { + setMasterUid(other.getMasterUid()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -811,6 +851,37 @@ public final class Group { onChanged(); return this; } + + private long masterUid_ ; + /** + * int64 masterUid = 6; + * @return The masterUid. + */ + @java.lang.Override + public long getMasterUid() { + return masterUid_; + } + /** + * int64 masterUid = 6; + * @param value The masterUid to set. + * @return This builder for chaining. + */ + public Builder setMasterUid(long value) { + + masterUid_ = value; + onChanged(); + return this; + } + /** + * int64 masterUid = 6; + * @return This builder for chaining. + */ + public Builder clearMasterUid() { + + masterUid_ = 0L; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -1713,54 +1784,1265 @@ public final class Group { * bool online = 4; * @return This builder for chaining. */ - public Builder clearOnline() { - - online_ = false; - onChanged(); - return this; + public Builder clearOnline() { + + online_ = false; + onChanged(); + return this; + } + + private long lastActive_ ; + /** + *
+       * 最后活跃时间
+       * 
+ * + * int64 lastActive = 5; + * @return The lastActive. + */ + @java.lang.Override + public long getLastActive() { + return lastActive_; + } + /** + *
+       * 最后活跃时间
+       * 
+ * + * int64 lastActive = 5; + * @param value The lastActive to set. + * @return This builder for chaining. + */ + public Builder setLastActive(long value) { + + lastActive_ = value; + onChanged(); + return this; + } + /** + *
+       * 最后活跃时间
+       * 
+ * + * int64 lastActive = 5; + * @return This builder for chaining. + */ + public Builder clearLastActive() { + + lastActive_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:net.sopod.soim.data.msg.group.UserInfo) + } + + // @@protoc_insertion_point(class_scope:net.sopod.soim.data.msg.group.UserInfo) + private static final net.sopod.soim.data.msg.group.Group.UserInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new net.sopod.soim.data.msg.group.Group.UserInfo(); + } + + public static net.sopod.soim.data.msg.group.Group.UserInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public UserInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new UserInfo(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public net.sopod.soim.data.msg.group.Group.UserInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ReqUserGroupsOrBuilder extends + // @@protoc_insertion_point(interface_extends:net.sopod.soim.data.msg.group.ReqUserGroups) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code net.sopod.soim.data.msg.group.ReqUserGroups} + */ + public static final class ReqUserGroups extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:net.sopod.soim.data.msg.group.ReqUserGroups) + ReqUserGroupsOrBuilder { + private static final long serialVersionUID = 0L; + // Use ReqUserGroups.newBuilder() to construct. + private ReqUserGroups(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ReqUserGroups() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new ReqUserGroups(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ReqUserGroups( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return net.sopod.soim.data.msg.group.Group.internal_static_net_sopod_soim_data_msg_group_ReqUserGroups_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return net.sopod.soim.data.msg.group.Group.internal_static_net_sopod_soim_data_msg_group_ReqUserGroups_fieldAccessorTable + .ensureFieldAccessorsInitialized( + net.sopod.soim.data.msg.group.Group.ReqUserGroups.class, net.sopod.soim.data.msg.group.Group.ReqUserGroups.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof net.sopod.soim.data.msg.group.Group.ReqUserGroups)) { + return super.equals(obj); + } + net.sopod.soim.data.msg.group.Group.ReqUserGroups other = (net.sopod.soim.data.msg.group.Group.ReqUserGroups) obj; + + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static net.sopod.soim.data.msg.group.Group.ReqUserGroups parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static net.sopod.soim.data.msg.group.Group.ReqUserGroups parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static net.sopod.soim.data.msg.group.Group.ReqUserGroups parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static net.sopod.soim.data.msg.group.Group.ReqUserGroups parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static net.sopod.soim.data.msg.group.Group.ReqUserGroups parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static net.sopod.soim.data.msg.group.Group.ReqUserGroups parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static net.sopod.soim.data.msg.group.Group.ReqUserGroups parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static net.sopod.soim.data.msg.group.Group.ReqUserGroups parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static net.sopod.soim.data.msg.group.Group.ReqUserGroups parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static net.sopod.soim.data.msg.group.Group.ReqUserGroups parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static net.sopod.soim.data.msg.group.Group.ReqUserGroups parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static net.sopod.soim.data.msg.group.Group.ReqUserGroups parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(net.sopod.soim.data.msg.group.Group.ReqUserGroups prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code net.sopod.soim.data.msg.group.ReqUserGroups} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:net.sopod.soim.data.msg.group.ReqUserGroups) + net.sopod.soim.data.msg.group.Group.ReqUserGroupsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return net.sopod.soim.data.msg.group.Group.internal_static_net_sopod_soim_data_msg_group_ReqUserGroups_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return net.sopod.soim.data.msg.group.Group.internal_static_net_sopod_soim_data_msg_group_ReqUserGroups_fieldAccessorTable + .ensureFieldAccessorsInitialized( + net.sopod.soim.data.msg.group.Group.ReqUserGroups.class, net.sopod.soim.data.msg.group.Group.ReqUserGroups.Builder.class); + } + + // Construct using net.sopod.soim.data.msg.group.Group.ReqUserGroups.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return net.sopod.soim.data.msg.group.Group.internal_static_net_sopod_soim_data_msg_group_ReqUserGroups_descriptor; + } + + @java.lang.Override + public net.sopod.soim.data.msg.group.Group.ReqUserGroups getDefaultInstanceForType() { + return net.sopod.soim.data.msg.group.Group.ReqUserGroups.getDefaultInstance(); + } + + @java.lang.Override + public net.sopod.soim.data.msg.group.Group.ReqUserGroups build() { + net.sopod.soim.data.msg.group.Group.ReqUserGroups result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public net.sopod.soim.data.msg.group.Group.ReqUserGroups buildPartial() { + net.sopod.soim.data.msg.group.Group.ReqUserGroups result = new net.sopod.soim.data.msg.group.Group.ReqUserGroups(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof net.sopod.soim.data.msg.group.Group.ReqUserGroups) { + return mergeFrom((net.sopod.soim.data.msg.group.Group.ReqUserGroups)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(net.sopod.soim.data.msg.group.Group.ReqUserGroups other) { + if (other == net.sopod.soim.data.msg.group.Group.ReqUserGroups.getDefaultInstance()) return this; + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + net.sopod.soim.data.msg.group.Group.ReqUserGroups parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (net.sopod.soim.data.msg.group.Group.ReqUserGroups) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:net.sopod.soim.data.msg.group.ReqUserGroups) + } + + // @@protoc_insertion_point(class_scope:net.sopod.soim.data.msg.group.ReqUserGroups) + private static final net.sopod.soim.data.msg.group.Group.ReqUserGroups DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new net.sopod.soim.data.msg.group.Group.ReqUserGroups(); + } + + public static net.sopod.soim.data.msg.group.Group.ReqUserGroups getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ReqUserGroups parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ReqUserGroups(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public net.sopod.soim.data.msg.group.Group.ReqUserGroups getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ResUserGroupsOrBuilder extends + // @@protoc_insertion_point(interface_extends:net.sopod.soim.data.msg.group.ResUserGroups) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + java.util.List + getGroupsList(); + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + net.sopod.soim.data.msg.group.Group.GroupInfo getGroups(int index); + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + int getGroupsCount(); + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + java.util.List + getGroupsOrBuilderList(); + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + net.sopod.soim.data.msg.group.Group.GroupInfoOrBuilder getGroupsOrBuilder( + int index); + } + /** + * Protobuf type {@code net.sopod.soim.data.msg.group.ResUserGroups} + */ + public static final class ResUserGroups extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:net.sopod.soim.data.msg.group.ResUserGroups) + ResUserGroupsOrBuilder { + private static final long serialVersionUID = 0L; + // Use ResUserGroups.newBuilder() to construct. + private ResUserGroups(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ResUserGroups() { + groups_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new ResUserGroups(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ResUserGroups( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + groups_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000001; + } + groups_.add( + input.readMessage(net.sopod.soim.data.msg.group.Group.GroupInfo.parser(), extensionRegistry)); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + groups_ = java.util.Collections.unmodifiableList(groups_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return net.sopod.soim.data.msg.group.Group.internal_static_net_sopod_soim_data_msg_group_ResUserGroups_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return net.sopod.soim.data.msg.group.Group.internal_static_net_sopod_soim_data_msg_group_ResUserGroups_fieldAccessorTable + .ensureFieldAccessorsInitialized( + net.sopod.soim.data.msg.group.Group.ResUserGroups.class, net.sopod.soim.data.msg.group.Group.ResUserGroups.Builder.class); + } + + public static final int GROUPS_FIELD_NUMBER = 1; + private java.util.List groups_; + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + @java.lang.Override + public java.util.List getGroupsList() { + return groups_; + } + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + @java.lang.Override + public java.util.List + getGroupsOrBuilderList() { + return groups_; + } + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + @java.lang.Override + public int getGroupsCount() { + return groups_.size(); + } + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + @java.lang.Override + public net.sopod.soim.data.msg.group.Group.GroupInfo getGroups(int index) { + return groups_.get(index); + } + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + @java.lang.Override + public net.sopod.soim.data.msg.group.Group.GroupInfoOrBuilder getGroupsOrBuilder( + int index) { + return groups_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < groups_.size(); i++) { + output.writeMessage(1, groups_.get(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < groups_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, groups_.get(i)); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof net.sopod.soim.data.msg.group.Group.ResUserGroups)) { + return super.equals(obj); + } + net.sopod.soim.data.msg.group.Group.ResUserGroups other = (net.sopod.soim.data.msg.group.Group.ResUserGroups) obj; + + if (!getGroupsList() + .equals(other.getGroupsList())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getGroupsCount() > 0) { + hash = (37 * hash) + GROUPS_FIELD_NUMBER; + hash = (53 * hash) + getGroupsList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static net.sopod.soim.data.msg.group.Group.ResUserGroups parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static net.sopod.soim.data.msg.group.Group.ResUserGroups parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static net.sopod.soim.data.msg.group.Group.ResUserGroups parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static net.sopod.soim.data.msg.group.Group.ResUserGroups parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static net.sopod.soim.data.msg.group.Group.ResUserGroups parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static net.sopod.soim.data.msg.group.Group.ResUserGroups parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static net.sopod.soim.data.msg.group.Group.ResUserGroups parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static net.sopod.soim.data.msg.group.Group.ResUserGroups parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static net.sopod.soim.data.msg.group.Group.ResUserGroups parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static net.sopod.soim.data.msg.group.Group.ResUserGroups parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static net.sopod.soim.data.msg.group.Group.ResUserGroups parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static net.sopod.soim.data.msg.group.Group.ResUserGroups parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(net.sopod.soim.data.msg.group.Group.ResUserGroups prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code net.sopod.soim.data.msg.group.ResUserGroups} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:net.sopod.soim.data.msg.group.ResUserGroups) + net.sopod.soim.data.msg.group.Group.ResUserGroupsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return net.sopod.soim.data.msg.group.Group.internal_static_net_sopod_soim_data_msg_group_ResUserGroups_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return net.sopod.soim.data.msg.group.Group.internal_static_net_sopod_soim_data_msg_group_ResUserGroups_fieldAccessorTable + .ensureFieldAccessorsInitialized( + net.sopod.soim.data.msg.group.Group.ResUserGroups.class, net.sopod.soim.data.msg.group.Group.ResUserGroups.Builder.class); + } + + // Construct using net.sopod.soim.data.msg.group.Group.ResUserGroups.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + getGroupsFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (groupsBuilder_ == null) { + groups_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + } else { + groupsBuilder_.clear(); + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return net.sopod.soim.data.msg.group.Group.internal_static_net_sopod_soim_data_msg_group_ResUserGroups_descriptor; + } + + @java.lang.Override + public net.sopod.soim.data.msg.group.Group.ResUserGroups getDefaultInstanceForType() { + return net.sopod.soim.data.msg.group.Group.ResUserGroups.getDefaultInstance(); + } + + @java.lang.Override + public net.sopod.soim.data.msg.group.Group.ResUserGroups build() { + net.sopod.soim.data.msg.group.Group.ResUserGroups result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public net.sopod.soim.data.msg.group.Group.ResUserGroups buildPartial() { + net.sopod.soim.data.msg.group.Group.ResUserGroups result = new net.sopod.soim.data.msg.group.Group.ResUserGroups(this); + int from_bitField0_ = bitField0_; + if (groupsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + groups_ = java.util.Collections.unmodifiableList(groups_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.groups_ = groups_; + } else { + result.groups_ = groupsBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof net.sopod.soim.data.msg.group.Group.ResUserGroups) { + return mergeFrom((net.sopod.soim.data.msg.group.Group.ResUserGroups)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(net.sopod.soim.data.msg.group.Group.ResUserGroups other) { + if (other == net.sopod.soim.data.msg.group.Group.ResUserGroups.getDefaultInstance()) return this; + if (groupsBuilder_ == null) { + if (!other.groups_.isEmpty()) { + if (groups_.isEmpty()) { + groups_ = other.groups_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureGroupsIsMutable(); + groups_.addAll(other.groups_); + } + onChanged(); + } + } else { + if (!other.groups_.isEmpty()) { + if (groupsBuilder_.isEmpty()) { + groupsBuilder_.dispose(); + groupsBuilder_ = null; + groups_ = other.groups_; + bitField0_ = (bitField0_ & ~0x00000001); + groupsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getGroupsFieldBuilder() : null; + } else { + groupsBuilder_.addAllMessages(other.groups_); + } + } + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + net.sopod.soim.data.msg.group.Group.ResUserGroups parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (net.sopod.soim.data.msg.group.Group.ResUserGroups) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private java.util.List groups_ = + java.util.Collections.emptyList(); + private void ensureGroupsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + groups_ = new java.util.ArrayList(groups_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + net.sopod.soim.data.msg.group.Group.GroupInfo, net.sopod.soim.data.msg.group.Group.GroupInfo.Builder, net.sopod.soim.data.msg.group.Group.GroupInfoOrBuilder> groupsBuilder_; + + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + public java.util.List getGroupsList() { + if (groupsBuilder_ == null) { + return java.util.Collections.unmodifiableList(groups_); + } else { + return groupsBuilder_.getMessageList(); + } + } + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + public int getGroupsCount() { + if (groupsBuilder_ == null) { + return groups_.size(); + } else { + return groupsBuilder_.getCount(); + } + } + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + public net.sopod.soim.data.msg.group.Group.GroupInfo getGroups(int index) { + if (groupsBuilder_ == null) { + return groups_.get(index); + } else { + return groupsBuilder_.getMessage(index); + } + } + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + public Builder setGroups( + int index, net.sopod.soim.data.msg.group.Group.GroupInfo value) { + if (groupsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureGroupsIsMutable(); + groups_.set(index, value); + onChanged(); + } else { + groupsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + public Builder setGroups( + int index, net.sopod.soim.data.msg.group.Group.GroupInfo.Builder builderForValue) { + if (groupsBuilder_ == null) { + ensureGroupsIsMutable(); + groups_.set(index, builderForValue.build()); + onChanged(); + } else { + groupsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + public Builder addGroups(net.sopod.soim.data.msg.group.Group.GroupInfo value) { + if (groupsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureGroupsIsMutable(); + groups_.add(value); + onChanged(); + } else { + groupsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + public Builder addGroups( + int index, net.sopod.soim.data.msg.group.Group.GroupInfo value) { + if (groupsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureGroupsIsMutable(); + groups_.add(index, value); + onChanged(); + } else { + groupsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + public Builder addGroups( + net.sopod.soim.data.msg.group.Group.GroupInfo.Builder builderForValue) { + if (groupsBuilder_ == null) { + ensureGroupsIsMutable(); + groups_.add(builderForValue.build()); + onChanged(); + } else { + groupsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + public Builder addGroups( + int index, net.sopod.soim.data.msg.group.Group.GroupInfo.Builder builderForValue) { + if (groupsBuilder_ == null) { + ensureGroupsIsMutable(); + groups_.add(index, builderForValue.build()); + onChanged(); + } else { + groupsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + public Builder addAllGroups( + java.lang.Iterable values) { + if (groupsBuilder_ == null) { + ensureGroupsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, groups_); + onChanged(); + } else { + groupsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + public Builder clearGroups() { + if (groupsBuilder_ == null) { + groups_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + groupsBuilder_.clear(); + } + return this; + } + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + public Builder removeGroups(int index) { + if (groupsBuilder_ == null) { + ensureGroupsIsMutable(); + groups_.remove(index); + onChanged(); + } else { + groupsBuilder_.remove(index); + } + return this; + } + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + public net.sopod.soim.data.msg.group.Group.GroupInfo.Builder getGroupsBuilder( + int index) { + return getGroupsFieldBuilder().getBuilder(index); + } + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + public net.sopod.soim.data.msg.group.Group.GroupInfoOrBuilder getGroupsOrBuilder( + int index) { + if (groupsBuilder_ == null) { + return groups_.get(index); } else { + return groupsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; + */ + public java.util.List + getGroupsOrBuilderList() { + if (groupsBuilder_ != null) { + return groupsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(groups_); + } } - - private long lastActive_ ; /** - *
-       * 最后活跃时间
-       * 
- * - * int64 lastActive = 5; - * @return The lastActive. + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; */ - @java.lang.Override - public long getLastActive() { - return lastActive_; + public net.sopod.soim.data.msg.group.Group.GroupInfo.Builder addGroupsBuilder() { + return getGroupsFieldBuilder().addBuilder( + net.sopod.soim.data.msg.group.Group.GroupInfo.getDefaultInstance()); } /** - *
-       * 最后活跃时间
-       * 
- * - * int64 lastActive = 5; - * @param value The lastActive to set. - * @return This builder for chaining. + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; */ - public Builder setLastActive(long value) { - - lastActive_ = value; - onChanged(); - return this; + public net.sopod.soim.data.msg.group.Group.GroupInfo.Builder addGroupsBuilder( + int index) { + return getGroupsFieldBuilder().addBuilder( + index, net.sopod.soim.data.msg.group.Group.GroupInfo.getDefaultInstance()); } /** - *
-       * 最后活跃时间
-       * 
- * - * int64 lastActive = 5; - * @return This builder for chaining. + * repeated .net.sopod.soim.data.msg.group.GroupInfo groups = 1; */ - public Builder clearLastActive() { - - lastActive_ = 0L; - onChanged(); - return this; + public java.util.List + getGroupsBuilderList() { + return getGroupsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + net.sopod.soim.data.msg.group.Group.GroupInfo, net.sopod.soim.data.msg.group.Group.GroupInfo.Builder, net.sopod.soim.data.msg.group.Group.GroupInfoOrBuilder> + getGroupsFieldBuilder() { + if (groupsBuilder_ == null) { + groupsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + net.sopod.soim.data.msg.group.Group.GroupInfo, net.sopod.soim.data.msg.group.Group.GroupInfo.Builder, net.sopod.soim.data.msg.group.Group.GroupInfoOrBuilder>( + groups_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + groups_ = null; + } + return groupsBuilder_; } @java.lang.Override public final Builder setUnknownFields( @@ -1775,41 +3057,41 @@ public final class Group { } - // @@protoc_insertion_point(builder_scope:net.sopod.soim.data.msg.group.UserInfo) + // @@protoc_insertion_point(builder_scope:net.sopod.soim.data.msg.group.ResUserGroups) } - // @@protoc_insertion_point(class_scope:net.sopod.soim.data.msg.group.UserInfo) - private static final net.sopod.soim.data.msg.group.Group.UserInfo DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:net.sopod.soim.data.msg.group.ResUserGroups) + private static final net.sopod.soim.data.msg.group.Group.ResUserGroups DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new net.sopod.soim.data.msg.group.Group.UserInfo(); + DEFAULT_INSTANCE = new net.sopod.soim.data.msg.group.Group.ResUserGroups(); } - public static net.sopod.soim.data.msg.group.Group.UserInfo getDefaultInstance() { + public static net.sopod.soim.data.msg.group.Group.ResUserGroups getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override - public UserInfo parsePartialFrom( + public ResUserGroups parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new UserInfo(input, extensionRegistry); + return new ResUserGroups(input, extensionRegistry); } }; - public static com.google.protobuf.Parser parser() { + public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser getParserForType() { + public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override - public net.sopod.soim.data.msg.group.Group.UserInfo getDefaultInstanceForType() { + public net.sopod.soim.data.msg.group.Group.ResUserGroups getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -5674,13 +6956,13 @@ public final class Group { /** *
-     * 接收者uid
+     * 群聊id
      * 
* - * int64 receiver = 2; - * @return The receiver. + * int64 gid = 2; + * @return The gid. */ - long getReceiver(); + long getGid(); /** *
@@ -5711,26 +6993,6 @@ public final class Group {
      * @return The time.
      */
     long getTime();
-
-    /**
-     * 
-     * 接收者账号
-     * 
- * - * string receiverAccount = 5; - * @return The receiverAccount. - */ - java.lang.String getReceiverAccount(); - /** - *
-     * 接收者账号
-     * 
- * - * string receiverAccount = 5; - * @return The bytes for receiverAccount. - */ - com.google.protobuf.ByteString - getReceiverAccountBytes(); } /** *
@@ -5750,7 +7012,6 @@ public final class Group {
     }
     private ReqGroupMessage() {
       message_ = "";
-      receiverAccount_ = "";
     }
 
     @java.lang.Override
@@ -5790,7 +7051,7 @@ public final class Group {
             }
             case 16: {
 
-              receiver_ = input.readInt64();
+              gid_ = input.readInt64();
               break;
             }
             case 26: {
@@ -5804,12 +7065,6 @@ public final class Group {
               time_ = input.readInt64();
               break;
             }
-            case 42: {
-              java.lang.String s = input.readStringRequireUtf8();
-
-              receiverAccount_ = s;
-              break;
-            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -5857,19 +7112,19 @@ public final class Group {
       return sender_;
     }
 
-    public static final int RECEIVER_FIELD_NUMBER = 2;
-    private long receiver_;
+    public static final int GID_FIELD_NUMBER = 2;
+    private long gid_;
     /**
      * 
-     * 接收者uid
+     * 群聊id
      * 
* - * int64 receiver = 2; - * @return The receiver. + * int64 gid = 2; + * @return The gid. */ @java.lang.Override - public long getReceiver() { - return receiver_; + public long getGid() { + return gid_; } public static final int MESSAGE_FIELD_NUMBER = 3; @@ -5933,52 +7188,6 @@ public final class Group { return time_; } - public static final int RECEIVERACCOUNT_FIELD_NUMBER = 5; - private volatile java.lang.Object receiverAccount_; - /** - *
-     * 接收者账号
-     * 
- * - * string receiverAccount = 5; - * @return The receiverAccount. - */ - @java.lang.Override - public java.lang.String getReceiverAccount() { - java.lang.Object ref = receiverAccount_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - receiverAccount_ = s; - return s; - } - } - /** - *
-     * 接收者账号
-     * 
- * - * string receiverAccount = 5; - * @return The bytes for receiverAccount. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getReceiverAccountBytes() { - java.lang.Object ref = receiverAccount_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - receiverAccount_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -5996,8 +7205,8 @@ public final class Group { if (sender_ != 0L) { output.writeInt64(1, sender_); } - if (receiver_ != 0L) { - output.writeInt64(2, receiver_); + if (gid_ != 0L) { + output.writeInt64(2, gid_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(message_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, message_); @@ -6005,9 +7214,6 @@ public final class Group { if (time_ != 0L) { output.writeInt64(4, time_); } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(receiverAccount_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 5, receiverAccount_); - } unknownFields.writeTo(output); } @@ -6021,9 +7227,9 @@ public final class Group { size += com.google.protobuf.CodedOutputStream .computeInt64Size(1, sender_); } - if (receiver_ != 0L) { + if (gid_ != 0L) { size += com.google.protobuf.CodedOutputStream - .computeInt64Size(2, receiver_); + .computeInt64Size(2, gid_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(message_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, message_); @@ -6032,9 +7238,6 @@ public final class Group { size += com.google.protobuf.CodedOutputStream .computeInt64Size(4, time_); } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(receiverAccount_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, receiverAccount_); - } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -6052,14 +7255,12 @@ public final class Group { if (getSender() != other.getSender()) return false; - if (getReceiver() - != other.getReceiver()) return false; + if (getGid() + != other.getGid()) return false; if (!getMessage() .equals(other.getMessage())) return false; if (getTime() != other.getTime()) return false; - if (!getReceiverAccount() - .equals(other.getReceiverAccount())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -6074,16 +7275,14 @@ public final class Group { hash = (37 * hash) + SENDER_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getSender()); - hash = (37 * hash) + RECEIVER_FIELD_NUMBER; + hash = (37 * hash) + GID_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getReceiver()); + getGid()); hash = (37 * hash) + MESSAGE_FIELD_NUMBER; hash = (53 * hash) + getMessage().hashCode(); hash = (37 * hash) + TIME_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getTime()); - hash = (37 * hash) + RECEIVERACCOUNT_FIELD_NUMBER; - hash = (53 * hash) + getReceiverAccount().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -6223,14 +7422,12 @@ public final class Group { super.clear(); sender_ = 0L; - receiver_ = 0L; + gid_ = 0L; message_ = ""; time_ = 0L; - receiverAccount_ = ""; - return this; } @@ -6258,10 +7455,9 @@ public final class Group { public net.sopod.soim.data.msg.group.Group.ReqGroupMessage buildPartial() { net.sopod.soim.data.msg.group.Group.ReqGroupMessage result = new net.sopod.soim.data.msg.group.Group.ReqGroupMessage(this); result.sender_ = sender_; - result.receiver_ = receiver_; + result.gid_ = gid_; result.message_ = message_; result.time_ = time_; - result.receiverAccount_ = receiverAccount_; onBuilt(); return result; } @@ -6313,8 +7509,8 @@ public final class Group { if (other.getSender() != 0L) { setSender(other.getSender()); } - if (other.getReceiver() != 0L) { - setReceiver(other.getReceiver()); + if (other.getGid() != 0L) { + setGid(other.getGid()); } if (!other.getMessage().isEmpty()) { message_ = other.message_; @@ -6323,10 +7519,6 @@ public final class Group { if (other.getTime() != 0L) { setTime(other.getTime()); } - if (!other.getReceiverAccount().isEmpty()) { - receiverAccount_ = other.receiverAccount_; - onChanged(); - } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -6399,45 +7591,45 @@ public final class Group { return this; } - private long receiver_ ; + private long gid_ ; /** *
-       * 接收者uid
+       * 群聊id
        * 
* - * int64 receiver = 2; - * @return The receiver. + * int64 gid = 2; + * @return The gid. */ @java.lang.Override - public long getReceiver() { - return receiver_; + public long getGid() { + return gid_; } /** *
-       * 接收者uid
+       * 群聊id
        * 
* - * int64 receiver = 2; - * @param value The receiver to set. + * int64 gid = 2; + * @param value The gid to set. * @return This builder for chaining. */ - public Builder setReceiver(long value) { + public Builder setGid(long value) { - receiver_ = value; + gid_ = value; onChanged(); return this; } /** *
-       * 接收者uid
+       * 群聊id
        * 
* - * int64 receiver = 2; + * int64 gid = 2; * @return This builder for chaining. */ - public Builder clearReceiver() { + public Builder clearGid() { - receiver_ = 0L; + gid_ = 0L; onChanged(); return this; } @@ -6580,102 +7772,6 @@ public final class Group { onChanged(); return this; } - - private java.lang.Object receiverAccount_ = ""; - /** - *
-       * 接收者账号
-       * 
- * - * string receiverAccount = 5; - * @return The receiverAccount. - */ - public java.lang.String getReceiverAccount() { - java.lang.Object ref = receiverAccount_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - receiverAccount_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - *
-       * 接收者账号
-       * 
- * - * string receiverAccount = 5; - * @return The bytes for receiverAccount. - */ - public com.google.protobuf.ByteString - getReceiverAccountBytes() { - java.lang.Object ref = receiverAccount_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - receiverAccount_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - *
-       * 接收者账号
-       * 
- * - * string receiverAccount = 5; - * @param value The receiverAccount to set. - * @return This builder for chaining. - */ - public Builder setReceiverAccount( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - receiverAccount_ = value; - onChanged(); - return this; - } - /** - *
-       * 接收者账号
-       * 
- * - * string receiverAccount = 5; - * @return This builder for chaining. - */ - public Builder clearReceiverAccount() { - - receiverAccount_ = getDefaultInstance().getReceiverAccount(); - onChanged(); - return this; - } - /** - *
-       * 接收者账号
-       * 
- * - * string receiverAccount = 5; - * @param value The bytes for receiverAccount to set. - * @return This builder for chaining. - */ - public Builder setReceiverAccountBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - receiverAccount_ = value; - onChanged(); - return this; - } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -7525,6 +8621,16 @@ public final class Group { private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_net_sopod_soim_data_msg_group_UserInfo_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_net_sopod_soim_data_msg_group_ReqUserGroups_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_net_sopod_soim_data_msg_group_ReqUserGroups_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_net_sopod_soim_data_msg_group_ResUserGroups_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_net_sopod_soim_data_msg_group_ResUserGroups_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_net_sopod_soim_data_msg_group_ReqCreateGroup_descriptor; private static final @@ -7575,24 +8681,26 @@ public final class Group { static { java.lang.String[] descriptorData = { "\n\027proto/group/Group.proto\022\035net.sopod.soi" + - "m.data.msg.group\"c\n\tGroupInfo\022\013\n\003gid\030\001 \001" + + "m.data.msg.group\"v\n\tGroupInfo\022\013\n\003gid\030\001 \001" + "(\003\022\021\n\tgroupName\030\002 \001(\t\022\021\n\tuserLimit\030\003 \001(\005" + - "\022\017\n\007userNum\030\004 \001(\005\022\022\n\ncreateTime\030\005 \001(\003\"^\n" + - "\010UserInfo\022\013\n\003uid\030\001 \001(\003\022\017\n\007account\030\002 \001(\t\022" + - "\020\n\010nickname\030\003 \001(\t\022\016\n\006online\030\004 \001(\010\022\022\n\nlas" + - "tActive\030\005 \001(\003\"#\n\016ReqCreateGroup\022\021\n\tgroup" + - "Name\030\001 \001(\t\"#\n\016ReqSearchGroup\022\021\n\tgroupNam" + - "e\030\001 \001(\t\"J\n\016ResSearchGroup\0228\n\006groups\030\003 \003(" + - "\0132(.net.sopod.soim.data.msg.group.GroupI" + - "nfo\"(\n\014ReqJoinGroup\022\013\n\003gid\030\001 \001(\003\022\013\n\003uid\030" + - "\002 \001(\003\"\034\n\rReqGroupUsers\022\013\n\003gid\030\001 \001(\003\"G\n\rR" + - "esGroupUsers\0226\n\005users\030\003 \003(\0132\'.net.sopod." + - "soim.data.msg.group.UserInfo\"k\n\017ReqGroup" + - "Message\022\016\n\006sender\030\001 \001(\003\022\020\n\010receiver\030\002 \001(" + - "\003\022\017\n\007message\030\003 \001(\t\022\014\n\004time\030\004 \001(\003\022\027\n\017rece" + - "iverAccount\030\005 \001(\t\"B\n\017ResGroupMessage\022\017\n\007" + - "success\030\001 \001(\010\022\017\n\007message\030\002 \001(\t\022\r\n\005msgId\030" + - "\003 \001(\003B\tB\005GroupP\000b\006proto3" + "\022\017\n\007userNum\030\004 \001(\005\022\022\n\ncreateTime\030\005 \001(\003\022\021\n" + + "\tmasterUid\030\006 \001(\003\"^\n\010UserInfo\022\013\n\003uid\030\001 \001(" + + "\003\022\017\n\007account\030\002 \001(\t\022\020\n\010nickname\030\003 \001(\t\022\016\n\006" + + "online\030\004 \001(\010\022\022\n\nlastActive\030\005 \001(\003\"\017\n\rReqU" + + "serGroups\"I\n\rResUserGroups\0228\n\006groups\030\001 \003" + + "(\0132(.net.sopod.soim.data.msg.group.Group" + + "Info\"#\n\016ReqCreateGroup\022\021\n\tgroupName\030\001 \001(" + + "\t\"#\n\016ReqSearchGroup\022\021\n\tgroupName\030\001 \001(\t\"J" + + "\n\016ResSearchGroup\0228\n\006groups\030\003 \003(\0132(.net.s" + + "opod.soim.data.msg.group.GroupInfo\"(\n\014Re" + + "qJoinGroup\022\013\n\003gid\030\001 \001(\003\022\013\n\003uid\030\002 \001(\003\"\034\n\r" + + "ReqGroupUsers\022\013\n\003gid\030\001 \001(\003\"G\n\rResGroupUs" + + "ers\0226\n\005users\030\003 \003(\0132\'.net.sopod.soim.data" + + ".msg.group.UserInfo\"M\n\017ReqGroupMessage\022\016" + + "\n\006sender\030\001 \001(\003\022\013\n\003gid\030\002 \001(\003\022\017\n\007message\030\003" + + " \001(\t\022\014\n\004time\030\004 \001(\003\"B\n\017ResGroupMessage\022\017\n" + + "\007success\030\001 \001(\010\022\017\n\007message\030\002 \001(\t\022\r\n\005msgId" + + "\030\003 \001(\003B\tB\005GroupP\000b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -7603,57 +8711,69 @@ public final class Group { internal_static_net_sopod_soim_data_msg_group_GroupInfo_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_net_sopod_soim_data_msg_group_GroupInfo_descriptor, - new java.lang.String[] { "Gid", "GroupName", "UserLimit", "UserNum", "CreateTime", }); + new java.lang.String[] { "Gid", "GroupName", "UserLimit", "UserNum", "CreateTime", "MasterUid", }); internal_static_net_sopod_soim_data_msg_group_UserInfo_descriptor = getDescriptor().getMessageTypes().get(1); internal_static_net_sopod_soim_data_msg_group_UserInfo_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_net_sopod_soim_data_msg_group_UserInfo_descriptor, new java.lang.String[] { "Uid", "Account", "Nickname", "Online", "LastActive", }); - internal_static_net_sopod_soim_data_msg_group_ReqCreateGroup_descriptor = + internal_static_net_sopod_soim_data_msg_group_ReqUserGroups_descriptor = getDescriptor().getMessageTypes().get(2); + internal_static_net_sopod_soim_data_msg_group_ReqUserGroups_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_net_sopod_soim_data_msg_group_ReqUserGroups_descriptor, + new java.lang.String[] { }); + internal_static_net_sopod_soim_data_msg_group_ResUserGroups_descriptor = + getDescriptor().getMessageTypes().get(3); + internal_static_net_sopod_soim_data_msg_group_ResUserGroups_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_net_sopod_soim_data_msg_group_ResUserGroups_descriptor, + new java.lang.String[] { "Groups", }); + internal_static_net_sopod_soim_data_msg_group_ReqCreateGroup_descriptor = + getDescriptor().getMessageTypes().get(4); internal_static_net_sopod_soim_data_msg_group_ReqCreateGroup_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_net_sopod_soim_data_msg_group_ReqCreateGroup_descriptor, new java.lang.String[] { "GroupName", }); internal_static_net_sopod_soim_data_msg_group_ReqSearchGroup_descriptor = - getDescriptor().getMessageTypes().get(3); + getDescriptor().getMessageTypes().get(5); internal_static_net_sopod_soim_data_msg_group_ReqSearchGroup_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_net_sopod_soim_data_msg_group_ReqSearchGroup_descriptor, new java.lang.String[] { "GroupName", }); internal_static_net_sopod_soim_data_msg_group_ResSearchGroup_descriptor = - getDescriptor().getMessageTypes().get(4); + getDescriptor().getMessageTypes().get(6); internal_static_net_sopod_soim_data_msg_group_ResSearchGroup_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_net_sopod_soim_data_msg_group_ResSearchGroup_descriptor, new java.lang.String[] { "Groups", }); internal_static_net_sopod_soim_data_msg_group_ReqJoinGroup_descriptor = - getDescriptor().getMessageTypes().get(5); + getDescriptor().getMessageTypes().get(7); internal_static_net_sopod_soim_data_msg_group_ReqJoinGroup_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_net_sopod_soim_data_msg_group_ReqJoinGroup_descriptor, new java.lang.String[] { "Gid", "Uid", }); internal_static_net_sopod_soim_data_msg_group_ReqGroupUsers_descriptor = - getDescriptor().getMessageTypes().get(6); + getDescriptor().getMessageTypes().get(8); internal_static_net_sopod_soim_data_msg_group_ReqGroupUsers_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_net_sopod_soim_data_msg_group_ReqGroupUsers_descriptor, new java.lang.String[] { "Gid", }); internal_static_net_sopod_soim_data_msg_group_ResGroupUsers_descriptor = - getDescriptor().getMessageTypes().get(7); + getDescriptor().getMessageTypes().get(9); internal_static_net_sopod_soim_data_msg_group_ResGroupUsers_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_net_sopod_soim_data_msg_group_ResGroupUsers_descriptor, new java.lang.String[] { "Users", }); internal_static_net_sopod_soim_data_msg_group_ReqGroupMessage_descriptor = - getDescriptor().getMessageTypes().get(8); + getDescriptor().getMessageTypes().get(10); internal_static_net_sopod_soim_data_msg_group_ReqGroupMessage_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_net_sopod_soim_data_msg_group_ReqGroupMessage_descriptor, - new java.lang.String[] { "Sender", "Receiver", "Message", "Time", "ReceiverAccount", }); + new java.lang.String[] { "Sender", "Gid", "Message", "Time", }); internal_static_net_sopod_soim_data_msg_group_ResGroupMessage_descriptor = - getDescriptor().getMessageTypes().get(9); + getDescriptor().getMessageTypes().get(11); internal_static_net_sopod_soim_data_msg_group_ResGroupMessage_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_net_sopod_soim_data_msg_group_ResGroupMessage_descriptor, diff --git a/im-service-api/im-entry-protocol/src/main/resources/proto/group/Group.proto b/im-service-api/im-entry-protocol/src/main/resources/proto/group/Group.proto index de606c1..bb6d3c6 100644 --- a/im-service-api/im-entry-protocol/src/main/resources/proto/group/Group.proto +++ b/im-service-api/im-entry-protocol/src/main/resources/proto/group/Group.proto @@ -11,6 +11,7 @@ message GroupInfo { int32 userLimit = 3; int32 userNum = 4; int64 createTime = 5; + int64 masterUid = 6; } message UserInfo { @@ -22,6 +23,14 @@ message UserInfo { int64 lastActive = 5; } +message ReqUserGroups { + +} + +message ResUserGroups { + repeated GroupInfo groups = 1; +} + message ReqCreateGroup { // 群名称 string groupName = 1; diff --git a/im-service-api/im-entry-protocol/src/main/resources/protoSerialNoTable.txt b/im-service-api/im-entry-protocol/src/main/resources/protoSerialNoTable.txt index 5ad5bcc..4c8c891 100644 --- a/im-service-api/im-entry-protocol/src/main/resources/protoSerialNoTable.txt +++ b/im-service-api/im-entry-protocol/src/main/resources/protoSerialNoTable.txt @@ -1,28 +1,30 @@ -net.sopod.soim.data.msg.user.Friend$ResFriendList=10000 -net.sopod.soim.data.msg.group.Group$ResSearchGroup=10001 -net.sopod.soim.data.msg.user.AccountSearch$ResAccountSearch=10002 -net.sopod.soim.data.msg.common.Res$ResState=10003 +net.sopod.soim.data.msg.group.Group$ReqUserGroups=10000 +net.sopod.soim.data.msg.group.Group$GroupInfo=10001 +net.sopod.soim.data.msg.group.Group$ResSearchGroup=10002 +net.sopod.soim.data.msg.hello.HelloPB$Hello=10003 net.sopod.soim.data.msg.user.Friend$ReqAddFriend=10004 -net.sopod.soim.data.msg.user.AccountSearch$ReqAccountSearch=10005 -net.sopod.soim.data.msg.user.UserGroup$ResOnlineUserList=10006 -net.sopod.soim.data.msg.user.Friend$ReqFriendList=10007 -net.sopod.soim.data.msg.auth.Auth$ResTokenAuth=10008 -net.sopod.soim.data.msg.user.UserGroup$ReqOnlineUserList=10009 -net.sopod.soim.data.msg.group.Group$ReqSearchGroup=10010 -net.sopod.soim.data.msg.chat.Chat$TextChat=10011 -net.sopod.soim.data.msg.hello.HelloPB$World=10012 -net.sopod.soim.data.msg.hello.HelloPB$Hello=10013 -net.sopod.soim.data.msg.group.Group$ResGroupMessage=10014 -net.sopod.soim.data.msg.net.HeartBeat$Pong=10015 -net.sopod.soim.data.msg.group.Group$ReqJoinGroup=10016 -net.sopod.soim.data.msg.group.Group$ReqCreateGroup=10017 -net.sopod.soim.data.msg.group.Group$UserInfo=10018 -net.sopod.soim.data.msg.auth.Auth$ReqTokenAuth=10019 -net.sopod.soim.data.msg.group.Group$ReqGroupMessage=10020 -net.sopod.soim.data.msg.group.Group$ReqGroupUsers=10021 -net.sopod.soim.data.msg.group.Group$ResGroupUsers=10022 -net.sopod.soim.data.msg.net.HeartBeat$Ping=10023 -net.sopod.soim.data.msg.task.Tasks$NetUserDelayCloseTask=10024 -net.sopod.soim.data.msg.user.UserMsg$UserInfo=10025 -net.sopod.soim.data.msg.user.Friend$ResAddFriend=10026 -net.sopod.soim.data.msg.group.Group$GroupInfo=10027 +net.sopod.soim.data.msg.auth.Auth$ResTokenAuth=10005 +net.sopod.soim.data.msg.chat.Chat$TextChat=10006 +net.sopod.soim.data.msg.user.AccountSearch$ReqAccountSearch=10007 +net.sopod.soim.data.msg.net.HeartBeat$Pong=10008 +net.sopod.soim.data.msg.auth.Auth$ReqTokenAuth=10009 +net.sopod.soim.data.msg.group.Group$ReqGroupUsers=10010 +net.sopod.soim.data.msg.user.UserGroup$ResOnlineUserList=10011 +net.sopod.soim.data.msg.user.AccountSearch$ResAccountSearch=10012 +net.sopod.soim.data.msg.group.Group$ReqCreateGroup=10013 +net.sopod.soim.data.msg.user.Friend$ResFriendList=10014 +net.sopod.soim.data.msg.group.Group$ReqSearchGroup=10015 +net.sopod.soim.data.msg.group.Group$ReqGroupMessage=10016 +net.sopod.soim.data.msg.group.Group$ResGroupUsers=10017 +net.sopod.soim.data.msg.hello.HelloPB$World=10018 +net.sopod.soim.data.msg.group.Group$ReqJoinGroup=10019 +net.sopod.soim.data.msg.user.UserGroup$ReqOnlineUserList=10020 +net.sopod.soim.data.msg.group.Group$UserInfo=10021 +net.sopod.soim.data.msg.group.Group$ResGroupMessage=10022 +net.sopod.soim.data.msg.user.UserMsg$UserInfo=10023 +net.sopod.soim.data.msg.group.Group$ResUserGroups=10024 +net.sopod.soim.data.msg.user.Friend$ResAddFriend=10025 +net.sopod.soim.data.msg.net.HeartBeat$Ping=10026 +net.sopod.soim.data.msg.task.Tasks$NetUserDelayCloseTask=10027 +net.sopod.soim.data.msg.user.Friend$ReqFriendList=10028 +net.sopod.soim.data.msg.common.Res$ResState=10029 diff --git a/im-service-api/im-logic-group-api/src/main/java/net/sopod/soim/logic/api/group/service/ImGroupService.java b/im-service-api/im-logic-group-api/src/main/java/net/sopod/soim/logic/api/group/service/ImGroupService.java index f6193fd..3d3e75c 100644 --- a/im-service-api/im-logic-group-api/src/main/java/net/sopod/soim/logic/api/group/service/ImGroupService.java +++ b/im-service-api/im-logic-group-api/src/main/java/net/sopod/soim/logic/api/group/service/ImGroupService.java @@ -1,5 +1,6 @@ package net.sopod.soim.logic.api.group.service; +import net.sopod.soim.das.group.api.model.dto.GroupView; import net.sopod.soim.das.group.api.model.entity.ImGroup; import net.sopod.soim.logic.api.group.model.dto.GroupUserInfo; @@ -19,6 +20,8 @@ public interface ImGroupService { Long joinGroup(Long groupId, Long uid); + List listUserGroups(Long uid); + List listGroupUsers(Long groupId); } diff --git a/im-service/im-logic-group/src/main/java/net/sopod/soim/logic/group/service/ImGroupServiceImpl.java b/im-service/im-logic-group/src/main/java/net/sopod/soim/logic/group/service/ImGroupServiceImpl.java index 4fd7542..c52d56e 100644 --- a/im-service/im-logic-group/src/main/java/net/sopod/soim/logic/group/service/ImGroupServiceImpl.java +++ b/im-service/im-logic-group/src/main/java/net/sopod/soim/logic/group/service/ImGroupServiceImpl.java @@ -4,6 +4,7 @@ import net.sopod.soim.common.dubbo.exception.LogicException; import net.sopod.soim.common.util.Collects; import net.sopod.soim.common.util.StringUtil; import net.sopod.soim.das.group.api.model.dto.GroupUser_0; +import net.sopod.soim.das.group.api.model.dto.GroupView; import net.sopod.soim.das.group.api.model.entity.ImGroup; import net.sopod.soim.das.group.api.service.DasGroupService; import net.sopod.soim.das.group.api.service.DasGroupUserService; @@ -58,7 +59,7 @@ public class ImGroupServiceImpl implements ImGroupService { @Override public List searchGroup(String groupNameLike) { - return dasGroupService.listGroup(groupNameLike); + return dasGroupService.searchGroup(groupNameLike); } @Override @@ -70,6 +71,11 @@ public class ImGroupServiceImpl implements ImGroupService { return dasGroupUserService.insert(groupId, uid); } + @Override + public List listUserGroups(Long uid) { + return dasGroupService.listUserGroup(uid); + } + @Override public List listGroupUsers(Long groupId) { List groupUsers = dasGroupUserService.listGroupUsers(groupId); diff --git a/im-service/im-logic-group/src/main/resources/application.yml b/im-service/im-logic-group/src/main/resources/application.yml index 6482cd6..5d3599c 100644 --- a/im-service/im-logic-group/src/main/resources/application.yml +++ b/im-service/im-logic-group/src/main/resources/application.yml @@ -9,7 +9,7 @@ dubbo: address: nacos://124.222.131.236:3848 group: so-im protocol: - port: 3006 + port: 3013 consumer: check: false provider: