|
|
6 месяцев назад | |
|---|---|---|
| .. | ||
| AdminActions | 6 месяцев назад | |
| AdminControllers | 6 месяцев назад | |
| Commands | 6 месяцев назад | |
| Config | 6 месяцев назад | |
| Databases | 6 месяцев назад | |
| Dto | 6 месяцев назад | |
| Enums | 6 месяцев назад | |
| Events | 7 месяцев назад | |
| Forms | 6 месяцев назад | |
| Listeners | 6 месяцев назад | |
| Logic | 6 месяцев назад | |
| Metrics | 6 месяцев назад | |
| Models | 6 месяцев назад | |
| Providers | 6 месяцев назад | |
| Repositories | 6 месяцев назад | |
| Service | 6 месяцев назад | |
| Services | 6 месяцев назад | |
| Tests | 6 месяцев назад | |
| Validators | 6 месяцев назад | |
| docs | 6 месяцев назад | |
| README.md | 7 месяцев назад | |
Mex模块是一个完整的农贸市场交易系统,支持用户买卖农产品,具有自动撮合、价格保护、仓库管理等功能。
app/Module/Mex/
├── AdminControllers/ # 后台管理控制器
│ ├── Helper/ # 控制器助手类
│ ├── MexOrderController.php
│ ├── MexPriceConfigController.php
│ ├── MexTransactionController.php
│ ├── MexWarehouseController.php
│ └── MexAdminOperationController.php
├── Commands/ # 命令行工具
│ └── MexMatchCommand.php
├── Config/ # 配置文件
│ └── mex.php
├── Controllers/ # API控制器
│ └── Admin/
├── Databases/ # 数据库相关
│ ├── GenerateSql/ # SQL文件
│ └── Repositories/ # 仓库类
├── Enums/ # 枚举类
│ ├── AdminOperationType.php
│ ├── OrderStatus.php
│ ├── OrderType.php
│ └── TransactionType.php
├── Events/ # 事件类
│ ├── OrderCreatedEvent.php
│ ├── OrderCompletedEvent.php
│ └── TransactionCreatedEvent.php
├── Listeners/ # 事件监听器
│ ├── OrderCreatedListener.php
│ └── TransactionCreatedListener.php
├── Logic/ # 业务逻辑层
│ ├── MexAccountLogic.php
│ ├── MexAdminLogic.php
│ ├── MexMatchLogic.php
│ ├── MexOrderLogic.php
│ ├── MexTransactionLogic.php
│ └── MexWarehouseLogic.php
├── Models/ # 数据模型
│ ├── MexAdminOperation.php
│ ├── MexOrder.php
│ ├── MexPriceConfig.php
│ ├── MexTransaction.php
│ └── MexWarehouse.php
├── Providers/ # 服务提供者
│ └── MexServiceProvider.php
├── Repositories/ # 数据仓库
│ ├── MexAdminOperationRepository.php
│ ├── MexOrderRepository.php
│ ├── MexPriceConfigRepository.php
│ ├── MexTransactionRepository.php
│ └── MexWarehouseRepository.php
├── Services/ # 服务层
│ ├── MexAdminService.php
│ ├── MexMatchService.php
│ ├── MexOrderService.php
│ ├── MexPriceConfigService.php
│ ├── MexTransactionService.php
│ └── MexWarehouseService.php
├── Tests/ # 测试文件
│ └── MexAccountLogicTest.php
└── README.md # 本文件
kku_mex_orders - 订单表kku_mex_transactions - 成交记录表kku_mex_price_configs - 价格配置表kku_mex_warehouse - 仓库统计表kku_mex_admin_operations - 管理员操作记录表在 config/app.php 中添加:
'providers' => [
// ...
App\Module\Mex\Providers\MexServiceProvider::class,
],
php artisan vendor:publish --tag=mex-config
# 执行SQL文件创建表结构
mysql -u username -p database_name < app/Module/Mex/Databases/GenerateSql/mex_orders.sql
mysql -u username -p database_name < app/Module/Mex/Databases/GenerateSql/mex_transactions.sql
# ... 其他SQL文件
在 .env 文件中添加:
# Mex模块配置
MEX_WAREHOUSE_USER_ID=15
MEX_REGULATION_USER_ID=16
MEX_DEFAULT_FUND_TYPE=1
MEX_MATCHING_ENABLED=true
MEX_MATCHING_INTERVAL=60
use App\Module\Mex\Services\MexOrderService;
// 创建卖出订单
$result = MexOrderService::createSellOrder(
userId: 1001,
itemId: 10001,
quantity: 10,
price: '2.50000'
);
// 创建买入订单
$result = MexOrderService::createBuyOrder(
userId: 1001,
itemId: 10001,
quantity: 5,
price: '8.00000'
);
use App\Module\Mex\Services\MexPriceConfigService;
$result = MexPriceConfigService::createConfig([
'item_id' => 10001,
'min_price' => '1.00000',
'max_price' => '10.00000',
'protection_threshold' => 1000,
'is_enabled' => true,
]);
# 手动执行撮合
php artisan mex:match
# 指定商品撮合
php artisan mex:match --item-id=10001
# 试运行模式
php artisan mex:match --dry-run
OrderCreatedEvent - 订单创建时触发OrderCompletedEvent - 订单完成时触发TransactionCreatedEvent - 成交记录创建时触发OrderCreatedListener - 处理订单创建后的缓存清理和统计更新TransactionCreatedListener - 处理成交后的市场统计和异常检测访问后台管理界面:
/admin/mex-orders/admin/mex-price-configs/admin/mex-transactions/admin/mex-warehouse/admin/mex-admin-operationsstorage/logs/mex-match.log - 撮合任务日志storage/logs/laravel.log - 一般业务日志运行测试:
php artisan test app/Module/Mex/Tests/