|
|
@@ -1,63 +0,0 @@
|
|
|
-# 运行时配置
|
|
|
-
|
|
|
-支付、邮件、聚合登录和代理转发配置存放在数据库 `runtime_configs` 表中。服务不会自动建表,也不会从 `config.json` 导入;请先手动执行 SQL。运行时读取 Redis 缓存,缓存未命中才查 MySQL;后台保存或切换方案会主动删除缓存,因此修改可即时生效。
|
|
|
-
|
|
|
-```sql
|
|
|
-CREATE TABLE runtime_configs (
|
|
|
- config_key VARCHAR(64) NOT NULL,
|
|
|
- config_name VARCHAR(64) NOT NULL,
|
|
|
- config_value JSON NOT NULL,
|
|
|
- enabled TINYINT(1) NOT NULL DEFAULT 1,
|
|
|
- is_default TINYINT(1) NOT NULL DEFAULT 0,
|
|
|
- updated_at BIGINT NOT NULL,
|
|
|
- updated_by VARCHAR(64) NULL,
|
|
|
- PRIMARY KEY (config_key, config_name),
|
|
|
- KEY idx_runtime_configs_active (config_key, enabled, is_default, updated_at)
|
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
-```
|
|
|
-
|
|
|
-管理接口:
|
|
|
-
|
|
|
-- `GET /Admin/System/RuntimeConfig`: 获取全部配置方案。
|
|
|
-- `PUT /Admin/System/RuntimeConfig`: 新增或更新一个方案。
|
|
|
-- `PUT /Admin/System/RuntimeConfig/Select`: 切换当前方案。
|
|
|
-
|
|
|
-配置类型:
|
|
|
-
|
|
|
-- `pay`: 易支付配置,包含 `url`、`pid`、`key`、`return_url`、`uni_return_url`、`methods`。
|
|
|
-- `email`: SMTP 账号数组,按 `priority` 从小到大尝试发送。
|
|
|
-- `unilogin`: 聚合登录配置,包含 `url`、`appid`、`appkey` 等。
|
|
|
-- `proxyForwardServer`: 代理转发配置,包含 `enabled`、`url`、`timeout`。
|
|
|
-
|
|
|
-示例初始化语句:
|
|
|
-
|
|
|
-```sql
|
|
|
-INSERT INTO runtime_configs
|
|
|
-(config_key, config_name, config_value, enabled, is_default, updated_at, updated_by)
|
|
|
-VALUES
|
|
|
-('pay', 'default', JSON_OBJECT(
|
|
|
- 'url', 'https://pay.example.com',
|
|
|
- 'pid', '1000',
|
|
|
- 'key', 'CHANGE_ME',
|
|
|
- 'return_url', 'https://your-site.example/#/store/orderDetail/',
|
|
|
- 'uni_return_url', 'https://m.your-site.example/#/pages/order/order-detail?id=',
|
|
|
- 'methods', JSON_ARRAY(
|
|
|
- JSON_OBJECT('type', 'alipay', 'name', '支付宝'),
|
|
|
- JSON_OBJECT('type', 'wxpay', 'name', '微信支付')
|
|
|
- )
|
|
|
-), 1, 1, UNIX_TIMESTAMP(NOW(3)) * 1000, 'init');
|
|
|
-
|
|
|
-INSERT INTO runtime_configs
|
|
|
-(config_key, config_name, config_value, enabled, is_default, updated_at, updated_by)
|
|
|
-VALUES
|
|
|
-('email', 'default', JSON_ARRAY(
|
|
|
- JSON_OBJECT(
|
|
|
- 'host', 'smtp.example.com',
|
|
|
- 'port', 465,
|
|
|
- 'user', 'service@example.com',
|
|
|
- 'password', 'CHANGE_ME',
|
|
|
- 'from', 'RunForge <service@example.com>',
|
|
|
- 'priority', 0
|
|
|
- )
|
|
|
-), 1, 1, UNIX_TIMESTAMP(NOW(3)) * 1000, 'init');
|
|
|
-```
|