package tada import ( "fmt" "server/call" "server/common" "server/db" "server/modules/web/app" "server/modules/web/providers/base" "server/util" "strconv" "strings" "github.com/gin-gonic/gin" "github.com/liangdas/mqant/log" ) func Tada(e *gin.RouterGroup) { e.POST("/auth", auth) e.POST("/bet", bet) e.POST("/sessionBet", sessionBet) e.POST("/cancelSessionBet", cancelSessionBet) } func auth(c *gin.Context) { a := app.NewApp(c) defer func() { a.ResponseB() }() resp := new(AuthResp) req := new(AuthReq) if !a.SB(req) { resp.ErrorCode = ErrorCodeInvalidParameter return } log.Debug("tada auth req:%+v", req) a.RetData = resp // 验证token uid, _ := db.Redis().GetInt(common.GetRedisKeyToken(req.Token)) if uid == 0 { resp.ErrorCode = ErrorCodeTokenExpired return } currency, err := db.Redis().GetInt(common.GetRedisKeyGameCurrency(uid)) if err != nil { log.Error("err:%v", err) resp.ErrorCode = ErrorCodeOther return } resp.UserName = fmt.Sprintf("%v", uid) resp.Currency = strings.ToUpper(common.CurrencyType(currency).GetCurrencyName()) resp.Balance = call.GetUserCurrencyFloat(uid, common.CurrencyType(currency), 4) resp.Token = req.Token log.Debug("tada auth resp:%+v", resp) } func bet(c *gin.Context) { a := app.NewApp(c) resp := new(BetResp) defer func() { log.Debug("tada bet resp:%+v", *resp) a.ResponseB() }() req := new(BetReq) if !a.SB(req) { resp.ErrorCode = ErrorCodeInvalidParameter return } log.Debug("tada bet req:%+v", req) a.RetData = resp ct := common.GetCurrencyID(req.Currency) if !ct.IsValid() { resp.ErrorCode = ErrorCodeInvalidParameter return } provider := call.GetConfigGameProvider(common.ProviderTada) if provider == nil { resp.ErrorCode = ErrorCodeOther return } // defer func() { // // 更新游戏次数 // if resp.ErrorCode == ErrorCodeSuccess { // call.UpdateGameSort(provider.ProviderID, req.Game) // } // }() // 验证token uid, _ := db.Redis().GetInt(common.GetRedisKeyToken(req.Token)) if uid == 0 { var err error uid, err = strconv.Atoi(req.UserId) if err != nil || uid == 0 { log.Error("err:%v", err) resp.ErrorCode = ErrorCodeTokenExpired return } } betResp := base.Bet(&base.BetReq{ UID: uid, CurrencyType: ct, SettleAmount: int64(req.WinLoseAmount * common.DecimalDigits), BetAmount: int64(req.BetAmount * common.DecimalDigits), // TurnOver: int64(req.TurnOver * common.DecimalDigits), // Preserve: int64(req.Preserve * common.DecimalDigits), // SessionType: req.Type, GameID: req.Game, Provider: provider, BetID: fmt.Sprintf("%d", req.Round), // SessionID: fmt.Sprintf("%d", req.SessionID), Time: req.WagersTime, }) if betResp.Code == base.CodeInnerError { resp.ErrorCode = ErrorCodeOther return } if betResp.Code == base.CodeNotEnoughAmount { resp.ErrorCode = ErrorCodeNotEnoughBalance return } if betResp.Code == base.CodeAccepted { resp.TxID = betResp.MyUUID resp.ErrorCode = ErrorCodeAccepted return } resp.UserName = fmt.Sprintf("%v", uid) resp.Currency = req.Currency resp.Balance = util.Decimal(float64(betResp.Balance)/common.DecimalDigits, 4) resp.TxID = betResp.MyUUID resp.Token = req.Token } func sessionBet(c *gin.Context) { a := app.NewApp(c) resp := new(BetResp) defer func() { log.Debug("tada sessionBet resp:%+v", *resp) a.ResponseB() }() req := new(SessionBetReq) if !a.SB(req) { resp.ErrorCode = ErrorCodeInvalidParameter return } log.Debug("tada sessionBet req:%+v", req) a.RetData = resp ct := common.GetCurrencyID(req.Currency) if !ct.IsValid() { resp.ErrorCode = ErrorCodeInvalidParameter return } provider := call.GetConfigGameProvider(common.ProviderTada) if provider == nil { resp.ErrorCode = ErrorCodeOther return } // 验证token uid, _ := db.Redis().GetInt(common.GetRedisKeyToken(req.Token)) if uid == 0 { var err error uid, err = strconv.Atoi(req.UserId) if err != nil || uid == 0 { log.Error("err:%v", err) resp.ErrorCode = ErrorCodeTokenExpired return } } betResp := base.SessionBet(&base.BetReq{ UID: uid, CurrencyType: ct, SettleAmount: int64(req.WinLoseAmount * common.DecimalDigits), BetAmount: int64(req.BetAmount * common.DecimalDigits), TurnOver: int64(req.TurnOver * common.DecimalDigits), Preserve: int64(req.Preserve * common.DecimalDigits), SessionType: req.Type, GameID: req.Game, Provider: provider, BetID: fmt.Sprintf("%d", req.Round), SessionID: fmt.Sprintf("%d", req.SessionID), Time: req.WagersTime, }) if betResp.Code == base.CodeInnerError { resp.ErrorCode = ErrorCodeOther return } if betResp.Code == base.CodeNotEnoughAmount { resp.ErrorCode = ErrorCodeNotEnoughBalance return } if betResp.Code == base.CodeAccepted { resp.TxID = betResp.MyUUID resp.ErrorCode = ErrorCodeAccepted return } // defer func() { // // 更新游戏次数 // if resp.ErrorCode == ErrorCodeSuccess { // call.UpdateGameSort(provider.ProviderID, req.Game) // } // }() resp.UserName = fmt.Sprintf("%v", uid) resp.Currency = req.Currency resp.Balance = util.Decimal(float64(betResp.Balance)/common.DecimalDigits, 4) resp.TxID = betResp.MyUUID resp.Token = req.Token } func cancelSessionBet(c *gin.Context) { a := app.NewApp(c) resp := new(BetResp) defer func() { log.Debug("tada cancelSessionBet resp:%+v", *resp) a.ResponseB() }() req := new(SessionBetReq) if !a.SB(req) { resp.ErrorCode = ErrorCodeInvalidParameter return } log.Debug("tada sessionBet req:%+v", req) a.RetData = resp ct := common.GetCurrencyID(req.Currency) if !ct.IsValid() { resp.ErrorCode = ErrorCodeInvalidParameter return } provider := call.GetConfigGameProvider(common.ProviderTada) if provider == nil { resp.ErrorCode = ErrorCodeOther return } // 验证token uid, _ := db.Redis().GetInt(common.GetRedisKeyToken(req.Token)) if uid == 0 { var err error uid, err = strconv.Atoi(req.UserId) if err != nil || uid == 0 { log.Error("err:%v", err) resp.ErrorCode = ErrorCodeTokenExpired return } } betResp := base.CancelSessionBet(&base.BetReq{ UID: uid, CurrencyType: ct, BetAmount: int64(req.BetAmount * common.DecimalDigits), Preserve: int64(req.Preserve * common.DecimalDigits), BetID: fmt.Sprintf("%d", req.Round), SessionID: fmt.Sprintf("%d", req.SessionID), GameID: req.Game, Provider: provider, Time: req.WagersTime, SessionType: req.Type, }) if betResp.Code == base.CodeInnerError { resp.ErrorCode = ErrorCodeOther return } if betResp.Code == base.CodeAccepted { resp.TxID = betResp.MyUUID resp.ErrorCode = ErrorCodeAccepted return } resp.UserName = fmt.Sprintf("%v", uid) resp.Currency = req.Currency resp.Balance = util.Decimal(float64(betResp.Balance)/common.DecimalDigits, 4) resp.TxID = betResp.MyUUID resp.Token = req.Token }