diff --git a/app.go b/app.go
index 2737c45..6518c3b 100644
--- a/app.go
+++ b/app.go
@@ -115,34 +115,66 @@ func (a *App) domReady(ctx context.Context) {
if interval <= 0 {
interval = 1
}
- ticker := time.NewTicker(time.Second * time.Duration(interval))
- defer ticker.Stop()
- for range ticker.C {
+ //ticker := time.NewTicker(time.Second * time.Duration(interval))
+ //defer ticker.Stop()
+ //for range ticker.C {
+ // MonitorStockPrices(a)
+ //}
+ id, err := a.cron.AddFunc(fmt.Sprintf("@every %ds", interval), func() {
MonitorStockPrices(a)
+ })
+ if err != nil {
+ logger.SugaredLogger.Errorf("AddFunc error:%s", err.Error())
+ } else {
+ a.cronEntrys["MonitorStockPrices"] = id
}
+
}()
//刷新基金净值信息
go func() {
- ticker := time.NewTicker(time.Second * time.Duration(60))
- defer ticker.Stop()
- for range ticker.C {
+ //ticker := time.NewTicker(time.Second * time.Duration(60))
+ //defer ticker.Stop()
+ //for range ticker.C {
+ // MonitorFundPrices(a)
+ //}
+
+ id, err := a.cron.AddFunc(fmt.Sprintf("@every %ds", 60), func() {
MonitorFundPrices(a)
+ })
+ if err != nil {
+ logger.SugaredLogger.Errorf("AddFunc error:%s", err.Error())
+ } else {
+ a.cronEntrys["MonitorFundPrices"] = id
}
+
}()
if config.EnableNews {
- go func() {
- ticker := time.NewTicker(time.Second * time.Duration(60))
- defer ticker.Stop()
- for range ticker.C {
- telegraph := refreshTelegraphList()
- if telegraph != nil {
- go runtime.EventsEmit(a.ctx, "telegraph", telegraph)
- }
- }
+ //go func() {
+ // ticker := time.NewTicker(time.Second * time.Duration(60))
+ // defer ticker.Stop()
+ // for range ticker.C {
+ // telegraph := refreshTelegraphList()
+ // if telegraph != nil {
+ // go runtime.EventsEmit(a.ctx, "telegraph", telegraph)
+ // }
+ // }
+ //
+ //}()
+
+ id, err := a.cron.AddFunc(fmt.Sprintf("@every %ds", 60), func() {
+ telegraph := refreshTelegraphList()
+ if telegraph != nil {
+ go runtime.EventsEmit(a.ctx, "telegraph", telegraph)
+ }
+ })
+ if err != nil {
+ logger.SugaredLogger.Errorf("AddFunc error:%s", err.Error())
+ } else {
+ a.cronEntrys["refreshTelegraphList"] = id
+ }
- }()
go runtime.EventsEmit(a.ctx, "telegraph", refreshTelegraphList())
}
go MonitorStockPrices(a)
@@ -779,6 +811,17 @@ func onReady(a *App) {
func (a *App) UpdateConfig(settings *data.Settings) string {
//logger.SugaredLogger.Infof("UpdateConfig:%+v", settings)
+ if settings.RefreshInterval > 0 {
+ if entryID, exists := a.cronEntrys["MonitorStockPrices"]; exists {
+ a.cron.Remove(entryID)
+ }
+ id, _ := a.cron.AddFunc(fmt.Sprintf("@every %ds", settings.RefreshInterval), func() {
+ logger.SugaredLogger.Infof("MonitorStockPrices:%s", time.Now())
+ MonitorStockPrices(a)
+ })
+ a.cronEntrys["MonitorStockPrices"] = id
+ }
+
return data.NewSettingsApi(settings).UpdateConfig()
}
@@ -896,7 +939,9 @@ func (a *App) SetStockAICron(cronText, stockCode string) {
a.cron.Remove(entryID)
}
follow := data.NewStockDataApi().GetFollowedStockByStockCode(stockCode)
- a.cron.AddFunc(cronText, a.AddCronTask(follow))
+ id, _ := a.cron.AddFunc(cronText, a.AddCronTask(follow))
+ a.cronEntrys[stockCode] = id
+
}
func OnSecondInstanceLaunch(secondInstanceData options.SecondInstanceData) {
notification := toast.Notification{
diff --git a/backend/data/stock_data_api.go b/backend/data/stock_data_api.go
index ea40f06..f033fe9 100644
--- a/backend/data/stock_data_api.go
+++ b/backend/data/stock_data_api.go
@@ -412,11 +412,13 @@ func (receiver StockDataApi) SetAlarmChangePercent(val, alarmPrice float64, stoc
func (receiver StockDataApi) SetStockSort(sort int64, stockCode string) {
if strutil.HasPrefixAny(stockCode, []string{"gb_"}) {
- stockCode = strings.ToUpper(stockCode)
+ stockCode = strings.ToLower(stockCode)
stockCode = strings.Replace(stockCode, "gb_", "us", 1)
- stockCode = strings.Replace(stockCode, "GB_", "us", 1)
}
- db.Dao.Model(&FollowedStock{}).Where("stock_code = ?", strings.ToLower(stockCode)).Update("sort", sort)
+ err := db.Dao.Model(&FollowedStock{}).Where("stock_code = ?", strings.ToLower(stockCode)).Update("sort", sort).Error
+ if err != nil {
+ logger.SugaredLogger.Error(err.Error())
+ }
}
func (receiver StockDataApi) SetStockAICron(cron string, stockCode string) {
if strutil.HasPrefixAny(stockCode, []string{"gb_"}) {
diff --git a/frontend/src/components/settings.vue b/frontend/src/components/settings.vue
index 5354061..42e7d69 100644
--- a/frontend/src/components/settings.vue
+++ b/frontend/src/components/settings.vue
@@ -266,7 +266,7 @@ function deletePrompt(ID){
-
+
秒
diff --git a/frontend/src/components/stock.vue b/frontend/src/components/stock.vue
index 2bb42ef..3b25c17 100644
--- a/frontend/src/components/stock.vue
+++ b/frontend/src/components/stock.vue
@@ -46,7 +46,7 @@ import html2canvas from "html2canvas";
import {asBlob} from 'html-docx-js-typescript';
import vueDanmaku from 'vue3-danmaku'
-import {keys, pad} from "lodash";
+import {keys, pad, padStart} from "lodash";
const danmus = ref([])
const ws = ref(null)
@@ -118,7 +118,7 @@ const icon = ref('https://raw.githubusercontent.com/ArvinLovegood/go-stock/maste
const sortedResults = computed(() => {
//console.log("computed",sortedResults.value)
const sortedKeys =keys(results.value).sort();
- //console.log("sortedKeys",sortedKeys)
+ console.log("sortedKeys",sortedKeys)
const sortedObject = {};
sortedKeys.forEach(key => {
sortedObject[key] = results.value[key];
@@ -494,8 +494,8 @@ async function updateData(result) {
}
}
- result.key=result.sort
- //result.key=GetSortKey(result.sort,result["股票代码"])
+ //result.key=result.sort
+ result.key=GetSortKey(result.sort,result["股票代码"])
results.value[GetSortKey(result.sort,result["股票代码"])]=result
}
@@ -511,9 +511,9 @@ async function monitor() {
function GetSortKey(sort,code){
- //let sortKey= pad(sort,6,'0')+"_"+code
- //console.log("GetSortKey:",sortKey)
- return sort
+ let sortKey= padStart(sort,8,'0')+"_"+code
+ console.log("GetSortKey:",sortKey)
+ return sortKey
}
function onSelect(item) {
@@ -865,7 +865,7 @@ function share(code,name){
-
+