accumulator bonus
This commit is contained in:
parent
95926dbe6a
commit
fff88bb4b9
|
|
@ -251,9 +251,10 @@ func (s *Service) PlaceBet(ctx context.Context, req domain.CreateBetReq, userID
|
||||||
}
|
}
|
||||||
|
|
||||||
fastCode := helpers.GenerateFastCode()
|
fastCode := helpers.GenerateFastCode()
|
||||||
|
amount := req.Amount + (req.Amount * calculateAccumulator(len(outcomes)))
|
||||||
|
|
||||||
newBet := domain.CreateBet{
|
newBet := domain.CreateBet{
|
||||||
Amount: domain.ToCurrency(req.Amount),
|
Amount: domain.ToCurrency(amount),
|
||||||
TotalOdds: totalOdds,
|
TotalOdds: totalOdds,
|
||||||
Status: domain.OUTCOME_STATUS_PENDING,
|
Status: domain.OUTCOME_STATUS_PENDING,
|
||||||
FullName: req.FullName,
|
FullName: req.FullName,
|
||||||
|
|
@ -1019,3 +1020,86 @@ func calculateCashbackAmount(amount, total_odds float32) float32 {
|
||||||
|
|
||||||
return amount * multiplier
|
return amount * multiplier
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func calculateAccumulator(outcomesCount int) float32 {
|
||||||
|
switch outcomesCount {
|
||||||
|
case 3:
|
||||||
|
return 0.05
|
||||||
|
case 4:
|
||||||
|
return 0.08
|
||||||
|
case 5:
|
||||||
|
return 0.09
|
||||||
|
case 6:
|
||||||
|
return 0.10
|
||||||
|
case 7:
|
||||||
|
return 0.15
|
||||||
|
case 8:
|
||||||
|
return 0.20
|
||||||
|
case 9:
|
||||||
|
return 0.25
|
||||||
|
case 10:
|
||||||
|
return 0.30
|
||||||
|
case 11:
|
||||||
|
return 0.35
|
||||||
|
case 12:
|
||||||
|
return 0.40
|
||||||
|
case 13:
|
||||||
|
return 0.45
|
||||||
|
case 14:
|
||||||
|
return 0.50
|
||||||
|
case 15:
|
||||||
|
return 0.55
|
||||||
|
case 16:
|
||||||
|
return 0.60
|
||||||
|
case 17:
|
||||||
|
return 0.65
|
||||||
|
case 18:
|
||||||
|
return 0.70
|
||||||
|
case 19:
|
||||||
|
return 0.75
|
||||||
|
case 20:
|
||||||
|
return 0.80
|
||||||
|
case 21:
|
||||||
|
return 0.85
|
||||||
|
case 22:
|
||||||
|
return 0.90
|
||||||
|
case 23:
|
||||||
|
return 0.95
|
||||||
|
case 24:
|
||||||
|
return 1.00
|
||||||
|
case 25:
|
||||||
|
return 1.10
|
||||||
|
case 26:
|
||||||
|
return 1.30
|
||||||
|
case 27:
|
||||||
|
return 1.50
|
||||||
|
case 28:
|
||||||
|
return 1.70
|
||||||
|
case 29:
|
||||||
|
return 2.00
|
||||||
|
case 30:
|
||||||
|
return 2.10
|
||||||
|
case 31:
|
||||||
|
return 2.30
|
||||||
|
case 32:
|
||||||
|
return 2.50
|
||||||
|
case 33:
|
||||||
|
return 2.70
|
||||||
|
case 34:
|
||||||
|
return 2.90
|
||||||
|
case 35:
|
||||||
|
return 3.10
|
||||||
|
case 36:
|
||||||
|
return 3.20
|
||||||
|
case 37:
|
||||||
|
return 3.40
|
||||||
|
case 38:
|
||||||
|
return 5.00
|
||||||
|
case 39:
|
||||||
|
return 6.00
|
||||||
|
case 40:
|
||||||
|
return 10.00
|
||||||
|
default:
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,10 +25,8 @@ import (
|
||||||
// @Failure 500 {object} response.APIResponse
|
// @Failure 500 {object} response.APIResponse
|
||||||
// @Router /sport/bet [post]
|
// @Router /sport/bet [post]
|
||||||
func (h *Handler) CreateBet(c *fiber.Ctx) error {
|
func (h *Handler) CreateBet(c *fiber.Ctx) error {
|
||||||
// userID := c.Locals("user_id").(int64)
|
userID := c.Locals("user_id").(int64)
|
||||||
// role := c.Locals("role").(domain.Role)
|
role := c.Locals("role").(domain.Role)
|
||||||
userID := int64(5)
|
|
||||||
role := domain.RoleAdmin
|
|
||||||
|
|
||||||
var req domain.CreateBetReq
|
var req domain.CreateBetReq
|
||||||
if err := c.BodyParser(&req); err != nil {
|
if err := c.BodyParser(&req); err != nil {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user