package parkour import ( "go_dreamfactory/comm" "go_dreamfactory/pb" "go_dreamfactory/sys/configure" "time" ) //参数校验 func (this *apiComp) InviteCheck(session comm.IUserSession, req *pb.ParkourInviteReq) (code pb.ErrorCode) { return } ///邀请组队 func (this *apiComp) Invite(session comm.IUserSession, req *pb.ParkourInviteReq) (code pb.ErrorCode, data *pb.ErrorData) { var ( tean *pb.DBRaceTeam tuser *pb.DBUser ok bool err error ) if code = this.InviteCheck(session, req); code != pb.ErrorCode_Success { return } if tean, err = this.module.teamComp.queryteam(session.GetUserId()); err != nil { code = pb.ErrorCode_DBError return } if len(tean.Member) > 3 { code = pb.ErrorCode_ReqParameterError return } if tuser = this.module.ModuleUser.GetUser(req.Uid); tuser == nil { code = pb.ErrorCode_SystemError return } //目标是否在线 if !this.module.ModuleUser.IsOnline(req.Uid) { tean.Member = append(tean.Member, &pb.DBRaceMember{Uid: tuser.Uid, Name: tuser.Name, Isai: true}) } else { ok = false for _, v := range tean.Invite { if v.Uid == req.Uid { v.Expired = configure.Now().Add(time.Second * 10).Unix() ok = true } } if !ok { tean.Invite = append(tean.Invite, &pb.DBRaceInvite{Uid: tuser.Uid, Name: tuser.Name}) } this.module.SendMsgToUser(string(this.module.GetType()), "invitenotice", &pb.ParkourInviteNoticePush{Team: tean, State: 1}, req.Uid) } if err = this.module.teamComp.Change(session.GetUserId(), map[string]interface{}{ "invite": tean.Invite, "member": tean.Member, }); err != nil { code = pb.ErrorCode_DBError return } session.SendMsg(string(this.module.GetType()), "invite", &pb.ParkourInviteResp{Issucc: true, Team: tean}) return }