From 09a83000647a07bbcf1b51a239d469526899ec87 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com>
Date: Thu, 13 Aug 2026 18:19:32 +0800
Subject: [PATCH] =?UTF-8?q?feat(cms):=20=E5=A2=9E=E5=8A=A0=E5=85=8B?=
=?UTF-8?q?=E9=9A=86=E6=9D=A5=E6=BA=90=E7=A7=9F=E6=88=B7UID=E5=AD=97?=
=?UTF-8?q?=E6=AE=B5=E4=B8=8E=E9=80=BB=E8=BE=91=E6=94=AF=E6=8C=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- CmsWebsite实体新增cloneTenantId字段,作为克隆来源租户UID记录
- 修改version字段描述,增加体验版版本说明
- CmsWebsiteMapper新增cloneTenantId的XML映射支持
- CmsWebsiteServiceImpl改用cloneTenantId作为内容克隆依据,区分templateId用途
- 添加幂等SQL脚本,动态添加clone_tenant_id列以兼容不同MySQL版本
- 保证cloneTenantId记录建站时sys_user.template_id,便于后端按模板分类和内容复制
---
.../com/gxwebsoft/cms/entity/CmsWebsite.java | 5 ++++-
.../cms/mapper/xml/CmsWebsiteMapper.xml | 3 +++
.../service/impl/CmsWebsiteServiceImpl.java | 7 ++++--
.../cms/sql/cms_website_clone_tenant_id.sql | 22 +++++++++++++++++++
4 files changed, 34 insertions(+), 3 deletions(-)
create mode 100644 src/main/java/com/gxwebsoft/cms/sql/cms_website_clone_tenant_id.sql
diff --git a/src/main/java/com/gxwebsoft/cms/entity/CmsWebsite.java b/src/main/java/com/gxwebsoft/cms/entity/CmsWebsite.java
index a2c87d3..6dc75da 100644
--- a/src/main/java/com/gxwebsoft/cms/entity/CmsWebsite.java
+++ b/src/main/java/com/gxwebsoft/cms/entity/CmsWebsite.java
@@ -89,7 +89,7 @@ public class CmsWebsite implements Serializable {
@Schema(description = "自定义API接口")
private String apiUrl;
- @Schema(description = "应用版本 10免费版 20授权版 30永久授权")
+ @Schema(description = "应用版本 0体验版 10基础版 20授权版 30永久授权")
private Integer version;
@Schema(description = "服务到期时间")
@@ -117,6 +117,9 @@ public class CmsWebsite implements Serializable {
@TableField(exist = false)
private String templateName;
+ @Schema(description = "克隆来源租户UID(建站时据此复制参考租户内容;值为 sys_user.template_id,后端据此按模板分类)")
+ private Integer cloneTenantId;
+
@Schema(description = "是否初始化示例数据(仅 create 入参使用,不落库;true=生成标准示例栏目与内容,false=空白骨架,null=沿用模板克隆历史行为)")
@TableField(exist = false)
private Boolean initDemoData;
diff --git a/src/main/java/com/gxwebsoft/cms/mapper/xml/CmsWebsiteMapper.xml b/src/main/java/com/gxwebsoft/cms/mapper/xml/CmsWebsiteMapper.xml
index dc0b200..e67d2e6 100644
--- a/src/main/java/com/gxwebsoft/cms/mapper/xml/CmsWebsiteMapper.xml
+++ b/src/main/java/com/gxwebsoft/cms/mapper/xml/CmsWebsiteMapper.xml
@@ -210,6 +210,9 @@
template_id = #{param.templateId},
+
+ clone_tenant_id = #{param.cloneTenantId},
+
company_id = #{param.companyId},
diff --git a/src/main/java/com/gxwebsoft/cms/service/impl/CmsWebsiteServiceImpl.java b/src/main/java/com/gxwebsoft/cms/service/impl/CmsWebsiteServiceImpl.java
index c9e398f..3d33ff0 100644
--- a/src/main/java/com/gxwebsoft/cms/service/impl/CmsWebsiteServiceImpl.java
+++ b/src/main/java/com/gxwebsoft/cms/service/impl/CmsWebsiteServiceImpl.java
@@ -199,7 +199,9 @@ public class CmsWebsiteServiceImpl extends ServiceImpl 0) {
diff --git a/src/main/java/com/gxwebsoft/cms/sql/cms_website_clone_tenant_id.sql b/src/main/java/com/gxwebsoft/cms/sql/cms_website_clone_tenant_id.sql
new file mode 100644
index 0000000..18c34dc
--- /dev/null
+++ b/src/main/java/com/gxwebsoft/cms/sql/cms_website_clone_tenant_id.sql
@@ -0,0 +1,22 @@
+-- cms_website 补 clone_tenant_id 列(幂等版,兼容 MySQL 5.7 / 8.0)
+-- 该列用于记录"克隆来源租户UID(=sys_user.template_id)",建站时写入,
+-- 供后端按模板分类站点,并作为内容克隆来源。
+-- 注:生产 modules.cms_website 通常已存在该列(websopy 建站写入),
+-- 本脚本仅作为安全网,缺列才补,可重复执行。
+-- 通过存储过程判断存在性,已存在则跳过;
+-- 需在支持 DELIMITER 的客户端执行(mysql CLI、Navicat、MySQL Workbench 等)。
+
+DELIMITER $$
+
+DROP PROCEDURE IF EXISTS `add_cms_website_clone_tenant_id`$$
+CREATE PROCEDURE `add_cms_website_clone_tenant_id`()
+BEGIN
+ IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='modules' AND TABLE_NAME='cms_website' AND COLUMN_NAME='clone_tenant_id') THEN
+ ALTER TABLE `cms_website` ADD COLUMN `clone_tenant_id` INT NULL COMMENT '克隆来源租户UID(=sys_user.template_id,建站时写入,供后端按模板分类)' AFTER `template_id`;
+ END IF;
+END$$
+
+DELIMITER ;
+
+CALL `add_cms_website_clone_tenant_id`();
+DROP PROCEDURE IF EXISTS `add_cms_website_clone_tenant_id`;