1、
Some checks failed
Build / build (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
build / Build (push) Has been cancelled
GitHub Actions Mirror / mirror_to_gitee (push) Has been cancelled
GitHub Actions Mirror / mirror_to_gitlab (push) Has been cancelled
Issue Close Require / issue-close-require (push) Has been cancelled
Issue Check Inactive / issue-check-inactive (push) Has been cancelled
Some checks failed
Build / build (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
build / Build (push) Has been cancelled
GitHub Actions Mirror / mirror_to_gitee (push) Has been cancelled
GitHub Actions Mirror / mirror_to_gitlab (push) Has been cancelled
Issue Close Require / issue-close-require (push) Has been cancelled
Issue Check Inactive / issue-check-inactive (push) Has been cancelled
This commit is contained in:
@ -15,6 +15,7 @@ func InitJob() {
|
||||
"RemainCharJob": RemainCharJob{},
|
||||
"CleanExpiredOrderJob": CleanExpiredOrderJob{},
|
||||
"TrxPaymentJob": TrxPaymentJob{},
|
||||
"SyncRemainCharJob": SyncRemainCharJob{},
|
||||
// ...
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,11 +2,12 @@ package jobs
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
models2 "go-admin/app/jobs/models"
|
||||
"time"
|
||||
|
||||
log "github.com/go-admin-team/go-admin-core/logger"
|
||||
"github.com/go-admin-team/go-admin-core/sdk"
|
||||
models2 "go-admin/app/jobs/models"
|
||||
"gorm.io/gorm"
|
||||
"time"
|
||||
|
||||
"github.com/robfig/cron/v3"
|
||||
|
||||
@ -59,7 +60,7 @@ func (e *ExecJob) Run() {
|
||||
//TODO: 待完善部分
|
||||
//str := time.Now().Format(timeFormat) + " [INFO] JobCore " + string(e.EntryId) + "exec success , spend :" + latencyTime.String()
|
||||
//ws.SendAll(str)
|
||||
log.Info("[Job] JobCore %s exec success , spend :%v", e.Name, latencyTime)
|
||||
log.Infof("[Job] JobCore %s exec success , spend :%v", e.Name, latencyTime)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@ -14,6 +14,18 @@ type RemainCharJob struct{}
|
||||
|
||||
type CleanExpiredOrderJob struct{}
|
||||
|
||||
// 同步剩余字符
|
||||
type SyncRemainCharJob struct{}
|
||||
|
||||
// 定时同步第三方用量
|
||||
func (t SyncRemainCharJob) Exec(arg interface{}) error {
|
||||
platformAccountService := service.TmPlatformAccount{}
|
||||
platformAccountService.Orm = GetDb()
|
||||
platformAccountService.Log = logger.NewHelper(logger.DefaultLogger)
|
||||
|
||||
return platformAccountService.SyncAll()
|
||||
}
|
||||
|
||||
// 清理过期订单
|
||||
func (t CleanExpiredOrderJob) Exec(arg interface{}) error {
|
||||
// expireTime := time.Now().Add(5 * time.Minute)
|
||||
|
||||
@ -50,3 +50,23 @@ func TestClean(t *testing.T) {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSyncPlatformAccountChar(t *testing.T) {
|
||||
|
||||
initSetting()
|
||||
|
||||
job := SyncRemainCharJob{}
|
||||
|
||||
if err := job.Exec(nil); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
func initSetting() {
|
||||
dsn := "root:123456@tcp(127.0.0.1:3306)/aggregate_translate?charset=utf8mb4&parseTime=True&loc=Local&timeout=1000ms"
|
||||
db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
||||
sdk.Runtime.SetDb("default", db)
|
||||
|
||||
redishelper.InitDefaultRedis("127.0.0.1:6379", "", 1)
|
||||
redishelper.InitLockRedisConn("127.0.0.1:6379", "", "1")
|
||||
}
|
||||
|
||||
@ -5,9 +5,11 @@ import (
|
||||
"fmt"
|
||||
"go-admin/app/admin/service"
|
||||
"go-admin/app/admin/service/dto"
|
||||
rediskey "go-admin/common/redis_key"
|
||||
"go-admin/config"
|
||||
"go-admin/utils/redishelper"
|
||||
"go-admin/utils/utility"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"strings"
|
||||
"time"
|
||||
@ -36,8 +38,22 @@ func (j TrxPaymentJob) Exec(arg interface{}) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
key := fmt.Sprintf(rediskey.TM_RECHARGE_PRE_ORDER, "*")
|
||||
keys, err := redishelper.DefaultRedis.ScanKeys(key)
|
||||
|
||||
if err != nil {
|
||||
logger.Error("查询redis key失败", err)
|
||||
return nil
|
||||
}
|
||||
|
||||
if len(keys) == 0 {
|
||||
logger.Info("没有待处理订单")
|
||||
return nil
|
||||
}
|
||||
|
||||
rechargeService := service.TmRechargeLog{}
|
||||
rechargeService.Orm = GetDb()
|
||||
rechargeService.Log = logger.NewHelper(logger.DefaultLogger)
|
||||
platforms, err := rechargeService.GetPlatforms()
|
||||
toAddresss := []string{}
|
||||
|
||||
@ -67,6 +83,7 @@ func (j TrxPaymentJob) Exec(arg interface{}) error {
|
||||
|
||||
for _, transfer := range transfers {
|
||||
if transfer.TransactionID == "" || transfer.ToAddress != toAddress {
|
||||
logger.Infof("跳出插入 ", transfer)
|
||||
continue
|
||||
}
|
||||
|
||||
@ -79,15 +96,20 @@ func (j TrxPaymentJob) Exec(arg interface{}) error {
|
||||
|
||||
if utility.ContainsString(toAddresss, item.ToAddress) {
|
||||
logs = append(logs, item)
|
||||
} else {
|
||||
logger.Infof("没有写入logs ", item)
|
||||
}
|
||||
}
|
||||
|
||||
if len(logs) > 0 {
|
||||
|
||||
err := rechargeService.PayCallBack(&logs)
|
||||
|
||||
if err != nil {
|
||||
logger.Error("执行完毕,err:", err.Error())
|
||||
}
|
||||
} else {
|
||||
// logger.Infof("接收地址:%s 合约地址:%s 无数据", toAddress, UsdtContractAddress)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
@ -96,19 +118,31 @@ func (j TrxPaymentJob) Exec(arg interface{}) error {
|
||||
// GetTRC20Transfers 获取指定 TRC20 代币的交易记录
|
||||
func GetTRC20Transfers(contractAddress, accountAddress string, minTimestamp, maxTimestamp int64) ([]dto.TRC20Transfer, error) {
|
||||
url := fmt.Sprintf("%s/v1/accounts/%s/transactions/trc20?contract_address=%s", config.ExtConfig.TrxGridUrl, accountAddress, contractAddress)
|
||||
|
||||
if minTimestamp > 0 {
|
||||
url += fmt.Sprintf("&min_timestamp=%d", minTimestamp)
|
||||
}
|
||||
if maxTimestamp > 0 {
|
||||
url += fmt.Sprintf("&max_timestamp=%d", maxTimestamp)
|
||||
}
|
||||
resp, err := http.Get(url)
|
||||
// logger.Info("查询地址:", url)
|
||||
req, err := http.NewRequest("GET", url, nil)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to create request: %v", err)
|
||||
}
|
||||
|
||||
// 设置请求头(包含 TronGrid API Key)
|
||||
req.Header.Set("Accept", "*/*")
|
||||
req.Header.Set("TRON-PRO-API-KEY", config.ExtConfig.TronApiKey) // 从配置读取 API Key
|
||||
|
||||
client := &http.Client{}
|
||||
resp, err := client.Do(req)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to send request: %v", err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to read response body: %v", err)
|
||||
}
|
||||
@ -116,6 +150,7 @@ func GetTRC20Transfers(contractAddress, accountAddress string, minTimestamp, max
|
||||
var result struct {
|
||||
Data []dto.TRC20Transfer `json:"data"`
|
||||
}
|
||||
// logger.Info("查询结果:", string(body))
|
||||
if err := json.Unmarshal(body, &result); err != nil {
|
||||
return nil, fmt.Errorf("failed to unmarshal response: %v", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user