package jin import ( "server/call" "server/common" "server/db" "server/modules/web/app" "server/modules/web/providers/base" "server/util" "strconv" "time" "github.com/gin-gonic/gin" "github.com/liangdas/mqant/log" ) func PG(e *gin.RouterGroup) { e.POST("/authentication", Auth) e.POST("/result", GameBet) e.POST("/jackpot", Jackpot) } func GetGameID(providerID int, gameCode string) int { game := call.GetConfigGameListByCode(providerID, gameCode) if game != nil { return game.GameID } return 0 } func Auth(c *gin.Context) { a := app.NewApp(c) defer func() { a.ResponseB() }() req := &AuthReq{} resp := &AuthResp{} a.RetData = resp if !a.SB(req) { resp.Code = CodeRequestInvalidParams return } log.Debug("Auth req:%+v", req) token := req.Token if a.ShouldRoute(req, "Token", common.ProviderAPITypePostform) { return } // 验证token uid, _ := db.Redis().GetInt(common.GetRedisKeyToken(req.Token)) if uid == 0 { resp.Code = CodeUserNotFound return } resp.Data.Accounts = strconv.Itoa(uid) resp.Data.Nickname = strconv.Itoa(uid) resp.Data.Token = token resp.Data.Amount = call.GetUserCurrencyFloat(uid, common.CurrencyType(0), 2) log.Debug("AuthResp:%+v", resp) a.Data = resp } func GameBet(c *gin.Context) { a := app.NewApp(c) defer func() { a.ResponseB() }() req := &GameBetReq{} resp := &GameBetResp{} a.RetData = resp if !a.SB(req) { resp.Code = CodeRequestInvalidParams return } log.Debug("jin GameBet:%+v", req) /* // jin GameBet:&{Reference:581622397157433172 OperatorID:695865 Accounts:101239 Token:cNFFLVZCHLNGZGJMI GameID:24000 RoomID:24001 WinAmount:0 BetAmount:10 RecordType:0 BetReferenceID:581622397157433172 RoundID:6755680920055585941 IsEndRound:0} // jin GameBet:&{Reference:581622397157433173 OperatorID:695865 Accounts:101239 Token:cNFFLVZCHLNGZGJMI GameID:24000 RoomID:24001 WinAmount:14.3 BetAmount:0 RecordType:1 BetReferenceID:581622397157433172 RoundID:6755680920055585941 IsEndRound:1} */ if a.ShouldRoute(req, "Token", common.ProviderAPITypePostform) { return } // 验证token uid, _ := db.Redis().GetInt(common.GetRedisKeyToken(req.Token)) if uid == 0 { resp.Code = CodeUserNotFound log.Error("err: uid=%v", uid) return } provider := call.GetConfigGameProvider(common.ProviderJin) now := time.Now().Unix() betReq := &base.BetReq{ UID: uid, BetAmount: int64(req.BetAmount * common.DecimalDigits), TurnOver: int64(req.BetAmount * common.DecimalDigits), SettleAmount: int64(req.WinAmount * common.DecimalDigits), SessionType: base.SessionTypeBet, GameID: GetGameID(common.ProviderJin, req.GameID), GameName: req.GameID, Provider: provider, BetID: req.RoundID, SessionID: req.BetReferenceID, Time: now, CurrencyType: common.CurrencyINR, } if req.IsEndRound == 1 { // 结算回合 betReq.SessionType = base.SessionTypeSettle } betResp := base.SessionBet(betReq) if betResp.Code != base.CodeOk { resp.Code = CodeSuccess if betResp.Code == base.CodeAccepted { resp.Code = CodeDuplicateOrder } else if betResp.Code == base.CodeNotEnoughAmount { resp.Code = CodeInsufficientBalance } log.Error("GameBetResp err:%v", resp.Code) return } resp.Data.Amount = util.Decimal(float64(betResp.Balance)/common.DecimalDigits, 2) log.Debug("GameBetResp:%+v", resp) a.Data = resp } func Jackpot(c *gin.Context) { a := app.NewApp(c) defer func() { a.ResponseB() }() req := &JackpotReq{} resp := &JackpotResp{} a.RetData = resp if !a.SB(req) { resp.Code = CodeRequestInvalidParams return } log.Debug("Jackpot:%+v", req) if a.ShouldRoute(req, "Token", common.ProviderAPITypePostform) { return } // 验证token uid, _ := db.Redis().GetInt(common.GetRedisKeyToken(req.Token)) if uid == 0 { resp.Code = CodeUserNotFound return } provider := call.GetConfigGameProvider(common.ProviderJin) now := time.Now().Unix() betReq := &base.BetReq{ UID: uid, BetAmount: 0, TurnOver: 0, SettleAmount: int64(req.WinAmount * common.DecimalDigits), SessionType: base.SessionTypeSettle, GameID: GetGameID(common.ProviderJin, req.GameID), GameName: req.GameID, Provider: provider, BetID: req.RoundID, SessionID: req.BetReferenceID, Time: now, } betResp := base.SessionBet(betReq) if betResp.Code != base.CodeOk { resp.Code = CodeSuccess if betResp.Code == base.CodeAccepted { resp.Code = CodeDuplicateOrder } else if betResp.Code == base.CodeNotEnoughAmount { resp.Code = CodeInsufficientBalance } log.Error("GameBetResp err:%v", resp.Code) return } resp.Data.Amount = util.Decimal(float64(betResp.Balance)/common.DecimalDigits, 2) log.Debug("JackpotResp:%+v", resp) a.Data = resp }