定时刷新商品可售状态

This commit is contained in:
苏尹岚
2019-11-14 18:03:34 +08:00
parent 3da95b29f8
commit bcc534289a
5 changed files with 83 additions and 50 deletions

View File

@@ -3,7 +3,6 @@ package cms
import (
"errors"
"fmt"
"time"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils"
@@ -657,29 +656,47 @@ func (v *VendorSync) SyncSkuNames(ctx *jxcontext.Context, nameIDs []int, isForce
func (v *VendorSync) ChangeStoreSkuSaleStatus(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (err error) {
var (
storeIDs []int
skuIDs []int
vendorIDs = []int{0, 1, 3}
storeIDs []int
skuIDs []int
)
vendorIDs := partner.GetPurchasePlatformVendorIDs()
db := dao.GetDB()
now := time.Now().Hour()*100 + time.Now().Minute()
storeSkuList, err := dao.GetStoresSkusInfoBySaleTime(db)
for _, v := range storeSkuList {
if (now >= v.TimeBegin1 && now <= v.TimeEnd1) || (now >= v.TimeBegin2 && now <= v.TimeEnd2) {
skuIDs = append(skuIDs, v.StoreSkuBind.SkuID)
storeIDs = append(storeIDs, v.StoreSkuBind.StoreID)
v.StoreSkuBind.Status = model.SkuStatusDontSale
setStoreSkuBindStatus(&v.StoreSkuBind, model.SyncFlagSaleMask)
dao.UpdateEntity(db, &v.StoreSkuBind)
} else {
v.StoreSkuBind.Status = model.SkuStatusNormal
setStoreSkuBindStatus(&v.StoreSkuBind, model.SyncFlagSaleMask)
dao.UpdateEntity(db, &v.StoreSkuBind)
}
storeIDs = append(storeIDs, v.StoreID)
skuIDs = append(skuIDs, v.SkuID)
setStoreSkuBindStatus(v, model.SyncFlagSaleMask)
dao.UpdateEntity(db, v)
}
if len(storeSkuList) > 0 {
v.SyncStoresSkus(ctx, db, vendorIDs, storeIDs, skuIDs, false, isAsync, isContinueWhenError)
} else {
return errors.New("未查询到设置了可售时间的商品!")
}
v.SyncStoresSkus(ctx, db, vendorIDs, storeIDs, skuIDs, false, isAsync, isContinueWhenError)
if err != nil {
return err
}
return nil
}
func GetTimeMixByInt(begin1, end1, begin2, end2 int) (beginAt, endAt int) {
if (begin1 > begin2 && begin1 > end2) || (begin2 > end1 && end2 > end1) {
return 0, 0
}
if begin1 > begin2 {
beginAt = begin1
if end1 > end2 {
endAt = end2
} else {
endAt = end1
}
} else {
beginAt = begin2
if end1 > end2 {
endAt = end2
} else {
endAt = end1
}
}
return beginAt, endAt
}