刷新物料店库存,商品上下架

This commit is contained in:
苏尹岚
2020-03-10 13:53:11 +08:00
parent 182b7dad31
commit 171ed76f87
11 changed files with 112 additions and 31 deletions

View File

@@ -192,9 +192,10 @@ type tUpdateSkuSpecTag struct {
}
type MatterStock struct {
SkuID int `json:"skuID"`
Name string `json:"name"`
Stock int `json:"stock"`
SkuID int `json:"skuID"`
SkuNameID int `json:"skuNameID"`
Name string `json:"name"`
Stock int `json:"stock"`
}
const (
@@ -2406,7 +2407,7 @@ func GetTopSkusByCityCode(ctx *jxcontext.Context, cityCode, storeID int) (skuNam
var skuList []*model.SkuAndName
storeSkuSyncInfo, _ := dao.GetStoreSkusAndSkuName(db, []int{storeID}, nil, []int{v.ID})
for _, storeSkuSync := range storeSkuSyncInfo {
sku, _ := dao.GetSkus(db, []int{storeSkuSync.ID}, nil, nil, nil)
sku, _ := dao.GetSkus(db, []int{storeSkuSync.ID}, nil, nil, nil, nil)
sku[0].Price = int(storeSkuSync.Price)
skuList = append(skuList, sku...)
}
@@ -3019,7 +3020,7 @@ func FocusStoreSkusByExcelBin(ctx *jxcontext.Context, reader io.Reader, isAsync,
for k, _ := range skuMap {
skuIDs = append(skuIDs, k)
}
skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil)
skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil, nil)
storeList, err := dao.GetStoreList(db, nil, nil, nil, nil, "")
if err != nil && len(skuList) == 0 {
return result, err
@@ -3132,7 +3133,7 @@ func FocusStoreSkusBySku(ctx *jxcontext.Context, skuBindInfos []*StoreSkuBindInf
if err != nil {
return retVal, err
}
skuList, err := dao.GetSkus(db, []int{skuID}, nil, nil, nil)
skuList, err := dao.GetSkus(db, []int{skuID}, nil, nil, nil, nil)
if err != nil {
return retVal, err
}
@@ -3318,7 +3319,7 @@ func AutoFocusStoreSkusWithoutFocus(ctx *jxcontext.Context, skuIDs []int, isSync
}
var skuBindSkuList []*StoreSkuBindSkuInfo
skuMap := make(map[int]int)
skuList, _ := dao.GetSkus(db, nil, []int{v.NameID}, nil, nil)
skuList, _ := dao.GetSkus(db, nil, []int{v.NameID}, nil, nil, nil)
if len(v.Skus) != len(skuList) {
for _, skus := range v.Skus {
skuMap[skus.SkuID] = 1
@@ -3624,7 +3625,7 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus,
}
err = dao.GetRows(db, &cats, sql, sqlParams...)
if len(cats) > 0 {
skus, err = dao.GetSkus(db, []int{int(cats[0].ThingID)}, nil, nil, nil)
skus, err = dao.GetSkus(db, []int{int(cats[0].ThingID)}, nil, nil, nil, nil)
if err != nil || len(skus) == 0 {
return result, fmt.Errorf("没有找到该京西skuID,京西skuID :[%v]", cats[0].ThingID)
}
@@ -3684,7 +3685,7 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus,
var (
pricePercentagePack []*model.PricePercentageItem
)
skus, _ := dao.GetSkus(db, []int{v.JdSkuID}, nil, nil, nil)
skus, _ := dao.GetSkus(db, []int{v.JdSkuID}, nil, nil, nil, nil)
if len(skus) == 0 {
continue
}
@@ -3837,7 +3838,7 @@ func getSkuNamePrice(db *dao.DaoDB, skuID int, orgPrice int64) (price int64, nam
var (
specQuality float64
)
skuList, _ := dao.GetSkus(db, []int{skuID}, nil, nil, nil)
skuList, _ := dao.GetSkus(db, []int{skuID}, nil, nil, nil, nil)
for _, v := range skuList {
if v.Unit == model.SpecialUnit {
if v.SpecUnit == model.SpecUnitNames[1] || v.SpecUnit == model.SpecUnitNames[2] {
@@ -3934,7 +3935,74 @@ func ReturnStoreSkuBind(ctx *jxcontext.Context, snapshotAt string, storeIDs, sku
return err
}
func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (matterStock []*MatterStock, err error) {
// api.JdEclpAPI.SearchShopStock(searchShopStockParam)
return matterStock, err
func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) {
var (
db = dao.GetDB()
skuBindInfos []*StoreSkuBindInfo
)
if skuID != 0 {
skus, err := dao.GetSkus(db, []int{skuID}, nil, nil, nil, nil)
if err != nil || len(skus) == 0 {
return err
}
result, err := api.JdEclpAPI.SearchShopStock(skus[0].EclpID)
if err != nil || result == nil {
return err
}
var isSale = 0
if utils.Str2Int64(result.Data[0].StockNum) > 0 {
isSale = 1
} else {
isSale = -1
}
storeSkuList, _ := dao.GetStoresSkusInfo(db, nil, []int{skuID})
for _, vv := range storeSkuList {
var storeSkuBindSkus []*StoreSkuBindSkuInfo
storeSkuBindSku := &StoreSkuBindSkuInfo{
SkuID: vv.SkuID,
IsSale: isSale,
}
storeSkuBindSkus = append(storeSkuBindSkus, storeSkuBindSku)
storeSkuBind := &StoreSkuBindInfo{
StoreID: vv.StoreID,
// NameID: v.SkuNameID,
Skus: storeSkuBindSkus,
}
skuBindInfos = append(skuBindInfos, storeSkuBind)
}
} else {
result, err := api.JdEclpAPI.SearchShopStock("")
if err != nil {
return err
}
for _, v := range result.Data {
skus, err := dao.GetSkus(db, nil, nil, nil, nil, []string{v.GoodsNo})
if err != nil || len(skus) == 0 {
continue
}
var isSale = 0
if utils.Str2Int64(result.Data[0].StockNum) > 0 {
isSale = 1
} else {
isSale = -1
}
storeSkuList, _ := dao.GetStoresSkusInfo(db, nil, []int{skus[0].ID})
for _, vv := range storeSkuList {
var storeSkuBindSkus []*StoreSkuBindSkuInfo
storeSkuBindSku := &StoreSkuBindSkuInfo{
SkuID: vv.SkuID,
IsSale: isSale,
}
storeSkuBindSkus = append(storeSkuBindSkus, storeSkuBindSku)
storeSkuBind := &StoreSkuBindInfo{
StoreID: vv.StoreID,
// NameID: v.SkuNameID,
Skus: storeSkuBindSkus,
}
skuBindInfos = append(skuBindInfos, storeSkuBind)
}
}
}
UpdateStoresSkusByBind(ctx, nil, skuBindInfos, true, true)
return err
}