Merge branch 'mark' of e.coding.net:rosydev/jx-callback into mark

This commit is contained in:
gazebo
2019-11-15 16:40:42 +08:00
13 changed files with 579 additions and 113 deletions

View File

@@ -299,6 +299,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo
} else {
skus, err = dao.GetStoreSkus(db, vendorID, storeID, skuIDs)
}
if err != nil || len(skus) == 0 {
return err
}
@@ -328,8 +329,13 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo
if reorderHandler != nil {
reorderSkuMap = make(map[string][]*dao.StoreSkuSyncInfo)
}
now := jxutils.OperationTime2HourMinuteFormat(time.Now())
for _, sku := range skus {
if isUpdateSkuSaleStatus(sku, storeDetail, now) {
sku.MergedStatus = model.SkuStatusDontSale
} else {
sku.MergedStatus = model.SkuStatusNormal
}
var bareSku *partner.StoreSkuInfo
isNeedReorder := false
if isStoreSkuSyncNeedDelete(sku) {
@@ -800,3 +806,39 @@ 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 {
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
}
}
if beginAt2 != 0 && endAt2 != 0 {
if now >= beginAt2 && now < endAt2 {
return true
}
}
return false
}