155 Commits

Author SHA1 Message Date
admin 64569e305e fix: 修复授权详情API返回格式,重构授权管理页面表格和批量操作 2026-05-07 02:31:15 +08:00
admin 7a3353ee96 feat: 添加查看授权和编辑授权功能, 代理充值使用 NumberField 组件 2026-05-07 01:34:05 +08:00
admin a2eccb9818 feat: 添加代理充值功能到代理管理页面, 移除授权管理页面的无效操作 2026-05-07 01:13:09 +08:00
admin e7e7631fa5 feat: 授权管理改为设置卡类价格,代理管理增加消费列 2026-05-07 00:28:52 +08:00
admin 3cd22fdce1 feat: 重构授权管理为层级模型 - 管理员直接对代理授权应用卡密权限 2026-05-06 22:16:31 +08:00
admin 086c5c6573 perf: 性能优化与错误修复
- 修复 N+1 查询: users/devices/agents 批量 GROUP BY 替代循环查询
- 添加分页: cards/finance/agents/devices API
- Redis 初始化根据安装配置 redis.enabled 决定是否连接
- 修复 DefaultVal 解析错误: 使用 sql.NullString 处理 NULL 值
- Dashboard 优化: 替换 ECharts 世界地图为 Chart.js 环形饼图
- 适配前端 cards 页面新 API 响应格式
- 添加数据库索引优化查询性能
- 实现可配置的数据清理定时任务
2026-05-06 19:19:02 +08:00
admin 98986b0eb7 fix: 修复数据库配置和事务一致性问题
数据库配置:
- SQLite 开启 WAL 模式,读写可并发
- 设置 busy_timeout=5000ms 避免锁超时
- 设置 synchronous=NORMAL 平衡性能和安全
- SQLite MaxOpenConns 设为 1 避免并发写入冲突

事务修复:
- auth.go: 注册流程(用户+设备+会话)加入事务
- auth.go: 密码重置(修改密码+标记验证码)加入事务
- cards.go: 卡密使用加入事务,补充 UsedAt 字段
- cards.go: 代理商批量生成(扣款+生成卡密)加入事务
- extension.go: 充值(修改余额+记录)加入事务
- extension.go: 扣费(修改余额+记录)加入事务
- storage_config.go: 设置默认存储加入事务
2026-05-06 08:12:04 +08:00
admin 4841920727 perf: 修复 cards.go 和 users.go 中的 N+1 查询问题
cards.go:
- 合并循环中的 Count 查询为单次 GROUP BY 查询

