c64badfc23
新增用户管理“活跃状态”高级筛选,并在后端支持 activity_status 复合规则,支持按活跃与非活跃筛选用户。 补齐订单支付成功快照落库与后台展示,保存支付渠道、 支付方法、实付金额和支付 IP,并在订单详情中优先展示。 同时增强节点页在线/离线筛选与批量删除、仪表盘快捷入口, 并修复已关闭工单再次回复后自动重开的统一语义。 附带同步测试、迁移、CI 工作流命名及知识库记录
5.3 KiB
5.3 KiB
项目上下文
基本信息
- 项目: Xboard-new
- 当前工作目录:
E:\code\php\Xboard-new - 主要栈: Laravel(PHP) + Vue3/TypeScript/Vite/Element Plus (
admin-frontend)
技术上下文
- 管理端前端位于
admin-frontend/ admin-frontend现支持通过ADMIN_BUILD_OUT_DIR覆写构建输出目录:仓内默认仍写到../public/assets/admin,容器构建可切到独立dist- 前端容器化运行采用
admin-frontend/Dockerfile(Node 20 + Caddy多阶段构建),静态站点入口重定向到/assets/admin/ - 前端容器会通过
XBOARD_BACKEND_UPSTREAM把/api反向代理到后端web服务;compose 分支当前默认值为http://web:7001 - GHCR 前端镜像发布工作流位于
.github/workflows/admin-frontend-docker-publish.yml,镜像名为ghcr.io/<owner>/xboard-admin-frontend - 管理端 API 通过
window.settings.secure_path或VITE_ADMIN_PATH解析/api/v2/{secure_path}前缀 - 登录接口复用
/api/v2/passport/auth/login - 工单回复链路当前以
TicketService::reply()为统一真相源:管理员或用户再次回复已关闭工单时都会自动把工单状态改回开启,同时继续维护reply_status与last_reply_user_id - 管理端仪表盘现已接入:
stat/getStatsstat/getOrderstat/getTrafficRanksystem/getSystemStatussystem/getQueueStats
- 管理端用户管理现已接入:
user/fetchuser/generateuser/updateuser/dumpCSVuser/sendMailuser/banuser/resetSecretuser/destroyplan/fetchtraffic-reset/reset-user
- 管理端节点管理现已接入:
server/manage/getNodesserver/manage/saveserver/manage/sortserver/manage/batchUpdateserver/group/fetchserver/group/saveserver/group/dropserver/route/fetchserver/route/saveserver/route/dropserver/manage/updateserver/manage/copyserver/manage/drop
- 管理端套餐管理现已接入:
plan/fetchplan/saveplan/updateplan/dropplan/sortserver/group/fetch
- 管理端订单管理现已接入:
order/fetchorder/detailorder/assignorder/paidorder/cancelorder/update
- 管理端礼品卡管理现已接入:
gift-card/templatesgift-card/create-templategift-card/update-templategift-card/delete-templategift-card/generate-codesgift-card/codesgift-card/toggle-codegift-card/export-codesgift-card/update-codegift-card/delete-codegift-card/usagesgift-card/statisticsgift-card/types
- 管理端公告管理现已接入:
notice/fetchnotice/savenotice/shownotice/dropnotice/sort
- 管理端支付配置现已接入:
payment/fetchpayment/getPaymentMethodspayment/getPaymentFormpayment/savepayment/showpayment/droppayment/sort
- 订单支付成功后会额外快照保存
payment_channel / payment_method / payment_amount / payment_ip,管理端订单详情优先展示真实支付成功信息,再回退当前支付配置 - 客户端订阅导出入口位于
app/Http/Controllers/V1/Client/ClientController.php,会根据flag/User-Agent匹配app/Protocols/*导出器 Stash订阅导出位于app/Protocols/Stash.php,当前对AnyTLS采用保守兼容:仅客户端版本>= 3.3.0时导出- 用户主题源代码当前不在仓内,仅保留
theme/Xboard/assets/umi.js编译产物;涉及用户侧工单交互时,优先通过后端语义修复保证前后台一致
项目概述
- 主仓仍以 Laravel 为后端真相源
admin-frontend负责独立管理后台 UI 与交互逻辑admin-frontend现在同时支持两种交付路径:仓内构建产物写回public/assets/admin,或独立构建为 GHCR 静态镜像供 compose 分支部署- 订阅协议导出由 Laravel 主仓内的
app/Protocols/*提供,客户端兼容问题需以对应导出器实现为准 public/assets/admin为构建产物输出位置
开发约定
- 管理端路由使用 Hash 模式
- 管理端当前业务路由包含
/dashboard、/users、/tickets、/nodes、/node-groups、/node-routes、/subscriptions/plans、/subscriptions/orders、/subscriptions/coupons、/subscriptions/gift-cards、/system/config、/system/notices、/system/payments、/system/plugins、/system/themes与/system/knowledge #/nodes当前已升级为真实节点工作台:支持搜索、在线 / 离线筛选、父/子节点筛选、分页浏览、显隐切换、复制、单节点置顶、仅对已勾选节点生效的批量修改 / 批量删除,以及 11 种协议的新增 / 编辑弹窗和排序对话框- Bearer Token 存储于
sessionStorage/localStorage admin-frontend的视觉方向当前以 Apple 风格为基线,优先纯色分区、系统字体栈和低装饰成本
当前约束
- 本地静态 preview 环境默认缺少 Laravel 注入的
window.settings与真实管理 API,受保护页面只能验证结构与跳转,不能替代完整联调 - 当前主工作树存在多组未提交业务改动;
compose分支变更需在独立 worktree 中处理,避免污染master - 后端接口契约以仓库内 Controller/Route 为准,不在前端推断字段