FarmLogic::initializeLands 方法硬编码创建12块土地available_lands 字段修改 app/Module/Farm/Logics/FarmLogic.php:
/**
* 初始化用户土地
*
* @param int $userId
* @param int $houseLevel 房屋等级,默认为1
* @return void
*/
private function initializeLands(int $userId, int $houseLevel = 1): void
{
try {
$houseLogic = new HouseLogic();
$landLogic = new LandLogic();
// 根据房屋等级获取可用土地数量
$availableLands = $houseLogic->getAvailableLandsCount($houseLevel);
if ($availableLands <= 0) {
Log::warning('房屋等级配置的可用土地数量为0');
return;
}
// 创建对应数量的普通土地
for ($position = 1; $position <= $availableLands; $position++) {
$land = $landLogic->createLand($userId, $position, 1); // 1表示普通土地
if (!$land) {
Log::error('创建土地失败');
}
}
Log::info('用户土地初始化成功');
} catch (\Exception $e) {
Log::error('初始化用户土地失败');
}
}
确认房屋等级配置表数据正确:
farm-configsfa-cogs直接添加菜单项:
INSERT INTO kku_admin_menu (parent_id, `order`, title, icon, uri, `show`, extension, created_at, updated_at)
VALUES (264, 1, '农场配置管理', 'fa-cogs', 'farm-configs', 1, '', NOW(), NOW());
清理重复菜单: 删除重复的"房屋等级配置"菜单项(ID为315)
更新控制器注释:
在 FarmConfigController.php 中添加菜单位置注释:
/**
* 农场配置管理控制器
*
* 路由: /admin/farm-configs
* 清除缓存路由: POST /admin/farm-configs/clear-cache
* 菜单位置: 农场配置 > 农场配置管理
*/
✅ 菜单显示正常 ✅ 点击跳转到配置管理页面 ✅ 列表页面显示农场配置项 ✅ 编辑页面功能正常 ✅ 清除缓存按钮可用
app/Module/Farm/Logics/FarmLogic.php - 修复土地初始化逻辑app/Module/Farm/AdminControllers/FarmConfigController.php - 更新路由注释app/Module/Farm/Commands/InsertFarmConfigAdminMenu.php - 新增菜单添加命令(备用)HouseLogic::getAvailableLandsCount() - 获取房屋等级可用土地数量LandLogic::createLand() - 创建土地kku_farm_house_configs - 存储等级对应的土地数量农场模块:修复初始化土地逻辑遵循房屋等级规则,添加农场配置管理菜单
- 修复FarmLogic::initializeLands方法,根据房屋等级配置初始化对应数量的土地
- 添加HouseLogic依赖,获取房屋等级对应的可用土地数量
- 完善错误处理和日志记录
- 添加农场配置管理菜单到后台管理系统
- 清理重复的房屋等级配置菜单项
- 更新控制器路由注释,标明菜单位置