-- ---------------------------- -- 协议配置:演示数据 -- -- 目标库 hugray。建表见 hugray_agreement_20261013.sql。 -- 可重复执行:先删本脚本自己的号段(313124100~313124199),再插。 -- 只动 sys_agreement 一张表,不碰任何既有表。 -- -- 【为什么显式指定编号】 -- 编号虽由自增生成,但演示数据要能对上原型那一行(313124142 / 用户协议 / 1.1.2 / 2026-09-22 10:17:52), -- 故这 5 行显式写死在上面的号段内;MySQL 会把自增值推到 max+1,之后页面上真实发布的版本从 313124146 起。 -- -- 【为什么「更新人」是 admin 而不是原型里的「张三」】 -- create_by 存的是发布人的**登录账号**(Controller 里取 SecurityUtils.getUsername()), -- 本库 sys_user 只有 admin 与 ry 两个账号,没有张三——写「张三」等于在库里造一个查不到的发布人。 -- -- 【用户协议为什么有两行】 -- 追加式版本模型下,同类型的多行正是「当前版本 + 历史版本」的展示样本: -- 313124142(1.1.2) 是当前版本,313124141(1.1.1) 因编号更小而落为历史版本。 -- ---------------------------- USE `hugray`; -- ---------- 1. 清掉本脚本自己的号段(保证可重跑) ---------- DELETE FROM `sys_agreement` WHERE `agreement_id` BETWEEN 313124100 AND 313124199; -- ---------- 2. 插入演示协议 ---------- INSERT INTO `sys_agreement` (`agreement_id`, `agreement_type`, `version`, `content`, `create_by`, `create_time`, `remark`) VALUES (313124141, '1', '1.1.1', '
欢迎使用 Hugray 平台。本协议是您与平台之间就注册、登录及使用平台服务所订立的契约。
一、协议的范围
本协议适用于平台提供的各项产品与服务,包括但不限于商品浏览、下单、履约与售后。
二、账号与安全
您应妥善保管账号与密码,因保管不善造成的损失由您自行承担。
', 'admin', '2026-09-18 09:32:10', '首个正式版本'), (313124142, '1', '1.1.2', '欢迎使用 Hugray 平台。本协议是您与平台之间就注册、登录及使用平台服务所订立的契约。
一、协议的范围
本协议适用于平台提供的各项产品与服务,包括但不限于商品浏览、下单、履约与售后。
二、账号与安全
您应妥善保管账号与密码,因保管不善造成的损失由您自行承担。
三、协议的变更
平台有权根据业务需要修订本协议,修订后的协议将在本页面公布,自公布之日起生效。若您继续使用平台服务,即视为接受修订后的协议。
', 'admin', '2026-09-22 10:17:52', '补充协议变更条款'), (313124143, '2', '1.0.1', '我们重视您的个人信息保护,本说明用于告知我们收集、使用、存储与共享您个人信息的方式。
一、我们收集的信息
为完成实名认证与交易履约,我们可能收集您的姓名、证件号码、手机号码与收货地址。
二、信息的使用
您的信息仅用于平台服务所必需的范围,不会用于与服务无关的目的。
', 'admin', '2026-09-22 10:21:03', NULL), (313124144, '3', '2.0.0', '本协议适用于服务商向平台供货的全部行为。
一、供货资格
服务商应保证其所供商品来源合法、质量合格,并能提供相应的资质证明。
二、结算与对账
平台按约定的结算周期与结算方式向服务商结算货款,具体以双方对账单为准。
', 'admin', '2026-09-25 14:05:41', NULL), (313124145, '4', '1.0.0', '本协议适用于您在平台下单购买商品的全部行为。
一、订单的成立
您提交订单后,平台与供货方确认库存并完成扣减,订单即成立。
二、交付与验收
商品交付时间以订单页面展示的预计送达时间为准,签收前请当面核验。
', 'admin', '2026-09-28 16:48:20', NULL); -- ---------- 3. 结果核对 ---------- -- 每个类型的行数与当前版本(当前版本 = 该类型编号最大的那一行,与列表页「状态=当前版本」同一口径) SELECT a.`agreement_type`, COUNT(1) AS `版本数`, MAX(CASE WHEN a.`agreement_id` = t.`max_id` THEN a.`version` END) AS `当前版本`, MAX(CASE WHEN a.`agreement_id` = t.`max_id` THEN a.`create_time` END) AS `发布时间`, MAX(CASE WHEN a.`agreement_id` = t.`max_id` THEN a.`create_by` END) AS `发布人` FROM `sys_agreement` a JOIN (SELECT `agreement_type`, MAX(`agreement_id`) AS `max_id` FROM `sys_agreement` GROUP BY `agreement_type`) t ON t.`agreement_type` = a.`agreement_type` GROUP BY a.`agreement_type` ORDER BY a.`agreement_type`; -- 逐行看(编号 / 类型 / 版本号 / 是否当前版本 / 更新时间 / 更新人),核对与列表页列一致 SELECT `agreement_id` AS `编号`, `agreement_type` AS `类型`, `version` AS `版本号`, IF(`agreement_id` = (SELECT MAX(x.`agreement_id`) FROM `sys_agreement` x WHERE x.`agreement_type` = o.`agreement_type`), '当前版本', '历史版本') AS `状态`, `create_time` AS `更新时间`, `create_by` AS `更新人` FROM `sys_agreement` o ORDER BY `agreement_id` DESC; SELECT COUNT(1) AS `总条数`, MIN(`agreement_id`) AS `最小编号`, MAX(`agreement_id`) AS `最大编号` FROM `sys_agreement`;