-- ---------------------------- -- 平台设置:平台级参数(单行配置) -- -- 目标库 hugray(**系统库**)——与协议配置同一个判断:平台参数全平台只有一份, -- 与具体会员无关,属系统级配置,故落系统库、后端放 ruoyi-system(菜单 2220 已在系统管理下)。 -- 表是新建,用 CREATE TABLE IF NOT EXISTS,脚本可重复执行。 -- -- 【单行表:一行承载全部平台级参数】 -- 全表只维护一行(setting_id = 1):读走 order by setting_id asc limit 1, -- 写走 insert ... on duplicate key update setting_id = 1。由此: -- - 没有历史行、没有 status/del_flag —— 「改」就是覆盖,用户已确认不保留修改历史; -- - **不插种子行**:没保存过之前 GET 返回 null,页面渲染成空表单(与原型的空白状态一致), -- 第一次保存时由 upsert 建行;行被误删也会在下一次保存时自动重建。 -- -- 【为什么不用原生 sys_config(键值表)】 -- sys_config 是 config_value varchar(500) 的键值表,**原生对数字零约束**——数字校验照样得自己写, -- 一点没省;6 个字段要拆成 6 行,前后端各维护一份 key→字段 映射; -- 且它会出现在原生「参数设置」页里,等于给「未支付订单取消时间」这类业务关键时限 -- 开出第二条无约束的编辑路径。故新建本表:字段带类型、带注释、可校验。 -- -- 【数值列用 bigint 而非 int】口径是「非负整数、不限上限」, -- int 遇到超大输入会在写库时抛 500,bigint 让校验口径与存储能力一致。 -- 4 个数值列都可空:NULL 表示「未设置」,与用户明确填的 0 区分开(0 是有意义的值)。 -- -- 【谁消费这些时限】**目前没有消费方**:订单/交易服务还不存在(ruoyi-modules 里没有 trade/order 模块, -- 前端 trade/* 全是占位页,hugray-order 库存在但零张表)。将来由交易服务经 ruoyi-system 的接口读取, -- 不要把参数复制进订单库。 -- ---------------------------- USE `hugray`; -- ---------- 1. sys_platform_setting:平台设置(单行) ---------- CREATE TABLE IF NOT EXISTS `sys_platform_setting` ( `setting_id` bigint NOT NULL COMMENT '主键,固定为 1(全表只保留一行)', `city_hotline` varchar(64) DEFAULT NULL COMMENT '城市招商热线(纯文本,不校验格式)', `partner_recruit` varchar(255) DEFAULT NULL COMMENT '合伙人招募(纯文本,可能填电话/微信号/一段话)', `unpaid_cancel_minutes` bigint DEFAULT NULL COMMENT '未支付订单取消时间(分钟)', `auto_receive_days` bigint DEFAULT NULL COMMENT '发货后自动确认收货时间(天)', `aftersale_days` bigint DEFAULT NULL COMMENT '收货后售后时间(天)', `delivery_cycle_days` bigint DEFAULT NULL COMMENT '平台发货周期(天)', `create_by` varchar(64) DEFAULT '' COMMENT '创建人(首次保存的人)', `create_time` datetime DEFAULT NULL COMMENT '创建时间(首次保存的时间,后续保存不覆盖)', `update_by` varchar(64) DEFAULT '' COMMENT '最后修改人', `update_time` datetime DEFAULT NULL COMMENT '最后修改时间', `remark` varchar(255) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`setting_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='平台设置(单行配置:一行承载全部平台级参数,无历史版本)'; -- ---------- 2. 结果核对 ---------- SELECT `table_name`, `engine`, `table_comment` FROM `information_schema`.`tables` WHERE `table_schema` = 'hugray' AND `table_name` = 'sys_platform_setting'; SELECT `column_name`, `column_type`, `is_nullable`, `column_key`, `column_default`, `column_comment` FROM `information_schema`.`columns` WHERE `table_schema` = 'hugray' AND `table_name` = 'sys_platform_setting' ORDER BY `ordinal_position`; SELECT `index_name`, `seq_in_index`, `column_name`, `non_unique` FROM `information_schema`.`statistics` WHERE `table_schema` = 'hugray' AND `table_name` = 'sys_platform_setting' ORDER BY `index_name`, `seq_in_index`; -- 应当为 0:本脚本刻意不插种子行,第一次保存时才由 upsert 建行 SELECT COUNT(1) AS `应有0行` FROM `sys_platform_setting`;