1、定时清理订单

This commit is contained in:
2025-07-12 18:16:36 +08:00
parent de2ab4d182
commit 8703d49fe0
4 changed files with 48 additions and 5 deletions

View File

@ -26,6 +26,25 @@ type MemberRecharge struct {
service.Service
}
func (e MemberRecharge) CleanExpiredOrder() error {
expireTime := time.Now().Add(5 * time.Minute)
ctx := context.Background()
err := e.Orm.Transaction(func(tx *gorm.DB) error {
if err1 := tx.Model(&models.MemberRecharge{}).Where("expire_time <? and status =1", expireTime).Updates(map[string]interface{}{"status": 6, "updated_at": time.Now()}).Error; err1 != nil {
return err1
}
if err1 := receiveaddressmanager.CleanExpiredAmountLocks(ctx, redishelper.DefaultRedis.GetClient()); err1 != nil {
return err1
}
return nil
})
return err
}
// 获取订单状态
func (e MemberRecharge) GetOrderStatus(req *dto.MemberRechargeGetOrderStatusReq, userId int) (int, error) {
var data models.MemberRecharge

View File

@ -10,11 +10,12 @@ import (
// 字典 key 可以配置到 自动任务 调用目标 中;
func InitJob() {
jobList = map[string]JobExec{
"ExamplesOne": ExamplesOne{},
"TrxPaymentJob": TrxPaymentJob{},
"CliProxyTrafficsJob": CliProxyJob{},
"RenewalJob": RenewalJob{},
"ExpireProxyJob": ExpireProxyJob{},
"ExamplesOne": ExamplesOne{},
"TrxPaymentJob": TrxPaymentJob{},
"CliProxyTrafficsJob": CliProxyJob{},
"RenewalJob": RenewalJob{},
"ExpireProxyJob": ExpireProxyJob{},
"CleanExpiredOrderJob": CleanExpiredOrderJob{},
// ...
}
}

View File

@ -26,3 +26,15 @@ func (j ExpireProxyJob) Exec(args interface{}) error {
return memberRenewalService.ExpireProxy()
}
type CleanExpiredOrderJob struct{}
// 清理过期订单
func (t CleanExpiredOrderJob) Exec(arg interface{}) error {
// expireTime := time.Now().Add(5 * time.Minute)
rechargeLogService := service.MemberRecharge{}
rechargeLogService.Orm = GetDb()
rechargeLogService.Log = logger.NewHelper(logger.DefaultLogger)
return rechargeLogService.CleanExpiredOrder()
}

View File

@ -67,3 +67,14 @@ func TestExpireJob(t *testing.T) {
t.Error(err)
}
}
func TestCleanExpireProxy(t *testing.T) {
initSetting()
job := CleanExpiredOrderJob{}
err := job.Exec(nil)
if err != nil {
t.Error(err)
}
}