ソースを参照

增加Mex模块账户体系设计:仓库账户和调控账户

## 新增核心内容
- 仓库账户(USER_ID: 15):系统核心账户,负责所有交易的资金和物品中转
- 调控账户(USER_ID: 16):管理员市场调控专用账户,用于市场供需调节
- 完整的资金和物品流转机制设计,确保系统总量守恒

## 详细更新内容

### 2.md文档更新
- 新增8.1章节:系统账户体系设计
- 完善第6章:市场调控功能,增加账户流转详细说明
- 优化第13章:业务流程详细说明,包含完整的账户流转步骤
- 增强第10章:安全机制与风控,增加账户安全机制
- 扩展第12章:监控与日志,增加账户监控相关内容

### README.md文档更新
- 系统特点增加账户体系设计和总量守恒原则
- 数据库设计增加系统账户体系设计章节
- 业务流程更新为包含账户流转的详细步骤
- 卖出流程从6步扩展为9步,买入流程从6步扩展为12步

## 核心设计原则
- 总量守恒:确保系统总资金和物品总量不变
- 账户安全:系统保留账户禁止普通用户操作
- 流转透明:所有账户操作有详细日志记录
- 异常处理:账户流转失败时完整回滚机制

文档版本从v2.0升级到v2.1,为Mex模块实现提供完整的账户体系指导
notfff 7 ヶ月 前
コミット
d77a881e2c

+ 198 - 0
AiWork/2025年06月/11日2040-完善Mex模块README文档.md

