🌐 feat: add configurable USD exchange-rate support across backend & frontend
Backend - setting/payment.go: introduce default `USDExchangeRate` (7.3) - model/option.go: • inject `USDExchangeRate` into `InitOptionMap` • persist & sync value in `updateOptionMap` - controller/misc.go: expose `usd_exchange_rate` via `/api/status` Frontend - OperationSetting.js & SettingsGeneral.js: • extend state/inputs with `USDExchangeRate` • add form field “美元汇率 (non-top-up rate, pricing only)” - ModelPricing.js already consumes `status.usd_exchange_rate`; no change needed API - Administrators can update the rate via `PUT /api/option` (key: `USDExchangeRate`) - All clients receive the latest rate through `GET /api/status` This closes the end-to-end flow for displaying model prices in both USD and CNY based on a configurable exchange rate.
This commit is contained in:
@@ -74,6 +74,7 @@ func InitOptionMap() {
|
||||
common.OptionMap["EpayId"] = ""
|
||||
common.OptionMap["EpayKey"] = ""
|
||||
common.OptionMap["Price"] = strconv.FormatFloat(setting.Price, 'f', -1, 64)
|
||||
common.OptionMap["USDExchangeRate"] = strconv.FormatFloat(setting.USDExchangeRate, 'f', -1, 64)
|
||||
common.OptionMap["MinTopUp"] = strconv.Itoa(setting.MinTopUp)
|
||||
common.OptionMap["TopupGroupRatio"] = common.TopupGroupRatio2JSONString()
|
||||
common.OptionMap["Chats"] = setting.Chats2JsonString()
|
||||
@@ -306,6 +307,8 @@ func updateOptionMap(key string, value string) (err error) {
|
||||
setting.EpayKey = value
|
||||
case "Price":
|
||||
setting.Price, _ = strconv.ParseFloat(value, 64)
|
||||
case "USDExchangeRate":
|
||||
setting.USDExchangeRate, _ = strconv.ParseFloat(value, 64)
|
||||
case "MinTopUp":
|
||||
setting.MinTopUp, _ = strconv.Atoi(value)
|
||||
case "TopupGroupRatio":
|
||||
|
||||
Reference in New Issue
Block a user