1、定时清理订单
This commit is contained in:
		| @ -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 | ||||
|  | ||||
| @ -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{}, | ||||
| 		// ... | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @ -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() | ||||
| } | ||||
|  | ||||
| @ -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) | ||||
| 	} | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user