@@ -0,0 +1,198 @@
+# 完善Mex模块README文档
+
+## 任务概述
+- **任务时间**:2025年06月11日 20:40
+- **任务类型**:文档完善更新
+- **涉及模块**:Mex(农贸市场交易系统)
+- **主要文件**:`app/Module/Mex/docs/README.md`
+
+## 任务背景
+用户要求阅读 `app/Module/Mex/docs/2.md` 文档,并完善 `app/Module/Mex/docs/README.md` 文档。通过分析发现README.md是基于1.1.md生成的旧版本文档,需要基于最新的2.md完整交易规则进行全面更新。
+
+## 执行过程
+
+### 1. 文档对比分析
+- **README.md现状**:134行,基于1.1.md,版本v1.0,内容相对简单
+- **2.md文档**:229行,版本v2.0,包含完整的技术实现细节
+- **差距识别**:README.md缺少技术架构、模块结构、开发指南等关键内容
+
+### 2. 文档完善内容
+
+#### 2.1 概述部分优化
+- **原内容**:简单的系统描述
+- **新增内容**:
+  - 完整的系统特点说明(6个核心特点)
+  - 基于2.md的准确描述
+  - 系统价值和优势说明
+
+#### 2.2 价格机制完善
+- **原内容**:基础的最低价和最高价说明
+- **新增内容**:
+  - 价格精度支持(5位小数)
+  - 竞价机制说明
+  - 公示透明度说明
+  - 价格验证规则细化
+
+#### 2.3 撮合机制优化
+- **原内容**:简单的价格优先原则
+- **新增内容**:
+  - 三级排序优先级详细说明
+  - 整单成交原则
+  - 队列处理机制
+
+#### 2.4 技术实现架构扩展
+- **原内容**:4个简单的技术要点
+- **新增内容**:
+  - 5个核心数据库表结构
+  - 4个核心算法实现
+  - 完整的安全机制与风控
+  - 性能优化策略
+  - 监控与日志机制
+
+#### 2.5 业务流程细化
+- **原内容**:简单的流程步骤
+- **新增内容**:
+  - 卖出流程6个详细步骤
+  - 买入流程6个详细步骤
+  - 撮合执行流程8个详细步骤
+
+#### 2.6 新增重要章节
+- **模块结构设计**:完整的目录结构图
+- **关键接口设计**:4个核心API接口
+- **部署与运维**:计划任务配置和监控指标
+- **开发指南**:实现优先级和测试策略
+
+### 3. 文档统计对比
+| 项目 | 原版本 | 新版本 | 变化 |
+|------|--------|--------|------|
+| 行数 | 134行 | 242行 | +108行 |
+| 增长率 | - | 180% | +80% |
+| 基于文档 | 1.1.md | 2.md | 升级 |
+| 版本号 | v1.0 | v2.0 | 升级 |
+| 章节数 | 8个 | 12个 | +4个 |
+
+## 主要改进
+
+### 1. 内容完整性提升
+- 从基础规则说明扩展为完整的技术文档
+- 增加了实用的开发和部署指导
+- 提供了详细的模块结构设计
+
+### 2. 技术实现指导增强
+- 详细的数据库表结构设计
+- 核心算法实现要点
+- 完整的安全机制说明
+- 性能优化策略指导
+
+### 3. 开发支持完善
+- 模块结构设计图
+- 关键接口设计说明
+- 开发优先级指导
+- 测试策略建议
+
+### 4. 运维支持增强
+- 部署配置指导
+- 监控指标说明
+- 注意事项完善
+- 系统维护建议
+
+## 技术要点
+
+### 1. 系统特点
+- 非用户间交易(系统仓库中介)
+- 价格区间控制(卖出≤最低价,买入≥最高价)
+- 整单成交原则(不拆分订单)
+- 数量保护机制(大额订单保护)
+- 计划任务撮合(定时批量处理)
+- 管理员调控(市场供需调节)
+
+### 2. 核心算法
+- **价格验证算法**:卖单≤最低价,买单≥最高价
+- **撮合排序算法**:价格→时间→数量三级排序
+- **数量保护算法**:超量订单过滤机制
+- **整单匹配算法**:库存充足完全成交,不足等待
+
+### 3. 数据库设计
+```sql
+-- 5个核心数据表
+mex_orders          -- 订单表
+mex_warehouse       -- 系统仓库表
+mex_transactions    -- 成交记录表
+mex_price_configs   -- 价格配置表
+mex_admin_operations -- 管理员操作记录表
+```
+
+### 4. 模块结构
+```
+app/Module/Mex/
+├── Models/              # 数据模型(5个)
+├── Services/            # 服务层(3个)
+├── Logic/               # 逻辑层(2个)
+├── Commands/            # 计划任务(1个)
+├── Controllers/         # 控制器(Admin+Api)
+├── Handlers/            # 处理器(2个)
+├── Databases/           # 数据库文件
+├── Enums/               # 枚举类(2个)
+└── docs/                # 文档目录
+```
+
+## 开发指导
+
+### 1. 实现优先级
+1. **第一阶段**:基础数据模型和数据库表结构
+2. **第二阶段**:核心撮合算法和订单处理逻辑
+3. **第三阶段**:API接口和前端交互功能
+4. **第四阶段**:后台管理和市场调控功能
+5. **第五阶段**:监控告警和性能优化
+
+### 2. 测试策略
+- **单元测试**:核心算法和业务逻辑
+- **集成测试**:API接口和数据库操作
+- **压力测试**:撮合性能和并发处理
+- **业务测试**:完整交易流程验证
+
+## 文件变更记录
+
+### 修改文件
+- `app/Module/Mex/docs/README.md` - 主要完善文件
+
+### Git提交信息
+```
+完善Mex模块README.md文档
+
+基于最新的2.md交易规则文档,全面完善README.md:
+
+## 主要更新内容
+- 更新概述部分,增加系统特点说明
+- 完善价格机制说明,增加价格精度和竞价机制
+- 优化撮合交易机制,详细说明三级排序优先级
+- 扩展技术实现架构,包含5个主要技术模块
+- 详细化业务流程,卖出/买入/撮合流程步骤明确
+- 新增模块结构设计,提供完整的目录结构
+- 增加关键接口设计和部署运维指南
+- 补充开发指南和测试策略
+
+## 文档改进
+- 从134行扩展到242行,内容增长80%
+- 基于文档从1.1.md更新为2.md
+- 文档版本从v1.0升级到v2.0
+- 增加了实用的开发和部署指导
+
+现在README.md成为完整的技术文档,可作为Mex模块开发的详细指南
+```
+
+## 任务成果
+1. **文档质量大幅提升**:从简单说明扩展为完整技术文档
+2. **开发指导性增强**:提供了详细的实现指导和优先级
+3. **技术架构完善**:包含完整的模块结构和接口设计
+4. **运维支持增强**:提供了部署配置和监控指导
+
+## 后续建议
+1. 基于完善的README.md文档开始Mex模块的具体实现
+2. 按照开发优先级逐步实现各个功能模块
+3. 参考模块结构设计创建相应的文件和目录
+4. 使用测试策略确保代码质量和功能正确性
+
+---
+**任务完成时间**:2025年06月11日 20:40  
+**文档状态**:已完成并提交到Git仓库

+ 5 - 2
AiWork/WORK.md

@@ -15,8 +15,11 @@ shop_items 的 $max_buy 确认被替代后移除,使用mcp执行sql
 
 ## 待处理任务
 
-Point模块的后台操作 增加到 后台菜单中(数据库)
-
+增加内容: 仓库账户USER_ID: 15; 
+用户卖出 农作物,资金 仓库账户 转出钱到用户账户,物品 转入到 仓库账户;
+用户买入 农作物,资金从 仓库账户 转入 买入账户,物品从 仓库账户 转入到 用户账户;
+确保总量不变
+调控账户USER_ID: 16,调控是从这里转入/转出; 
 
 ## 已完成任务(保留最新的10条,多余的删除)
 

+ 80 - 26
app/Module/Mex/docs/2.md

@@ -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)的详细设计和流转机制

+ 33 - 16
app/Module/Mex/docs/README.md

@@ -5,7 +5,7 @@
 
 Mex模块是一个完整的农贸市场匹配交易系统,实现了基于系统仓库的商品交易撮合机制。系统采用价格优先、时间优先的撮合原则,通过计划任务定时执行交易匹配,确保交易的公平性和系统的稳定性。
 
