Commit 4b237125 by 罗长华

fixed bug[7943]账号a发起添加好友,b账号点同意,账号a还停留在添加好友页面再次发起添加好友,账号b已同意的状态变成未同意,通讯录好友消失

parent b9f7367a
...@@ -108,15 +108,31 @@ public class ImFriendService extends BaseServiceImpl<ImFriendMapper, ImFriend> { ...@@ -108,15 +108,31 @@ public class ImFriendService extends BaseServiceImpl<ImFriendMapper, ImFriend> {
*/ */
@Transactional @Transactional
public Boolean applyFriend(ImClient currentClient, ImClient friendClient, String friendName, String requestRemark) { public Boolean applyFriend(ImClient currentClient, ImClient friendClient, String friendName, String requestRemark) {
//好友关系有维护两条,我和他,他和我 ImFriend my = getByKey(currentClient.getClientId(), friendClient.getClientId());
ImFriend my = new ImFriend(); ImFriend friend = getByKey(friendClient.getClientId(), currentClient.getClientId());
if (my != null && friend != null) {
// 先判断双方是否已经处理过
boolean myIsApprove =
my.getState().equals(FriendStateEnum.CONFORM.getCode()) || my.getState().equals(FriendStateEnum.REJECT.getCode());
boolean friendIsApprove =
friend.getState().equals(FriendStateEnum.CONFORM.getCode()) || friend.getState().equals(FriendStateEnum.REJECT.getCode());
if (myIsApprove && friendIsApprove) {
return true;
}
}
if (my == null) {
my = new ImFriend();
my.setClientId(currentClient.getClientId()); my.setClientId(currentClient.getClientId());
my.setClientIdFriend(friendClient.getClientId()); my.setClientIdFriend(friendClient.getClientId());
my.setClientIdClaimer(currentClient.getClientId()); my.setClientIdClaimer(currentClient.getClientId());
my.setFriendName(friendName); my.setFriendName(friendName);
my.setRequestRemark(requestRemark); my.setRequestRemark(requestRemark);
my.setState(FriendStateEnum.UNSURE.getCode()); my.setState(FriendStateEnum.UNSURE.getCode());
if (getByKey(currentClient.getClientId(), friendClient.getClientId()) != null) { my.setId(SnowflakeUtil.getId());
my.setCreateTime(new Date());
my.setUpdateTime(new Date());
this.save(my);
} else {
if (StringUtils.isNotEmpty(requestRemark)) { if (StringUtils.isNotEmpty(requestRemark)) {
my.setRequestRemark(requestRemark); my.setRequestRemark(requestRemark);
} }
...@@ -124,29 +140,24 @@ public class ImFriendService extends BaseServiceImpl<ImFriendMapper, ImFriend> { ...@@ -124,29 +140,24 @@ public class ImFriendService extends BaseServiceImpl<ImFriendMapper, ImFriend> {
my.setFriendName(friendName); my.setFriendName(friendName);
} }
this.updateByKey(my); this.updateByKey(my);
} else {
my.setId(SnowflakeUtil.getId());
my.setCreateTime(new Date());
my.setUpdateTime(new Date());
this.save(my);
} }
ImFriend friend = new ImFriend(); if (friend == null) {
friend = new ImFriend();
friend.setClientId(friendClient.getClientId()); friend.setClientId(friendClient.getClientId());
friend.setClientIdFriend(currentClient.getClientId()); friend.setClientIdFriend(currentClient.getClientId());
friend.setClientIdClaimer(currentClient.getClientId()); friend.setClientIdClaimer(currentClient.getClientId());
friend.setRequestRemark(requestRemark); friend.setRequestRemark(requestRemark);
friend.setState(FriendStateEnum.UNSURE.getCode()); friend.setState(FriendStateEnum.UNSURE.getCode());
if (getByKey(friendClient.getClientId(), currentClient.getClientId()) != null) {
if (StringUtils.isNotEmpty(requestRemark)) {
friend.setRequestRemark(requestRemark);
}
this.updateByKey(friend);
} else {
friend.setId(SnowflakeUtil.getId()); friend.setId(SnowflakeUtil.getId());
friend.setCreateTime(new Date()); friend.setCreateTime(new Date());
friend.setUpdateTime(new Date()); friend.setUpdateTime(new Date());
this.save(friend); this.save(friend);
} else {
if (StringUtils.isNotEmpty(requestRemark)) {
friend.setRequestRemark(requestRemark);
}
this.updateByKey(friend);
} }
//既然申请好友了,就删除好友推荐 //既然申请好友了,就删除好友推荐
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment