debud: add logging discounts, move put noAccept for future improvements and sum PriceFrom

This commit is contained in:
skeris 2024-03-22 01:17:28 +03:00
parent 850c62cb4a
commit b576d7dfda

@ -3,6 +3,7 @@ package repository
import (
"context"
"time"
"fmt"
"github.com/sirupsen/logrus"
"go.mongodb.org/mongo-driver/bson"
@ -79,6 +80,7 @@ func (receiver *DiscountRepository) getLayer(ctx context.Context, keyGroup, keyP
err = cursor.All(ctx, &discounts)
fmt.Println("DISCOOOO", discounts)
return discounts, err
}
@ -97,6 +99,8 @@ func (receiver *DiscountRepository) Determine(ctx context.Context, conditions *c
privilegeAmounts = map[string]uint64{}
privilegePrices = map[string]uint64{}
privilegeGroups = map[string]string{}
priority = make(map[string]struct{})
noAccept = make(map[string]struct{})
)
for layer := uint64(1); layer < 5; layer++ {
@ -107,12 +111,10 @@ func (receiver *DiscountRepository) Determine(ctx context.Context, conditions *c
continue
}
// вычисляем количество привилегий во всей корзине
if _, ok := privilegeAmounts[*condition.Product]; ok {
privilegeAmounts[*condition.Product] += *condition.Term
} else {
privilegeAmounts[*condition.Product] = *condition.Term
privilegePrices[*condition.Product] += *condition.PriceFrom
if _, ok := privilegeAmounts[*condition.Product]; !ok {
privilegeGroups[*condition.Product] = *condition.Group
privilegePrices[*condition.Product] = *condition.PriceFrom
}
}
@ -136,8 +138,6 @@ func (receiver *DiscountRepository) Determine(ctx context.Context, conditions *c
// если юзер не nko, то выбираем все скидки за первый слой
// сначала делаем все нужные проверки записываем запреты
priority := make(map[string]struct{})
noAccept := make(map[string]struct{})
for privilege, privilegePrice := range privilegePrices {
// проверки существования скидки за 2 слой noAccept не применям скидки к этой группе если есть такие