package svc import ( "applet/app/db" "applet/app/utils" "applet/app/utils/logx" "errors" "fmt" "time" "xorm.io/xorm" ) func CancelOrder(eg *xorm.Engine, dbName string) { fmt.Println("cancel order...") defer func() { if err := recover(); err != nil { _ = logx.Error(err) } }() timeStr, err := getCancelCfg(eg, dbName) if err != nil { fmt.Println(err.Error()) return } now := time.Now() // x 分钟后取消订单 expTime := now.Add(-time.Hour * time.Duration(utils.StrToInt64(timeStr))) expTimeStr := utils.Time2String(expTime, "") page := 1 for { isEmpty, err := handleOnePage(eg, dbName, expTimeStr) if err != nil { _ = logx.Error(err) break } if isEmpty { break } if page > 100 { break } page += 1 } } func handleOnePage(eg *xorm.Engine, dbName, expTimeStr string) (isEmpty bool, err error) { return false, nil } func getCancelCfg(eg *xorm.Engine, masterId string) (string, error) { cfg := db.SysCfgGetWithDb(eg, masterId, "order_expiration_time") if cfg == "" { return "", errors.New("order_expiration_time no found") } return cfg, nil }