feat: 实现服务层核心功能与文档更新
refactor(ProductService): 修复createProduct方法和其他方法错误 fix(InventoryAgingService): 修复AGING_THRESHOLD_DAYS引用问题 fix(InventoryService): 修复predictSKUDemand方法 refactor(ChatBotController): 从tsoa风格改为Express风格 fix(CommandCenterController): 修复类型问题 fix(AdAutoService): 修复stock可能为undefined的问题 docs: 更新SERVICE_MAP、DOMAIN_MODEL等架构文档 chore: 启动前端服务(运行在http://localhost:8000)
This commit is contained in:
116
docs/01_Architecture/BILLING_RULES.md
Normal file
116
docs/01_Architecture/BILLING_RULES.md
Normal file
@@ -0,0 +1,116 @@
|
||||
# BILLING_RULES
|
||||
|
||||
## 收费模式
|
||||
|
||||
### 1. 功能收费
|
||||
|
||||
#### 基础功能(免费)
|
||||
- 商品管理
|
||||
- 订单处理
|
||||
- 基础数据报表
|
||||
- 库存管理
|
||||
|
||||
#### 高级功能(收费)
|
||||
|
||||
Feature: ADV_ANALYTICS(高级数据分析)
|
||||
- 类型:订阅制
|
||||
- 月费:$10
|
||||
- 功能:ROI分析、趋势预测、数据导出
|
||||
|
||||
Feature: API_CALL(API调用)
|
||||
- 类型:按量计费
|
||||
- 每次:$0.01
|
||||
- 功能:第三方系统集成、批量操作
|
||||
|
||||
Feature: AUTO_REPLENISH(自动补货)
|
||||
- 类型:订阅制
|
||||
- 月费:$15
|
||||
- 功能:智能库存预警、自动下单
|
||||
|
||||
Feature: MARKETING_AUTO(营销自动化)
|
||||
- 类型:订阅制
|
||||
- 月费:$20
|
||||
- 功能:自动促销、客户分群
|
||||
|
||||
Feature: CROSS_BORDER_LOGISTICS(跨境物流加速)
|
||||
- 类型:按量计费
|
||||
- 每单:$2
|
||||
- 功能:优先物流通道、清关协助
|
||||
|
||||
---
|
||||
|
||||
### 2. 订单抽成
|
||||
|
||||
- 每笔订单抽成:5%
|
||||
- 最低抽成:$0.5
|
||||
- 最高抽成:$50
|
||||
|
||||
---
|
||||
|
||||
### 3. 增值服务
|
||||
|
||||
- 技术支持:$50/小时
|
||||
- 定制开发:根据需求报价
|
||||
- 数据迁移:$100/次
|
||||
|
||||
---
|
||||
|
||||
## 收费触发点
|
||||
|
||||
- 功能开通 → 立即收费
|
||||
- API调用 → 累计计费(每日结算)
|
||||
- 订单完成 → 抽成
|
||||
- 增值服务 → 服务完成后收费
|
||||
|
||||
---
|
||||
|
||||
## 账单生成
|
||||
|
||||
- 每个收费行为必须记录 Bill
|
||||
- 每个 Bill 必须关联来源(feature/order/service)
|
||||
- 账单生成时间:每日23:59
|
||||
- 账单周期:自然月
|
||||
|
||||
---
|
||||
|
||||
## 结算周期
|
||||
|
||||
- 功能订阅:预付费
|
||||
- API调用:T+1
|
||||
- 订单抽成:T+7
|
||||
- 增值服务:服务完成后立即结算
|
||||
|
||||
---
|
||||
|
||||
## 支付方式
|
||||
|
||||
- 银行转账
|
||||
- 电子钱包(支付宝、微信支付)
|
||||
- 信用卡
|
||||
- PayPal
|
||||
|
||||
---
|
||||
|
||||
## 退款规则
|
||||
|
||||
- 功能订阅:未使用部分可退款
|
||||
- API调用:已使用部分不可退款
|
||||
- 订单抽成:不可退款
|
||||
- 增值服务:根据服务完成度退款
|
||||
|
||||
---
|
||||
|
||||
## 账单管理
|
||||
|
||||
- 商户可在后台查看详细账单
|
||||
- 支持账单导出(PDF/Excel)
|
||||
- 账单查询周期:最近12个月
|
||||
|
||||
---
|
||||
|
||||
## 逾期处理
|
||||
|
||||
- 逾期3天:系统提醒
|
||||
- 逾期7天:暂停高级功能
|
||||
- 逾期15天:暂停所有功能
|
||||
- 逾期30天:账户冻结
|
||||
172
docs/01_Architecture/DOMAIN_MODEL.md
Normal file
172
docs/01_Architecture/DOMAIN_MODEL.md
Normal file
@@ -0,0 +1,172 @@
|
||||
# DOMAIN_MODEL(领域模型)
|
||||
|
||||
## 核心实体
|
||||
|
||||
### Merchant(商户)
|
||||
- id
|
||||
- name
|
||||
- status(pending / active / inactive)
|
||||
- created_at
|
||||
- updated_at
|
||||
- contact_person
|
||||
- contact_email
|
||||
- contact_phone
|
||||
- address
|
||||
- business_type(B2B / B2C)
|
||||
|
||||
---
|
||||
|
||||
### User(用户)
|
||||
- id
|
||||
- merchant_id
|
||||
- role(admin / operator / viewer)
|
||||
- status
|
||||
- username
|
||||
- email
|
||||
- password_hash
|
||||
- created_at
|
||||
- updated_at
|
||||
|
||||
---
|
||||
|
||||
### Store(店铺)
|
||||
- id
|
||||
- merchant_id
|
||||
- name
|
||||
- platform
|
||||
- platform_shop_id
|
||||
- description
|
||||
- status
|
||||
- created_at
|
||||
- updated_at
|
||||
|
||||
---
|
||||
|
||||
### Feature(功能)
|
||||
- code
|
||||
- name
|
||||
- price_type(free / paid)
|
||||
- price_value
|
||||
- description
|
||||
- category
|
||||
|
||||
---
|
||||
|
||||
### MerchantFeature(商户功能)
|
||||
- id
|
||||
- merchant_id
|
||||
- feature_code
|
||||
- status(inactive / pending_payment / active / expired)
|
||||
- expire_at
|
||||
- created_at
|
||||
- updated_at
|
||||
|
||||
---
|
||||
|
||||
### Order(订单)
|
||||
- id
|
||||
- user_id
|
||||
- merchant_id
|
||||
- total_amount
|
||||
- status(pending / paid / split / shipped / completed / refunded)
|
||||
- created_at
|
||||
- updated_at
|
||||
- shipping_address
|
||||
- payment_method
|
||||
|
||||
---
|
||||
|
||||
### SubOrder(子订单)
|
||||
- id
|
||||
- order_id
|
||||
- merchant_id
|
||||
- store_id
|
||||
- amount
|
||||
- status
|
||||
- created_at
|
||||
- updated_at
|
||||
|
||||
---
|
||||
|
||||
### Product(商品)
|
||||
- id
|
||||
- merchant_id
|
||||
- store_id
|
||||
- name
|
||||
- sku
|
||||
- price
|
||||
- stock
|
||||
- status
|
||||
- created_at
|
||||
- updated_at
|
||||
|
||||
---
|
||||
|
||||
### Inventory(库存)
|
||||
- id
|
||||
- product_id
|
||||
- merchant_id
|
||||
- warehouse_id
|
||||
- quantity
|
||||
- status
|
||||
- last_sync_at
|
||||
|
||||
---
|
||||
|
||||
### Payment(支付)
|
||||
- id
|
||||
- merchant_id
|
||||
- amount
|
||||
- status(created / paid / failed)
|
||||
- type(feature / order)
|
||||
- payment_method
|
||||
- transaction_id
|
||||
- created_at
|
||||
- updated_at
|
||||
|
||||
---
|
||||
|
||||
### Bill(账单)
|
||||
- id
|
||||
- merchant_id
|
||||
- type(income / expense)
|
||||
- amount
|
||||
- status(pending / confirmed / settled)
|
||||
- source_type(order / feature)
|
||||
- source_id
|
||||
- created_at
|
||||
- updated_at
|
||||
|
||||
---
|
||||
|
||||
### Permission(权限)
|
||||
- id
|
||||
- role
|
||||
- resource
|
||||
- action
|
||||
- created_at
|
||||
|
||||
---
|
||||
|
||||
### Settlement(结算)
|
||||
- id
|
||||
- merchant_id
|
||||
- total_amount
|
||||
- platform_fee
|
||||
- net_amount
|
||||
- status
|
||||
- period_start
|
||||
- period_end
|
||||
- created_at
|
||||
- updated_at
|
||||
|
||||
---
|
||||
|
||||
### Analytics(数据分析)
|
||||
- id
|
||||
- merchant_id
|
||||
- report_type
|
||||
- data
|
||||
- generated_at
|
||||
- period_start
|
||||
- period_end
|
||||
85
docs/01_Architecture/PERMISSION_RULES.md
Normal file
85
docs/01_Architecture/PERMISSION_RULES.md
Normal file
@@ -0,0 +1,85 @@
|
||||
# PERMISSION_RULES
|
||||
|
||||
## 基础规则
|
||||
|
||||
- 商户只能访问自己的数据
|
||||
- 所有请求必须带 merchant_id
|
||||
- 超级管理员可跨商户访问
|
||||
- 权限校验必须在所有接口调用前执行
|
||||
- 未授权访问必须返回 403 Forbidden
|
||||
|
||||
---
|
||||
|
||||
## 功能权限
|
||||
|
||||
- 未开通功能 → 拒绝访问(403)
|
||||
- 已开通 → 正常访问
|
||||
- 功能过期 → 拒绝访问(403)
|
||||
- 功能暂停 → 拒绝访问(403)
|
||||
|
||||
---
|
||||
|
||||
## 角色权限
|
||||
|
||||
### Admin(商户管理员)
|
||||
- 全部权限
|
||||
- 可管理商户信息
|
||||
- 可管理用户账号
|
||||
- 可开通/关闭功能
|
||||
- 可查看所有报表
|
||||
|
||||
### Operator(运营专员)
|
||||
- 订单处理(创建、确认、发货)
|
||||
- 商品管理(添加、编辑、上下架)
|
||||
- 库存管理(更新库存)
|
||||
- 客户服务(处理售后)
|
||||
|
||||
### Viewer(查看员)
|
||||
- 只读权限
|
||||
- 可查看订单、商品、库存信息
|
||||
- 可查看报表
|
||||
|
||||
### System(系统角色)
|
||||
- 系统级操作权限
|
||||
- 可执行系统维护任务
|
||||
|
||||
---
|
||||
|
||||
## 数据权限
|
||||
|
||||
- 商户只能查看和操作自己的:
|
||||
- 订单
|
||||
- 商品
|
||||
- 库存
|
||||
- 店铺
|
||||
- 账单
|
||||
- 报表
|
||||
|
||||
- 超级管理员可查看和操作所有商户数据
|
||||
|
||||
---
|
||||
|
||||
## 接口校验流程
|
||||
|
||||
Request
|
||||
→ AuthMiddleware(身份验证)
|
||||
→ PermissionService.check(权限校验)
|
||||
→ FeatureService.checkAccess(功能访问校验)
|
||||
→ Controller
|
||||
|
||||
---
|
||||
|
||||
## 权限管理
|
||||
|
||||
- 权限必须通过 PermissionService 进行管理
|
||||
- 角色权限可通过管理界面进行配置
|
||||
- 权限变更必须记录操作日志
|
||||
|
||||
---
|
||||
|
||||
## 安全措施
|
||||
|
||||
- 密码必须加密存储
|
||||
- 敏感操作必须进行二次验证
|
||||
- API 调用必须使用 token 认证
|
||||
- 定期权限审计
|
||||
127
docs/01_Architecture/SERVICE_MAP.md
Normal file
127
docs/01_Architecture/SERVICE_MAP.md
Normal file
@@ -0,0 +1,127 @@
|
||||
# SERVICE_MAP(服务编排总图)
|
||||
|
||||
## 设计原则
|
||||
- 所有业务必须通过 Service 层
|
||||
- Controller 不允许直接操作数据库
|
||||
- 一个业务 = 一条 Service Flow
|
||||
- 服务调用必须遵循 STATE_MACHINE 定义的状态流转
|
||||
- 涉及收费的业务必须接入 BILLING 系统
|
||||
- 所有接口必须经过权限校验
|
||||
|
||||
---
|
||||
|
||||
## 1. 功能开通闭环(收费核心)
|
||||
|
||||
Flow:
|
||||
Frontend
|
||||
→ FeatureController.openFeature
|
||||
→ FeatureService.checkAccess
|
||||
→ PaymentService.createPayment
|
||||
→ PaymentCallbackService.confirm
|
||||
→ FeatureService.activateFeature
|
||||
→ PermissionService.grant
|
||||
→ BillingService.record
|
||||
→ Response
|
||||
|
||||
---
|
||||
|
||||
## 2. 多商户订单闭环
|
||||
|
||||
Flow:
|
||||
Frontend
|
||||
→ OrderController.create
|
||||
→ OrderService.createOrder
|
||||
→ OrderService.splitByMerchant
|
||||
→ InventoryService.lockStock
|
||||
→ OrderRepository.save
|
||||
→ Response
|
||||
|
||||
---
|
||||
|
||||
## 3. 订单履约闭环
|
||||
|
||||
Flow:
|
||||
OrderService.confirm
|
||||
→ ShipmentService.createShipment
|
||||
→ OrderService.updateStatus
|
||||
→ NotificationService.send
|
||||
|
||||
---
|
||||
|
||||
## 4. 结算闭环
|
||||
|
||||
Flow:
|
||||
Scheduler / Manual Trigger
|
||||
→ SettlementService.calculate
|
||||
→ SettlementService.generateBill
|
||||
→ PaymentService.payout
|
||||
→ BillingService.record
|
||||
|
||||
---
|
||||
|
||||
## 5. 权限校验闭环(所有接口必须经过)
|
||||
|
||||
Flow:
|
||||
Request
|
||||
→ AuthMiddleware
|
||||
→ PermissionService.check
|
||||
→ Controller
|
||||
|
||||
---
|
||||
|
||||
## 6. 商户管理闭环
|
||||
|
||||
Flow:
|
||||
Frontend
|
||||
→ MerchantController.create
|
||||
→ MerchantService.register
|
||||
→ VerificationService.verify
|
||||
→ RBACService.assignRole
|
||||
→ Response
|
||||
|
||||
---
|
||||
|
||||
## 7. 店铺管理闭环
|
||||
|
||||
Flow:
|
||||
Frontend
|
||||
→ StoreController.create
|
||||
→ StoreService.createStore
|
||||
→ ProductService.setupProducts
|
||||
→ InventoryService.initializeInventory
|
||||
→ Response
|
||||
|
||||
---
|
||||
|
||||
## 8. 商户数据与分析闭环
|
||||
|
||||
Flow:
|
||||
Scheduler / Manual Trigger
|
||||
→ AnalyticsService.collectData
|
||||
→ ReportService.generateReport
|
||||
→ NotificationService.sendReport
|
||||
→ Response
|
||||
|
||||
---
|
||||
|
||||
## 9. 多商户库存同步闭环
|
||||
|
||||
Flow:
|
||||
Merchant Portal
|
||||
→ InventoryController.sync
|
||||
→ InventorySyncService.syncMerchantInventory
|
||||
→ InventoryService.updateStock
|
||||
→ ProductService.updateProductStatus
|
||||
→ Response
|
||||
|
||||
---
|
||||
|
||||
## 10. 异常处理闭环
|
||||
|
||||
Flow:
|
||||
Frontend / System
|
||||
→ ExceptionController.handle
|
||||
→ ExceptionService.process
|
||||
→ NotificationService.alert
|
||||
→ SettlementService.adjust
|
||||
→ Response
|
||||
132
docs/01_Architecture/STATE_MACHINE.md
Normal file
132
docs/01_Architecture/STATE_MACHINE.md
Normal file
@@ -0,0 +1,132 @@
|
||||
# STATE_MACHINE
|
||||
|
||||
## Merchant(商户)状态
|
||||
|
||||
pending
|
||||
→ active
|
||||
→ inactive
|
||||
→ suspended
|
||||
|
||||
---
|
||||
|
||||
## User(用户)状态
|
||||
|
||||
pending
|
||||
→ active
|
||||
→ inactive
|
||||
→ locked
|
||||
|
||||
---
|
||||
|
||||
## Store(店铺)状态
|
||||
|
||||
pending
|
||||
→ active
|
||||
→ inactive
|
||||
→ suspended
|
||||
|
||||
---
|
||||
|
||||
## Feature(功能)状态
|
||||
|
||||
inactive
|
||||
→ pending_payment
|
||||
→ active
|
||||
→ expired
|
||||
→ suspended
|
||||
|
||||
---
|
||||
|
||||
## Order(订单)状态
|
||||
|
||||
pending
|
||||
→ paid
|
||||
→ split
|
||||
→ processing
|
||||
→ shipped
|
||||
→ completed
|
||||
→ refunded
|
||||
→ cancelled
|
||||
|
||||
---
|
||||
|
||||
## SubOrder(子订单)状态
|
||||
|
||||
pending
|
||||
→ processing
|
||||
→ shipped
|
||||
→ completed
|
||||
→ refunded
|
||||
→ cancelled
|
||||
|
||||
---
|
||||
|
||||
## Product(商品)状态
|
||||
|
||||
draft
|
||||
→ pending_approval
|
||||
→ active
|
||||
→ inactive
|
||||
→ discontinued
|
||||
|
||||
---
|
||||
|
||||
## Inventory(库存)状态
|
||||
|
||||
normal
|
||||
→ low
|
||||
→ out_of_stock
|
||||
→ overstock
|
||||
|
||||
---
|
||||
|
||||
## Payment(支付)状态
|
||||
|
||||
created
|
||||
→ processing
|
||||
→ paid
|
||||
→ failed
|
||||
→ refunded
|
||||
|
||||
---
|
||||
|
||||
## Bill(账单)状态
|
||||
|
||||
pending
|
||||
→ confirmed
|
||||
→ settled
|
||||
→ disputed
|
||||
|
||||
---
|
||||
|
||||
## Settlement(结算)状态
|
||||
|
||||
pending
|
||||
→ processing
|
||||
→ completed
|
||||
→ failed
|
||||
|
||||
---
|
||||
|
||||
## 状态变更原则
|
||||
|
||||
- 所有状态变更必须通过 Service
|
||||
- 禁止前端直接控制状态
|
||||
- 状态变更必须记录操作日志
|
||||
- 状态变更必须遵循预定义的流转路径
|
||||
- 状态变更可能触发相关业务逻辑(如通知、计费等)
|
||||
|
||||
---
|
||||
|
||||
## 状态变更触发条件
|
||||
|
||||
- 商户状态:审核结果、逾期未付费、违规行为
|
||||
- 用户状态:登录异常、权限变更、账号管理
|
||||
- 店铺状态:平台审核、违规行为、商户操作
|
||||
- 功能状态:支付结果、订阅到期、手动操作
|
||||
- 订单状态:支付结果、商户操作、物流状态
|
||||
- 商品状态:审核结果、库存状态、商户操作
|
||||
- 库存状态:库存数量变化、库存同步
|
||||
- 支付状态:支付渠道反馈、人工处理
|
||||
- 账单状态:系统确认、支付结果、人工处理
|
||||
- 结算状态:系统处理、支付结果、人工处理
|
||||
Reference in New Issue
Block a user