自动关注

This commit is contained in:
苏尹岚
2019-12-31 13:31:29 +08:00
parent 2c5d4801b0
commit 0f2058de84
11 changed files with 212 additions and 42 deletions

View File

@@ -72,12 +72,6 @@ type StoreSkuBindInfo struct {
Skus []*StoreSkuBindSkuInfo `json:"skus,omitempty"`
}
type tStoreSkuBindInfo struct {
NameID int `json:"nameID"`
UnitPrice int `json:"unitPrice"` // 对于是份的SKU就是单价每斤价格其它则为总价
IsFocused bool `json:"isFocused"` //是否关注过
}
type tStoreSkuBindAndSpec struct {
model.StoreSkuBind
SkuStatus int
@@ -2963,3 +2957,61 @@ func FocusStoreSkusBySku(ctx *jxcontext.Context, skuIDs []int, isAsync, isContin
}
return hint, err
}
func AutoFocusStoreSkusWithoutFocus(ctx *jxcontext.Context, skuIDs []int, isSync bool) (err error) {
var (
nameMap = make(map[int]*StoreSkuBindInfo)
)
db := dao.GetDB()
storeList, err := dao.GetStoreList(db, nil, nil, "")
for _, v := range storeList {
storeSkuList, _ := dao.GetStoreSkusAndSkuName(db, []int{v.ID}, skuIDs)
for _, vv := range storeSkuList {
if nameMap[vv.ID] != nil {
nameMap[vv.ID].Skus = append(nameMap[vv.ID].Skus, &StoreSkuBindSkuInfo{
SkuID: vv.SkuID,
})
} else {
skuBindInfo := &StoreSkuBindInfo{
UnitPrice: vv.UnitPrice,
NameID: vv.ID,
StoreID: v.ID,
Skus: []*StoreSkuBindSkuInfo{},
}
nameMap[vv.ID] = skuBindInfo
}
}
}
for _, v := range nameMap {
var skuBindInfoList []*StoreSkuBindInfo
skuBindInfoResult := &StoreSkuBindInfo{
NameID: v.NameID,
UnitPrice: v.UnitPrice,
IsFocus: 1,
}
var skuBindSkuList []*StoreSkuBindSkuInfo
skuMap := make(map[int]int)
skuList, _ := dao.GetSkus(db, nil, []int{v.NameID}, nil, nil)
if len(v.Skus) != len(skuList) {
for _, skus := range v.Skus {
skuMap[skus.SkuID] = 1
}
for _, vv := range skuList {
if skuMap[vv.ID] != 1 {
continue
}
skuBindSkuList = append(skuBindSkuList, &StoreSkuBindSkuInfo{
SkuID: vv.ID,
IsSale: 0,
})
}
}
skuBindInfoList = append(skuBindInfoList, skuBindInfoResult)
if isSync {
UpdateStoreSkus(ctx, v.StoreID, skuBindInfoList, true, true)
} else {
updateStoresSkusWithoutSync(ctx, db, []int{v.StoreID}, skuBindInfoList, false)
}
}
return err
}