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()
|
||||
amount := req.Amount + (req.Amount * calculateAccumulator(len(outcomes)))
|
||||
|
||||
newBet := domain.CreateBet{
|
||||
Amount: domain.ToCurrency(req.Amount),
|
||||
Amount: domain.ToCurrency(amount),
|
||||
TotalOdds: totalOdds,
|
||||
Status: domain.OUTCOME_STATUS_PENDING,
|
||||
FullName: req.FullName,
|
||||
|
|
@ -1019,3 +1020,86 @@ func calculateCashbackAmount(amount, total_odds float32) float32 {
|
|||
|
||||
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
|
||||
// @Router /sport/bet [post]
|
||||
func (h *Handler) CreateBet(c *fiber.Ctx) error {
|
||||
// userID := c.Locals("user_id").(int64)
|
||||
// role := c.Locals("role").(domain.Role)
|
||||
userID := int64(5)
|
||||
role := domain.RoleAdmin
|
||||
userID := c.Locals("user_id").(int64)
|
||||
role := c.Locals("role").(domain.Role)
|
||||
|
||||
var req domain.CreateBetReq
|
||||
if err := c.BodyParser(&req); err != nil {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user