-本文档基于 `/app/Module/Mex/docs/2.md` 的完整交易规则,提供了系统的技术实现指导和业务规则说明。
+
 
 ## 系统特点
 
@@ -15,6 +15,8 @@ Mex模块是一个完整的农贸市场匹配交易系统,实现了基于系
 - **数量保护机制**:大额订单保护阈值防止市场操控
 - **计划任务撮合**:定时批量处理,避免实时撮合的性能问题
 - **管理员调控**:支持市场供需调节和价格稳定机制
+- **账户体系设计**:仓库账户和调控账户确保资金物品流转安全
+- **总量守恒原则**:所有交易和调控操作确保系统总量不变
 
 ## 核心交易规则
 
@@ -102,6 +104,11 @@ Mex模块是一个完整的农贸市场匹配交易系统,实现了基于系
 - **价格配置表(mex_price_configs)**:存储商品的最低价和最高价配置
 - **市场调控记录表(mex_admin_operations)**:记录管理员市场调控操作
 
+### 1.1 系统账户体系设计
+- **仓库账户(USER_ID: 15)**:系统核心账户,负责所有交易的资金和物品中转
+- **调控账户(USER_ID: 16)**:管理员市场调控专用账户,用于市场供需调节
+- **账户安全机制**:系统保留账户,禁止普通用户操作,确保数据一致性
+
 ### 2. 核心算法实现
 - **价格验证算法**:卖单价格≤最低价,买单价格≥最高价
 - **撮合排序算法**:价格→时间→数量三级排序
@@ -126,21 +133,30 @@ Mex模块是一个完整的农贸市场匹配交易系统,实现了基于系
 
 ## 业务流程
 
-### 卖出流程(6个步骤
+### 卖出流程(9个步骤,包含账户流转
 1. **订单提交**:用户提交卖出订单(商品ID、数量、价格)
 2. **价格验证**:系统验证 `卖出价格 ≤ 最低价`
-3. **立即成交**:满足条件的订单立即与系统成交
-4. **库存更新**:商品数量增加到系统仓库
-5. **记录生成**:创建成交记录,显示在交易大厅
-6. **资金结算**:用户账户增加对应资金
-
-### 买入流程(6个步骤)
+3. **余额检查**:验证用户是否有足够的农作物数量
+4. **立即成交**:满足条件的订单立即与系统成交
+5. **物品转移**:农作物从用户账户转入仓库账户(USER_ID: 15)
+6. **资金结算**:资金从仓库账户(USER_ID: 15)转出到用户账户
+7. **库存更新**:更新系统仓库商品数量
+8. **记录生成**:创建成交记录,显示在交易大厅
+9. **总量验证**:确保系统总资金和物品总量保持不变
+
+### 买入流程(12个步骤,包含账户流转)
 1. **订单提交**:用户提交买入订单(商品ID、数量、价格)
 2. **价格验证**:系统验证 `买入价格 ≥ 最高价`
-3. **数量检查**:验证订单数量是否超过保护阈值
-4. **进入队列**:通过验证的订单进入撮合队列
-5. **等待撮合**:订单等待计划任务执行撮合
-6. **成交处理**:撮合成功后扣减系统库存,完成交易
+3. **资金检查**:验证用户是否有足够的资金购买
+4. **数量检查**:验证订单数量是否超过保护阈值
+5. **资金冻结**:预先冻结用户账户对应资金
+6. **进入队列**:通过验证的订单进入撮合队列
+7. **等待撮合**:订单等待计划任务执行撮合
+8. **成交处理**:撮合成功后执行资金和物品转移
+9. **资金转移**:冻结资金从用户账户转入仓库账户(USER_ID: 15)
+10. **物品转移**:农作物从仓库账户(USER_ID: 15)转出到用户账户
+11. **库存更新**:扣减系统仓库商品数量
+12. **总量验证**:确保系统总资金和物品总量保持不变
 
 ### 撮合执行流程(8个步骤)
 1. **任务启动**:计划任务定时启动(5-10分钟间隔)
@@ -187,7 +203,7 @@ app/Module/Mex/
     └── 2.md             # 详细交易规则文档
 ```
 
-## 关键接口设计
+## 关键接口设计 
 
 - **下单接口**:POST /api/mex/order(创建买卖订单)
 - **订单查询**:GET /api/mex/orders(查询用户订单)
@@ -236,7 +252,8 @@ app/Module/Mex/
 
 ---
 
-**文档生成时间**:2025年06月11日 20:40
+**文档生成时间**:2025年06月11日 20:53
 **基于文档**:`/app/Module/Mex/docs/2.md`
-**文档版本**:v2.0
-**文档状态**:已完善更新
+**文档版本**:v2.1
+**文档状态**:已增加账户体系设计
+**更新内容**:增加仓库账户和调控账户的详细设计和流转机制