package parkour // import ( // "go_dreamfactory/comm" // "go_dreamfactory/pb" // ) // //参数校验 // func (this *apiComp) JoinTeamCheck(session comm.IUserSession, req *pb.ParkourJoinTeamReq) (errdata *pb.ErrorData) { // if session.GetUserId() == req.Uid { // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_ReqParameterError, // Title: pb.ErrorCode_ReqParameterError.ToString(), // } // } // return // } // ///请求进入队伍 // func (this *apiComp) JoinTeam(session comm.IUserSession, req *pb.ParkourJoinTeamReq) (errdata *pb.ErrorData) { // var ( // info *pb.DBParkour // tean *pb.DBParkour // member *pb.DBRaceMember // users []string // err error // ) // if errdata = this.JoinTeamCheck(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.State != pb.RaceTeamState_resting { // 不是休息中不能参加 // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_StateInvalid, // Title: pb.ErrorCode_StateInvalid.ToString(), // Message: err.Error(), // } // return // } // if len(info.Member) > 3 { // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_ParkourMemberFull, // Title: pb.ErrorCode_ParkourMemberFull.ToString(), // Message: err.Error(), // } // return // } // if tean, 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 // } // users = make([]string, len(tean.Member)) // for i, v := range tean.Member { // if v.Uid == session.GetUserId() { // // 自己已经在队伍中 // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_ParkourTargetTeamed, // Title: pb.ErrorCode_ParkourTargetTeamed.ToString(), // Message: err.Error(), // } // return // } // users[i] = v.Uid // } // user, err := this.module.ModuleUser.GetUser(session.GetUserId()) // if err != nil { // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_SystemError, // Title: pb.ErrorCode_SystemError.ToString(), // Message: err.Error(), // } // return // } // if tean.Captainid == "" { // member = &pb.DBRaceMember{Uid: user.Uid, Name: user.Name, Avatar: user.Avatar, Lv: user.Lv, Mount: tean.Dfmount, Maxhp: 10} // tean.Captainid = tean.Uid // tean.State = pb.RaceTeamState_teaming // tean.Member = append(tean.Member, member) // users = append(users, tean.Uid) // } // users = append(users, session.GetUserId()) // member = &pb.DBRaceMember{Uid: user.Uid, Name: user.Name, Avatar: user.Avatar, Lv: user.Lv, Mount: info.Dfmount, Maxhp: 10} // tean.Member = append(tean.Member, member) // if err = this.module.parkourComp.Change(session.GetUserId(), map[string]interface{}{ // "state": tean.State, // "captainid": tean.Captainid, // }); err != nil { // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_DBError, // Title: pb.ErrorCode_DBError.ToString(), // Message: err.Error(), // } // return // } // if err = this.module.parkourComp.Change(tean.Captainid, map[string]interface{}{ // "state": tean.State, // "captainid": tean.Captainid, // "member": tean.Member, // }); err != nil { // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_DBError, // Title: pb.ErrorCode_DBError.ToString(), // Message: err.Error(), // } // return // } // this.module.SendMsgToUsers(string(this.module.GetType()), "teamjoinnotice", // &pb.ParkourTeamJoinNoticePush{Member: member}, users...) // this.module.SendMsgToUsers(string(this.module.GetType()), "teamchanage", // &pb.ParkourTeamChanagePush{Team: tean}, users...) // session.SendMsg(string(this.module.GetType()), "jointeam", &pb.ParkourJoinTeamResp{ // Team: tean, // }) // return // }