41 lines
1.3 KiB
Go
41 lines
1.3 KiB
Go
package jxutils
|
|
|
|
import (
|
|
"git.rosy.net.cn/jx-callback/business/model"
|
|
)
|
|
|
|
type ActStoreSkuMap struct {
|
|
actStoreSkuMap map[int64]map[int]*model.ActStoreSku2
|
|
}
|
|
|
|
func NewActStoreSkuMap(actStoreSkuList []*model.ActStoreSku2, isActPrice bool) (actMap *ActStoreSkuMap) {
|
|
actMap = &ActStoreSkuMap{}
|
|
actStoreSkuMap := make(map[int64]map[int]*model.ActStoreSku2)
|
|
for _, v := range actStoreSkuList {
|
|
index := Combine2Int(v.StoreID, v.SkuID)
|
|
if actStoreSkuMap[index] == nil {
|
|
actStoreSkuMap[index] = make(map[int]*model.ActStoreSku2)
|
|
}
|
|
if (isActPrice && v.ActualActPrice > 0 && (actStoreSkuMap[index][v.VendorID] == nil || actStoreSkuMap[index][v.VendorID].ActualActPrice > v.ActualActPrice)) ||
|
|
(!isActPrice && v.EarningPrice > 0 && (actStoreSkuMap[index][v.VendorID] == nil || actStoreSkuMap[index][v.VendorID].EarningPrice > v.EarningPrice)) {
|
|
actStoreSkuMap[index][v.VendorID] = v
|
|
}
|
|
}
|
|
actMap.actStoreSkuMap = actStoreSkuMap
|
|
return actMap
|
|
}
|
|
|
|
func (a *ActStoreSkuMap) GetActStoreSku(storeID, skuID, vendorID int) (storeSku *model.ActStoreSku2) {
|
|
index := Combine2Int(storeID, skuID)
|
|
if a.actStoreSkuMap[index] != nil {
|
|
if vendorID < 0 {
|
|
for k := range a.actStoreSkuMap[index] {
|
|
vendorID = k
|
|
break
|
|
}
|
|
}
|
|
storeSku = a.actStoreSkuMap[index][vendorID]
|
|
}
|
|
return storeSku
|
|
}
|