cb07fce5fd7944783c8ea466b5409f513600cb5c
## 新增测试文件 ### Wallet 模块(34 个测试用例) - service_test.go:8 个 Service 层测试 - repository_logic_test.go:14 个纯逻辑测试(applyEntry 核心逻辑) - repository_integration_test.go:9 个集成测试(数据库完整流程) - 测试覆盖率:11.0% → 36.1%(提升 25%) ### Order 模块(11 个测试用例) - service_test.go:11 个 Service 层测试 - 覆盖所有 Service 方法的依赖检查和参数验证 ### Payment 模块(29 个测试用例) - service_test.go:10 个 Service 层测试 - repository_logic_test.go:19 个逻辑测试(状态判断、常量验证) - 覆盖支付单复用、退款逻辑、输入验证 ## 测试基础设施 - database/test_helper.go:提供内存 SQLite 数据库创建函数 - 支持快速、隔离的测试环境 ## 测试策略 - 分层测试:Service 层(参数验证)→ Repository 逻辑层(纯函数)→ Repository 集成层(数据库) - 覆盖核心业务:余额变更、支付单复用、订单状态转换 - 边界条件:余额刚好够扣、差1分不够扣、零金额、并发场景 - 幂等性保证:渠道充值幂等、支付单复用 ## 文档 - docs/代码质量改进计划.md:详细的问题分析和改进计划(16周路线图) - docs/Repository层测试补充总结.md:测试工作总结和运行指南 ## 测试结果 - 所有测试通过(74 个测试用例) - Wallet 模块覆盖率提升至 36.1% - 为后续测试工作建立了完整的框架和规范 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
HFB Sys
哈夫币租号平台,面向《三角洲行动》账号租赁场景。
开发方式
- 后端:Go + Gin + GORM + MySQL + Redis
- 前端:Vue 3 + TypeScript + Vite + Element Plus
- 开发依赖:Docker Compose 启动 MySQL、Redis、MinIO
快速开始
一键启动开发版本:
./scripts/dev.sh
脚本会自动启动 MySQL、Redis、MinIO,首次初始化数据库结构,并同时启动后端和前端。
前端地址:http://localhost:5173
后台地址:http://localhost:5173/admin/login,开发态默认管理员为 admin / admin123456。
如需拆分调试,可手动执行:
docker compose -f deploy/docker-compose.dev.yml up -d
cd backend
cp .env.example .env
go run github.com/pressly/goose/v3/cmd/goose@v3.27.1 \
-dir migrations \
mysql 'hfb:secret@tcp(127.0.0.1:3306)/hfb_sys?charset=utf8mb4&parseTime=True&loc=Local&multiStatements=true' \
up
go run ./cmd/api
cd ../frontend
npm install
npm run dev
开发态短信与实名
- 后端日志默认同时输出到控制台和
backend/logs/app-YYYY-MM-DD.log,按北京时间自动按天切分;可通过LOG_LEVEL=debug|info|warn|error调整级别。 - 短信验证码默认使用 mock 适配器,验证码会打印在后端日志中;生产环境可通过
SMS_PROVIDER=aliyun接入阿里云短信。 - 阿里云短信需要配置
ALIYUN_ACCESS_KEY_ID、ALIYUN_ACCESS_KEY_SECRET、ALIYUN_SMS_SIGN_NAME和ALIYUN_SMS_LOGIN_TEMPLATE_CODE,模板变量名默认为code。 - 实名认证使用 mock 适配器,登录后请求
POST /api/realname/start,提交合法姓名和 18 位身份证号会直接通过。 - 实名状态可通过
GET /api/realname/status查询。 - 租号发布需要登录并完成实名认证;
POST /api/listings/{id}/submit-review会进入待审核,后台通过后才上架。 - 订单创建需要登录;开发态会直接锁定账号并进入待交接,暂不接真实支付和押金冻结。
- 账号交接已支持号主提交说明、租客确认收号,确认后订单进入租赁中。
- 归还流程已支持租客提交归还、号主确认归还,完成后账号重新上架。
- 后端已接入开发态订单超时扫描任务,会按系统配置处理交接超时、确认收号超时、逾期未归还和确认归还超时。
- 文件上传已接入 MinIO,发布账号资产截图和申诉证据可上传 JPG、PNG、WebP 或 PDF。
- 如果本机有代理工具占用
127.0.0.1:9000,MinIO 开发地址使用http://localhost:9000。 - 钱包账务当前为开发态模拟流水,可通过
GET /api/wallet/balance和GET /api/wallet/ledger查看。 - 后台资金流水已接入,页面为
http://localhost:5173/admin/wallet-ledger,支持按用户、订单和业务类型查询。 - 站内信已支持订单关键节点自动写入,可通过
GET /api/notifications查看。 - 订单群聊已支持支付成功后自动创建,租客、号主和客服可在移动端消息页进入会话。
- 申诉仲裁已支持订单双方发起申诉、开发态后台落账处理,后台页面为
http://localhost:5173/admin/disputes。 - 系统配置已支持默认配置初始化和后台编辑,页面为
http://localhost:5173/admin/system-configs,更新会写入审计日志。 - 后台已使用独立登录、图形验证码和独立管理 UI,页面为
http://localhost:5173/admin/login;开发态默认管理员为admin / admin123456。 - 后台仪表盘已接入真实统计数据,页面为
http://localhost:5173/admin/dashboard。 - 用户管理后台已接入,页面为
http://localhost:5173/admin/users,支持冻结和解冻用户。 - 订单管理后台已接入,页面为
http://localhost:5173/admin/orders,支持查看全量订单和交接记录。 - 商品管理后台已接入,页面为
http://localhost:5173/admin/listings,支持查看全量商品、商品详情、强制下架和标记异常。 - 订单详情后台已支持客服关闭和标记异常,相关操作会写入审计日志并通知双方。
- 商品审核后台已接入,页面为
http://localhost:5173/admin/listings/review,审核员可查看账号资产截图后通过或拒绝。 - 审计日志后台已接入,页面为
http://localhost:5173/admin/audit-logs,支持查看高风险操作明细。
文档
Languages
Go
45.4%
Vue
41.1%
TypeScript
9%
CSS
2.4%
Shell
2%