package svc import ( offical "applet/app/db/official" "applet/app/utils" "fmt" "strings" "time" ) func MeituanStoreOrder() { pvdTimeKey := "meituan_store_time" // 获得最后时间 latest := offical.SysCfgByKey(pvdTimeKey) if latest == nil { offical.DbsSysCfgInserts(pvdTimeKey, time.Now().String()) latest = offical.SysCfgByKey(pvdTimeKey) } // 所有时间都是在操作秒数 now := time.Now().Unix() strs := strings.Split(latest.V, ":") timeStr := latest.V if len(strs) == 3 { timeStr = strs[0] + ":" + strs[1] + ":00" } fmt.Println(timeStr) past := utils.TimeParseStd(timeStr).Unix() // 如果上次记录超过30天或者 过去时间大于当前时间戳, 把时间设置为此前20分钟 if past < now-180*86400 || past > now { past = now } var ( beginTime int64 = 0 endTime int64 = 0 pageNo int = 1 pageSize int = 50 nextPositionIndex string = "" ) //怕时间不是走最新的 leave := now - past if leave > 500 { leave = 0 } past = past + leave beginTime = past - 300 endTime = past if endTime > now { endTime = now } for { count := 0 var positionIndex = "" if pageNo == 1 { nextPositionIndex = "" } count, positionIndex = OrdersMeituanGet(nextPositionIndex, pageSize, beginTime, endTime, "update", 2) if count == 0 { nextPositionIndex = "" goto ChkArg } // 判断是否分页已经全部取完了 if count <= pageSize { nextPositionIndex = positionIndex pageNo++ fmt.Println("========下一页========" + utils.IntToStr(pageNo)) count = 0 continue } ChkArg: nextPositionIndex = "" // 查询完后重置时间, 最后查询时间 if endTime < now { pageNo = 1 offical.DbsSysCfgUpdate(pvdTimeKey, utils.TimeToStr(endTime)) beginTime = endTime endTime = endTime + 300 if endTime > now { endTime = now } count = 0 continue } count = 0 break } }