# 商店限购功能后台管理部署说明 ## 概述 本文档说明如何部署商店限购功能的后台管理界面,包括数据库迁移、菜单配置、权限设置等步骤。 ## 部署步骤 ### 1. 数据库迁移 按顺序执行以下SQL文件: ```bash # 1. 创建限购配置表 mysql -u用户名 -p数据库名 < app/Module/Shop/Databases/GenerateSql/shop_purchase_limits.sql # 2. 创建用户购买计数表 mysql -u用户名 -p数据库名 < app/Module/Shop/Databases/GenerateSql/shop_user_purchase_counters.sql # 3. 移除已被替代的max_buy字段(可选,如果已有数据需要迁移) mysql -u用户名 -p数据库名 < app/Module/Shop/Databases/GenerateSql/remove_shop_items_max_buy_field.sql ``` ### 2. 后台菜单配置 执行以下命令添加后台管理菜单: ```bash # 添加限购配置菜单(需要先有商店管理菜单) php artisan admin:insert-shop-purchase-limit-menu ``` 如果还没有商店管理菜单,请先执行: ```bash # 添加商店管理菜单 php artisan admin:insert-shop-menu ``` ### 3. 创建示例数据(可选) ```bash # 创建限购配置示例数据 php artisan db:seed --class=ShopPurchaseLimitSeeder ``` ### 4. 清除缓存 ```bash # 清除路由缓存 php artisan route:clear # 清除配置缓存 php artisan config:clear # 清除视图缓存 php artisan view:clear ``` ## 后台功能说明 ### 1. 商品管理增强 **位置**: 商店管理 > 商店商品 **新增功能**: - 商品列表显示"单次限购"列 - 商品编辑表单的"单次购买限制"字段 - 每个商品行添加"限购配置"按钮,可快速跳转到限购配置页面 - 移除了原有的"总限购"功能,由新的限购系统完全替代 ### 2. 限购配置管理 **位置**: 商店管理 > 限购配置 **功能特性**: - 支持创建、编辑、删除限购规则 - 支持按商品、限购类型、限购周期筛选 - 支持批量操作和状态切换 - 表单验证确保配置的合理性 **配置选项**: - **商品选择**: 支持搜索的下拉选择框 - **限购类型**: 单次购买限制 / 周期性购买限制 - **限购周期**: 永久 / 每日 / 每周 / 每月 / 每年 - **最大数量**: 限购的最大数量 - **状态管理**: 启用/禁用限购规则 - **排序权重**: 控制多个规则的检查顺序 ## 权限配置 ### 1. 菜单权限 确保相关用户角色具有以下菜单访问权限: - 商店管理 - 商店商品 - 限购配置 ### 2. 操作权限 根据需要为用户角色分配以下权限: - 查看限购配置 - 创建限购配置 - 编辑限购配置 - 删除限购配置 - 批量操作限购配置 ## 使用指南 ### 1. 创建限购规则 1. 进入"商店管理 > 限购配置" 2. 点击"新增"按钮 3. 选择要设置限购的商品 4. 设置限购类型和周期 5. 输入最大购买数量 6. 保存配置 ### 2. 管理现有规则 1. 在限购配置列表中查看所有规则 2. 使用过滤器快速查找特定规则 3. 点击"编辑"修改规则参数 4. 使用状态开关快速启用/禁用规则 5. 通过排序权重控制规则优先级 ### 3. 商品限购设置 1. 进入"商店管理 > 商店商品" 2. 编辑商品,设置"单次购买限制" 3. 点击"限购配置"按钮管理该商品的详细限购规则 ## 注意事项 ### 1. 数据一致性 - 删除商品时会自动删除相关的限购配置 - 修改商品状态不会影响已有的限购配置 - 限购计数数据会根据周期自动重置 ### 2. 性能考虑 - 限购配置查询已优化,支持批量查询 - 建议为活跃商品合理设置限购规则数量 - 定期清理无效的购买计数记录 ### 3. 业务逻辑 - 单次购买限制只能使用永久周期 - 多个限购规则按排序权重依次检查 - 所有限购规则都必须通过才能购买 ## 故障排除 ### 1. 菜单不显示 检查菜单是否正确创建: ```sql SELECT * FROM admin_menu WHERE title LIKE '%限购%'; ``` ### 2. 路由不存在 清除路由缓存并重新生成: ```bash php artisan route:clear php artisan route:cache ``` ### 3. 权限问题 检查用户角色是否具有相应的菜单和操作权限。 ## 技术支持 如遇到问题,请检查: 1. 数据库表是否正确创建 2. 菜单权限是否正确配置 3. 缓存是否已清除 4. 日志文件中的错误信息 更多技术细节请参考: - `app/Module/Shop/Docs/商店限购功能优化说明.md` - `AiWork/2024年12月/28日1430-商店限购功能优化.md`