This commit is contained in:
duyu 2024-08-21 17:35:28 +08:00
parent 5e88833854
commit 7d666e8021
2 changed files with 57 additions and 0 deletions

View File

@ -371,6 +371,19 @@ func (m *ordersModel) GetTimeoutOrder(
return return
} }
func (m *ordersModel) GetRechargeTimeoutOrder(
limit int,
) (orders []*Orders, err error) {
orders = make([]*Orders, 0)
sql := "1=1"
var args []interface{}
sql += " and transfer_status = 2"
// sql += " and created_at <= DATE_SUB(NOW(), INTERVAL 3 MINUTE)"
sql += " and created_at <= DATE_SUB(DATE_ADD(NOW(),INTERVAL 8 HOUR), INTERVAL 7 MINUTE)"
err = m.GetDb().Where(sql, args...).OrderBy("created_at").Limit(limit).Find(&orders)
return
}
func (m *ordersModel) SetOrderMobile(orders *Orders) (affected int64, err error) { func (m *ordersModel) SetOrderMobile(orders *Orders) (affected int64, err error) {
session := m.GetDb().NewSession() session := m.GetDb().NewSession()
defer session.Close() defer session.Close()

View File

@ -0,0 +1,44 @@
package transfersys
import (
"context"
"fmt"
"strconv"
"time"
models "com.snow.auto_monitor/app/models/orders"
dingServ "com.snow.auto_monitor/app/services/dingding"
"github.com/qit-team/snow-core/log/logger"
)
func DoRechargeTimeout() {
fmt.Println("开始执行周期任务DoTimeout")
// 创建一个新的Ticker每3秒钟触发一次
ticker := time.NewTicker(3 * time.Second)
defer ticker.Stop() // 在函数结束时停止Ticker
for range ticker.C {
res, err := models.GetInstance().GetRechargeTimeoutOrder(10)
if err != nil {
fmt.Println(err.Error())
continue
}
for i := 0; i < len(res); i++ {
dingStr := fmt.Sprintf(
`
系统出现了超时7分钟的订单啦快去后台查看
- 异常单号: %s;
- 充值账号: %s;
`,
res[i].OutTradeNo,
res[i].RechargeAccount,
)
dingServ.DingSend("订单超时", dingStr, true)
logger.Info(context.TODO(), "order recharge timeout", "orderId: "+strconv.FormatInt(res[i].Id, 10))
}
}
}
func init() {
go DoRechargeTimeout()
}