package httpresp import ( "git.hlsq.asia/alex/proto/proto/rs/rscommon" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" ) var ( OK = NewCode(0, "OK") Failed = NewCode(1, "Failed") TokenInvalid = NewCode(2, "Token Invalid") MethodNotAllowed = NewCode(3, "Method Not Allowed") NotFound = NewCode(4, "Not Found") TokenForbidden = NewCode(5, "Token Forbidden") AdminNotExist = NewCode(6, "Admin Not Exist") ServerMaintenance = NewCode(7, "Server Maintenance") RequestTooFast = NewCode(8, "Request too fast") // 请求太频繁了 ParamError = NewCode(1001, "参数错误") PageQueryError = NewCode(1002, "page query param error") PhoneCodeError = NewCode(1003, "Phone or code error") // 手机验证码错误 PhoneHasBeenBind = NewCode(1004, "Phone number has been bind") // 手机号已经被绑定 WeChatHasBeenBind = NewCode(1005, "WeChat has been bind") // 微信已经被绑定 BindTicketError = NewCode(1006, "Bind ticket error") // 登录绑定凭证无效 RoundIsEnd = NewCode(2001, "Round is end") RoundNotEnd = NewCode(2002, "Round not end") NameEmpty = NewCode(1002, "名称不能为空") NameDuplicate = NewCode(1003, "名称或编号不能重复") ListEmpty = NewCode(1004, "列表不能为空") RepeatCommit = NewCode(1005, "请勿重复提交") // ----------------user 10000-11000-------------------- UserNotFound = NewCode(10001, "User not found") CharNickNameTooLong = NewCode(10002, "Character nickname too long") CharNickNameIllegal = NewCode(10003, "Character nickname illegal") CharNickNameEmpty = NewCode(10004, "Character nickname empty") CharModelEmpty = NewCode(10005, "Character model empty") CharModelNotExist = NewCode(10006, "Character model not exist") CharAvatarEmpty = NewCode(10007, "Character avatar empty") CharAvatarNotExist = NewCode(10008, "Character avatar not exist") CharSexInvalid = NewCode(10009, "Character sex invalid") RewardAlreadyBindError = NewCode(10010, "Reward already bind") // 奖励已绑定 // ----------------SCENE 10010-10100-------------------- SceneRoomNumberGenError = NewCode(10010, "Room number gen error") RoomNotExistsError = NewCode(10011, "Room not exists error") RoomPlayerUpperLimit = NewCode(10012, "Room player upper limit") // 房间人数满了 RoomStatusNotAllowEnter = NewCode(10013, "Room status not allow enter") // 房间状态不允许中途进入 PlayerAlreadyInRoom = NewCode(10014, "Player already in room") //玩家已经在房间中 PlayerHandicapNotMeet = NewCode(10015, "Player handicap not meet") //玩家等级不足 NoAvailableRoom = NewCode(10016, "No available room") // 没有符合的房间 SceneRoomDescriptionWidthError = NewCode(10017, "Room description width more than error") // ----------------court-physical 11001-12000-------------------- CourtPhysicalNotFind = NewCode(11001, "没有找到线下球场配置") CourtPhysicalNotFindCompetitionl = NewCode(11002, "没有找到比赛") CourtPhysicalCompetitionlNotPermission = NewCode(11003, "你不是房主无权编辑") CourtPhysicalCompetitionlNotHole = NewCode(11004, "球场配置错误,没有洞的数据") CourtPhysicalCompetitionlPlayerUpperLimit = NewCode(11005, "比赛球员已达上限") CourtPhysicalCompetitionlPlayerIsRoom = NewCode(11006, "用户已在房间") CourtPhysicalCompetitionlStart = NewCode(11007, "比赛已开始") CourtPhysicalCompetitionlPlayerJoinFailed = NewCode(11008, "用户加入比赛失败") CourtPhysicalCompetitionlNotRemovedHomeowner = NewCode(11009, "不能移除房主") CourtPhysicalCompetitionlNotFindPlayer = NewCode(11010, "房间没有该用户") CourtPhysicalCompetitionlNotGamePlayer = NewCode(11011, "该用户不是球员") CourtPhysicalCompetitionlNotIn = NewCode(11012, "该用户不在本局比赛") CourtPhysicalCompetitionlStartFail = NewCode(11013, "比赛开始初始化数据失败") CourtPhysicalCompetitionlEnd = NewCode(11014, "比赛已结束") CourtPhysicalCompetitionlNotStart = NewCode(11015, "比赛未开始") CourtPhysicalCompetitionlPKFail = NewCode(11016, "PK玩法配置错误") CourtPhysicalCompetitionlPKTigerNot3Player = NewCode(11017, "PK玩法配置错误:Tiger玩法参赛选手需≥3") CourtPhysicalCompetitionlPKTigerNotTiger = NewCode(11018, "PK玩法配置错误:Tiger玩法不能没有老虎") CourtPhysicalCompetitionlPKTigerNotHole = NewCode(11019, "PK玩法配置错误:Tiger玩法至少要选择一个球洞") CourtPhysicalCompetitionlPKTigerEnhanceFail = NewCode(11020, "PK玩法配置错误:Tiger玩法比洞才有受让杆") CourtPhysicalCompetitionlPKTigerTopHoleFail = NewCode(11021, "PK玩法配置错误:Tiger玩法比洞才有顶洞和收顶洞") CourtPhysicalCompetitionlPKRyderCupNot4Player = NewCode(11022, "PK玩法配置错误:莱德杯玩法需4名参赛选手") CourtPhysicalCompetitionlPKRyderCupLeastFormat = NewCode(11023, "PK玩法配置错误:莱德杯玩法至少要选择一个赛制") CourtPhysicalCompetitionlPKRyderCupHoleFail = NewCode(11024, "PK玩法配置错误:莱德杯玩法球洞配置冲突") CourtPhysicalCompetitionlPKRyderCupTeamFail = NewCode(11025, "PK玩法配置错误:莱德杯玩法两队人数不对") CourtPhysicalCompetitionlNameIllegal = NewCode(11026, "比赛昵称存在违禁词") CourtPhysicalCompetitionlLinkError = NewCode(11027, "生成微信链接错误") // 锦标赛 ----------------court 12001-13000-------------------- CourtTournamentNotInvited = NewCode(12002, "仅限受邀用户参赛") // 未在邀请名单内 CourtTournamentHandicapNotMeet = NewCode(12003, "差点不符合参赛要求") // 无有效差点或超出要求区间 CourtTournamentRoundAlreadyStarted = NewCode(12004, "本轮比赛已开始") // 并发重复开赛(竞态) CourtTournamentRoundNotInProgress = NewCode(12005, "轮次未开始,不能开赛") // 轮次不是进行中 CourtTournamentJoinEnded = NewCode(12006, "已淘汰,无法继续比赛") // 报名已结束(已淘汰) CourtTournamentPracticeNotAllowed = NewCode(12007, "该锦标赛未开放练习") // 未配置练习次数 CourtTournamentPracticeEnded = NewCode(12008, "比赛已结束,不允许练习") // 决赛结束/已完成/已取消 CourtTournamentPracticeTimesNotEnough = NewCode(12009, "练习次数已用完") // 已练习次数达上限 CourtTournamentShelfStatusNotAllowed = NewCode(12010, "该锦标赛不允许下架") // 该锦标赛不允许下架 ) type Code struct { code int error string } func NewCode(code int, error string) *Code { return &Code{ code: code, error: error, } } func (c *Code) Code() int { return c.code } func (c *Code) Error() string { return c.error } func (c *Code) Wrap() error { st := status.New(codes.Unknown, c.Error()) st, _ = st.WithDetails(&rscommon.ErrorInfo{ Code: int32(c.Code()), Msg: c.Error(), }) return st.Err() }