From a7b9a49982edbe157ead9be4d85a48c2c146f8f6 Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 1 Aug 2019 10:37:23 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=90=AF=E7=94=A8=E9=97=A8=E5=BA=97?= =?UTF-8?q?=E5=95=86=E5=93=81=E4=B8=B4=E6=97=B6=E4=B8=8D=E5=8F=AF=E5=94=AE?= =?UTF-8?q?=EF=BC=8C=E6=9A=82=E6=97=B6=E4=B8=8D=E5=BB=BAAutoSaleAt?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E7=9A=84=E7=B4=A2=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 68 +++++++++++++++---------------- business/jxstore/misc/misc.go | 19 +++++++-- business/model/store_sku.go | 5 ++- 3 files changed, 54 insertions(+), 38 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 460fc02e9..a11e15d8f 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -1318,10 +1318,10 @@ func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBind model.FieldElmSyncStatus: skuBind.ElmSyncStatus | model.SyncFlagSaleMask, model.FieldWscSyncStatus: skuBind.WscSyncStatus | model.SyncFlagSaleMask, } - // if utils.IsTimeZero(autoSaleTime) || skuBind.Status == model.SkuStatusNormal { - // autoSaleTime = utils.DefaultTimeValue - // } - // kvs["AutoSaleAt"] = autoSaleTime + 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 @@ -2178,35 +2178,35 @@ func GetMissingStoreSkuFromOrder(ctx *jxcontext.Context, fromTime time.Time) (mi } 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 - // } - // } - // } + 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 } diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 4a74bb8ac..03075dad9 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -47,7 +47,20 @@ var ( autoEnableStoreSkuTimeList = []string{ "7:00:00", + "8:00:00", + "9:00:00", + "10:00:00", + "11:00:00", + "12:00:00", + "13:00:00", "14:00:00", + "15:00:00", + "16:00:00", + "17:00:00", + "18:00:00", + "19:00:00", + "20:00:00", + "21:00:00", "22:00:00", } ) @@ -77,9 +90,9 @@ func Init() { dao.UpdateActStatusByTime(dao.GetDB(), time.Now().Add(-48*time.Hour)) }, updateActStatusTimeList) - // ScheduleTimerFunc(func() { - // cms.AutoSaleStoreSku(jxcontext.AdminCtx, nil) - // }, autoEnableStoreSkuTimeList) + ScheduleTimerFunc(func() { + cms.AutoSaleStoreSku(jxcontext.AdminCtx, nil) + }, autoEnableStoreSkuTimeList) } } diff --git a/business/model/store_sku.go b/business/model/store_sku.go index 4e1cfa3fa..4b9ae58b3 100644 --- a/business/model/store_sku.go +++ b/business/model/store_sku.go @@ -1,5 +1,7 @@ package model +import "time" + const ( StoreSkuBindStatusNA = -2 StoreSkuBindStatusDeleted = -1 @@ -104,7 +106,7 @@ type StoreSkuBind struct { MtwmSyncStatus int8 `orm:"default(2)"` WscSyncStatus int8 `orm:"default(2)"` - // AutoSaleAt time.Time `orm:"type(datetime);null" json:"autoSaleAt"` + AutoSaleAt time.Time `orm:"type(datetime);null" json:"autoSaleAt"` } func (*StoreSkuBind) TableUnique() [][]string { @@ -116,6 +118,7 @@ func (*StoreSkuBind) TableUnique() [][]string { func (*StoreSkuBind) TableIndex() [][]string { return [][]string{ []string{"SkuID", "StoreID", "DeletedAt"}, + // []string{"AutoSaleAt", "DeletedAt", "StoreID"}, } }