fix同意好友申请申请记录没有删除

This commit is contained in:
sk 2024-12-02 15:53:42 +08:00
parent 4d9dd37713
commit 2d43a4153a
1 changed files with 27 additions and 14 deletions

View File

@ -511,7 +511,7 @@ func (this *FriendMgr) FriendApply(p *Player, destP *model.BindFriend) {
// p 同意者 // p 同意者
// destP 申请者 // destP 申请者
func (this *FriendMgr) FriendAgree(p *Player, destP *model.BindFriend) { func (this *FriendMgr) FriendAgree(p *Player, destP *model.BindFriend) {
var applyList []int32 var applyList, meApplyList []int32
SendToClick := func(retCode friend.OpResultCode, self ...bool) { SendToClick := func(retCode friend.OpResultCode, self ...bool) {
pack := &friend.SCFriendOp{ pack := &friend.SCFriendOp{
OpCode: proto.Int32(OpTypeAgree), OpCode: proto.Int32(OpTypeAgree),
@ -534,6 +534,10 @@ func (this *FriendMgr) FriendAgree(p *Player, destP *model.BindFriend) {
RoleId: int32(roleId), RoleId: int32(roleId),
} }
p.SendToClient(int(friend.FriendPacketID_PACKET_SCFriendOp), pack) p.SendToClient(int(friend.FriendPacketID_PACKET_SCFriendOp), pack)
if meApplyList != nil {
p.ApplyList = meApplyList
this.SendApplyList(p)
}
} else { } else {
destPs := PlayerMgrSington.GetPlayerBySnId(destP.SnId) destPs := PlayerMgrSington.GetPlayerBySnId(destP.SnId)
if destPs != nil && destPs.IsOnLine() { if destPs != nil && destPs.IsOnLine() {
@ -613,32 +617,42 @@ func (this *FriendMgr) FriendAgree(p *Player, destP *model.BindFriend) {
// 删除被申请者的申请列表 // 删除被申请者的申请列表
list1, err := model.QueryFriendApplyBySnid(plt, snid) list1, err := model.QueryFriendApplyBySnid(plt, snid)
if err != nil { if err != nil {
logger.Logger.Errorf("QueryFriendApplyBySnid %v error: %v", snid, err)
return friend.OpResultCode_OPRC_Error return friend.OpResultCode_OPRC_Error
} }
for k, v := range list1.ApplySnids { if list1 != nil {
if v.SnId == applySnid { for k, v := range list1.ApplySnids {
list1.ApplySnids = append(list1.ApplySnids[:k], list1.ApplySnids[k+1:]...) if v.SnId == applySnid {
model.UpsertFriendApply(plt, snid, list1) list1.ApplySnids = append(list1.ApplySnids[:k], list1.ApplySnids[k+1:]...)
break model.UpsertFriendApply(plt, snid, list1)
break
}
} }
} }
// 删除发起方的申请列表 // 删除发起方的申请列表
list2, err := model.QueryFriendApplyListBySnid(plt, applySnid) list2, err := model.QueryFriendApplyListBySnid(plt, applySnid)
if err != nil { if err != nil {
logger.Logger.Errorf("QueryFriendApplyListBySnid %v error: %v", applySnid, err)
return friend.OpResultCode_OPRC_Error return friend.OpResultCode_OPRC_Error
} }
for k, v := range list2.List { if list2 != nil {
if v == snid { for k, v := range list2.List {
list2.List = append(list2.List[:k], list2.List[k+1:]...) if v == snid {
model.UpsertApplyList(plt, list2) list2.List = append(list2.List[:k], list2.List[k+1:]...)
break model.UpsertApplyList(plt, list2)
break
}
} }
} }
if applySnid == destP.SnId { if applySnid == destP.SnId && list2 != nil {
applyList = list2.List applyList = list2.List
} }
if applySnid == p.SnId && list2 != nil {
meApplyList = list2.List
}
return friend.OpResultCode_OPRC_Sucess return friend.OpResultCode_OPRC_Sucess
} }
@ -658,10 +672,9 @@ func (this *FriendMgr) FriendAgree(p *Player, destP *model.BindFriend) {
CreateTime: time.Now().Unix(), CreateTime: time.Now().Unix(),
}) })
model.UpsertFriend(friendDB) model.UpsertFriend(friendDB)
return friend.OpResultCode_OPRC_Sucess
} }
return friend.OpResultCode_OPRC_Error return nil
}), task.CompleteNotifyWrapper(func(data interface{}, tt task.Task) { }), task.CompleteNotifyWrapper(func(data interface{}, tt task.Task) {
if data != nil { if data != nil {
logger.Logger.Error("FriendAgree data:", data) logger.Logger.Error("FriendAgree data:", data)