no message
This commit is contained in:
@@ -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` 目录的变更,解决包含更多已有目录后触发的部署失败。
|
||||
|
||||
涉及模块:
|
||||
|
||||
Reference in New Issue
Block a user