102 lines
4.9 KiB
Markdown
102 lines
4.9 KiB
Markdown
# HFB Sys
|
||
|
||
哈夫币租号平台,面向《三角洲行动》账号租赁场景。
|
||
|
||
## 开发方式
|
||
|
||
- 后端:Go + Gin + GORM + MySQL + Redis
|
||
- 前端:Vue 3 + TypeScript + Vite + Element Plus
|
||
- 开发依赖:Docker Compose 启动 MySQL、Redis、MinIO
|
||
|
||
## 快速开始
|
||
|
||
一键启动开发版本:
|
||
|
||
```bash
|
||
./scripts/dev.sh
|
||
```
|
||
|
||
脚本会自动启动 MySQL、Redis、MinIO,首次初始化数据库结构,并同时启动后端和前端。
|
||
|
||
前端地址:`http://localhost:5189`
|
||
|
||
后台地址默认:`http://localhost:5189/admin/login`。可通过 `VITE_ADMIN_BASE_PATH` 调整后台页面入口。
|
||
|
||
如需拆分调试,可手动执行:
|
||
|
||
```bash
|
||
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:13306)/hfb_sys?charset=utf8mb4&parseTime=True&loc=Local&multiStatements=true' \
|
||
up
|
||
go run ./cmd/api
|
||
|
||
cd ../frontend
|
||
npm install
|
||
npm run dev
|
||
```
|
||
|
||
## 代码门禁
|
||
|
||
提交前或部署前在本地执行全量检查,覆盖后端 `go vet` / `go build` / `go test` 与前端 `prettier` / `eslint` / `typecheck` / `vite build`:
|
||
|
||
```bash
|
||
./scripts/check.sh
|
||
```
|
||
|
||
`./scripts/deploy-prod.sh` 在构建镜像前会自动调用 `check.sh`(本地有 `go` 和 `npm` 时)。检查未通过会中止部署;确需跳过用 `--skip-check`(不推荐)。`check.sh` 也支持 `--skip-backend`、`--skip-frontend`、`--skip-tests` 做局部调试。
|
||
|
||
数据库 SQL 约束、执行计划、慢查询观测、连接池和备份恢复要求见 [`docs/数据库SQL约束与运维.md`](docs/数据库SQL约束与运维.md)。
|
||
|
||
需要在本地推送前自动执行同一套检查时,启用 Git hook:
|
||
|
||
```bash
|
||
bash scripts/install-git-hooks.sh
|
||
```
|
||
|
||
启用后,`git push` 会执行 `scripts/check.sh`;仅临时跳过时使用:
|
||
|
||
```bash
|
||
SKIP_CHECKS=1 git push
|
||
```
|
||
|
||
## 开发态短信与实名
|
||
|
||
- 后端日志使用单行可读文本。开发环境同时输出控制台和 `backend/logs/app-YYYY-MM-DD.log`,生产示例只输出文件以避免重复存储;可通过 `LOG_LEVEL=debug|info|warn|error` 调整级别。
|
||
- 短信验证码默认使用 mock 适配器,本地验证码会以 INFO 日志输出,手机号保持脱敏。生产环境强制使用 `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。
|
||
- MinIO 开发地址默认使用 `http://localhost:19090`,控制台默认使用 `http://localhost:19091`。
|
||
- 钱包账务当前为开发态模拟流水,可通过 `GET /api/wallet/balance` 和 `GET /api/wallet/ledger` 查看。
|
||
- 后台资金流水已接入,支持按用户、订单和业务类型查询。
|
||
- 站内信已支持订单关键节点自动写入,可通过 `GET /api/notifications` 查看。
|
||
- 订单群聊已支持支付成功后自动创建,租客、号主和客服可在移动端消息页进入会话。
|
||
- 申诉仲裁已支持订单双方发起申诉、开发态后台落账处理。
|
||
- 系统配置已支持默认配置初始化和后台编辑,更新会写入审计日志。
|
||
- 后台已使用独立登录、图形验证码和独立管理 UI,页面入口由 `VITE_ADMIN_BASE_PATH` 控制。
|
||
- 后台仪表盘已接入真实统计数据。
|
||
- 用户管理后台已接入,支持冻结和解冻用户。
|
||
- 订单管理后台已接入,支持查看全量订单和交接记录。
|
||
- 商品管理后台已接入,支持查看全量商品、商品详情、强制下架和标记异常。
|
||
- 订单详情后台已支持客服关闭和标记异常,相关操作会写入审计日志并通知双方。
|
||
- 商品审核后台已接入,审核员可查看账号资产截图后通过或拒绝。
|
||
- 审计日志后台已接入,支持查看高风险操作明细。
|
||
|
||
## 文档
|
||
|
||
- [项目计划](docs/project-plan.md)
|
||
- [数据库设计](docs/database.md)
|
||
- [接口规划](docs/api.md)
|
||
- [业务规则](docs/business-rules.md)
|