|
|
|
|
@@ -1280,7 +1280,7 @@ func getSkuSaleStatus(inSkuBind *StoreSkuBindSkuInfo, skuBindInfo *StoreSkuBindI
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// todo 应该用updateStoresSkusWithoutSync实现
|
|
|
|
|
func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBindSkuInfos []*StoreSkuBindSkuInfo, userName string) (needSyncSkus []int, err error) {
|
|
|
|
|
func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBindSkuInfos []*StoreSkuBindSkuInfo, autoSaleTime time.Time, userName string) (needSyncSkus []int, err error) {
|
|
|
|
|
var num int64
|
|
|
|
|
db := dao.GetDB()
|
|
|
|
|
needSyncIDMap := make(map[int]int)
|
|
|
|
|
@@ -1310,14 +1310,19 @@ func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBind
|
|
|
|
|
} else {
|
|
|
|
|
skuBind.Status = model.StoreSkuBindStatusDontSale
|
|
|
|
|
}
|
|
|
|
|
if num, err = dao.UpdateEntityLogically(db, skuBind, map[string]interface{}{
|
|
|
|
|
kvs := map[string]interface{}{
|
|
|
|
|
model.FieldStatus: skuBind.Status,
|
|
|
|
|
model.FieldJdSyncStatus: skuBind.JdSyncStatus | model.SyncFlagSaleMask,
|
|
|
|
|
model.FieldEbaiSyncStatus: skuBind.EbaiSyncStatus | model.SyncFlagSaleMask,
|
|
|
|
|
model.FieldMtwmSyncStatus: skuBind.MtwmSyncStatus | model.SyncFlagSaleMask,
|
|
|
|
|
model.FieldElmSyncStatus: skuBind.ElmSyncStatus | model.SyncFlagSaleMask,
|
|
|
|
|
model.FieldWscSyncStatus: skuBind.WscSyncStatus | model.SyncFlagSaleMask,
|
|
|
|
|
}, userName, nil); err != nil {
|
|
|
|
|
}
|
|
|
|
|
// if utils.IsTimeZero(autoSaleTime) || skuBind.Status == model.SkuStatusNormal {
|
|
|
|
|
// autoSaleTime = utils.DefaultTimeValue
|
|
|
|
|
// }
|
|
|
|
|
// kvs["AutoSaleAt"] = autoSaleTime
|
|
|
|
|
if num, err = dao.UpdateEntityLogically(db, skuBind, kvs, userName, nil); err != nil {
|
|
|
|
|
dao.Rollback(db)
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
@@ -1342,13 +1347,13 @@ func uniqueStoreSkuBind(skuBindSkuInfos []*StoreSkuBindSkuInfo) (outSkuBindSkuIn
|
|
|
|
|
return outSkuBindSkuInfos
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func UpdateStoresSkusSale(ctx *jxcontext.Context, storeIDs []int, skuBindSkuInfos []*StoreSkuBindSkuInfo, userName string, isAsync, isContinueWhenError bool) (hint string, err error) {
|
|
|
|
|
func UpdateStoresSkusSale(ctx *jxcontext.Context, storeIDs []int, skuBindSkuInfos []*StoreSkuBindSkuInfo, autoSaleTime time.Time, userName string, isAsync, isContinueWhenError bool) (hint string, err error) {
|
|
|
|
|
storeIDs = uniqueStoreIDs(storeIDs)
|
|
|
|
|
skuBindSkuInfos = uniqueStoreSkuBind(skuBindSkuInfos)
|
|
|
|
|
|
|
|
|
|
var num int64
|
|
|
|
|
for _, storeID := range storeIDs {
|
|
|
|
|
skuIDs, err2 := updateStoreSkusSaleWithoutSync(ctx, storeID, skuBindSkuInfos, userName)
|
|
|
|
|
skuIDs, err2 := updateStoreSkusSaleWithoutSync(ctx, storeID, skuBindSkuInfos, autoSaleTime, userName)
|
|
|
|
|
if err = err2; err != nil {
|
|
|
|
|
return "", err
|
|
|
|
|
}
|
|
|
|
|
@@ -2171,3 +2176,37 @@ func GetMissingStoreSkuFromOrder(ctx *jxcontext.Context, fromTime time.Time) (mi
|
|
|
|
|
}
|
|
|
|
|
return missingList, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func AutoSaleStoreSku(ctx *jxcontext.Context, storeIDs []int) (err error) {
|
|
|
|
|
// db := dao.GetDB()
|
|
|
|
|
// storeSkuList, err := dao.GetAutoSaleStoreSku(db, storeIDs)
|
|
|
|
|
// if err != nil {
|
|
|
|
|
// return err
|
|
|
|
|
// }
|
|
|
|
|
// storeSkuMap := make(map[int][]*model.StoreSkuBind)
|
|
|
|
|
// for _, v := range storeSkuList {
|
|
|
|
|
// storeSkuMap[v.StoreID] = append(storeSkuMap[v.StoreID], v)
|
|
|
|
|
// }
|
|
|
|
|
// now := time.Now()
|
|
|
|
|
// for storeID, storeSkuList := range storeSkuMap {
|
|
|
|
|
// var skuIDs []int
|
|
|
|
|
// for _, storeSku := range storeSkuList {
|
|
|
|
|
// if now.Sub(storeSku.AutoSaleAt) > 0 {
|
|
|
|
|
// storeSku.AutoSaleAt = utils.DefaultTimeValue
|
|
|
|
|
// if storeSku.Status != model.SkuStatusNormal {
|
|
|
|
|
// storeSku.Status = model.SkuStatusNormal
|
|
|
|
|
// skuIDs = append(skuIDs, storeSku.SkuID)
|
|
|
|
|
// }
|
|
|
|
|
// if _, err = dao.UpdateEntity(db, storeSku, "AutoSaleAt", model.FieldStatus); err != nil {
|
|
|
|
|
// return err
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// if len(skuIDs) > 0 {
|
|
|
|
|
// if _, err = CurVendorSync.SyncStoresSkus(ctx, db, nil, []int{storeID}, skuIDs, false, true, true); err != nil {
|
|
|
|
|
// return err
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|