|
|
@@ -53,15 +53,21 @@
|
|
|
- 避免市场流动性枯竭
|
|
|
|
|
|
## 6. 市场调控功能(管理员)
|
|
|
-- **物品注入**:
|
|
|
- - 选择品种+方向(卖出)
|
|
|
- - 设置数量→确认
|
|
|
- - 效果:增加市场供应
|
|
|
-- **物品回收**:
|
|
|
- - 选择品种+方向(买入)
|
|
|
- - 设置数量→确认→销毁
|
|
|
- - 效果:减少市场库存
|
|
|
-- **优先级**:管理员操作>>用户订单
|
|
|
+- **物品注入(增加市场供应)**:
|
|
|
+ - 操作方式:选择品种+方向(卖出)+设置数量→确认
|
|
|
+ - 资金流转:调控账户(USER_ID: 16)资金转出到仓库账户(USER_ID: 15)
|
|
|
+ - 物品流转:调控账户(USER_ID: 16)物品转入到仓库账户(USER_ID: 15)
|
|
|
+ - 效果:增加市场供应,稳定价格下降趋势
|
|
|
+- **物品回收(减少市场库存)**:
|
|
|
+ - 操作方式:选择品种+方向(买入)+设置数量→确认→销毁
|
|
|
+ - 资金流转:仓库账户(USER_ID: 15)资金转出到调控账户(USER_ID: 16)
|
|
|
+ - 物品流转:仓库账户(USER_ID: 15)物品转入到调控账户(USER_ID: 16)
|
|
|
+ - 效果:减少市场库存,稳定价格上升趋势
|
|
|
+- **调控原则**:
|
|
|
+ - 优先级:管理员操作>>用户订单
|
|
|
+ - 总量守恒:所有调控操作确保系统总资金和物品总量不变
|
|
|
+ - 透明度:调控操作不在交易大厅显示,但有详细日志记录
|
|
|
+ - 权限控制:只有授权管理员可以执行调控操作
|
|
|
|
|
|
## 7. 信息展示规则(客户端)
|
|
|
- **交易大厅显示**:
|
|
|
@@ -89,6 +95,22 @@
|
|
|
- 记录管理员市场调控操作
|
|
|
- 包含:操作类型、商品ID、数量、操作员ID、操作时间等
|
|
|
|
|
|
+## 8.1 系统账户体系设计
|
|
|
+- **仓库账户(USER_ID: 15)**:
|
|
|
+ - 系统核心账户,负责所有交易的资金和物品中转
|
|
|
+ - 用户卖出:资金从仓库账户转出到用户账户,物品从用户转入仓库账户
|
|
|
+ - 用户买入:资金从用户账户转入仓库账户,物品从仓库账户转出到用户账户
|
|
|
+ - 确保系统总量平衡,所有交易通过此账户进行
|
|
|
+- **调控账户(USER_ID: 16)**:
|
|
|
+ - 管理员市场调控专用账户
|
|
|
+ - 物品注入:从调控账户转出物品到仓库账户,增加市场供应
|
|
|
+ - 物品回收:从仓库账户转入物品到调控账户,减少市场库存
|
|
|
+ - 资金调控:调节市场流动性和价格稳定
|
|
|
+- **账户安全机制**:
|
|
|
+ - 仓库账户和调控账户为系统保留账户,不允许普通用户操作
|
|
|
+ - 所有账户操作必须通过系统服务层进行,确保数据一致性
|
|
|
+ - 账户余额和库存变化需要详细日志记录,便于审计和监控
|
|
|
+
|
|
|
## 9. 核心算法实现要点
|
|
|
- **价格验证算法**:
|
|
|
- 卖单价格验证:price ≤ min_price
|
|
|
@@ -111,12 +133,21 @@
|
|
|
- **防操控机制**:
|
|
|
- 大额订单保护阈值
|
|
|
- 价格异常波动预警
|
|
|
+- **账户安全机制**:
|
|
|
+ - 仓库账户(USER_ID: 15)和调控账户(USER_ID: 16)为系统保留账户
|
|
|
+ - 禁止普通用户直接操作系统账户
|
|
|
+ - 所有账户操作必须通过系统服务层进行
|
|
|
+ - 账户余额变化实时监控和告警
|
|
|
- **数据一致性保证**:
|
|
|
- 数据库事务确保原子性
|
|
|
- 库存扣减与订单状态同步更新
|
|
|
+ - 资金和物品流转的双重验证
|
|
|
+ - 系统总量守恒检查
|
|
|
- **异常处理机制**:
|
|
|
- 撮合失败回滚机制
|
|
|
- 系统异常时的订单状态恢复
|
|
|
+ - 账户流转失败的完整回滚
|
|
|
+ - 总量异常时的紧急停止机制
|
|
|
|
|
|
## 11. 性能优化策略
|
|
|
- **计划任务优化**:
|
|
|
@@ -134,42 +165,64 @@
|
|
|
- 订单成交率统计
|
|
|
- 平均撮合时间监控
|
|
|
- 系统库存变化趋势
|
|
|
+ - 仓库账户资金和物品余额监控
|
|
|
+ - 调控账户操作频率和金额监控
|
|
|
- **操作日志记录**:
|
|
|
- 用户下单日志
|
|
|
- 撮合执行日志
|
|
|
- 管理员操作日志
|
|
|
+ - 账户资金流转日志
|
|
|
+ - 物品转移日志
|
|
|
+ - 系统总量变化日志
|
|
|
- **异常告警机制**:
|
|
|
- 撮合任务执行失败告警
|
|
|
- 价格异常波动告警
|
|
|
- 系统库存异常告警
|
|
|
+ - 账户余额异常告警
|
|
|
+ - 系统总量不平衡告警
|
|
|
+ - 账户操作权限异常告警
|
|
|
|
|
|
## 13. 业务流程详细说明
|
|
|
|
|
|
-### 13.1 卖出流程
|
|
|
+### 13.1 卖出流程(资金和物品流转)
|
|
|
1. **订单提交**:用户提交卖出订单(商品ID、数量、价格)
|
|
|
2. **价格验证**:系统验证 `卖出价格 ≤ 最低价`
|
|
|
-3. **立即成交**:满足条件的订单立即与系统成交
|
|
|
-4. **库存更新**:商品数量增加到系统仓库
|
|
|
-5. **记录生成**:创建成交记录,显示在交易大厅
|
|
|
-6. **资金结算**:用户账户增加对应资金
|
|
|
+3. **余额检查**:验证用户是否有足够的农作物数量
|
|
|
+4. **立即成交**:满足条件的订单立即与系统成交
|
|
|
+5. **物品转移**:农作物从用户账户转入仓库账户(USER_ID: 15)
|
|
|
+6. **资金结算**:资金从仓库账户(USER_ID: 15)转出到用户账户
|
|
|
+7. **库存更新**:更新系统仓库商品数量
|
|
|
+8. **记录生成**:创建成交记录,显示在交易大厅
|
|
|
+9. **总量验证**:确保系统总资金和物品总量保持不变
|
|
|
|
|
|
-### 13.2 买入流程
|
|
|
+### 13.2 买入流程(资金和物品流转)
|
|
|
1. **订单提交**:用户提交买入订单(商品ID、数量、价格)
|
|
|
2. **价格验证**:系统验证 `买入价格 ≥ 最高价`
|
|
|
-3. **数量检查**:验证订单数量是否超过保护阈值
|
|
|
-4. **进入队列**:通过验证的订单进入撮合队列
|
|
|
-5. **等待撮合**:订单等待计划任务执行撮合
|
|
|
-6. **成交处理**:撮合成功后扣减系统库存,完成交易
|
|
|
+3. **资金检查**:验证用户是否有足够的资金购买
|
|
|
+4. **数量检查**:验证订单数量是否超过保护阈值
|
|
|
+5. **资金冻结**:预先冻结用户账户对应资金
|
|
|
+6. **进入队列**:通过验证的订单进入撮合队列
|
|
|
+7. **等待撮合**:订单等待计划任务执行撮合
|
|
|
+8. **成交处理**:撮合成功后执行资金和物品转移
|
|
|
+9. **资金转移**:冻结资金从用户账户转入仓库账户(USER_ID: 15)
|
|
|
+10. **物品转移**:农作物从仓库账户(USER_ID: 15)转出到用户账户
|
|
|
+11. **库存更新**:扣减系统仓库商品数量
|
|
|
+12. **总量验证**:确保系统总资金和物品总量保持不变
|
|
|
|
|
|
-### 13.3 撮合执行流程
|
|
|
+### 13.3 撮合执行流程(包含账户流转)
|
|
|
1. **任务启动**:计划任务定时启动(5-10分钟间隔)
|
|
|
2. **订单获取**:获取所有状态为"等待"的买入订单
|
|
|
3. **数量过滤**:过滤掉超过保护阈值的大额订单
|
|
|
4. **排序处理**:按价格→时间→数量进行三级排序
|
|
|
5. **库存匹配**:逐个匹配系统仓库库存
|
|
|
-6. **整单成交**:库存充足则整单成交,不足则继续等待
|
|
|
-7. **状态更新**:更新订单状态和系统库存
|
|
|
-8. **记录生成**:生成成交记录供交易大厅展示
|
|
|
+6. **整单成交判断**:库存充足则执行成交,不足则继续等待
|
|
|
+7. **账户流转执行**:
|
|
|
+ - 资金转移:用户冻结资金转入仓库账户(USER_ID: 15)
|
|
|
+ - 物品转移:农作物从仓库账户(USER_ID: 15)转出到用户账户
|
|
|
+8. **状态更新**:更新订单状态和系统库存
|
|
|
+9. **总量验证**:确保每笔交易后系统总量保持不变
|
|
|
+10. **记录生成**:生成成交记录供交易大厅展示
|
|
|
+11. **异常处理**:如果账户流转失败,回滚所有操作
|
|
|
|
|
|
## 14. 技术实现架构
|
|
|
|
|
|
@@ -224,6 +277,7 @@ app/Module/Mex/
|
|
|
|
|
|
---
|
|
|
|
|
|
-**文档版本**:v2.0
|
|
|
-**最后更新**:2025年06月11日 20:34
|
|
|
-**文档状态**:已补充完整
|
|
|
+**文档版本**:v2.1
|
|
|
+**最后更新**:2025年06月11日 20:53
|
|
|
+**文档状态**:已增加账户体系设计
|
|
|
+**更新内容**:增加仓库账户(USER_ID: 15)和调控账户(USER_ID: 16)的详细设计和流转机制
|