package friend import ( "go_dreamfactory/comm" "go_dreamfactory/pb" "go_dreamfactory/utils" "google.golang.org/protobuf/proto" ) func (this *apiComp) RefuseCheck(session comm.IUserSession, req *pb.FriendRefuseReq) (code pb.ErrorCode) { if len(req.FriendIds) == 0 { code = pb.ErrorCode_ReqParameterError } return } //单个/批量拒绝 func (this *apiComp) Refuse(session comm.IUserSession, req *pb.FriendRefuseReq) (code pb.ErrorCode, data proto.Message) { //将申请人从申请列表中删除 var ( err error self *pb.DBFriend rsp *pb.FriendRefuseRsp optNum int32 ) defer func() { rsp = &pb.FriendRefuseRsp{ Num: optNum, } err := session.SendMsg(string(this.module.GetType()), FriendSubTypeRefuse, rsp) if err != nil { code = pb.ErrorCode_SystemError return } }() self = &pb.DBFriend{UId: session.GetUserId()} //获取玩家自己好友数据 err = this.module.modelFriend.Get(session.GetUserId(), self) if self == nil || err != nil { 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) } } //将申请人从申请列表中删除 for _, userId := range refuseIds { 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 }