TODO

用户请求需要检查数据权限

管理页面查询统一加排序

后端默认用户名不能是完整手机号

前端需要 token 化改造,以避免每次 basic 认证流程中 bcrypt 对比导致的性能对比

优化中间件,配置通用限速

observe 部署,蓝狐部署


用反射实现环境变量解析,以简化函数签名

分离 task 的客户端支持多进程prefork 必要!)

调整目录结构:

- /util         工具函数

- /models       模型
- /queries      数据库层
- /clients      三方依赖的客户端实例

- /services     服务层
- /auth         认证相关,特化服务

- /app          应用相关,初始化日志,环境变量,错误类型等
- /http         协议层http 服务
- /cmd          主函数

逐层向上依赖
cmd 调用 app, http 的初始化函数
http 调用 clients 的初始化函数

数据库转模型文件

jsonb 类型转换问题,考虑一个高效的 any 到 struct 转换工具

慢速请求底层调用埋点监控

  • redis
  • gorm
  • 三方接口

冷数据迁移方案

开发环境

更新表结构的流程

  1. 编辑 scripts/sql/init.sql 文件,参照原有格式,需要注意:
  • 先写 drop table if exists 语句,确保脚本可以幂等执行
  • 编写 create table 语句,按需添加审计字段和软删除字段 (created_at, updated_at, deleted_at)
  • 为有必要的字段添加索引
  • 为数据表及其字段添加注释
  • 在文件末尾创建数据表流程全部结束后,为字段添加外键
  1. 建议用数据库工具检查差异并增量更新,或者手动增量更新
  2. 创建 model 文件,并将其添加到 gen 代码中
  3. 生成查询文件

业务逻辑

订单关闭的几种方式

  1. 创建订单后推送异步任务,到时间后尝试完成订单或关闭订单
  2. sse 接口推送订单状态,轮询尝试完成订单
  3. 异步回调事件,收到支付成功事件后自动完成订单
  4. 用户退出支付界面,客户端主动发起关闭订单

产品字典表

代码 产品
short 短效动态代理
long 长效动态代理

节点分配与存储逻辑

提取:

  • 检查用户套餐与白名单
  • 选中代理
    • 找到当前可用端口最多的代理
    • 不考虑分割端口,不够加机器
  • 获取可用端口
  • 获取可用节点
  • 生成批次号,提交到期释放任务
  • 绑定节点与端口,保存到数据库
  • 分别提交连接与配置请求

释放:

  • 根据批次查出所有端口与相关节点
  • 分别提交断开与关闭请求
  • 释放端口
Description
后端
Readme 1.5 MiB
v1.7.0 Latest
2026-04-20 16:47:27 +08:00
Languages
Go 99%
HTML 0.6%
Dockerfile 0.2%
PowerShell 0.2%