no message

This commit is contained in:
hajimi
2026-06-12 22:23:47 +08:00
parent 8dacaea803
commit 7381097582
4 changed files with 338 additions and 62 deletions
+76
View File
@@ -13,6 +13,81 @@
## 一、已完成事项
### 68. 默认部署切换为根目录同时上传 server、uniapp 与 admin
- 状态:已完成 - 时间:2026-06-12
完成内容:
- `scripts/deploy-server.ps1` 默认 `SourceDir` 改为仓库根目录 `.`,不再先发 `server` 再补发前端目录,而是直接以根目录为源打一个包。
- 根目录默认只包含 `server/``uniapp/``admin/` 三个子目录,因此远端 `RemoteDir` 下会直接形成三套源码目录,方便后续按 `server/public``uniapp``admin` 分别配置 Nginx 和构建流程。
- 根目录模式下,排除规则已同步切到子目录路径:会继续默认排除 `server/.env``server/vendor``server/runtime``server/public/uploads``server/public/admin``server/public/mobile`、crawler 大文件目录,以及 `uniapp/node_modules``uniapp/dist``admin/node_modules``admin/dist`
- 默认增量发布也切到根目录范围,`-AutoIncremental` / `-AutoIncrementalCommits` / `-From` / `-To` 会同时跟踪 `server``uniapp``admin` 的 Git 变更和删除文件。
- 若根仓库里某个默认目录仍是 gitlink/submodule 记录,脚本会把该目录从当前工作区按源码目录补进增量包,避免 `admin` 这类目录在转换期间漏传。
- `README.md` 已同步更新根目录发布、远端目录结构以及在远端根目录内执行 `cd uniapp && npm install && npm run build:h5` 的示例。
涉及模块:
- `scripts/deploy-server.ps1`
- `README.md`
验证记录:
- 已在临时最小 Git 仓库执行默认 `powershell -ExecutionPolicy Bypass -File .\scripts\deploy-server.ps1 -DryRun -RemoteDir /tmp/test`,修改前日志只出现 `server` 打包,确认红灯。
- 修改后已在临时最小 Git 仓库执行默认 `powershell -ExecutionPolicy Bypass -File .\scripts\deploy-server.ps1 -DryRun -AutoIncremental -AutoIncrementalCommits 3 -RemoteDir /tmp/test`,日志已同时出现 `server/app/ok.txt``uniapp/src/App.vue``admin/src/main.ts` 的增量变更,确认根目录模式能同时覆盖三套源码。
- 已补跑 `powershell -ExecutionPolicy Bypass -File .\scripts\deploy-server.ps1 -SourceDir server -DryRun -RemoteDir /tmp/test`,确认显式单独发布 `server` 的老用法仍可继续使用。
- 已在真实仓库执行 `powershell -ExecutionPolicy Bypass -File .\scripts\deploy-server.ps1 -DryRun -AutoIncremental -AutoIncrementalCommits 3 -RemoteDir /www/wwwroot/test-server.sbnews.net`,日志出现 `root gitlink include paths will be copied from working tree: admin``+ admin/`,确认 `admin` 仍是 gitlink 记录时也会被补进增量包。
- 已在真实仓库执行默认全量 DryRun,日志显示 `working tree include paths: server uniapp admin`,确认全量包也会同时包含三套源码。
### 67. 部署脚本支持发布 uniapp 源码到服务器
- 状态:已完成 - 时间:2026-06-12
完成内容:
- `scripts/deploy-server.ps1` 现在支持 `-SourceDir uniapp`,可将 `uniapp` 源码按独立目录发布到服务器,不再只支持 `server` 后端目录。
- `uniapp` 全量打包默认改为包含整个源码目录,并排除 `node_modules``dist``.hbuilderx` 等不应上传的本地构建/IDE 目录;增量发布也可正确识别 `uniapp` 目录下的 Git 变更与删除文件。
- 部署脚本新增 `-UniappReleasePath`,会在远端执行 `-PostInstall` 时通过环境变量 `UNIAPP_RELEASE_PATH` 传给 `uniapp/scripts/release.mjs`,让服务器构建 `npm run build:h5` 后可把 H5 产物直接写入指定站点的 `public/mobile`
- `uniapp/scripts/release.mjs` 新增 `UNIAPP_RELEASE_PATH` 覆盖能力,本地构建仍默认输出到 `../server/public/mobile`,服务端构建时则可改写到测试站真实目录。
- `README.md` 已补充“发布 uniapp 源码到服务器并在服务器构建”的标准命令示例与 Node.js 版本要求。
涉及模块:
- `scripts/deploy-server.ps1`
- `uniapp/scripts/release.mjs`
- `README.md`
验证记录:
- 已先执行 `powershell -ExecutionPolicy Bypass -File .\scripts\deploy-server.ps1 -SourceDir uniapp -RemoteDir /tmp/sport-era-uniapp -DryRun`,修改前失败,确认原脚本不支持 `uniapp` 目录打包。
- 修改后已执行 `powershell -ExecutionPolicy Bypass -File .\scripts\deploy-server.ps1 -SourceDir uniapp -RemoteDir /tmp/sport-era-uniapp -DryRun`,全量打包演练通过。
- 已执行 `git diff --check -- scripts/deploy-server.ps1 uniapp/scripts/release.mjs README.md 业务进度管理.md`,未发现空白错误。
- 已通过 SSH 检查测试服当前缺少 `node` / `npm`,因此本次仅验证到“源码可发布 + 远端构建命令已就绪”,尚未在测试服实际执行 `npm install` / `npm run build:h5`
### 66. 管理端评论账号列表与统一评论列表
- 状态:已完成 - 时间:2026-06-12
完成内容:
- 管理端新增“评论账号”后台契约与页面,后端 `community.commentAccount/lists` 仅筛选 `ai_comment_*` 虚拟评论账号,返回账号、昵称、人设标签、禁用状态、资讯评论数、社区评论数和总评论数。
- 现有“社区评论管理”升级为统一评论列表,不再只看社区帖子评论;现在同一页面可同时查看资讯评论与社区评论,并按评论类型、虚拟/真实评论、状态、目标 ID、关键词筛选。
- 统一评论列表后端通过合并 `la_article_comment``la_community_comment` 输出统一字段:`comment_type``source_type_desc``target_id``target_title``target_summary``target_owner_nickname``account``is_virtual``user_type_desc``status` 等。
- 评论审核与删除逻辑已扩展到两类评论:资讯评论操作 `la_article_comment.is_show``la_article.comment_count`,社区评论操作 `la_community_comment.status``la_community_post.comment_count`
- 新增菜单 SQL `docs/sql/insert_menu_comment_account.sql`,用于把“评论账号”挂到现有“社区管理”菜单下;统一评论列表继续复用原有 `community.communityComment/lists` 菜单入口。
涉及模块:
- `server/app/adminapi/controller/community/CommunityCommentController.php`
- `server/app/adminapi/lists/community/CommunityCommentLists.php`
- `server/app/adminapi/logic/community/CommunityCommentLogic.php`
- `server/app/adminapi/validate/community/CommunityCommentValidate.php`
- `server/app/adminapi/controller/community/CommentAccountController.php`
- `server/app/adminapi/lists/community/CommentAccountLists.php`
- `admin/src/api/community.ts`
- `admin/src/views/community/comment/index.vue`
- `admin/src/views/community/account/index.vue`
- `docs/sql/insert_menu_comment_account.sql`
- `qa/backend/test_comment_admin_static.php`
验证记录:
- 已先执行 `php qa/backend/test_comment_admin_static.php`,新增文件前失败,提示缺少 `admin/src/views/community/account/index.vue`
- 修改后已执行 `php qa/backend/test_comment_admin_static.php`,静态检查通过。
- 已执行 `php -l` 检查 `CommunityCommentController.php``CommunityCommentLogic.php``CommunityCommentLists.php``CommunityCommentValidate.php``CommentAccountController.php``CommentAccountLists.php`,语法检查通过。
- 已在 `admin` 目录执行 `npm run build`,构建通过并刷新 `server/public/admin` 产物。
### 65. Docker AI评论调度接入帖子与资讯
- 状态:已完成 - 时间:2026-06-12
@@ -613,6 +688,7 @@
- 排查 `scripts/deploy-server.ps1` 全量部署测试服时报 `tar: Cannot change mode ... Operation not permitted`,确认 SSH 用户 `ubuntu` 仅通过 `www` 组拥有目标目录写权限,并不是目录 owner,GNU tar 覆盖解包目录项时会尝试 `chmod` 已有目录导致失败。
- 远端安装 payload 改为优先使用 `rsync -r --links --no-perms --no-owner --no-group`,不保留 owner/group/perms;远端无 rsync 时回退为 `find + mkdir/cp/ln` 逐文件复制,避免对已有目录执行 chmod。
- 修复通过 `ssh bash -s` 下发远端 Bash 文本时可能写入 UTF-8 BOM 的问题,改为用 `UTF8 No BOM` 字节流写入 stdin,避免 `set -euo pipefail` 失效导致部署“假成功”。
- 2026-06-12 再次排查测试服增量部署时报 `invalid option namepefail`,根因是远端 Bash 脚本 stdin 保留了 Windows `CRLF`,导致 `set -euo pipefail` 被识别成 `pipefail\r` 非法选项;现已在写入 stdin 前统一转换为 `LF`
- 保留当前全量部署包含整个 `public` 目录的变更,解决包含更多已有目录后触发的部署失败。
涉及模块: