修复添加商品可售时间引入的bug
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user