66 lines
3.3 KiB
Markdown
66 lines
3.3 KiB
Markdown
# 业务规则
|
|
|
|
业务规则以 [项目计划](project-plan.md) 为准。
|
|
|
|
一期关键边界:
|
|
|
|
- 哈夫币是游戏账号内资产,不是平台币。
|
|
- 哈夫币数量由号主手动填报,订单创建时生成账号资产快照。
|
|
- 平台不保存游戏账号密码,不代收验证码,不绕过游戏安全机制。
|
|
- 账号交接采用号主手动交接。
|
|
- 资金先做账务模型,不直接接真实支付和提现。
|
|
- 押金、交接超时、归还超时、短信限流等阈值进入系统配置。
|
|
|
|
## 开发态实名认证
|
|
|
|
- 当前实现为 mock 实名服务。
|
|
- 提交合法姓名和 18 位身份证号后直接通过认证。
|
|
- 后端只返回脱敏姓名和脱敏证件号。
|
|
- 用户表 `realname_status` 会同步更新为 `verified`。
|
|
- 后续接入阿里云或腾讯云实名服务时,保持 `POST /api/realname/start` 和 `GET /api/realname/status` 的业务语义不变。
|
|
|
|
## 开发态租号发布
|
|
|
|
- 发布租号前必须登录并完成实名认证。
|
|
- 一期创建发布时同时创建 `game_accounts` 和 `rental_listings`。
|
|
- 哈夫币数量是号主手动填报值,不代表实时值。
|
|
- 当前提交审核会 mock 为自动通过并上架,后续再接后台人工审核。
|
|
- 公开列表只展示 `status = published` 且 `review_status = approved` 的发布。
|
|
|
|
## 开发态订单创建
|
|
|
|
- 创建订单需要登录。
|
|
- 一期创建订单暂不接真实支付和押金冻结,创建成功后直接进入 `pending_handoff`。
|
|
- 创建订单时会在数据库事务内锁定发布和账号,防止同一账号重复出租。
|
|
- 创建订单时生成 `account_snapshot`,记录下单时账号资产状态。
|
|
- 订单创建后发布状态变为 `rented`,不再出现在公开租号列表。
|
|
- 待交接订单可以由租客取消,取消后发布状态恢复为 `published`。
|
|
|
|
## 开发态账号交接
|
|
|
|
- 创建订单后状态为 `pending_handoff`,交接状态为 `pending_owner`。
|
|
- 只有号主可以提交交接说明。
|
|
- 号主提交交接说明后,交接状态变为 `pending_renter_confirm`。
|
|
- 只有租客可以确认收号。
|
|
- 租客确认收号后,订单状态变为 `renting`,交接状态变为 `received`。
|
|
- 确认收号时会重新计算租赁开始时间和结束时间。
|
|
- 交接记录保存在 `handoff_records`,订单双方都可以查看。
|
|
|
|
## 开发态归还与完成
|
|
|
|
- 租赁中订单可以由租客提交归还。
|
|
- 租客提交归还后,订单状态变为 `pending_return_confirm`,交接状态变为 `pending_owner_return_confirm`。
|
|
- 只有号主可以确认归还。
|
|
- 号主确认归还后,订单状态变为 `completed`,交接状态变为 `returned`,结算状态先标记为 `settled`。
|
|
- 订单完成后,账号和发布状态恢复为 `published`。
|
|
- 当前只做状态闭环,不生成真实钱包流水,资金流水后续接入。
|
|
|
|
## 开发态钱包账务
|
|
|
|
- 钱包账务当前为模拟流水,不代表真实支付、充值或提现。
|
|
- 创建订单时为租客生成一笔冻结流水,金额为租金加押金。
|
|
- 取消待交接订单时释放租客冻结金额。
|
|
- 订单完成时释放租客冻结金额,给号主生成租金入账流水,并给租客生成押金退回流水。
|
|
- 每笔流水记录 `balance_after`,用于后续对账。
|
|
- 后续接入真实支付后,需要把模拟冻结替换为支付成功后的真实冻结。
|