@@ -1,30 +1,26 @@ | |||||
package task | package task | ||||
import ( | import ( | ||||
"applet/app/db" | |||||
taskMd "applet/app/task/md" | taskMd "applet/app/task/md" | ||||
"code.fnuoos.com/EggPlanet/egg_models.git/src/implement" | |||||
"code.fnuoos.com/EggPlanet/egg_models.git/src/model" | |||||
"fmt" | |||||
"time" | "time" | ||||
"applet/app/utils/logx" | |||||
"github.com/robfig/cron/v3" | "github.com/robfig/cron/v3" | ||||
"xorm.io/xorm" | "xorm.io/xorm" | ||||
"applet/app/cfg" | |||||
"applet/app/db" | |||||
"applet/app/db/model" | |||||
"applet/app/md" | |||||
"applet/app/utils" | |||||
"applet/app/utils/logx" | |||||
) | ) | ||||
var ( | var ( | ||||
timer *cron.Cron | |||||
jobs = map[string]func(*xorm.Engine, string){} | |||||
baseEntryId cron.EntryID | |||||
entryIds []cron.EntryID | |||||
taskCfgList map[string]*[]model.SysCfg | |||||
ch = make(chan int, 30) | |||||
workerNum = 15 // 智盟跟单并发数量 | |||||
otherCh = make(chan int, 30) | |||||
otherWorkerNum = 18 // 淘宝, 苏宁, 考拉并发量 | |||||
timer *cron.Cron | |||||
jobs = map[string]func(*xorm.Engine){} | |||||
baseEntryId cron.EntryID | |||||
entryIds []cron.EntryID | |||||
taskCfgList *[]model.CronTask | |||||
ch = make(chan int, 30) | |||||
workerNum = 15 // 并发数量 | |||||
) | ) | ||||
func Init() { | func Init() { | ||||
@@ -33,7 +29,7 @@ func Init() { | |||||
var err error | var err error | ||||
timer = cron.New() | timer = cron.New() | ||||
// reload为初始化数据库方法 | // reload为初始化数据库方法 | ||||
if baseEntryId, err = timer.AddFunc("@every 15m", reload); err != nil { | |||||
if baseEntryId, err = timer.AddFunc("@every 30m", reload); err != nil { | |||||
_ = logx.Fatal(err) | _ = logx.Fatal(err) | ||||
} | } | ||||
} | } | ||||
@@ -45,28 +41,10 @@ func Run() { | |||||
} | } | ||||
func reload() { | func reload() { | ||||
// 重新初始化数据库 | |||||
db.InitMapDbs(cfg.DB, cfg.Prd) | |||||
if len(taskCfgList) == 0 { | |||||
taskCfgList = map[string]*[]model.SysCfg{} | |||||
} | |||||
cronTaskDb := implement.NewCronTaskDb(db.Db) | |||||
taskCfgList = cronTaskDb.MapCrontabCfg() | |||||
// 获取所有站长的配置信息 | |||||
for dbName, v := range db.DBs { | |||||
if conf := db.MapCrontabCfg(v); conf != nil { | |||||
if cfg.Debug { | |||||
dbInfo := md.SplitDbInfo(v) | |||||
// 去掉模版库 | |||||
if dbName == "000000" { | |||||
continue | |||||
} | |||||
_ = logx.Debugf("【MasterId】%s, 【Host】%s, 【Name】%s, 【User】%s, 【prd】%v, 【Task】%v\n", dbName, dbInfo.Host, dbInfo.Name, dbInfo.User, cfg.Prd, utils.SerializeStr(*conf)) | |||||
} | |||||
taskCfgList[dbName] = conf | |||||
} | |||||
} | |||||
if len(taskCfgList) > 0 { | |||||
if len(*taskCfgList) > 0 { | |||||
// 删除原有所有任务 | // 删除原有所有任务 | ||||
if len(entryIds) > 0 { | if len(entryIds) > 0 { | ||||
for _, v := range entryIds { | for _, v := range entryIds { | ||||
@@ -81,28 +59,24 @@ func reload() { | |||||
err error | err error | ||||
) | ) | ||||
// 添加任务 | // 添加任务 | ||||
for dbName, v := range taskCfgList { | |||||
for _, vv := range *v { | |||||
if _, ok := jobs[vv.Key]; ok && vv.Val != "" { | |||||
// fmt.Println(vv.Val) | |||||
if entryId, err = timer.AddFunc(vv.Val, doTask(dbName, vv.Key)); err == nil { | |||||
entryIds = append(entryIds, entryId) | |||||
} | |||||
for _, v := range *taskCfgList { | |||||
if _, ok := jobs[v.Key]; ok && v.Val != "" { | |||||
fmt.Println(v.Val) | |||||
if entryId, err = timer.AddFunc(v.Val, doTask(v.Key)); err == nil { | |||||
entryIds = append(entryIds, entryId) | |||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
func doTask(dbName, fnName string) func() { | |||||
func doTask(fnName string) func() { | |||||
return func() { | return func() { | ||||
begin := time.Now().Local() | begin := time.Now().Local() | ||||
jobs[fnName](db.DBs[dbName], dbName) | |||||
jobs[fnName](db.Db) | |||||
end := time.Now().Local() | end := time.Now().Local() | ||||
logx.Infof( | logx.Infof( | ||||
"[%s] AutoTask <%s> started at <%s>, ended at <%s> duration <%s>", | "[%s] AutoTask <%s> started at <%s>, ended at <%s> duration <%s>", | ||||
dbName, | |||||
fnName, | fnName, | ||||
begin.Format("2006-01-02 15:04:05.000"), | begin.Format("2006-01-02 15:04:05.000"), | ||||
end.Format("2006-01-02 15:04:05.000"), | end.Format("2006-01-02 15:04:05.000"), | ||||
@@ -113,5 +87,7 @@ func doTask(dbName, fnName string) func() { | |||||
// 增加自动任务队列 | // 增加自动任务队列 | ||||
func initTasks() { | func initTasks() { | ||||
jobs[taskMd.MallCronOrderCancel] = taskCancelOrder // 取消订单 | |||||
jobs[taskMd.CronEggEnergyAutoRecordPrices] = taskEggEnergyAutoRecordPrices | |||||
jobs[taskMd.CronEggEnergyDealPlatformRevenueData] = taskEggEnergyDealPlatformRevenueData | |||||
jobs[taskMd.CronEggEnergyDealFundData] = taskEggEnergyDealFundData | |||||
} | } |
@@ -1,5 +1,7 @@ | |||||
package md | package md | ||||
const ( | const ( | ||||
MallCronOrderCancel = "mall_cron_order_cancel" // 取消订单任务 | |||||
CronEggEnergyAutoRecordPrices = "cron_egg_energy_auto_record_price" // 自动记录价格 | |||||
CronEggEnergyDealPlatformRevenueData = "cron_egg_energy_deal_platform_revenue_data" // 处理平台收益 | |||||
CronEggEnergyDealFundData = "cron_egg_energy_deal_fund_data" // 处理价值投入 | |||||
) | ) |
@@ -1,64 +0,0 @@ | |||||
package svc | |||||
import ( | |||||
"applet/app/db" | |||||
"applet/app/utils" | |||||
"applet/app/utils/logx" | |||||
"errors" | |||||
"fmt" | |||||
"time" | |||||
"xorm.io/xorm" | |||||
) | |||||
func CancelOrder(eg *xorm.Engine, dbName string) { | |||||
fmt.Println("cancel order...") | |||||
defer func() { | |||||
if err := recover(); err != nil { | |||||
_ = logx.Error(err) | |||||
} | |||||
}() | |||||
timeStr, err := getCancelCfg(eg, dbName) | |||||
if err != nil { | |||||
fmt.Println(err.Error()) | |||||
return | |||||
} | |||||
now := time.Now() | |||||
// x 分钟后取消订单 | |||||
expTime := now.Add(-time.Hour * time.Duration(utils.StrToInt64(timeStr))) | |||||
expTimeStr := utils.Time2String(expTime, "") | |||||
page := 1 | |||||
for { | |||||
isEmpty, err := handleOnePage(eg, dbName, expTimeStr) | |||||
if err != nil { | |||||
_ = logx.Error(err) | |||||
break | |||||
} | |||||
if isEmpty { | |||||
break | |||||
} | |||||
if page > 100 { | |||||
break | |||||
} | |||||
page += 1 | |||||
} | |||||
} | |||||
func handleOnePage(eg *xorm.Engine, dbName, expTimeStr string) (isEmpty bool, err error) { | |||||
return false, nil | |||||
} | |||||
func getCancelCfg(eg *xorm.Engine, masterId string) (string, error) { | |||||
cfg := db.SysCfgGetWithDb(eg, masterId, "order_expiration_time") | |||||
if cfg == "" { | |||||
return "", errors.New("order_expiration_time no found") | |||||
} | |||||
return cfg, nil | |||||
} |
@@ -12,10 +12,11 @@ import ( | |||||
"xorm.io/xorm" | "xorm.io/xorm" | ||||
) | ) | ||||
const DealFundDataKey = "deal_fund_data_key" | |||||
const EggEnergyDealFundDataKey = "egg_energy_deal_fund_data_key" | |||||
func DealFundData(eg *xorm.Engine, dbName string, ch *rabbit.Channel) { | |||||
fmt.Println("deal_fund_data...") | |||||
// EggEnergyDealFundData 处理价值投入 | |||||
func EggEnergyDealFundData(eg *xorm.Engine) { | |||||
fmt.Println("egg_energy_deal_fund_data...") | |||||
defer func() { | defer func() { | ||||
if err := recover(); err != nil { | if err := recover(); err != nil { | ||||
fmt.Println(err) | fmt.Println(err) | ||||
@@ -24,12 +25,13 @@ func DealFundData(eg *xorm.Engine, dbName string, ch *rabbit.Channel) { | |||||
}() | }() | ||||
// 悲观锁防止串行 | // 悲观锁防止串行 | ||||
getString, _ := cache.GetString(DealFundDataKey) | |||||
getString, _ := cache.GetString(EggEnergyDealFundDataKey) | |||||
if getString != "" { | if getString != "" { | ||||
fmt.Println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "上一次处理未执行完") | fmt.Println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "上一次处理未执行完") | ||||
return | return | ||||
} | } | ||||
cache.SetEx(DealFundDataKey, "running", 60*30) //30分钟 | |||||
cache.SetEx(EggEnergyDealFundDataKey, "running", 60*30) //30分钟 | |||||
defer cache.Del(EggEnergyDealFundDataKey) | |||||
// 查询所有未被执行完的数据 | // 查询所有未被执行完的数据 | ||||
fundDataDb := implement.NewEggEnergyFundDataDb(eg) | fundDataDb := implement.NewEggEnergyFundDataDb(eg) | ||||
@@ -39,6 +41,12 @@ func DealFundData(eg *xorm.Engine, dbName string, ch *rabbit.Channel) { | |||||
return | return | ||||
} | } | ||||
ch, err := rabbit.Cfg.Pool.GetChannel() | |||||
if err != nil { | |||||
return | |||||
} | |||||
defer ch.Release() | |||||
now := time.Now() | now := time.Now() | ||||
fundDataRecordsDb := implement.NewEggEnergyFundDataRecordsDb(eg) | fundDataRecordsDb := implement.NewEggEnergyFundDataRecordsDb(eg) | ||||
for _, data := range fundDataList { | for _, data := range fundDataList { | ||||
@@ -75,89 +83,5 @@ func DealFundData(eg *xorm.Engine, dbName string, ch *rabbit.Channel) { | |||||
ID: data.Id, | ID: data.Id, | ||||
Amount: amount.String(), | Amount: amount.String(), | ||||
}, md2.EggEnergyRoutKeyForEggEnergyFundData) | }, md2.EggEnergyRoutKeyForEggEnergyFundData) | ||||
//session := eg.NewSession() | |||||
//session.Begin() | |||||
// | |||||
//eggEnergyCoreData, cb, err2 := svc.GetEggEnergyCoreData(eg) | |||||
//if err2 != nil { | |||||
// _ = logx.Error(err2) | |||||
//} | |||||
//if cb != nil { | |||||
// defer cb() // 释放锁 | |||||
//} | |||||
////计算涨价公式 | |||||
//err3, calcPriceIncreaseFormulaResp := egg_energy.CalcPriceIncreaseFormula(utils.AnyToString(amount), eggEnergyCoreData) | |||||
//if err3 != nil { | |||||
// _ = logx.Error(err3) | |||||
// _ = session.Rollback() | |||||
// session.Close() | |||||
// continue | |||||
//} | |||||
// | |||||
//dealAvailableEggEnergyCoinReq := md2.DealAvailableEggEnergyCoinReq{ | |||||
// Amount: calcPriceIncreaseFormulaResp.GetEggEnergyNums, | |||||
// AmountFee: "", | |||||
// BeforePrice: calcPriceIncreaseFormulaResp.BeforePrice, | |||||
// AfterPrice: calcPriceIncreaseFormulaResp.AfterPrice, | |||||
// BeforePlanetTotalValue: calcPriceIncreaseFormulaResp.BeforePlanetTotalValue, | |||||
// AfterPlanetTotalValue: calcPriceIncreaseFormulaResp.AfterPlanetTotalValue, | |||||
// BeforeEnergyTotalNums: calcPriceIncreaseFormulaResp.BeforeEnergyTotalNums, | |||||
// AfterEnergyTotalNums: calcPriceIncreaseFormulaResp.AfterEnergyTotalNums, | |||||
//} | |||||
// | |||||
//err4 := egg_energy.DealAvailableEggEnergyCoin(session, int(enum.CapitalInjection), eggEnergyCoreData, dealAvailableEggEnergyCoinReq) | |||||
//if err4 != nil { | |||||
// fmt.Println("ActivityCoinAutoExchangeEggPersonEnergy:::::err111:::", err4) | |||||
// _ = session.Rollback() | |||||
// session.Close() | |||||
// continue | |||||
//} | |||||
// | |||||
//// 插入资金数据详细数据 | |||||
//record := model.EggEnergyFundDataRecords{ | |||||
// RecordsId: data.Id, | |||||
// TotalAmount: data.TotalAmount, | |||||
// BalanceAmount: utils.AnyToString(utils.AnyToFloat64(data.BalanceAmount) - amount), | |||||
// BalanceTimes: data.BalanceTimes - 1, | |||||
// BeforePrice: calcPriceIncreaseFormulaResp.BeforePrice, | |||||
// AfterPrice: calcPriceIncreaseFormulaResp.AfterPrice, | |||||
// BeforePlanetTotalValue: calcPriceIncreaseFormulaResp.BeforePlanetTotalValue, | |||||
// AfterPlanetTotalValue: calcPriceIncreaseFormulaResp.AfterPlanetTotalValue, | |||||
// CreateAt: now.Format("2006-01-02 15:04:05"), | |||||
// UpdateAt: now.Format("2006-01-02 15:04:05"), | |||||
//} | |||||
//_, err5 := fundDataRecordsDb.EggEnergyFundDataRecordsInsertBySession(session, record) | |||||
//if err5 != nil { | |||||
// _ = session.Rollback() | |||||
// continue | |||||
//} | |||||
// | |||||
//// 更新当前数据 | |||||
//fundData := model.EggEnergyFundData{ | |||||
// Id: data.Id, | |||||
// Kind: data.Kind, | |||||
// TotalAmount: data.TotalAmount, | |||||
// BalanceAmount: utils.AnyToString(utils.AnyToFloat64(data.BalanceAmount) - amount), | |||||
// Hours: data.Hours, | |||||
// BalanceTimes: data.BalanceTimes - 1, | |||||
// Frequency: data.Frequency, | |||||
// Memo: data.Memo, | |||||
// CreateAt: data.CreateAt, | |||||
// UpdateAt: now.Format("2006-01-02 15:04:05"), | |||||
//} | |||||
// | |||||
//forceColumns := []string{ | |||||
// "balance_times", | |||||
// "balance_amount", | |||||
//} | |||||
//_, err6 := fundDataDb.EggEnergyFundDataUpdateBySession(session, fundData, forceColumns...) | |||||
//if err6 != nil { | |||||
// _ = logx.Error(err6) | |||||
// _ = session.Rollback() | |||||
// continue | |||||
//} | |||||
} | } | ||||
cache.Del(DealFundDataKey) | |||||
} | } |
@@ -12,10 +12,11 @@ import ( | |||||
"xorm.io/xorm" | "xorm.io/xorm" | ||||
) | ) | ||||
const DealPlatformRevenueDataKey = "deal_platform_revenue_data" | |||||
const EggEnergyDealPlatformRevenueDataKey = "egg_energy_deal_platform_revenue_data" | |||||
func DealPlatformRevenueData(eg *xorm.Engine, dbName string, ch *rabbit.Channel) { | |||||
fmt.Println("deal_platform_revenue_data...") | |||||
// EggEnergyDealPlatformRevenueData 蛋蛋能量-处理平台收益 | |||||
func EggEnergyDealPlatformRevenueData(eg *xorm.Engine) { | |||||
fmt.Println("egg_energy_deal_platform_revenue_data...") | |||||
defer func() { | defer func() { | ||||
if err := recover(); err != nil { | if err := recover(); err != nil { | ||||
fmt.Println(err) | fmt.Println(err) | ||||
@@ -24,28 +25,35 @@ func DealPlatformRevenueData(eg *xorm.Engine, dbName string, ch *rabbit.Channel) | |||||
}() | }() | ||||
// 悲观锁防止串行 | // 悲观锁防止串行 | ||||
getString, _ := cache.GetString(DealFundDataKey) | |||||
getString, _ := cache.GetString(EggEnergyDealPlatformRevenueDataKey) | |||||
if getString != "" { | if getString != "" { | ||||
fmt.Println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "上一次处理未执行完") | fmt.Println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "上一次处理未执行完") | ||||
return | return | ||||
} | } | ||||
cache.SetEx(DealFundDataKey, "running", 60*30) //30分钟 | |||||
cache.SetEx(EggEnergyDealPlatformRevenueDataKey, "running", 60*30) //30分钟 | |||||
defer cache.Del(EggEnergyDealPlatformRevenueDataKey) | |||||
// 查询所有未被执行完的数据 | // 查询所有未被执行完的数据 | ||||
platformRevenueDataDb := implement.NewPlatformRevenueDataDb(eg) | platformRevenueDataDb := implement.NewPlatformRevenueDataDb(eg) | ||||
platformRevenueDataList, err := platformRevenueDataDb.PlatformRevenueDataFindNotFinish() | platformRevenueDataList, err := platformRevenueDataDb.PlatformRevenueDataFindNotFinish() | ||||
if err != nil { | if err != nil { | ||||
fmt.Println("DealPlatformRevenueData_ERR:::::", err.Error()) | |||||
fmt.Println("EggEnergyDealPlatformRevenueData_ERR:::::", err.Error()) | |||||
return | return | ||||
} | } | ||||
ch, err := rabbit.Cfg.Pool.GetChannel() | |||||
if err != nil { | |||||
return | |||||
} | |||||
defer ch.Release() | |||||
now := time.Now() | now := time.Now() | ||||
recordsDb := implement.NewPlatformRevenueDataRecordsDb(eg) | recordsDb := implement.NewPlatformRevenueDataRecordsDb(eg) | ||||
for _, data := range platformRevenueDataList { | for _, data := range platformRevenueDataList { | ||||
// 1、判断是否是第一次执行 | // 1、判断是否是第一次执行 | ||||
lastRecord, err1 := recordsDb.PlatformRevenueDataRecordsGetLast(data.Id) | lastRecord, err1 := recordsDb.PlatformRevenueDataRecordsGetLast(data.Id) | ||||
if err1 != nil { | if err1 != nil { | ||||
fmt.Println("DealPlatformRevenueData_ERR:::::", err1.Error()) | |||||
fmt.Println("EggEnergyDealPlatformRevenueData_ERR:::::", err1.Error()) | |||||
continue | continue | ||||
} | } | ||||
if lastRecord == nil { | if lastRecord == nil { | ||||
@@ -65,7 +73,7 @@ func DealPlatformRevenueData(eg *xorm.Engine, dbName string, ch *rabbit.Channel) | |||||
times := decimal.NewFromInt(int64(data.Hours * 60)).Div(frequency).RoundFloor(8) | times := decimal.NewFromInt(int64(data.Hours * 60)).Div(frequency).RoundFloor(8) | ||||
totalAmount, err2 := decimal.NewFromString(data.TotalAmount) | totalAmount, err2 := decimal.NewFromString(data.TotalAmount) | ||||
if err2 != nil { | if err2 != nil { | ||||
fmt.Println("DealPlatformRevenueData_ERR:::::", err2.Error()) | |||||
fmt.Println("EggEnergyDealPlatformRevenueData_ERR:::::", err2.Error()) | |||||
continue | continue | ||||
} | } | ||||
amount := totalAmount.Div(times) | amount := totalAmount.Div(times) | ||||
@@ -75,93 +83,5 @@ func DealPlatformRevenueData(eg *xorm.Engine, dbName string, ch *rabbit.Channel) | |||||
ID: data.Id, | ID: data.Id, | ||||
Amount: amount.String(), | Amount: amount.String(), | ||||
}, md2.EggEnergyRoutKeyForPlatformRevenueData) | }, md2.EggEnergyRoutKeyForPlatformRevenueData) | ||||
//session := eg.NewSession() | |||||
//defer func() { | |||||
// session.Close() | |||||
// if err := recover(); err != nil { | |||||
// _ = zhios_order_relate_logx.Error(err) | |||||
// } | |||||
//}() | |||||
//session.Begin() | |||||
// | |||||
//eggEnergyCoreData, cb, err2 := svc.GetEggEnergyCoreData(eg) | |||||
//if err2 != nil { | |||||
// _ = logx.Error(err2) | |||||
//} | |||||
//if cb != nil { | |||||
// defer cb() // 释放锁 | |||||
//} | |||||
////计算涨价公式 | |||||
//err3, calcPriceIncreaseFormulaResp := egg_energy.CalcPriceIncreaseFormula(utils.AnyToString(amount), eggEnergyCoreData) | |||||
//if err3 != nil { | |||||
// _ = logx.Error(err3) | |||||
// _ = session.Rollback() | |||||
// continue | |||||
//} | |||||
// | |||||
//dealAvailableEggEnergyCoinReq := md2.DealAvailableEggEnergyCoinReq{ | |||||
// Amount: calcPriceIncreaseFormulaResp.GetEggEnergyNums, | |||||
// AmountFee: "", | |||||
// BeforePrice: calcPriceIncreaseFormulaResp.BeforePrice, | |||||
// AfterPrice: calcPriceIncreaseFormulaResp.AfterPrice, | |||||
// BeforePlanetTotalValue: calcPriceIncreaseFormulaResp.BeforePlanetTotalValue, | |||||
// AfterPlanetTotalValue: calcPriceIncreaseFormulaResp.AfterPlanetTotalValue, | |||||
// BeforeEnergyTotalNums: calcPriceIncreaseFormulaResp.BeforeEnergyTotalNums, | |||||
// AfterEnergyTotalNums: calcPriceIncreaseFormulaResp.AfterEnergyTotalNums, | |||||
//} | |||||
// | |||||
//err4 := egg_energy.DealAvailableEggEnergyCoin(session, int(enum.CapitalInjection), eggEnergyCoreData, dealAvailableEggEnergyCoinReq) | |||||
//if err4 != nil { | |||||
// fmt.Println("ActivityCoinAutoExchangeEggPersonEnergy:::::err111:::", err4) | |||||
// _ = session.Rollback() | |||||
// continue | |||||
//} | |||||
// | |||||
//// 插入平台营收详细数据 | |||||
//record := model.PlatformRevenueDataRecords{ | |||||
// RecordsId: data.Id, | |||||
// TotalAmount: data.TotalAmount, | |||||
// BalanceAmount: utils.AnyToString(utils.AnyToFloat64(data.BalanceAmount) - amount), | |||||
// BalanceTimes: data.BalanceTimes - 1, | |||||
// BeforePrice: calcPriceIncreaseFormulaResp.BeforePrice, | |||||
// AfterPrice: calcPriceIncreaseFormulaResp.AfterPrice, | |||||
// BeforePlanetTotalValue: calcPriceIncreaseFormulaResp.BeforePlanetTotalValue, | |||||
// AfterPlanetTotalValue: calcPriceIncreaseFormulaResp.AfterPlanetTotalValue, | |||||
// CreateAt: now.Format("2006-01-02 15:04:05"), | |||||
// UpdateAt: now.Format("2006-01-02 15:04:05"), | |||||
//} | |||||
//_, err5 := recordsDb.PlatformRevenueDataRecordsInsertBySession(session, record) | |||||
//if err5 != nil { | |||||
// _ = session.Rollback() | |||||
// continue | |||||
//} | |||||
// | |||||
//// 更新当前数据 | |||||
//platformRevenueData := model.PlatformRevenueData{ | |||||
// Id: data.Id, | |||||
// Kind: data.Kind, | |||||
// TotalAmount: data.TotalAmount, | |||||
// BalanceAmount: utils.AnyToString(utils.AnyToFloat64(data.BalanceAmount) - amount), | |||||
// Hours: data.Hours, | |||||
// BalanceTimes: data.BalanceTimes - 1, | |||||
// Frequency: data.Frequency, | |||||
// Memo: data.Memo, | |||||
// CreateAt: data.CreateAt, | |||||
// UpdateAt: now.Format("2006-01-02 15:04:05"), | |||||
//} | |||||
// | |||||
//forceColumns := []string{ | |||||
// "balance_times", | |||||
// "balance_amount", | |||||
//} | |||||
//_, err6 := platformRevenueDataDb.PlatformRevenueDataUpdateBySession(session, platformRevenueData, forceColumns...) | |||||
//if err6 != nil { | |||||
// _ = logx.Error(err6) | |||||
// _ = session.Rollback() | |||||
// continue | |||||
//} | |||||
} | } | ||||
cache.Del(DealPlatformRevenueDataKey) | |||||
} | } |
@@ -11,9 +11,9 @@ import ( | |||||
"xorm.io/xorm" | "xorm.io/xorm" | ||||
) | ) | ||||
// SaveEggEnergyPrice 记录蛋蛋能量价格 | |||||
func SaveEggEnergyPrice(engine *xorm.Engine, dbName string) { | |||||
fmt.Println("save_egg_energy_price...") | |||||
// EggEnergyAutoRecordPrices 蛋蛋能量-自动记录价格 | |||||
func EggEnergyAutoRecordPrices(engine *xorm.Engine) { | |||||
fmt.Println("egg_energy_auto_record_price...") | |||||
defer func() { | defer func() { | ||||
if err := recover(); err != nil { | if err := recover(); err != nil { | ||||
fmt.Println(err) | fmt.Println(err) | ||||
@@ -29,7 +29,7 @@ func SaveEggEnergyPrice(engine *xorm.Engine, dbName string) { | |||||
priceDb := implement.NewEggEnergyPriceDb(engine) | priceDb := implement.NewEggEnergyPriceDb(engine) | ||||
lastPrice, has, err := priceDb.EggEnergyPriceGetLastOne() | lastPrice, has, err := priceDb.EggEnergyPriceGetLastOne() | ||||
if err != nil { | if err != nil { | ||||
fmt.Println("SaveEggEnergyPrice_ERR:::::", err.Error()) | |||||
fmt.Println("EggEnergyAutoRecordPrices_ERR:::::", err.Error()) | |||||
return | return | ||||
} | } | ||||
if has { | if has { | ||||
@@ -43,7 +43,7 @@ func SaveEggEnergyPrice(engine *xorm.Engine, dbName string) { | |||||
// 3. 查询当前价格 | // 3. 查询当前价格 | ||||
eggEnergyCoreData, cb, err1 := svc.GetEggEnergyCoreData(engine) | eggEnergyCoreData, cb, err1 := svc.GetEggEnergyCoreData(engine) | ||||
if err1 != nil { | if err1 != nil { | ||||
fmt.Println("SaveEggEnergyPrice_ERR:::::", err1.Error()) | |||||
fmt.Println("EggEnergyAutoRecordPrices_ERR:::::", err1.Error()) | |||||
return | return | ||||
} | } | ||||
if cb != nil { | if cb != nil { | ||||
@@ -58,11 +58,11 @@ func SaveEggEnergyPrice(engine *xorm.Engine, dbName string) { | |||||
} | } | ||||
id, err2 := priceDb.EggEnergyPriceInsert(&priceData) | id, err2 := priceDb.EggEnergyPriceInsert(&priceData) | ||||
if err2 != nil { | if err2 != nil { | ||||
fmt.Println("SaveEggEnergyPrice_ERR:::::", err2.Error()) | |||||
fmt.Println("EggEnergyAutoRecordPrices_ERR:::::", err2.Error()) | |||||
return | return | ||||
} | } | ||||
if id == 0 { | if id == 0 { | ||||
fmt.Println("SaveEggEnergyPrice_ERR:::::", errors.New(fmt.Sprintf("%s 新增价格失败, 当前价格 %s", now.Format("2006-01-02 15:04:05"), eggEnergyCoreData.NowPrice))) | |||||
fmt.Println("EggEnergyAutoRecordPrices_ERR:::::", errors.New(fmt.Sprintf("%s 新增价格失败, 当前价格 %s", now.Format("2006-01-02 15:04:05"), eggEnergyCoreData.NowPrice))) | |||||
return | return | ||||
} | } | ||||
return | return | ||||
@@ -0,0 +1,23 @@ | |||||
package task | |||||
import ( | |||||
"applet/app/task/svc" | |||||
"math/rand" | |||||
"time" | |||||
"xorm.io/xorm" | |||||
) | |||||
// 自动记录价格 | |||||
func taskEggEnergyAutoRecordPrices(eg *xorm.Engine) { | |||||
for { | |||||
if len(ch) > workerNum { | |||||
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000))) | |||||
} else { | |||||
goto START | |||||
} | |||||
} | |||||
START: | |||||
ch <- 1 | |||||
svc.EggEnergyAutoRecordPrices(eg) | |||||
<-ch | |||||
} |
@@ -7,8 +7,8 @@ import ( | |||||
"xorm.io/xorm" | "xorm.io/xorm" | ||||
) | ) | ||||
// 取消订单 | |||||
func taskCancelOrder(eg *xorm.Engine, dbName string) { | |||||
// 处理价值投入 | |||||
func taskEggEnergyDealFundData(eg *xorm.Engine) { | |||||
for { | for { | ||||
if len(ch) > workerNum { | if len(ch) > workerNum { | ||||
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000))) | time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000))) | ||||
@@ -18,6 +18,6 @@ func taskCancelOrder(eg *xorm.Engine, dbName string) { | |||||
} | } | ||||
START: | START: | ||||
ch <- 1 | ch <- 1 | ||||
svc.CancelOrder(eg, dbName) | |||||
svc.EggEnergyDealFundData(eg) | |||||
<-ch | <-ch | ||||
} | } |
@@ -0,0 +1,23 @@ | |||||
package task | |||||
import ( | |||||
"applet/app/task/svc" | |||||
"math/rand" | |||||
"time" | |||||
"xorm.io/xorm" | |||||
) | |||||
// 处理平台收益 | |||||
func taskEggEnergyDealPlatformRevenueData(eg *xorm.Engine) { | |||||
for { | |||||
if len(ch) > workerNum { | |||||
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000))) | |||||
} else { | |||||
goto START | |||||
} | |||||
} | |||||
START: | |||||
ch <- 1 | |||||
svc.EggEnergyDealPlatformRevenueData(eg) | |||||
<-ch | |||||
} |