2023-05-10 23:54:50 +08:00
|
|
|
// Package crons
|
|
|
|
// @Link https://github.com/bufanyun/hotgo
|
|
|
|
// @Copyright Copyright (c) 2023 HotGo CLI
|
|
|
|
// @Author Ms <133814250@qq.com>
|
|
|
|
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
|
|
|
|
package crons
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
|
|
"github.com/gogf/gf/v2/os/gtime"
|
|
|
|
"hotgo/internal/consts"
|
|
|
|
"hotgo/internal/dao"
|
2023-06-05 20:14:57 +08:00
|
|
|
"hotgo/internal/library/cron"
|
2023-05-10 23:54:50 +08:00
|
|
|
"hotgo/internal/service"
|
|
|
|
)
|
|
|
|
|
|
|
|
func init() {
|
2023-06-05 20:14:57 +08:00
|
|
|
cron.Register(CloseOrder)
|
2023-05-10 23:54:50 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
// CloseOrder 取消过期订单
|
|
|
|
var CloseOrder = &cCloseOrder{name: "close_order"}
|
|
|
|
|
|
|
|
type cCloseOrder struct {
|
|
|
|
name string
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *cCloseOrder) GetName() string {
|
|
|
|
return c.name
|
|
|
|
}
|
|
|
|
|
|
|
|
// Execute 执行任务
|
|
|
|
func (c *cCloseOrder) Execute(ctx context.Context) {
|
|
|
|
_, err := service.AdminOrder().Model(ctx).
|
|
|
|
Where(dao.AdminOrder.Columns().Status, consts.OrderStatusNotPay).
|
|
|
|
WhereLTE(dao.AdminOrder.Columns().CreatedAt, gtime.Now().AddDate(0, 0, -1)).
|
|
|
|
Data(g.Map{
|
|
|
|
dao.AdminOrder.Columns().Status: consts.OrderStatusClose,
|
|
|
|
}).Update()
|
|
|
|
if err != nil {
|
2023-06-05 20:14:57 +08:00
|
|
|
cron.Logger().Warning(ctx, "cron CloseOrder Execute err:%+v", err)
|
2023-05-10 23:54:50 +08:00
|
|
|
}
|
|
|
|
}
|