- 处理设置假营业时间的逻辑BUG(之前逻辑在10点以后重启后,可能导致库存不能恢复)

This commit is contained in:
gazebo
2019-08-04 09:57:18 +08:00
parent 972636e434
commit 582f11521c
3 changed files with 54 additions and 34 deletions

View File

@@ -3,6 +3,7 @@ package misc
import (
"fmt"
"strings"
"sync"
"time"
"git.rosy.net.cn/baseapi/utils"
@@ -18,6 +19,11 @@ import (
"git.rosy.net.cn/jx-callback/globals"
)
const (
SpecialTaskID = "Running"
TaskNameSyncStoreSku = "SyncStoreSku"
)
var (
dailyWorkTimeList = []string{
"21:00:00",
@@ -48,8 +54,31 @@ var (
autoSaleStoreSkuTimeList = []string{
"20:50:00",
}
importantTaskMap = &sync.Map{}
)
func GetImportantTaskID(taskName string) string {
if value, ok := importantTaskMap.Load(taskName); ok {
return value.(string)
}
return ""
}
func SaveImportantTaskID(taskName, taskID string) {
importantTaskMap.Store(taskName, taskID)
}
func IsImportantTaskRunning(taskName string) bool {
taskID := GetImportantTaskID(taskName)
if taskID == "" {
return false
} else if taskID == SpecialTaskID {
return true
}
return tasksch.IsTaskRunning(taskID)
}
func Init() {
if globals.IsProductEnv() {
ScheduleTimerFunc(doDailyWork, dailyWorkTimeList)
@@ -74,6 +103,7 @@ func Init() {
ScheduleTimerFunc(func() {
dao.UpdateActStatusByTime(dao.GetDB(), time.Now().Add(-48*time.Hour))
}, updateActStatusTimeList)
InitEx()
}
ScheduleTimerFunc(func() {
cms.AutoSaleStoreSku(jxcontext.AdminCtx, nil, false)
@@ -84,8 +114,10 @@ func doDailyWork() {
globals.SugarLogger.Debug("doDailyWork")
netprinter.RebindAllPrinters(jxcontext.AdminCtx, false, true)
// cms.CurVendorSync.FullSyncStoresSkus(jxcontext.AdminCtx, dao.GetDB(), []int{model.VendorIDJD}, nil, true, true)
cms.CurVendorSync.SyncStoresSkus(jxcontext.AdminCtx, dao.GetDB(), []int{model.VendorIDJD, model.VendorIDEBAI, model.VendorIDMTWM}, nil, nil, false, false, true)
InitEx()
SaveImportantTaskID(TaskNameSyncStoreSku, SpecialTaskID)
taskID, _ := cms.CurVendorSync.SyncStoresSkus(jxcontext.AdminCtx, dao.GetDB(), []int{model.VendorIDJD, model.VendorIDEBAI, model.VendorIDMTWM}, nil, nil, false, true, true)
SaveImportantTaskID(TaskNameSyncStoreSku, taskID)
}
func RefreshRealMobile(ctx *jxcontext.Context, vendorID int, fromTime, toTime time.Time, isAsync, isContinueWhenError bool) (hint string, err error) {