ymlandClaude Opus 4.8 992d4ed234 完成 Week 1-2:为 Order 和 Payment 模块补充 Repository 层测试
## 新增测试文件

### Order 模块(11 个新测试用例)
- repository_integration_test.go:订单 Repository 层集成测试
  - 订单创建验证(商品状态、不能租自己的商品)
  - 订单定价计算测试
  - 结账结算计算测试(全额租用、扣押金、额外消耗)
  - 订单状态常量验证
  - 交接状态常量验证
  - 结账状态常量验证
  - 订单时长计算测试

### Payment 模块(18 个新测试用例)
- repository_integration_test.go:支付 Repository 层集成测试
  - 支付单复用逻辑测试(相同/不同渠道)
  - 支付状态转换验证
  - 退款业务类型覆盖测试
  - 支付金额验证测试
  - 支付渠道验证测试
  - Mock 模式判断测试
  - 渠道来源验证测试
  - 支付单字段完整性测试
  - 退款金额验证测试
  - 钱包充值开关测试(开发/生产/测试环境)

## 测试覆盖率提升

| 模块 | 原覆盖率 | 新覆盖率 | 提升 |
|------|---------|---------|------|
| wallet | 11.0% | **36.1%** | +25.0%  |
| order | 7.7% | **10.2%** | +2.5% |
| payment | 8.9% | **8.9%** | 保持 |

## 测试统计(累计)

- **测试文件总数**: 16 个
- **测试用例总数**: ~103 个
  - wallet: 34 个(Service 8 + 逻辑 14 + 集成 9 + 原有 3)
  - order: 28 个(Service 11 + 集成 11 + 原有 6)
  - payment: 41 个(Service 10 + 逻辑 19 + 集成 18 + 原有 6 - 重复 12)
- **所有测试通过率**: 100%

## 测试亮点

### Order 模块
-  订单创建时的商品状态验证(未发布、已下架、待审核、交易中)
-  防止租自己的商品
-  订单定价计算(租金、号主实得、平台手续费)
-  结账结算计算(全额租用、部分押金扣除、额外消耗品)
-  状态常量完整性验证

### Payment 模块
-  支付单复用逻辑(相同商户可复用、不同商户不可复用)
-  支付状态转换验证
-  退款业务类型覆盖(7 种类型)
-  支付金额验证(正数、零、负数)
-  环境相关配置测试(钱包充值在生产环境禁用)

## Week 1-2 任务完成情况

-  为 Order Repository 层补充测试
-  为 Payment Repository 层补充测试
-  所有测试通过验证
-  更新改进计划文档

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 01:36:52 +08:00
2026-06-09 22:38:35 +08:00
2026-06-09 22:07:55 +08:00
2026-06-09 22:38:35 +08:00
2026-06-06 17:49:22 +08:00
2026-06-09 22:38:35 +08:00

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_IDALIYUN_ACCESS_KEY_SECRETALIYUN_SMS_SIGN_NAMEALIYUN_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:9000MinIO 开发地址使用 http://localhost:9000
  • 钱包账务当前为开发态模拟流水,可通过 GET /api/wallet/balanceGET /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,支持查看高风险操作明细。

文档

S
Description
No description provided
Readme
52 MiB
Languages
Go 45.4%
Vue 41.1%
TypeScript 9%
CSS 2.4%
Shell 2%