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