users.go:
- 合并 ownApps 循环查询为单次 IN 查询
- 合并 agentApps 循环查询为批量查询
- 减少数据库查询次数从 O(n) 到 O(1)
2026-05-06 08:02:03 +08:00
admin 488b1581e9 perf: 优化dashboard API,41次查询12次
- 合并30次循环查询为1次(onlineTrend)
- 使用 GROUP BY DATE() 一次获取所有日期数据
- 在内存中填充缺失日期,避免 N+1 问题
- API 响应时间预计从 1-2s 降至 100-200ms
2026-05-06 07:55:36 +08:00
admin 92813fde49 fix: 修复Alpine上MIME类型检测失败
- fallbackMimeTypes 硬编码映射优先,不依赖系统 mime.types
- Docker 镜像安装 mailcap 包提供 /etc/mime.types
- 移除不可靠的 mime.AddExtensionType 方案
2026-05-05 19:58:56 +08:00
admin 6c99256e71 fix: 修复gzip中间件ERR_INCOMPLETE_CHUNKED_ENCODING
- 首次Write时删除Content-Length头(压缩后大小不同)
- 非压缩类型直接透传,不经过gzip writer
- 移除有问题的noopWriter方案
2026-05-05 14:58:47 +08:00
admin d584b578f1 perf: 优化前端加载速度
- 改用 mime 标准库替代硬编码 MIME 类型(更优雅)
- 全局 gzip 中间件替代手动压缩(覆盖所有响应)
- ECharts 改为动态 import,首屏不再加载 1.1MB
- manualChunks 拆分 vue-vendor/ui-vendor 减小主包
- 首屏 gzip 体积从 544KB 降至 236KB(减少 57%)
2026-05-05 13:18:40 +08:00
admin bc30afe106 perf: 添加gzip压缩提升前端资源加载速度
- 对JS/CSS/HTML/JSON/SVG等文本资源启用gzip压缩
- 传输体积可减少70-80%,大幅提升页面加载速度
- 图片和字体等已压缩格式不重复压缩
2026-05-05 12:15:46 +08:00
admin bb802e765c fix: 用硬编码MIME映射替代mime.TypeByExtension
- Alpine镜像缺少/etc/mime.types导致TypeByExtension不可靠
- 使用getContentType函数硬编码常见Web文件MIME类型
- 不再依赖系统环境,确保所有平台行为一致
2026-05-05 04:12:12 +08:00
admin a1e3306fc7 fix: 注册MIME类型解决Alpine镜像js文件返回octet-stream的问题
- mime.TypeByExtension在Alpine精简环境中缺少.js等MIME映射
- 使用mime.AddExtensionType在启动时注册常见Web文件类型
2026-05-05 03:28:23 +08:00
admin 9253cb23bf fix: 从源头解决下划线文件名问题并优化代码
- Vite配置chunkFileNames去除开头的下划线,避免Go embed/http.FS过滤
- 使用mime.TypeByExtension自动推断Content-Type,替代手动映射
- 移除调试日志(文件列表、全局中间件打印)
2026-05-05 02:21:13 +08:00
admin 25fc6e89f7 fix: 修复http.FS过滤下划线开头文件导致404的问题
- 使用fs.ReadFile直接读取文件内容替代c.FileFromFS
- http.FileServer/http.FS默认过滤以_开头的文件
- 手动设置Content-Type确保正确的MIME类型
- 移除不再需要的net/http导入
2026-05-05 00:44:54 +08:00
admin 13472e56ef debug: 添加嵌入文件系统调试日志
- 启动时列出所有嵌入的assets文件
- 请求assets文件时添加文件查找日志
2026-05-04 23:33:19 +08:00
admin c543b80df1 fix: 修复Go embed排除下划线开头文件的问题
- 使用all:前缀确保嵌入所有文件,包括以_开头的文件
- Vite生成的chunk文件名如_id_-0eu8SYUT.js以_开头
- Go的embed指令默认排除_开头的文件,导致这些资源404
2026-05-04 21:14:21 +08:00
admin e229e31079 fix: 修复assets文件路径拼接错误
- Gin的*filepath参数包含开头的/,需要去除
- 修复路径拼接导致的双斜杠问题
- 移除自动刷新逻辑,这不是正确的解决方案
2026-05-04 16:23:26 +08:00
admin 337ddf6bb4 fix: URL解码处理和移除BOM字符
- 添加assets文件路径的URL解码处理,支持特殊字符
- 添加NoRoute处理器的URL解码
- 移除dashboard.go文件中的BOM字符
- 添加Vite构建配置确保文件名格式正确
2026-05-04 16:06:46 +08:00
admin 44d65f1fbc fix: 修复assets文件路径错误
- 修复通配符参数filepath只包含assets/后面的部分的问题
- 正确拼接assets/前缀以查找嵌入的静态资源文件
2026-05-04 14:38:46 +08:00
admin 16af684a32 fix: 资源加载失败时自动刷新页面
- 添加路由错误处理,当动态导入模块失败时自动刷新页面
- 修复 assets 文件不存在时返回 404 错误
2026-05-04 10:54:31 +08:00
admin 9937fbbae2 fix: 安装完成后清除旧的token和user数据
- 修复安装完成后点击前往登录时,旧的token导致直接跳转到后台的问题
- 安装完成后清除localStorage中的token和user数据
- 移除调试日志
2026-05-04 09:43:03 +08:00
admin eb6b7d84f9 debug: 添加JWT密钥调试日志 2026-05-04 09:40:18 +08:00
admin 7ab899b44f fix: JWT密钥YAML格式和401错误处理
- 修复JWT密钥在YAML配置文件中未加引号导致解析错误的问题
- 添加dashboard页面401错误处理,自动清除token并跳转登录页
2026-05-04 09:12:50 +08:00
admin 9262d066bb fix: JWT密钥同步、地图初始化时序、API中间件错误处理
- 修复安装完成后JWT密钥未同步到viper内存的问题
- 修复地图在loading状态时DOM元素不存在导致的初始化错误
- 修复AppCryptoMiddleware中数据库错误时未正确返回错误响应的问题
- 添加数据库未初始化检查
- 移除调试日志输出
2026-05-04 02:22:23 +08:00
admin a950acb2d6 fix: index.html禁用缓存,assets启用长期缓存
- index.html: Cache-Control: no-cache,防止浏览器缓存旧版本
- assets: Cache-Control: max-age=31536000,1年强缓存
2026-05-03 20:16:11 +08:00
admin 512a6b4594 fix: 移除initTicketData中自动创建dev管理员账号
initTicketData()在安装前创建dev管理员账号,
导致checkAdminExists()返回true,安装向导无法提交。
改为在dev用户不存在时跳过工单初始化。
2026-05-03 19:08:54 +08:00
admin 866ade0813 fix: 移除initData自动创建默认用户,避免干扰安装流程
initData()启动时自动创建admin/dev/agent默认用户,
导致安装向导提交时checkAdminExists()返回true,返回400系统已安装。
移除自动创建逻辑,管理员由安装向导创建。
2026-05-03 18:35:15 +08:00
admin 8b9879816d fix: 修复Gin通配符路由冲突导致panic
- 改用NoRoute替代通配符路由/*filepath
- NoRoute中先检查静态文件存在再返回SHTML
2026-05-03 17:25:23 +08:00
admin 20f1bfc32d fix: 嵌入式前端正确服务world.json等静态文件
- 修复/install路由返回登录页问题
- checkConfigFile只检查数据目录
- setupEmbeddedFrontend正确响应项目目录下文件
2026-05-03 16:57:38 +08:00
admin 6293b405ed fix: 安装检测需要配置文件存在才认为已安装
initData()启动时自动创建默认管理员账号,导致安装检测误判。
改为同时检查配置文件和管理员存在,配置文件只有安装向导会创建。
2026-05-03 16:23:35 +08:00
admin 730ad0d126 fix: 确保数据目录和上传目录存在后再初始化数据库 2026-05-03 13:40:16 +08:00
admin d7170b45ac feat: 添加管理员账号管理命令
- list-admin: 列出所有管理员账号
- reset-password: 重置指定管理员密码
- create-admin: 创建新管理员账号

用法:
  docker exec verify-app ./main list-admin
  docker exec verify-app ./main reset-password <用户名> [新密码]
  docker exec verify-app ./main create-admin <用户名> <密码> [邮箱]
2026-05-03 12:10:31 +08:00
admin 67a67517b0 feat: 添加重置管理员密码命令
用法:
  docker exec verify-app ./main reset-password admin          # 随机生成密码
  docker exec verify-app ./main reset-password admin newpass  # 指定新密码
  docker exec verify-app ./main help                          # 查看帮助
2026-05-03 12:08:32 +08:00
admin f7f92c9853 fix: 数据持久化到/app/data目录,简化部署配置
- 配置文件和SQLite数据库存储在/app/data
- Docker volume持久化数据
- 无需预设环境变量,安装向导自动配置
2026-05-03 12:03:53 +08:00
admin 41fe48e128 feat: 添加安装向导功能
- 后端:安装状态检测API、数据库连接测试、配置文件生成
- 后端:支持SQLite/MySQL数据库选择
- 后端:JWT密钥自动生成或手动设置
- 前端:安装向导界面(数据库配置、安全配置、管理员账号)
- 前端:路由守卫检测安装状态,未安装自动跳转安装页面
2026-05-03 11:52:34 +08:00
admin e71437190b feat: 添加生产环境docker-compose配置 2026-05-03 11:12:18 +08:00
admin ecf5690505 feat: 用户创建充值优化、侧边栏导航修复、在线实例统计修复 2026-05-03 06:07:11 +08:00
admin fa521de836 chore: 清理最近活动(recentActivities)后端接口和前端翻译 2026-05-03 05:09:35 +08:00
admin 1f7dfd17a7 feat: 分离密码重置和修改密码功能
- 密码重置:用户忘记密码时通过邮箱/短信验证(需开启开关)
- 修改密码:已登录用户通过旧密码修改(固定功能,无需配置)
- 添加 EnablePasswordReset 开关控制密码重置功能
- PasswordResetMethod 只支持 email/sms 两种验证方式
- 添加短信配置管理功能
- 移除独立的应用邮箱设置页面
2026-05-03 01:18:27 +08:00
admin 00067b1bff feat: 支付渠道、邮箱配置、存储管理页面添加批量操作功能
- 添加表格多选功能
- 添加批量启用/禁用/删除功能
- 添加统计卡片(总数、已启用、已禁用、启用率)
- 后端添加批量操作API接口
- 存储配置批量删除保护本地存储
2026-05-02 18:07:19 +08:00
admin 9b82fbef4e feat: 添加存储配置管理功能
- 添加存储配置管理页面(列表、创建、编辑)
- 支持本地存储、S3、WebDAV、FTP、SFTP 等存储类型
- 添加存储配置测试连接功能
- 本地存储自动初始化且禁止删除
- 修复 Switch 组件状态显示问题
- 添加更新存储配置时的 status 字段支持
2026-05-02 17:48:58 +08:00
admin ea8ffb6c74 fix: 订阅模式登录验证、永久会员类型区分、动态代码HTTP返回值修复、侧边栏滚动位置保持
- 修复订阅模式登录时错误检查余额的问题
- 区分无限余额和永久订阅两种永久会员类型
- 修复动态代码HTTP请求返回值在JS中无法正确访问的问题
- 添加侧边栏滚动位置保持功能
- 移除developer角色相关代码,统一使用admin
- 添加缺失的i18n翻译key
2026-05-01 16:39:31 +08:00
admin 4ed00f29e2 refactor: 移除佣金比例字段,将developer统一为admin 2026-05-01 08:08:11 +08:00
admin 2da9447397 feat: 代理管理添加批量操作功能,用户管理添加到期时间列
- 代理管理页面添加批量解封、批量封禁、批量删除功能
- 后端添加代理批量操作API
- 用户管理添加独立的到期时间列
- 修复应用管理和日志记录页面顶部卡片图标颜色
2026-04-30 21:10:54 +08:00
admin 26349c15d3 fix: 修复日志记录应用列为空的问题
- 添加LogOperationWithApp方法支持传入ApplicationID
- 创建/更新/删除卡密类型时记录ApplicationID
- 创建/更新应用时记录ApplicationID
2026-04-30 20:58:52 +08:00
admin 10044b474f feat: 添加云端函数HTTP请求、SMTP邮件、数据库操作能力
- 添加HTTP客户端工具支持GET/POST请求
- 添加SMTP邮件发送功能
- 添加数据库操作(db.getRecords, db.deleteRecord, db.deleteRecords)
- 添加订单管理云端函数(读取、接收、筛选、成功、失败)
- 添加测试推送和邮件通知云端函数
- 修复云端函数编辑页面预览代码换行显示
- 云端变量数据模型重构(合并数据类型)
2026-04-30 20:54:02 +08:00
Admin 51c34410c8 修复:添加go.sum到版本控制,移除.gitignore中对*.sum的忽略 2026-04-29 21:38:21 +08:00