面向不同角色,交付可衡量的结果。
每日资讯由大模型自动汇聚、去重、入库,无需人工编辑;运营只需聚焦社区精选的审核与推荐。
敏感词筛查 + 人工复核 + 下架屏蔽三层闭环,审计日志原文脱敏留存,跨境场景合规有据可依。
接入商户与应用管理两套权限矩阵独立配置,文档、仪表台、角色权限各司其职,互不越权。
同一套代码与数据库,按访问域名判定租户,UGC 与审核数据按站点列隔离,一套系统多品牌运营。
仪表台直接给出资讯总量、社区内容、待复核、线索与账号等关键指标,运营决策有数据支撑。
无重型框架依赖、原生 PHP + PDO,迁移脚本幂等可重复执行,改代码一键部署,长期维护成本低。
下面是这套系统的真实工程实现要点 —— 不是概念,是已经跑在生产上的代码结构。
无框架依赖。单一前控制器 public/index.php 做路由分发,按 ?p= 白名单路由;
租户由访问域名判定,社区子域与主站共用代码与库,数据按 site 列隔离。
// app/render.php —— 按 Host 判定租户
function gp_site() {
$host = strtolower(preg_replace('/:\d+$/', '', $_SERVER['HTTP_HOST'] ?? ''));
return (strpos($host, 'community.gogo198.net') === 0) ? 'community' : 'main';
}
// public/index.php —— 社区官网与门户主站共用入口,按租户渲染不同布局
if ($site === 'community' && in_array($p, ['home','capability','access','dashboard'])) {
echo gp_render_site($p === 'home' ? 'site_home' : $p, $ctx);
}
视图渲染走 gp_render_site():独立布局(深色导航 + 浅色内容),
与门户原有样式完全隔离,互不影响。
核心表 gp_news 同时承载两类内容,用 type 区分,
status 控制审核态,site 做租户隔离:
gp_news
type ENUM('daily','community') -- 每日资讯 / 社区精选
cat VARCHAR(20) -- ecommerce 跨境电商 | token 全球词元
status TINYINT -- 0=待审核 1=已发布
site VARCHAR(20) -- main / community
content TEXT, source, author, likes INT
gp_account -- 接入账号体系
role ENUM('super','merchant','appadmin')
status TINYINT -- 0=待邮箱验证 1=已激活 2=已禁用
verify_token / verify_expires -- 邮箱验证令牌(24h)
用户发布一律先落 status=0,再按后台策略处理;命中词写入审计日志时原文脱敏。
$status = 0; // 社区发布一律先审
$hits = gp_sensitive_scan($title . "\n" . $content);
if ($hits) {
gp_audit_log([... 'original_text' => gp_mask_for_log($text, $hits), ...]);
if ($mode === 'block') { /* 直接拒绝,不入库 */ }
gp_notify_sensitive($hits, $title); // 邮件 + 企微双通道通知
}
三种策略可后台切换:review 转人工复核、mask 掩码后发布、block 直接拒绝。
注册生成 48 位随机令牌,24 小时有效;验证链接由可插拔发信层投递 (配置 SMTP 走真实发信,未配置则落开发日志便于联调)。权限以矩阵声明:
'merchant' => ['doc', 'integration'], // 接入文档 + 接入管理
'appadmin' => ['roles', 'integration'], // 角色权限 + 接入管理
'super' => ['doc','integration','roles','accounts'], // 全部
登录成功调用 session_regenerate_id(true) 防会话固定;
密码统一 password_hash()(bcrypt)。
每日资讯由 cron 驱动的大模型采集任务自动完成,按「日期 + 标题」去重:
0 17 * * * /www/server/php/74/bin/php \
/www/wwwroot/gogo-portal/app/daily_news.php >> /var/log/gogo-daily-news.log 2>&1
部署为单脚本 deploy.sh:打包上传(排除 .git 与数据库配置)
→ 执行幂等迁移 → 回环冒烟校验。静态资源带 ?v= 版本号自动破浏览器缓存。
接入商户拿文档与仪表台,应用管理管角色与接入 —— 邮箱验证后即可登录。