From 017bf20c562de43a1aea73004a2b1a8a707bd7f2 Mon Sep 17 00:00:00 2001 From: BaoXuebin Date: Sun, 10 Dec 2023 22:52:24 +0800 Subject: [PATCH] update: auto refresh currency cache --- service/commodity.go | 6 +++++- service/transactions.go | 11 ++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/service/commodity.go b/service/commodity.go index 7e54506..088a5ad 100644 --- a/service/commodity.go +++ b/service/commodity.go @@ -30,7 +30,11 @@ func SyncCommodityPrice(c *gin.Context) { } // 刷新货币最新汇率值 - script.RefreshLedgerCurrency(ledgerConfig) + err = script.LoadLedgerCurrencyMap(ledgerConfig) + if err != nil { + InternalError(c, err.Error()) + return + } OK(c, syncCommodityPriceForm) } diff --git a/service/transactions.go b/service/transactions.go index fd7f9d9..f3187ed 100644 --- a/service/transactions.go +++ b/service/transactions.go @@ -183,8 +183,9 @@ func saveTransaction(c *gin.Context, addTransactionForm AddTransactionForm, ledg continue } + _, isCurrency := currencyMap[account.Currency] // 货币跳过汇率转换 - if _, ok := currencyMap[account.Currency]; !ok { + if !isCurrency { // 根据 number 的正负来判断是买入还是卖出 if entry.Number.GreaterThan(zero) { // {351.729 CNY, 2021-09-29} @@ -203,6 +204,14 @@ func saveTransaction(c *gin.Context, addTransactionForm AddTransactionForm, ledg } return errors.New("internal error") } + // 刷新币种汇率 + if isCurrency { + err = script.LoadLedgerCurrencyMap(ledgerConfig) + if err != nil { + InternalError(c, err.Error()) + return errors.New("internal error") + } + } } }