diff --git a/code/app/admin/controller/Site.php b/code/app/admin/controller/Site.php index 53101c1..d7ab80f 100644 --- a/code/app/admin/controller/Site.php +++ b/code/app/admin/controller/Site.php @@ -1270,8 +1270,14 @@ class Site extends BaseController } $strStrategyProfile = $this->normalizeStrategyProfile($arrRowAssoc['strategy_profile'] ?? DomainModel::SEO_STRATEGY_PROFILE_STANDARD); - $strTkdMode = DomainModel::normalizeTkdMode((string)($arrRowAssoc['tkd_mode'] ?? '')); + $strRawTkdMode = trim((string)($arrRowAssoc['tkd_mode'] ?? '')); $strTkdProvider = DomainModel::normalizeTkdProvider((string)($arrRowAssoc['tkd_provider'] ?? DomainModel::TKD_PROVIDER_LOCAL)); + $strTkdMode = $strRawTkdMode !== '' + ? DomainModel::normalizeTkdMode($strRawTkdMode) + : ''; + if ($strTkdMode === '' && $strTkdProvider === DomainModel::TKD_PROVIDER_OPENAI) { + $strTkdMode = DomainModel::TKD_MODE_AI_OPTIMIZE; + } $arrDomain = [ 'd_domain' => $this->normalizeStoredDomain($arrRowAssoc['d_domain'] ?? '', $arrRowAssoc['d_match_type'] ?? DomainModel::MATCH_TYPE_EXACT), 't_id' => $arrRowAssoc['t_id'] ?? 1, diff --git a/code/app/common/helper/DomainBatchImportTemplateHelper.php b/code/app/common/helper/DomainBatchImportTemplateHelper.php index 373105e..239ea5c 100644 --- a/code/app/common/helper/DomainBatchImportTemplateHelper.php +++ b/code/app/common/helper/DomainBatchImportTemplateHelper.php @@ -23,6 +23,8 @@ class DomainBatchImportTemplateHelper 'd_domain' => '域名', 'd_name' => '站点名称', 't_id' => '模板ID', + 'tkd_provider' => 'TKD来源', + 'tkd_mode' => 'TKD模式', 'd_index_title' => '首页标题', 'd_index_keywords' => '首页关键词', 'd_index_description' => '首页描述', @@ -40,8 +42,6 @@ class DomainBatchImportTemplateHelper 'd_content_encode' => '内容编码', 'info_id' => '信息ID', 'd_seo_cfg' => '高级SEO配置JSON', - 'tkd_mode' => 'TKD模式', - 'tkd_provider' => 'TKD来源', ]; } @@ -154,6 +154,8 @@ class DomainBatchImportTemplateHelper 'd_domain', 'd_name', 't_id', + 'tkd_provider', + 'tkd_mode', 'd_index_title', 'd_index_keywords', 'd_index_description', @@ -171,8 +173,6 @@ class DomainBatchImportTemplateHelper 'd_content_encode', 'info_id', 'd_seo_cfg', - 'tkd_mode', - 'tkd_provider', ]; } @@ -199,8 +199,8 @@ class DomainBatchImportTemplateHelper 'd_content_encode' => "内容编码,通常填 0。\n可选值说明:\n- 0:默认编码方式。普通站直接用这个。\n- 其他值:特殊历史兼容场景才会用,运营不要自行改。\n不会判断就填 0。", 'info_id' => "信息 ID,通常填 0。\n可选值说明:\n- 0:默认即可。\n- 其他数字:通常是历史数据联动或特殊资源绑定才会用。\n普通新站不要改。", 'd_seo_cfg' => "高级 SEO 配置 JSON。普通运营通常留空。\n适用场景:\n- 要覆盖默认 SEO 行为\n- 要补结构化数据\n- 要定制 forge / route_group 等技术项\n注意:必须填写合法 JSON,例如 {\"forge\":{\"route_group\":\"film\"}}。\n如果看不懂,就留空。", - 'tkd_mode' => "TKD 模式。一般可留空,由系统自动判断。\n常见可选值说明:\n- 留空:推荐。系统按当前导入内容自动选择。\n- 1:偏向使用导入内容/现成内容。\n- 2:偏向使用系统生成或增强策略。\n不同环境里数字语义可能有历史兼容差异,所以运营不建议手改;只有技术明确要求时再填。", - 'tkd_provider' => "TKD 来源。一般保持 local 或留空。\n可选值说明:\n- local:本地默认来源,最稳,常规就用它。\n- openai:走 AI 生成或 AI 优化链路,只有明确开了这套能力时才填。\n- 其他值:属于技术兼容项,不建议运营手填。\n不确定就留空或填 local。", + 'tkd_mode' => "TKD 模式。一般可留空,由系统自动判断。\n常见可选值说明:\n- 留空:推荐。系统会按上下文自动选择。\n - 如果 TKD来源=openai,则留空会自动按 2 / ai_optimize 处理。\n - 如果首页标题、关键词、描述已经手工填写,则更偏向导入现成内容。\n - 如果都没填且来源不是 openai,则会走默认自动生成策略。\n- 1:偏向使用导入内容/现成内容。\n- 2:偏向使用系统生成或 AI 优化策略。\n- 3:强制按导入内容处理。\n不确定时:local 可留空,openai 也可以直接留空。", + 'tkd_provider' => "TKD 来源。一般保持 local 或按需填 openai。\n可选值说明:\n- local:本地默认来源,最稳,常规就用它。\n- openai:走 AI 生成或 AI 优化链路。若你填 openai 且 TKD模式留空,系统会自动按 2 / ai_optimize 处理。\n- 其他值:属于技术兼容项,不建议运营手填。\n想走 OpenAI 全自动时,推荐:TKD来源=openai,TKD模式留空或直接填 2。", ]; } diff --git a/code/app/common/helper/DomainBootstrapRegisterHelper.php b/code/app/common/helper/DomainBootstrapRegisterHelper.php index 1bb2ce1..e1e9099 100644 --- a/code/app/common/helper/DomainBootstrapRegisterHelper.php +++ b/code/app/common/helper/DomainBootstrapRegisterHelper.php @@ -61,16 +61,19 @@ class DomainBootstrapRegisterHelper $arrSeoCfgInput = []; } + $strTkdProviderInput = trim((string)($arrPayload['tkd_provider'] ?? $arrPayload['seo_tkd_provider'] ?? ($arrSeoCfgInput['tkd']['provider'] ?? DomainModel::TKD_PROVIDER_LOCAL))); + $strTkdProviderNormalized = DomainModel::normalizeTkdProvider($strTkdProviderInput); $strTkdModeInput = trim((string)($arrPayload['tkd_mode'] ?? $arrPayload['seo_tkd_mode'] ?? ($arrSeoCfgInput['tkd']['mode'] ?? ''))); if ($strTkdModeInput === '') { - $strTkdModeInput = $boolHasImportedHomeTkd ? DomainModel::TKD_MODE_FORCE_IMPORT : DomainModel::TKD_MODE_AUTO_GENERATE; + $strTkdModeInput = $strTkdProviderNormalized === DomainModel::TKD_PROVIDER_OPENAI + ? DomainModel::TKD_MODE_AI_OPTIMIZE + : ($boolHasImportedHomeTkd ? DomainModel::TKD_MODE_FORCE_IMPORT : DomainModel::TKD_MODE_AUTO_GENERATE); } - $strTkdProviderInput = trim((string)($arrPayload['tkd_provider'] ?? $arrPayload['seo_tkd_provider'] ?? ($arrSeoCfgInput['tkd']['provider'] ?? DomainModel::TKD_PROVIDER_LOCAL))); $arrSeoCfgInput['tkd'] = array_merge( (array)($arrSeoCfgInput['tkd'] ?? []), [ 'mode' => DomainModel::normalizeTkdMode($strTkdModeInput), - 'provider' => DomainModel::normalizeTkdProvider($strTkdProviderInput), + 'provider' => $strTkdProviderNormalized, ] ); diff --git a/code/public/_admin_templates/domain-import/site-domain-import-template.xlsx b/code/public/_admin_templates/domain-import/site-domain-import-template.xlsx index 06fd0cc..0cd7cae 100644 Binary files a/code/public/_admin_templates/domain-import/site-domain-import-template.xlsx and b/code/public/_admin_templates/domain-import/site-domain-import-template.xlsx differ