限制仅有预种份数(未合并成棵)的用户卖出积分股, 直到用户完成首次预种合并后方可卖出。 === 改动范围(全部 2.0 系统,纯新增)=== contribution-service: - prisma/pre-planting/schema.prisma: 新增 PrePlantingSellRestrictionOverride 模型 - migrations/20260304000000: 对应建表 SQL - src/pre-planting/application/services/sell-restriction.service.ts: 核心判断逻辑 isRestricted = has_pre_planting_marker AND !has_real_tree AND !admin_override - src/api/controllers/pre-planting-restriction.controller.ts: 暴露内部接口 GET /api/v2/pre-planting/sell-restriction/:accountSequence (@Public) POST /api/v2/pre-planting/sell-restriction/:accountSequence/unlock (@Public) - src/api/api.module.ts: 注册新 controller 和 SellRestrictionService trading-service: - src/application/services/sell-restriction.service.ts: HTTP + Redis 缓存(TTL 60s) fail-open:contribution-service 不可用时允许卖出,保障业务连续性 - src/application/services/order.service.ts: 卖单前增加限制检查(4行) - src/application/application.module.ts: 注册 TradingSellRestrictionService mining-admin-service: - src/application/services/pre-planting-restriction.service.ts: 代理接口 + 审计日志 每次管理员解除操作均写入 AuditLog,保证严格可追溯性 - src/api/controllers/pre-planting-restriction.controller.ts: GET /pre-planting-restriction/:accountSequence POST /pre-planting-restriction/:accountSequence/unlock - api.module.ts / application.module.ts: 注册新服务和接口 mining-admin-web: - users.api.ts: 新增 getPrePlantingRestriction / unlockPrePlantingRestriction - use-users.ts: 新增 usePrePlantingRestriction / useUnlockPrePlantingRestriction hooks - users/[accountSequence]/page.tsx: 受限时在基本信息卡显示红色警告 + 解除按钮 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| migrations | ||
| schema.prisma | ||