add extran in friendData

This commit is contained in:
heavyrain.lee
2020-03-07 10:34:33 +08:00
parent c0dd1c6581
commit 7888c1e0d9
7 changed files with 42 additions and 15 deletions
@@ -46,7 +46,7 @@ public class FriendRelationAction extends AdminAction {
&& !StringUtil.isNullOrEmpty(friendAdd.getUserId())
&& !StringUtil.isNullOrEmpty(friendAdd.getFriendUid())
) {
WFCMessage.HandleFriendRequest friendRequest = WFCMessage.HandleFriendRequest.newBuilder().setTargetUid(friendAdd.getFriendUid()).setStatus(friendAdd.getStatus()).build();
WFCMessage.HandleFriendRequest friendRequest = WFCMessage.HandleFriendRequest.newBuilder().setTargetUid(friendAdd.getFriendUid()).setStatus(friendAdd.getStatus()).setExtra(friendAdd.getExtra()).build();
RPCCenter.getInstance().sendRequest(friendAdd.getUserId(), null, IMTopic.HandleFriendRequestTopic, friendRequest.toByteArray(), friendAdd.getFriendUid(), TargetEntry.Type.TARGET_TYPE_USER, new RPCCenter.Callback() {
@Override
public void onSuccess(byte[] result) {
@@ -14,15 +14,17 @@ public class FriendData implements Serializable {
private String userId;
private String friendUid;
private String alias;
private String extra;
private int state;
private int blacked;
private long timestamp;
public FriendData(String userId, String friendUid, String alias, int state, int blacked, long timestamp) {
public FriendData(String userId, String friendUid, String alias, String extra, int state, int blacked, long timestamp) {
this.userId = userId;
this.friendUid = friendUid;
this.alias = alias;
this.extra = extra;
this.state = state;
this.blacked = blacked;
this.timestamp = timestamp;
@@ -55,6 +57,14 @@ public class FriendData implements Serializable {
this.alias = alias;
}
public String getExtra() {
return extra;
}
public void setExtra(String extra) {
this.extra = extra;
}
public int getState() {
return state;
}
@@ -380,7 +380,7 @@ public class DatabaseStore {
try {
connection = DBUtil.getConnection();
String sql = "select `_uid`, `_friend_uid`, `_alias`, `_state`, `_blacked`, `_dt` from t_friend";
String sql = "select `_uid`, `_friend_uid`, `_alias`, `_state`, `_blacked`, `_dt`, `_extra` from t_friend";
statement = connection.prepareStatement(sql);
int index;
@@ -411,6 +411,8 @@ public class DatabaseStore {
long longvalue = rs.getLong(index++);
builder.setTimestamp(longvalue);
builder.setExtra(rs.getString(index++));
friendsMap.put(builder.getUserId(), builder);
}
} catch (SQLException e) {
@@ -2501,7 +2503,7 @@ public class DatabaseStore {
ResultSet rs = null;
try {
connection = DBUtil.getConnection();
String sql = "select `_friend_uid`, `_alias`, `_state`, `_blacked`, `_dt` from t_friend where `_uid` = ?";
String sql = "select `_friend_uid`, `_alias`, `_state`, `_blacked`, `_dt`, `_extra` from t_friend where `_uid` = ?";
statement = connection.prepareStatement(sql);
@@ -2517,8 +2519,9 @@ public class DatabaseStore {
int state = rs.getInt(3);
int blacked = rs.getInt(4);
long timestamp = rs.getLong(5);
String extra = rs.getString(6);
FriendData data = new FriendData(userId, uid, alias, state, blacked, timestamp);
FriendData data = new FriendData(userId, uid, alias, extra, state, blacked, timestamp);
out.add(data);
}
return out;
@@ -2538,7 +2541,7 @@ public class DatabaseStore {
PreparedStatement statement = null;
try {
connection = DBUtil.getConnection();
String sql = "update t_friend set `_alias` = '', `_state` = 1, `_blacked` = 0, `_dt` = ? where `_uid` = ? or `_friend_uid` = ?";
String sql = "update t_friend set `_alias` = '', `_state` = 1, `_blacked` = 0, `_dt` = ?, `_extra` = 0 where `_uid` = ? or `_friend_uid` = ?";
statement = connection.prepareStatement(sql);
int index = 1;
@@ -2721,12 +2724,13 @@ public class DatabaseStore {
PreparedStatement statement = null;
try {
connection = DBUtil.getConnection();
String sql = "insert into t_friend (`_uid`, `_friend_uid`, `_alias`, `_state`, `_blacked`, `_dt`) values(?, ?, ?, ?, ?, ?)" +
String sql = "insert into t_friend (`_uid`, `_friend_uid`, `_alias`, `_state`, `_blacked`, `_dt`, `_extra`) values(?, ?, ?, ?, ?, ?, ?)" +
" ON DUPLICATE KEY UPDATE " +
"`_alias` = ?," +
"`_state` = ?," +
"`_blacked` = ?," +
"`_dt` = ?";
"`_dt` = ?," +
"`_extra` = ?";
statement = connection.prepareStatement(sql);
@@ -2737,10 +2741,12 @@ public class DatabaseStore {
statement.setInt(index++, request.getState());
statement.setInt(index++, request.getBlacked());
statement.setLong(index++, request.getTimestamp());
statement.setString(index++, request.getExtra());
statement.setString(index++, request.getAlias());
statement.setInt(index++, request.getState());
statement.setInt(index++, request.getBlacked());
statement.setLong(index++, request.getTimestamp());
statement.setString(index++, request.getExtra());
int count = statement.executeUpdate();
LOG.info("Update rows {}", count);
} catch (SQLException e) {
@@ -2040,9 +2040,10 @@ public class MemoryMessagesStore implements IMessagesStore {
}
}
if (friendData1 == null) {
friendData1 = new FriendData(userId, request.getTargetUid(), "", request.getStatus(), 0, System.currentTimeMillis());
friendData1 = new FriendData(userId, request.getTargetUid(), "", request.getExtra(), request.getStatus(), 0, System.currentTimeMillis());
} else {
friendData1.setState(request.getStatus());
friendData1.setExtra(request.getExtra());
friendData1.setTimestamp(System.currentTimeMillis());
}
@@ -2062,7 +2063,7 @@ public class MemoryMessagesStore implements IMessagesStore {
}
}
if (friendData2 == null) {
friendData2 = new FriendData(request.getTargetUid(), userId, "", request.getStatus(), 0, friendData1.getTimestamp());
friendData2 = new FriendData(request.getTargetUid(), userId, "", request.getExtra(), request.getStatus(), 0, friendData1.getTimestamp());
} else {
friendsMap.remove(request.getTargetUid(), friendData2);
friendData2.setState(request.getStatus());
@@ -2103,10 +2104,10 @@ public class MemoryMessagesStore implements IMessagesStore {
databaseStore.persistOrUpdateFriendRequest(existRequest);
if(request.getStatus() == ProtoConstants.FriendRequestStatus.RequestStatus_Accepted){
MultiMap<String, FriendData> friendsMap = hzInstance.getMultiMap(USER_FRIENDS);
FriendData friendData1 = new FriendData(userId, request.getTargetUid(), "", 0, 0, System.currentTimeMillis());
FriendData friendData1 = new FriendData(userId, request.getTargetUid(), "", request.getExtra(), 0, 0, System.currentTimeMillis());
databaseStore.persistOrUpdateFriendData(friendData1);
FriendData friendData2 = new FriendData(request.getTargetUid(), userId, "", 0, 0, friendData1.getTimestamp());
FriendData friendData2 = new FriendData(request.getTargetUid(), userId, "", request.getExtra(), 0, 0, friendData1.getTimestamp());
databaseStore.persistOrUpdateFriendData(friendData2);
requestMap.remove(userId);
@@ -2152,7 +2153,7 @@ public class MemoryMessagesStore implements IMessagesStore {
}
if (friendData == null) {
friendData = new FriendData(fromUser, targetUserId, "", 1, state, System.currentTimeMillis());
friendData = new FriendData(fromUser, targetUserId, "", "", 1, state, System.currentTimeMillis());
}
friendData.setBlacked(state);
friendData.setTimestamp(System.currentTimeMillis());