From da69dd0216745e4956bb9963b85751088d0d04e5 Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 15 Nov 2019 18:12:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B7=BB=E5=8A=A0=E5=95=86?= =?UTF-8?q?=E5=93=81=E5=8F=AF=E5=94=AE=E6=97=B6=E9=97=B4=E5=BC=95=E5=85=A5?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 70 +++++++++++++------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index aa7c84cc5..10624ed92 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -329,13 +329,9 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo if reorderHandler != nil { reorderSkuMap = make(map[string][]*dao.StoreSkuSyncInfo) } - // now := jxutils.OperationTime2HourMinuteFormat(time.Now()) + now := jxutils.OperationTime2HourMinuteFormat(time.Now()) for _, sku := range skus { - // if isUpdateSkuSaleStatus(sku, storeDetail, now) { - // sku.MergedStatus = model.SkuStatusDontSale - // } else { - // sku.MergedStatus = model.SkuStatusNormal - // } + sku.MergedStatus = MergeSkuSaleStatusWithStoreOpTime(sku, storeDetail, now) var bareSku *partner.StoreSkuInfo isNeedReorder := false if isStoreSkuSyncNeedDelete(sku) { @@ -807,38 +803,42 @@ func GetSensitiveWord(singleStoreHandler partner.ISingleStoreStoreSkuHandler, st return "" } -func isUpdateSkuSaleStatus(sku *dao.StoreSkuSyncInfo, storeDetail *dao.StoreDetail, now int16) bool { - //商品可售时间的差集与门店营业时间的交集为不可售,其余为原本状态 - var openTime int16 - var closeTime int16 - saleBeginTime := sku.StatusSaleBegin - saleEndTime := sku.StatusSaleEnd - if storeDetail.OpenTime2 != 0 && storeDetail.CloseTime2 != 0 { - if storeDetail.OpenTime1 < storeDetail.OpenTime2 { +func MergeSkuSaleStatusWithStoreOpTime(sku *dao.StoreSkuSyncInfo, storeDetail *dao.StoreDetail, now int16) (outStatus int) { + if sku.MergedStatus == model.SkuStatusNormal && + sku.StatusSaleBegin > 0 && sku.StatusSaleEnd > 0 && + storeDetail.Status == model.StoreStatusOpened { + //商品可售时间的差集与门店营业时间的交集为不可售,其余为原本状态 + var openTime int16 + var closeTime int16 + saleBeginTime := sku.StatusSaleBegin + saleEndTime := sku.StatusSaleEnd + if storeDetail.OpenTime2 != 0 && storeDetail.CloseTime2 != 0 { + if storeDetail.OpenTime1 < storeDetail.OpenTime2 { + openTime = storeDetail.OpenTime1 + } else { + openTime = storeDetail.OpenTime2 + } + if storeDetail.CloseTime1 > storeDetail.CloseTime2 { + closeTime = storeDetail.CloseTime1 + } else { + closeTime = storeDetail.CloseTime2 + } + } else { openTime = storeDetail.OpenTime1 - } else { - openTime = storeDetail.OpenTime2 - } - if storeDetail.CloseTime1 > storeDetail.CloseTime2 { closeTime = storeDetail.CloseTime1 - } else { - closeTime = storeDetail.CloseTime2 } - } else { - openTime = storeDetail.OpenTime1 - closeTime = storeDetail.CloseTime1 - } - beginAt1, endAt1 := GetTimeMixByInt(0, saleBeginTime, openTime, closeTime) - beginAt2, endAt2 := GetTimeMixByInt(saleEndTime, 2400, openTime, closeTime) - if beginAt1 != 0 && endAt1 != 0 { - if now >= beginAt1 && now < endAt1 { - return true + beginAt1, endAt1 := GetTimeMixByInt(0, saleBeginTime, openTime, closeTime) + beginAt2, endAt2 := GetTimeMixByInt(saleEndTime, 2400, openTime, closeTime) + if beginAt1 != 0 && endAt1 != 0 { + if now >= beginAt1 && now < endAt1 { + return model.SkuStatusDontSale + } + } + if beginAt2 != 0 && endAt2 != 0 { + if now >= beginAt2 && now < endAt2 { + return model.SkuStatusDontSale + } } } - if beginAt2 != 0 && endAt2 != 0 { - if now >= beginAt2 && now < endAt2 { - return true - } - } - return false + return sku.MergedStatus }