32 changed files with 3744 additions and 1985 deletions
@ -0,0 +1,50 @@ |
|||||||
|
package net.sopod.soim.das.user.api.service; |
||||||
|
|
||||||
|
import net.sopod.soim.das.user.api.model.entity.ImUser; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* FriendDas |
||||||
|
* |
||||||
|
* @author tmy |
||||||
|
* @date 2022-05-23 15:45 |
||||||
|
*/ |
||||||
|
public interface FriendDas { |
||||||
|
|
||||||
|
/** |
||||||
|
* 新增好友 |
||||||
|
* |
||||||
|
* @param uid 用户id |
||||||
|
* @param fid 好友id |
||||||
|
* @return 影响行数 |
||||||
|
*/ |
||||||
|
int insert(Long uid, Long fid); |
||||||
|
|
||||||
|
/** |
||||||
|
* 好友是否存在 |
||||||
|
* |
||||||
|
* @param uid 用户id |
||||||
|
* @param fid 好友id |
||||||
|
* @return 影响行数 |
||||||
|
*/ |
||||||
|
Boolean isExists(Long uid, Long fid); |
||||||
|
|
||||||
|
/** |
||||||
|
* 删除好友 |
||||||
|
* |
||||||
|
* @param uid 用户id |
||||||
|
* @param fid 好友id |
||||||
|
* @return 影响行数 |
||||||
|
*/ |
||||||
|
int remove(Long uid, Long fid); |
||||||
|
|
||||||
|
/** |
||||||
|
* 查询所有好友 |
||||||
|
* |
||||||
|
* @param uid 主键 |
||||||
|
* @return 好友列表 |
||||||
|
*/ |
||||||
|
List<ImUser> queryAllFriend(Long uid); |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,80 @@ |
|||||||
|
package net.sopod.soim.das.user.service; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
||||||
|
import lombok.AllArgsConstructor; |
||||||
|
import net.sopod.soim.common.constant.LogicConsts; |
||||||
|
import net.sopod.soim.common.util.Collects; |
||||||
|
import net.sopod.soim.common.util.ImClock; |
||||||
|
import net.sopod.soim.das.user.api.model.entity.ImFriend; |
||||||
|
import net.sopod.soim.das.user.api.model.entity.ImUser; |
||||||
|
import net.sopod.soim.das.user.api.service.FriendDas; |
||||||
|
import net.sopod.soim.das.user.dao.FriendMapper; |
||||||
|
import net.sopod.soim.das.user.dao.UserMapper; |
||||||
|
import org.apache.dubbo.config.annotation.DubboService; |
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* FriendDasImpl |
||||||
|
* |
||||||
|
* @author tmy |
||||||
|
* @date 2022-05-23 16:07 |
||||||
|
*/ |
||||||
|
@DubboService |
||||||
|
@AllArgsConstructor |
||||||
|
public class FriendDasImpl implements FriendDas { |
||||||
|
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(FriendDasImpl.class); |
||||||
|
|
||||||
|
private FriendMapper friendMapper; |
||||||
|
|
||||||
|
private UserMapper userMapper; |
||||||
|
|
||||||
|
@Override |
||||||
|
public int insert(Long uid, Long fid) { |
||||||
|
ImFriend imFriend = new ImFriend() |
||||||
|
.setUid(uid) |
||||||
|
.setFid(fid) |
||||||
|
.setStatus(1) |
||||||
|
.setCreateTime(ImClock.date()); |
||||||
|
return friendMapper.insert(imFriend); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Boolean isExists(Long uid, Long fid) { |
||||||
|
LambdaQueryWrapper<ImFriend> friendQuery = new QueryWrapper<ImFriend>().lambda() |
||||||
|
.eq(ImFriend::getUid, uid) |
||||||
|
.eq(ImFriend::getFid, fid) |
||||||
|
.eq(ImFriend::getStatus, 1); |
||||||
|
List<ImFriend> imFriends = friendMapper.selectList(friendQuery); |
||||||
|
if (Collects.isEmpty(imFriends)) { |
||||||
|
return Boolean.FALSE; |
||||||
|
} |
||||||
|
if (imFriends.size() > 1) { |
||||||
|
logger.warn("重复的好友数据: user={}, friend={}", uid, fid); |
||||||
|
} |
||||||
|
return Boolean.TRUE; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int remove(Long uid, Long fid) { |
||||||
|
LambdaQueryWrapper<ImFriend> friendQuery = new QueryWrapper<ImFriend>().lambda() |
||||||
|
.eq(ImFriend::getUid, uid) |
||||||
|
.eq(ImFriend::getFid, fid) |
||||||
|
.eq(ImFriend::getStatus, 1); |
||||||
|
return friendMapper.update(new ImFriend().setStatus(0), friendQuery); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public List<ImUser> queryAllFriend(Long uid) { |
||||||
|
List<Long> fids = friendMapper.selectAllFriendId(uid); |
||||||
|
LambdaQueryWrapper<ImUser> userQuery = new QueryWrapper<ImUser>().lambda() |
||||||
|
.in(ImUser::getId, fids) |
||||||
|
.eq(ImUser::getStatus, LogicConsts.STATUS_NORMAL); |
||||||
|
return userMapper.selectList(userQuery); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,50 @@ |
|||||||
|
package net.sopod.soim.entry.handlers.user; |
||||||
|
|
||||||
|
import com.google.protobuf.MessageLite; |
||||||
|
import net.sopod.soim.data.msg.user.AccountSearch; |
||||||
|
import net.sopod.soim.data.msg.user.Friend; |
||||||
|
import net.sopod.soim.entry.server.handler.AccountMessageHandler; |
||||||
|
import net.sopod.soim.entry.server.session.Account; |
||||||
|
import net.sopod.soim.logic.api.user.service.FriendService; |
||||||
|
import org.apache.dubbo.config.annotation.DubboReference; |
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
import java.util.concurrent.CompletableFuture; |
||||||
|
|
||||||
|
/** |
||||||
|
* ReqAddFriendHandler |
||||||
|
* |
||||||
|
* @author tmy |
||||||
|
* @date 2022-05-23 15:39 |
||||||
|
*/ |
||||||
|
@Service |
||||||
|
public class ReqAddFriendHandler extends AccountMessageHandler<Friend.ReqAddFriend> { |
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(ReqAddFriendHandler.class); |
||||||
|
|
||||||
|
@DubboReference |
||||||
|
private FriendService friendService; |
||||||
|
|
||||||
|
@Override |
||||||
|
public MessageLite handle(Account account, Friend.ReqAddFriend req) { |
||||||
|
// 好友id
|
||||||
|
long fid = req.getFid(); |
||||||
|
long uid = account.getUid(); |
||||||
|
logger.info("添加好友: {}, {}", uid, fid); |
||||||
|
CompletableFuture<String> addFuture = friendService.addFriend(uid, fid); |
||||||
|
addFuture.whenComplete((msg, err) -> { |
||||||
|
if (err != null) { |
||||||
|
logger.error("添加好友失败:", err); |
||||||
|
return; |
||||||
|
} |
||||||
|
Friend.ResAddFriend res = Friend.ResAddFriend.newBuilder() |
||||||
|
.setSuccess(msg == null).setMsg(msg).build(); |
||||||
|
account.writeNow(res); |
||||||
|
logger.info("添加好友成功"); |
||||||
|
}); |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,29 @@ |
|||||||
|
package net.sopod.soim.entry.handlers.user; |
||||||
|
|
||||||
|
import com.google.protobuf.MessageLite; |
||||||
|
import net.sopod.soim.data.msg.user.Friend; |
||||||
|
import net.sopod.soim.entry.server.handler.AccountMessageHandler; |
||||||
|
import net.sopod.soim.entry.server.session.Account; |
||||||
|
import net.sopod.soim.logic.api.user.service.FriendService; |
||||||
|
import org.apache.dubbo.config.annotation.DubboReference; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
/** |
||||||
|
* ReqFriendListHandler |
||||||
|
* |
||||||
|
* @author tmy |
||||||
|
* @date 2022-05-23 17:42 |
||||||
|
*/ |
||||||
|
@Service |
||||||
|
public class ReqFriendListHandler extends AccountMessageHandler<Friend.ReqFriendList> { |
||||||
|
|
||||||
|
@DubboReference |
||||||
|
private FriendService friendService; |
||||||
|
|
||||||
|
@Override |
||||||
|
public MessageLite handle(Account account, Friend.ReqFriendList req) { |
||||||
|
|
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,839 @@ |
|||||||
|
// Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||||
|
// source: proto/user/UserMsg.proto
|
||||||
|
|
||||||
|
package net.sopod.soim.data.msg.user; |
||||||
|
|
||||||
|
public final class UserMsg { |
||||||
|
private UserMsg() {} |
||||||
|
public static void registerAllExtensions( |
||||||
|
com.google.protobuf.ExtensionRegistryLite registry) { |
||||||
|
} |
||||||
|
|
||||||
|
public static void registerAllExtensions( |
||||||
|
com.google.protobuf.ExtensionRegistry registry) { |
||||||
|
registerAllExtensions( |
||||||
|
(com.google.protobuf.ExtensionRegistryLite) registry); |
||||||
|
} |
||||||
|
public interface UserInfoOrBuilder extends |
||||||
|
// @@protoc_insertion_point(interface_extends:net.sopod.soim.data.msg.user.UserInfo)
|
||||||
|
com.google.protobuf.MessageOrBuilder { |
||||||
|
|
||||||
|
/** |
||||||
|
* <code>int64 uid = 1;</code> |
||||||
|
* @return The uid. |
||||||
|
*/ |
||||||
|
long getUid(); |
||||||
|
|
||||||
|
/** |
||||||
|
* <code>string account = 2;</code> |
||||||
|
* @return The account. |
||||||
|
*/ |
||||||
|
java.lang.String getAccount(); |
||||||
|
/** |
||||||
|
* <code>string account = 2;</code> |
||||||
|
* @return The bytes for account. |
||||||
|
*/ |
||||||
|
com.google.protobuf.ByteString |
||||||
|
getAccountBytes(); |
||||||
|
|
||||||
|
/** |
||||||
|
* <code>string nickname = 3;</code> |
||||||
|
* @return The nickname. |
||||||
|
*/ |
||||||
|
java.lang.String getNickname(); |
||||||
|
/** |
||||||
|
* <code>string nickname = 3;</code> |
||||||
|
* @return The bytes for nickname. |
||||||
|
*/ |
||||||
|
com.google.protobuf.ByteString |
||||||
|
getNicknameBytes(); |
||||||
|
} |
||||||
|
/** |
||||||
|
* Protobuf type {@code net.sopod.soim.data.msg.user.UserInfo} |
||||||
|
*/ |
||||||
|
public static final class UserInfo extends |
||||||
|
com.google.protobuf.GeneratedMessageV3 implements |
||||||
|
// @@protoc_insertion_point(message_implements:net.sopod.soim.data.msg.user.UserInfo)
|
||||||
|
UserInfoOrBuilder { |
||||||
|
private static final long serialVersionUID = 0L; |
||||||
|
// Use UserInfo.newBuilder() to construct.
|
||||||
|
private UserInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { |
||||||
|
super(builder); |
||||||
|
} |
||||||
|
private UserInfo() { |
||||||
|
account_ = ""; |
||||||
|
nickname_ = ""; |
||||||
|
} |
||||||
|
|
||||||
|
@java.lang.Override |
||||||
|
@SuppressWarnings({"unused"}) |
||||||
|
protected java.lang.Object newInstance( |
||||||
|
UnusedPrivateParameter unused) { |
||||||
|
return new UserInfo(); |
||||||
|
} |
||||||
|
|
||||||
|
@java.lang.Override |
||||||
|
public final com.google.protobuf.UnknownFieldSet |
||||||
|
getUnknownFields() { |
||||||
|
return this.unknownFields; |
||||||
|
} |
||||||
|
private UserInfo( |
||||||
|
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; |
||||||
|
case 8: { |
||||||
|
|
||||||
|
uid_ = input.readInt64(); |
||||||
|
break; |
||||||
|
} |
||||||
|
case 18: { |
||||||
|
java.lang.String s = input.readStringRequireUtf8(); |
||||||
|
|
||||||
|
account_ = s; |
||||||
|
break; |
||||||
|
} |
||||||
|
case 26: { |
||||||
|
java.lang.String s = input.readStringRequireUtf8(); |
||||||
|
|
||||||
|
nickname_ = s; |
||||||
|
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.user.UserMsg.internal_static_net_sopod_soim_data_msg_user_UserInfo_descriptor; |
||||||
|
} |
||||||
|
|
||||||
|
@java.lang.Override |
||||||
|
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable |
||||||
|
internalGetFieldAccessorTable() { |
||||||
|
return net.sopod.soim.data.msg.user.UserMsg.internal_static_net_sopod_soim_data_msg_user_UserInfo_fieldAccessorTable |
||||||
|
.ensureFieldAccessorsInitialized( |
||||||
|
net.sopod.soim.data.msg.user.UserMsg.UserInfo.class, net.sopod.soim.data.msg.user.UserMsg.UserInfo.Builder.class); |
||||||
|
} |
||||||
|
|
||||||
|
public static final int UID_FIELD_NUMBER = 1; |
||||||
|
private long uid_; |
||||||
|
/** |
||||||
|
* <code>int64 uid = 1;</code> |
||||||
|
* @return The uid. |
||||||
|
*/ |
||||||
|
@java.lang.Override |
||||||
|
public long getUid() { |
||||||
|
return uid_; |
||||||
|
} |
||||||
|
|
||||||
|
public static final int ACCOUNT_FIELD_NUMBER = 2; |
||||||
|
private volatile java.lang.Object account_; |
||||||
|
/** |
||||||
|
* <code>string account = 2;</code> |
||||||
|
* @return The account. |
||||||
|
*/ |
||||||
|
@java.lang.Override |
||||||
|
public java.lang.String getAccount() { |
||||||
|
java.lang.Object ref = account_; |
||||||
|
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(); |
||||||
|
account_ = s; |
||||||
|
return s; |
||||||
|
} |
||||||
|
} |
||||||
|
/** |
||||||
|
* <code>string account = 2;</code> |
||||||
|
* @return The bytes for account. |
||||||
|
*/ |
||||||
|
@java.lang.Override |
||||||
|
public com.google.protobuf.ByteString |
||||||
|
getAccountBytes() { |
||||||
|
java.lang.Object ref = account_; |
||||||
|
if (ref instanceof java.lang.String) { |
||||||
|
com.google.protobuf.ByteString b = |
||||||
|
com.google.protobuf.ByteString.copyFromUtf8( |
||||||
|
(java.lang.String) ref); |
||||||
|
account_ = b; |
||||||
|
return b; |
||||||
|
} else { |
||||||
|
return (com.google.protobuf.ByteString) ref; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public static final int NICKNAME_FIELD_NUMBER = 3; |
||||||
|
private volatile java.lang.Object nickname_; |
||||||
|
/** |
||||||
|
* <code>string nickname = 3;</code> |
||||||
|
* @return The nickname. |
||||||
|
*/ |
||||||
|
@java.lang.Override |
||||||
|
public java.lang.String getNickname() { |
||||||
|
java.lang.Object ref = nickname_; |
||||||
|
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(); |
||||||
|
nickname_ = s; |
||||||
|
return s; |
||||||
|
} |
||||||
|
} |
||||||
|
/** |
||||||
|
* <code>string nickname = 3;</code> |
||||||
|
* @return The bytes for nickname. |
||||||
|
*/ |
||||||
|
@java.lang.Override |
||||||
|
public com.google.protobuf.ByteString |
||||||
|
getNicknameBytes() { |
||||||
|
java.lang.Object ref = nickname_; |
||||||
|
if (ref instanceof java.lang.String) { |
||||||
|
com.google.protobuf.ByteString b = |
||||||
|
com.google.protobuf.ByteString.copyFromUtf8( |
||||||
|
(java.lang.String) ref); |
||||||
|
nickname_ = b; |
||||||
|
return b; |
||||||
|
} else { |
||||||
|
return (com.google.protobuf.ByteString) ref; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
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 { |
||||||
|
if (uid_ != 0L) { |
||||||
|
output.writeInt64(1, uid_); |
||||||
|
} |
||||||
|
if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(account_)) { |
||||||
|
com.google.protobuf.GeneratedMessageV3.writeString(output, 2, account_); |
||||||
|
} |
||||||
|
if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nickname_)) { |
||||||
|
com.google.protobuf.GeneratedMessageV3.writeString(output, 3, nickname_); |
||||||
|
} |
||||||
|
unknownFields.writeTo(output); |
||||||
|
} |
||||||
|
|
||||||
|
@java.lang.Override |
||||||
|
public int getSerializedSize() { |
||||||
|
int size = memoizedSize; |
||||||
|
if (size != -1) return size; |
||||||
|
|
||||||
|
size = 0; |
||||||
|
if (uid_ != 0L) { |
||||||
|
size += com.google.protobuf.CodedOutputStream |
||||||
|
.computeInt64Size(1, uid_); |
||||||
|
} |
||||||
|
if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(account_)) { |
||||||
|
size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, account_); |
||||||
|
} |
||||||
|
if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nickname_)) { |
||||||
|
size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, nickname_); |
||||||
|
} |
||||||
|
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.user.UserMsg.UserInfo)) { |
||||||
|
return super.equals(obj); |
||||||
|
} |
||||||
|
net.sopod.soim.data.msg.user.UserMsg.UserInfo other = (net.sopod.soim.data.msg.user.UserMsg.UserInfo) obj; |
||||||
|
|
||||||
|
if (getUid() |
||||||
|
!= other.getUid()) return false; |
||||||
|
if (!getAccount() |
||||||
|
.equals(other.getAccount())) return false; |
||||||
|
if (!getNickname() |
||||||
|
.equals(other.getNickname())) 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(); |
||||||
|
hash = (37 * hash) + UID_FIELD_NUMBER; |
||||||
|
hash = (53 * hash) + com.google.protobuf.Internal.hashLong( |
||||||
|
getUid()); |
||||||
|
hash = (37 * hash) + ACCOUNT_FIELD_NUMBER; |
||||||
|
hash = (53 * hash) + getAccount().hashCode(); |
||||||
|
hash = (37 * hash) + NICKNAME_FIELD_NUMBER; |
||||||
|
hash = (53 * hash) + getNickname().hashCode(); |
||||||
|
hash = (29 * hash) + unknownFields.hashCode(); |
||||||
|
memoizedHashCode = hash; |
||||||
|
return hash; |
||||||
|
} |
||||||
|
|
||||||
|
public static net.sopod.soim.data.msg.user.UserMsg.UserInfo parseFrom( |
||||||
|
java.nio.ByteBuffer data) |
||||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||||
|
return PARSER.parseFrom(data); |
||||||
|
} |
||||||
|
public static net.sopod.soim.data.msg.user.UserMsg.UserInfo 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.user.UserMsg.UserInfo parseFrom( |
||||||
|
com.google.protobuf.ByteString data) |
||||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||||
|
return PARSER.parseFrom(data); |
||||||
|
} |
||||||
|
public static net.sopod.soim.data.msg.user.UserMsg.UserInfo 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.user.UserMsg.UserInfo parseFrom(byte[] data) |
||||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||||
|
return PARSER.parseFrom(data); |
||||||
|
} |
||||||
|
public static net.sopod.soim.data.msg.user.UserMsg.UserInfo 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.user.UserMsg.UserInfo parseFrom(java.io.InputStream input) |
||||||
|
throws java.io.IOException { |
||||||
|
return com.google.protobuf.GeneratedMessageV3 |
||||||
|
.parseWithIOException(PARSER, input); |
||||||
|
} |
||||||
|
public static net.sopod.soim.data.msg.user.UserMsg.UserInfo 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.user.UserMsg.UserInfo parseDelimitedFrom(java.io.InputStream input) |
||||||
|
throws java.io.IOException { |
||||||
|
return com.google.protobuf.GeneratedMessageV3 |
||||||
|
.parseDelimitedWithIOException(PARSER, input); |
||||||
|
} |
||||||
|
public static net.sopod.soim.data.msg.user.UserMsg.UserInfo 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.user.UserMsg.UserInfo 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.user.UserMsg.UserInfo 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.user.UserMsg.UserInfo 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.user.UserInfo} |
||||||
|
*/ |
||||||
|
public static final class Builder extends |
||||||
|
com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements |
||||||
|
// @@protoc_insertion_point(builder_implements:net.sopod.soim.data.msg.user.UserInfo)
|
||||||
|
net.sopod.soim.data.msg.user.UserMsg.UserInfoOrBuilder { |
||||||
|
public static final com.google.protobuf.Descriptors.Descriptor |
||||||
|
getDescriptor() { |
||||||
|
return net.sopod.soim.data.msg.user.UserMsg.internal_static_net_sopod_soim_data_msg_user_UserInfo_descriptor; |
||||||
|
} |
||||||
|
|
||||||
|
@java.lang.Override |
||||||
|
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable |
||||||
|
internalGetFieldAccessorTable() { |
||||||
|
return net.sopod.soim.data.msg.user.UserMsg.internal_static_net_sopod_soim_data_msg_user_UserInfo_fieldAccessorTable |
||||||
|
.ensureFieldAccessorsInitialized( |
||||||
|
net.sopod.soim.data.msg.user.UserMsg.UserInfo.class, net.sopod.soim.data.msg.user.UserMsg.UserInfo.Builder.class); |
||||||
|
} |
||||||
|
|
||||||
|
// Construct using net.sopod.soim.data.msg.user.UserMsg.UserInfo.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(); |
||||||
|
uid_ = 0L; |
||||||
|
|
||||||
|
account_ = ""; |
||||||
|
|
||||||
|
nickname_ = ""; |
||||||
|
|
||||||
|
return this; |
||||||
|
} |
||||||
|
|
||||||
|
@java.lang.Override |
||||||
|
public com.google.protobuf.Descriptors.Descriptor |
||||||
|
getDescriptorForType() { |
||||||
|
return net.sopod.soim.data.msg.user.UserMsg.internal_static_net_sopod_soim_data_msg_user_UserInfo_descriptor; |
||||||
|
} |
||||||
|
|
||||||
|
@java.lang.Override |
||||||
|
public net.sopod.soim.data.msg.user.UserMsg.UserInfo getDefaultInstanceForType() { |
||||||
|
return net.sopod.soim.data.msg.user.UserMsg.UserInfo.getDefaultInstance(); |
||||||
|
} |
||||||
|
|
||||||
|
@java.lang.Override |
||||||
|
public net.sopod.soim.data.msg.user.UserMsg.UserInfo build() { |
||||||
|
net.sopod.soim.data.msg.user.UserMsg.UserInfo result = buildPartial(); |
||||||
|
if (!result.isInitialized()) { |
||||||
|
throw newUninitializedMessageException(result); |
||||||
|
} |
||||||
|
return result; |
||||||
|
} |
||||||
|
|
||||||
|
@java.lang.Override |
||||||
|
public net.sopod.soim.data.msg.user.UserMsg.UserInfo buildPartial() { |
||||||
|
net.sopod.soim.data.msg.user.UserMsg.UserInfo result = new net.sopod.soim.data.msg.user.UserMsg.UserInfo(this); |
||||||
|
result.uid_ = uid_; |
||||||
|
result.account_ = account_; |
||||||
|
result.nickname_ = nickname_; |
||||||
|
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.user.UserMsg.UserInfo) { |
||||||
|
return mergeFrom((net.sopod.soim.data.msg.user.UserMsg.UserInfo)other); |
||||||
|
} else { |
||||||
|
super.mergeFrom(other); |
||||||
|
return this; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public Builder mergeFrom(net.sopod.soim.data.msg.user.UserMsg.UserInfo other) { |
||||||
|
if (other == net.sopod.soim.data.msg.user.UserMsg.UserInfo.getDefaultInstance()) return this; |
||||||
|
if (other.getUid() != 0L) { |
||||||
|
setUid(other.getUid()); |
||||||
|
} |
||||||
|
if (!other.getAccount().isEmpty()) { |
||||||
|
account_ = other.account_; |
||||||
|
onChanged(); |
||||||
|
} |
||||||
|
if (!other.getNickname().isEmpty()) { |
||||||
|
nickname_ = other.nickname_; |
||||||
|
onChanged(); |
||||||
|
} |
||||||
|
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.user.UserMsg.UserInfo parsedMessage = null; |
||||||
|
try { |
||||||
|
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); |
||||||
|
} catch (com.google.protobuf.InvalidProtocolBufferException e) { |
||||||
|
parsedMessage = (net.sopod.soim.data.msg.user.UserMsg.UserInfo) e.getUnfinishedMessage(); |
||||||
|
throw e.unwrapIOException(); |
||||||
|
} finally { |
||||||
|
if (parsedMessage != null) { |
||||||
|
mergeFrom(parsedMessage); |
||||||
|
} |
||||||
|
} |
||||||
|
return this; |
||||||
|
} |
||||||
|
|
||||||
|
private long uid_ ; |
||||||
|
/** |
||||||
|
* <code>int64 uid = 1;</code> |
||||||
|
* @return The uid. |
||||||
|
*/ |
||||||
|
@java.lang.Override |
||||||
|
public long getUid() { |
||||||
|
return uid_; |
||||||
|
} |
||||||
|
/** |
||||||
|
* <code>int64 uid = 1;</code> |
||||||
|
* @param value The uid to set. |
||||||
|
* @return This builder for chaining. |
||||||
|
*/ |
||||||
|
public Builder setUid(long value) { |
||||||
|
|
||||||
|
uid_ = value; |
||||||
|
onChanged(); |
||||||
|
return this; |
||||||
|
} |
||||||
|
/** |
||||||
|
* <code>int64 uid = 1;</code> |
||||||
|
* @return This builder for chaining. |
||||||
|
*/ |
||||||
|
public Builder clearUid() { |
||||||
|
|
||||||
|
uid_ = 0L; |
||||||
|
onChanged(); |
||||||
|
return this; |
||||||
|
} |
||||||
|
|
||||||
|
private java.lang.Object account_ = ""; |
||||||
|
/** |
||||||
|
* <code>string account = 2;</code> |
||||||
|
* @return The account. |
||||||
|
*/ |
||||||
|
public java.lang.String getAccount() { |
||||||
|
java.lang.Object ref = account_; |
||||||
|
if (!(ref instanceof java.lang.String)) { |
||||||
|
com.google.protobuf.ByteString bs = |
||||||
|
(com.google.protobuf.ByteString) ref; |
||||||
|
java.lang.String s = bs.toStringUtf8(); |
||||||
|
account_ = s; |
||||||
|
return s; |
||||||
|
} else { |
||||||
|
return (java.lang.String) ref; |
||||||
|
} |
||||||
|
} |
||||||
|
/** |
||||||
|
* <code>string account = 2;</code> |
||||||
|
* @return The bytes for account. |
||||||
|
*/ |
||||||
|
public com.google.protobuf.ByteString |
||||||
|
getAccountBytes() { |
||||||
|
java.lang.Object ref = account_; |
||||||
|
if (ref instanceof String) { |
||||||
|
com.google.protobuf.ByteString b = |
||||||
|
com.google.protobuf.ByteString.copyFromUtf8( |
||||||
|
(java.lang.String) ref); |
||||||
|
account_ = b; |
||||||
|
return b; |
||||||
|
} else { |
||||||
|
return (com.google.protobuf.ByteString) ref; |
||||||
|
} |
||||||
|
} |
||||||
|
/** |
||||||
|
* <code>string account = 2;</code> |
||||||
|
* @param value The account to set. |
||||||
|
* @return This builder for chaining. |
||||||
|
*/ |
||||||
|
public Builder setAccount( |
||||||
|
java.lang.String value) { |
||||||
|
if (value == null) { |
||||||
|
throw new NullPointerException(); |
||||||
|
} |
||||||
|
|
||||||
|
account_ = value; |
||||||
|
onChanged(); |
||||||
|
return this; |
||||||
|
} |
||||||
|
/** |
||||||
|
* <code>string account = 2;</code> |
||||||
|
* @return This builder for chaining. |
||||||
|
*/ |
||||||
|
public Builder clearAccount() { |
||||||
|
|
||||||
|
account_ = getDefaultInstance().getAccount(); |
||||||
|
onChanged(); |
||||||
|
return this; |
||||||
|
} |
||||||
|
/** |
||||||
|
* <code>string account = 2;</code> |
||||||
|
* @param value The bytes for account to set. |
||||||
|
* @return This builder for chaining. |
||||||
|
*/ |
||||||
|
public Builder setAccountBytes( |
||||||
|
com.google.protobuf.ByteString value) { |
||||||
|
if (value == null) { |
||||||
|
throw new NullPointerException(); |
||||||
|
} |
||||||
|
checkByteStringIsUtf8(value); |
||||||
|
|
||||||
|
account_ = value; |
||||||
|
onChanged(); |
||||||
|
return this; |
||||||
|
} |
||||||
|
|
||||||
|
private java.lang.Object nickname_ = ""; |
||||||
|
/** |
||||||
|
* <code>string nickname = 3;</code> |
||||||
|
* @return The nickname. |
||||||
|
*/ |
||||||
|
public java.lang.String getNickname() { |
||||||
|
java.lang.Object ref = nickname_; |
||||||
|
if (!(ref instanceof java.lang.String)) { |
||||||
|
com.google.protobuf.ByteString bs = |
||||||
|
(com.google.protobuf.ByteString) ref; |
||||||
|
java.lang.String s = bs.toStringUtf8(); |
||||||
|
nickname_ = s; |
||||||
|
return s; |
||||||
|
} else { |
||||||
|
return (java.lang.String) ref; |
||||||
|
} |
||||||
|
} |
||||||
|
/** |
||||||
|
* <code>string nickname = 3;</code> |
||||||
|
* @return The bytes for nickname. |
||||||
|
*/ |
||||||
|
public com.google.protobuf.ByteString |
||||||
|
getNicknameBytes() { |
||||||
|
java.lang.Object ref = nickname_; |
||||||
|
if (ref instanceof String) { |
||||||
|
com.google.protobuf.ByteString b = |
||||||
|
com.google.protobuf.ByteString.copyFromUtf8( |
||||||
|
(java.lang.String) ref); |
||||||
|
nickname_ = b; |
||||||
|
return b; |
||||||
|
} else { |
||||||
|
return (com.google.protobuf.ByteString) ref; |
||||||
|
} |
||||||
|
} |
||||||
|
/** |
||||||
|
* <code>string nickname = 3;</code> |
||||||
|
* @param value The nickname to set. |
||||||
|
* @return This builder for chaining. |
||||||
|
*/ |
||||||
|
public Builder setNickname( |
||||||
|
java.lang.String value) { |
||||||
|
if (value == null) { |
||||||
|
throw new NullPointerException(); |
||||||
|
} |
||||||
|
|
||||||
|
nickname_ = value; |
||||||
|
onChanged(); |
||||||
|
return this; |
||||||
|
} |
||||||
|
/** |
||||||
|
* <code>string nickname = 3;</code> |
||||||
|
* @return This builder for chaining. |
||||||
|
*/ |
||||||
|
public Builder clearNickname() { |
||||||
|
|
||||||
|
nickname_ = getDefaultInstance().getNickname(); |
||||||
|
onChanged(); |
||||||
|
return this; |
||||||
|
} |
||||||
|
/** |
||||||
|
* <code>string nickname = 3;</code> |
||||||
|
* @param value The bytes for nickname to set. |
||||||
|
* @return This builder for chaining. |
||||||
|
*/ |
||||||
|
public Builder setNicknameBytes( |
||||||
|
com.google.protobuf.ByteString value) { |
||||||
|
if (value == null) { |
||||||
|
throw new NullPointerException(); |
||||||
|
} |
||||||
|
checkByteStringIsUtf8(value); |
||||||
|
|
||||||
|
nickname_ = value; |
||||||
|
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.user.UserInfo)
|
||||||
|
} |
||||||
|
|
||||||
|
// @@protoc_insertion_point(class_scope:net.sopod.soim.data.msg.user.UserInfo)
|
||||||
|
private static final net.sopod.soim.data.msg.user.UserMsg.UserInfo DEFAULT_INSTANCE; |
||||||
|
static { |
||||||
|
DEFAULT_INSTANCE = new net.sopod.soim.data.msg.user.UserMsg.UserInfo(); |
||||||
|
} |
||||||
|
|
||||||
|
public static net.sopod.soim.data.msg.user.UserMsg.UserInfo getDefaultInstance() { |
||||||
|
return DEFAULT_INSTANCE; |
||||||
|
} |
||||||
|
|
||||||
|
private static final com.google.protobuf.Parser<UserInfo> |
||||||
|
PARSER = new com.google.protobuf.AbstractParser<UserInfo>() { |
||||||
|
@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<UserInfo> parser() { |
||||||
|
return PARSER; |
||||||
|
} |
||||||
|
|
||||||
|
@java.lang.Override |
||||||
|
public com.google.protobuf.Parser<UserInfo> getParserForType() { |
||||||
|
return PARSER; |
||||||
|
} |
||||||
|
|
||||||
|
@java.lang.Override |
||||||
|
public net.sopod.soim.data.msg.user.UserMsg.UserInfo getDefaultInstanceForType() { |
||||||
|
return DEFAULT_INSTANCE; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
private static final com.google.protobuf.Descriptors.Descriptor |
||||||
|
internal_static_net_sopod_soim_data_msg_user_UserInfo_descriptor; |
||||||
|
private static final |
||||||
|
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable |
||||||
|
internal_static_net_sopod_soim_data_msg_user_UserInfo_fieldAccessorTable; |
||||||
|
|
||||||
|
public static com.google.protobuf.Descriptors.FileDescriptor |
||||||
|
getDescriptor() { |
||||||
|
return descriptor; |
||||||
|
} |
||||||
|
private static com.google.protobuf.Descriptors.FileDescriptor |
||||||
|
descriptor; |
||||||
|
static { |
||||||
|
java.lang.String[] descriptorData = { |
||||||
|
"\n\030proto/user/UserMsg.proto\022\034net.sopod.so" + |
||||||
|
"im.data.msg.user\":\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(\tB)\n\034" + |
||||||
|
"net.sopod.soim.data.msg.userB\007UserMsgP\000b" + |
||||||
|
"\006proto3" |
||||||
|
}; |
||||||
|
descriptor = com.google.protobuf.Descriptors.FileDescriptor |
||||||
|
.internalBuildGeneratedFileFrom(descriptorData, |
||||||
|
new com.google.protobuf.Descriptors.FileDescriptor[] { |
||||||
|
}); |
||||||
|
internal_static_net_sopod_soim_data_msg_user_UserInfo_descriptor = |
||||||
|
getDescriptor().getMessageTypes().get(0); |
||||||
|
internal_static_net_sopod_soim_data_msg_user_UserInfo_fieldAccessorTable = new |
||||||
|
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( |
||||||
|
internal_static_net_sopod_soim_data_msg_user_UserInfo_descriptor, |
||||||
|
new java.lang.String[] { "Uid", "Account", "Nickname", }); |
||||||
|
} |
||||||
|
|
||||||
|
// @@protoc_insertion_point(outer_class_scope)
|
||||||
|
} |
||||||
@ -1,14 +0,0 @@ |
|||||||
syntax="proto3"; |
|
||||||
|
|
||||||
option java_multiple_files = false; |
|
||||||
option java_outer_classname = "AddFriend"; |
|
||||||
|
|
||||||
package net.sopod.soim.data.msg.user; |
|
||||||
|
|
||||||
message ReqAddFriend { |
|
||||||
int64 uid = 1; |
|
||||||
} |
|
||||||
|
|
||||||
message ResAddFriend { |
|
||||||
bool success = 1; |
|
||||||
} |
|
||||||
@ -0,0 +1,26 @@ |
|||||||
|
syntax="proto3"; |
||||||
|
|
||||||
|
option java_multiple_files = false; |
||||||
|
option java_outer_classname = "Friend"; |
||||||
|
|
||||||
|
package net.sopod.soim.data.msg.user; |
||||||
|
|
||||||
|
import "proto/user/UserMsg.proto"; |
||||||
|
|
||||||
|
message ReqAddFriend { |
||||||
|
int64 fid = 1; |
||||||
|
} |
||||||
|
|
||||||
|
message ResAddFriend { |
||||||
|
bool success = 1; |
||||||
|
string msg = 2; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
message ReqFriendList { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
message ResFriendList { |
||||||
|
repeated UserInfo friends = 6; |
||||||
|
} |
||||||
@ -0,0 +1,12 @@ |
|||||||
|
syntax="proto3"; |
||||||
|
package net.sopod.soim.data.msg.user; |
||||||
|
|
||||||
|
option java_multiple_files = false; |
||||||
|
option java_outer_classname = "UserMsg"; |
||||||
|
option java_package = "net.sopod.soim.data.msg.user"; |
||||||
|
|
||||||
|
message UserInfo { |
||||||
|
int64 uid = 1; |
||||||
|
string account = 2; |
||||||
|
string nickname = 3; |
||||||
|
} |
||||||
@ -1,15 +1,17 @@ |
|||||||
net.sopod.soim.data.msg.hello.HelloPB$Hello=10000 |
net.sopod.soim.data.msg.user.Friend$ResAddFriend=10000 |
||||||
net.sopod.soim.data.msg.net.HeartBeat$Ping=10001 |
net.sopod.soim.data.msg.chat.Chat$TextChat=10001 |
||||||
net.sopod.soim.data.msg.user.UserGroup$UserInfo=10002 |
net.sopod.soim.data.msg.user.Friend$ReqFriendList=10002 |
||||||
net.sopod.soim.data.msg.user.UserGroup$ResOnlineUserList=10003 |
net.sopod.soim.data.msg.user.AccountSearch$ResAccountSearch=10003 |
||||||
net.sopod.soim.data.msg.chat.Chat$TextChat=10004 |
net.sopod.soim.data.msg.user.UserGroup$ResOnlineUserList=10004 |
||||||
net.sopod.soim.data.msg.task.Tasks$NetUserDelayCloseTask=10005 |
net.sopod.soim.data.msg.hello.HelloPB$World=10005 |
||||||
net.sopod.soim.data.msg.auth.Auth$ResTokenAuth=10006 |
net.sopod.soim.data.msg.net.HeartBeat$Pong=10006 |
||||||
net.sopod.soim.data.msg.hello.HelloPB$World=10007 |
net.sopod.soim.data.msg.user.AccountSearch$ReqAccountSearch=10007 |
||||||
net.sopod.soim.data.msg.user.AddFriend$ReqAddFriend=10008 |
net.sopod.soim.data.msg.net.HeartBeat$Ping=10008 |
||||||
net.sopod.soim.data.msg.user.AddFriend$ResAddFriend=10009 |
net.sopod.soim.data.msg.user.Friend$ReqAddFriend=10009 |
||||||
net.sopod.soim.data.msg.auth.Auth$ReqTokenAuth=10010 |
net.sopod.soim.data.msg.task.Tasks$NetUserDelayCloseTask=10010 |
||||||
net.sopod.soim.data.msg.user.AccountSearch$ReqAccountSearch=10011 |
net.sopod.soim.data.msg.auth.Auth$ResTokenAuth=10011 |
||||||
net.sopod.soim.data.msg.user.UserGroup$ReqOnlineUserList=10012 |
net.sopod.soim.data.msg.user.UserMsg$UserInfo=10012 |
||||||
net.sopod.soim.data.msg.net.HeartBeat$Pong=10013 |
net.sopod.soim.data.msg.user.UserGroup$ReqOnlineUserList=10013 |
||||||
net.sopod.soim.data.msg.user.AccountSearch$ResAccountSearch=10014 |
net.sopod.soim.data.msg.auth.Auth$ReqTokenAuth=10014 |
||||||
|
net.sopod.soim.data.msg.user.Friend$ResFriendList=10015 |
||||||
|
net.sopod.soim.data.msg.hello.HelloPB$Hello=10016 |
||||||
|
|||||||
@ -0,0 +1,27 @@ |
|||||||
|
package net.sopod.soim.logic.api.user.service; |
||||||
|
|
||||||
|
import net.sopod.soim.logic.common.model.UserInfo; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
import java.util.concurrent.CompletableFuture; |
||||||
|
|
||||||
|
/** |
||||||
|
* FriendService |
||||||
|
* |
||||||
|
* @author tmy |
||||||
|
* @date 2022-05-23 15:42 |
||||||
|
*/ |
||||||
|
public interface FriendService { |
||||||
|
|
||||||
|
/** |
||||||
|
* 添加好友 |
||||||
|
* @return 成功返回 null,失败返回失败原因 |
||||||
|
*/ |
||||||
|
CompletableFuture<String> addFriend(Long uid, Long fid); |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取好友列表 |
||||||
|
*/ |
||||||
|
CompletableFuture<List<UserInfo>> listFriend(Long uid); |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,59 @@ |
|||||||
|
package net.sopod.soim.logic.user.service; |
||||||
|
|
||||||
|
import net.sopod.soim.das.user.api.model.entity.ImUser; |
||||||
|
import net.sopod.soim.das.user.api.service.FriendDas; |
||||||
|
import net.sopod.soim.das.user.api.service.UserDas; |
||||||
|
import net.sopod.soim.logic.api.user.service.FriendService; |
||||||
|
import net.sopod.soim.logic.common.model.UserInfo; |
||||||
|
import org.apache.dubbo.config.annotation.DubboReference; |
||||||
|
import org.apache.dubbo.config.annotation.DubboService; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
import java.util.concurrent.CompletableFuture; |
||||||
|
import java.util.stream.Collectors; |
||||||
|
|
||||||
|
/** |
||||||
|
* FriendServiceImpl |
||||||
|
* |
||||||
|
* @author tmy |
||||||
|
* @date 2022-05-23 15:44 |
||||||
|
*/ |
||||||
|
@DubboService |
||||||
|
public class FriendServiceImpl implements FriendService { |
||||||
|
|
||||||
|
@DubboReference |
||||||
|
private FriendDas friendDas; |
||||||
|
|
||||||
|
@DubboReference |
||||||
|
private UserDas userDas; |
||||||
|
|
||||||
|
/** |
||||||
|
* TODO 幂等性处理 |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public CompletableFuture<String> addFriend(Long uid, Long fid) { |
||||||
|
ImUser friend = userDas.getUserById(fid); |
||||||
|
CompletableFuture<String> future = new CompletableFuture<>(); |
||||||
|
if (friend == null) { |
||||||
|
return CompletableFuture.completedFuture("不存在的账号"); |
||||||
|
} |
||||||
|
if (Boolean.TRUE.equals(friendDas.isExists(uid, fid))) { |
||||||
|
return CompletableFuture.completedFuture("该用户已是你的好友"); |
||||||
|
} |
||||||
|
// 添加好友数据
|
||||||
|
friendDas.insert(uid, fid); |
||||||
|
return CompletableFuture.completedFuture(null); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public CompletableFuture<List<UserInfo>> listFriend(Long uid) { |
||||||
|
List<ImUser> imUsers = friendDas.queryAllFriend(uid); |
||||||
|
List<UserInfo> userInfos = imUsers.stream().map(imUser -> new UserInfo() |
||||||
|
.setUid(imUser.getId()) |
||||||
|
.setAccount(imUser.getAccount()) |
||||||
|
.setNickname(imUser.getNickname()) |
||||||
|
).collect(Collectors.toList()); |
||||||
|
return CompletableFuture.completedFuture(userInfos); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
Loading…
Reference in new issue