修复添加商品可售时间引入的bug

This commit is contained in:
gazebo
2019-11-15 18:12:59 +08:00
parent ddbb1622fa
commit da69dd0216

View File

@@ -329,13 +329,9 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo
if reorderHandler != nil { if reorderHandler != nil {
reorderSkuMap = make(map[string][]*dao.StoreSkuSyncInfo) reorderSkuMap = make(map[string][]*dao.StoreSkuSyncInfo)
} }
// now := jxutils.OperationTime2HourMinuteFormat(time.Now()) now := jxutils.OperationTime2HourMinuteFormat(time.Now())
for _, sku := range skus { for _, sku := range skus {
// if isUpdateSkuSaleStatus(sku, storeDetail, now) { sku.MergedStatus = MergeSkuSaleStatusWithStoreOpTime(sku, storeDetail, now)
// sku.MergedStatus = model.SkuStatusDontSale
// } else {
// sku.MergedStatus = model.SkuStatusNormal
// }
var bareSku *partner.StoreSkuInfo var bareSku *partner.StoreSkuInfo
isNeedReorder := false isNeedReorder := false
if isStoreSkuSyncNeedDelete(sku) { if isStoreSkuSyncNeedDelete(sku) {
@@ -807,38 +803,42 @@ func GetSensitiveWord(singleStoreHandler partner.ISingleStoreStoreSkuHandler, st
return "" return ""
} }
func isUpdateSkuSaleStatus(sku *dao.StoreSkuSyncInfo, storeDetail *dao.StoreDetail, now int16) bool { func MergeSkuSaleStatusWithStoreOpTime(sku *dao.StoreSkuSyncInfo, storeDetail *dao.StoreDetail, now int16) (outStatus int) {
//商品可售时间的差集与门店营业时间的交集为不可售,其余为原本状态 if sku.MergedStatus == model.SkuStatusNormal &&
var openTime int16 sku.StatusSaleBegin > 0 && sku.StatusSaleEnd > 0 &&
var closeTime int16 storeDetail.Status == model.StoreStatusOpened {
saleBeginTime := sku.StatusSaleBegin //商品可售时间的差集与门店营业时间的交集为不可售,其余为原本状态
saleEndTime := sku.StatusSaleEnd var openTime int16
if storeDetail.OpenTime2 != 0 && storeDetail.CloseTime2 != 0 { var closeTime int16
if storeDetail.OpenTime1 < storeDetail.OpenTime2 { 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 openTime = storeDetail.OpenTime1
} else {
openTime = storeDetail.OpenTime2
}
if storeDetail.CloseTime1 > storeDetail.CloseTime2 {
closeTime = storeDetail.CloseTime1 closeTime = storeDetail.CloseTime1
} else {
closeTime = storeDetail.CloseTime2
} }
} else { beginAt1, endAt1 := GetTimeMixByInt(0, saleBeginTime, openTime, closeTime)
openTime = storeDetail.OpenTime1 beginAt2, endAt2 := GetTimeMixByInt(saleEndTime, 2400, openTime, closeTime)
closeTime = storeDetail.CloseTime1 if beginAt1 != 0 && endAt1 != 0 {
} if now >= beginAt1 && now < endAt1 {
beginAt1, endAt1 := GetTimeMixByInt(0, saleBeginTime, openTime, closeTime) return model.SkuStatusDontSale
beginAt2, endAt2 := GetTimeMixByInt(saleEndTime, 2400, openTime, closeTime) }
if beginAt1 != 0 && endAt1 != 0 { }
if now >= beginAt1 && now < endAt1 { if beginAt2 != 0 && endAt2 != 0 {
return true if now >= beginAt2 && now < endAt2 {
return model.SkuStatusDontSale
}
} }
} }
if beginAt2 != 0 && endAt2 != 0 { return sku.MergedStatus
if now >= beginAt2 && now < endAt2 {
return true
}
}
return false
} }