package friend import ( "go_dreamfactory/comm" "go_dreamfactory/pb" "go_dreamfactory/utils" ) func (this *apiComp) Refuse_Check(session comm.IUserSession, req *pb.Friend_Refuse_Req) (chk map[string]interface{}, code comm.ErrorCode) { chk = make(map[string]interface{}) var err error self := &pb.DB_FriendData{UId: session.GetUserId()} //获取玩家自己好友数据 err = this.module.modelFriend.Get(session.GetUserId(), self) if self == nil || err != nil { code = comm.ErrorCode{Code: pb.ErrorCode_FriendSelfNoData} return } //拒绝的Ids refuseIds := []string{} for _, friendId := range req.FriendIds { if _, ok := utils.Find(self.ApplyIds, friendId); ok { refuseIds = append(refuseIds, friendId) } } chk["self"] = self chk["refuseIds"] = refuseIds return } //单个/批量拒绝 func (this *apiComp) Refuse(session comm.IUserSession, chk map[string]interface{}, req *pb.Friend_Refuse_Req) (code pb.ErrorCode) { //将申请人从申请列表中删除 var ( self *pb.DB_FriendData rsp *pb.Friend_Refuse_Rsp optNum int32 ) defer func() { rsp = &pb.Friend_Refuse_Rsp{ Num: optNum, } err := session.SendMsg(string(this.module.GetType()), Friend_SubType_Refuse, rsp) if err != nil { code = pb.ErrorCode_SystemError return } }() if v, ok := chk["self"]; !ok { code = pb.ErrorCode_FriendTargetNoData return } else { self = v.(*pb.DB_FriendData) if v, ok := chk["refuseIds"]; ok { //将申请人从申请列表中删除 for _, userId := range v.([]string) { self.ApplyIds = utils.DeleteString(self.ApplyIds, userId) optNum++ } //更新 if optNum > 0 { err := this.module.modelFriend.Change(self.UId, map[string]interface{}{ "applyIds": self.ApplyIds, }) if err != nil { code = pb.ErrorCode_DBError return } } } } return }