package parkour // import ( // "go_dreamfactory/comm" // "go_dreamfactory/pb" // "go_dreamfactory/sys/configure" // "time" // ) // //参数校验 // func (this *apiComp) InviteCheck(session comm.IUserSession, req *pb.ParkourInviteReq) (errdata *pb.ErrorData) { // if req.Uid == session.GetUserId() { // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_ReqParameterError, // Title: pb.ErrorCode_ReqParameterError.ToString(), // } // } // return // } // ///邀请组队 // func (this *apiComp) Invite(session comm.IUserSession, req *pb.ParkourInviteReq) (errdata *pb.ErrorData) { // var ( // info *pb.DBParkour // tinfo *pb.DBParkour // tuser *pb.DBUser // member *pb.DBRaceMember // users []string // ok bool // err error // ) // if errdata = this.InviteCheck(session, req); errdata != nil { // return // } // if info, err = this.module.parkourComp.queryinfo(session.GetUserId()); err != nil { // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_DBError, // Title: pb.ErrorCode_DBError.ToString(), // Message: err.Error(), // } // return // } // if info.Captainid != "" && info.Captainid != session.GetUserId() { //自己不是队长 无权邀请他人 // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_ParkourInviteNoPermissions, // Title: pb.ErrorCode_ParkourInviteNoPermissions.ToString(), // Message: err.Error(), // } // return // } // if len(info.Member) > 3 { // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_ReqParameterError, // Title: pb.ErrorCode_ReqParameterError.ToString(), // } // return // } // if tuser, err = this.module.ModuleUser.GetUser(session.GetUserId()); err != nil { // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_SystemError, // Title: pb.ErrorCode_SystemError.ToString(), // } // return // } // ok = false // for _, v := range info.Member { // if v.Uid == session.GetUserId() { // ok = true // } // } // if !ok { // info.Member = append(info.Member, &pb.DBRaceMember{Uid: tuser.Uid, Name: tuser.Name, Avatar: tuser.Avatar, Lv: tuser.Lv, Mount: info.Dfmount, Maxhp: 10}) // } // if tinfo, err = this.module.parkourComp.queryinfo(req.Uid); err != nil { // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_DBError, // Title: pb.ErrorCode_DBError.ToString(), // Message: err.Error(), // } // return // } // if tuser, err = this.module.ModuleUser.GetUser(req.Uid); err != nil { // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_SystemError, // Title: pb.ErrorCode_SystemError.ToString(), // Message: err.Error(), // } // return // } // //目标是否在线 // if !this.module.ModuleUser.IsOnline(req.Uid) { // member = &pb.DBRaceMember{Uid: tuser.Uid, Name: tuser.Name, Avatar: tuser.Avatar, Lv: tuser.Lv, Mount: tinfo.Dfmount, Maxhp: 10, Isai: true} // info.Captainid = session.GetUserId() // info.Member = append(info.Member, member) // users = make([]string, len(info.Member)) // for i, v := range info.Member { // users[i] = v.Uid // } // this.module.SendMsgToUsers(string(this.module.GetType()), "teamjoinnotice", // &pb.ParkourTeamJoinNoticePush{Member: member}, users...) // this.module.SendMsgToUsers(string(this.module.GetType()), "teamchanage", // &pb.ParkourTeamChanagePush{Team: info}, users...) // } else { // if tinfo.Captainid != "" { // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_ParkourTargetTeamed, // Title: pb.ErrorCode_ParkourTargetTeamed.ToString(), // } // return // } // ok = false // for _, v := range info.Invite { // if v.Uid == req.Uid { // v.Expired = configure.Now().Add(time.Second * 10).Unix() // ok = true // } // } // if !ok { // info.Invite = append(info.Invite, &pb.DBRaceInvite{Uid: tuser.Uid, Name: tuser.Name, Avatar: tuser.Avatar, Lv: tuser.Lv, Expired: configure.Now().Add(time.Second * 10).Unix()}) // } // this.module.SendMsgToUser(string(this.module.GetType()), "invitenotice", // &pb.ParkourInviteNoticePush{Team: info, State: 1}, req.Uid) // } // if err = this.module.parkourComp.Change(session.GetUserId(), map[string]interface{}{ // "captainid": info.Captainid, // "invite": info.Invite, // "member": info.Member, // }); err != nil { // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_DBError, // Title: pb.ErrorCode_DBError.ToString(), // Message: err.Error(), // } // return // } // session.SendMsg(string(this.module.GetType()), "invite", &pb.ParkourInviteResp{Issucc: true, Team: info}) // return // }