时间: 2025年06月20日 12:30 任务: 将产出数量区间改为两个字段:有灾害时最大产出 + 有灾害时最小产出
根据用户需求,将农场模块中的产出数量区间从单一范围修改为两个独立字段:
这样在有灾害时,产出数量将在 disaster_min_amount 到 disaster_max_amount 之间随机生成。
ALTER TABLE kku_farm_seed_outputs
ADD COLUMN disaster_min_amount int unsigned NOT NULL DEFAULT 500
COMMENT '有灾害时最小产出数量' AFTER disaster_max_amount;
ALTER TABLE kku_farm_seeds
ADD COLUMN disaster_min_output int unsigned NOT NULL DEFAULT 500
COMMENT '有灾害时最小产出' AFTER disaster_max_output;
disaster_min_amount 字段到 $fillable 数组disaster_min_output 字段到 $fillable 数组getOutputInfoByItemId() 方法返回结果中添加 disaster_min_amount 字段calculateMatureOutput() 方法中:
disaster_min_amount 到 disaster_max_amount 区间min_amount 到 max_amount 区间min_base_amount 字段-- 修正FarmSeedOutput表数据
UPDATE kku_farm_seed_outputs
SET disaster_min_amount = GREATEST(1, FLOOR(min_amount * 0.5))
WHERE disaster_min_amount = 500;
-- 修正FarmSeed表数据
UPDATE kku_farm_seeds
SET
min_output = 100,
max_output = 500,
disaster_min_output = 50,
disaster_max_output = 300
WHERE id IN (1,2,3,4,5,6,7);
更新了 farm_seed_outputs.sql 和 farm_seeds.sql 文件,添加新字段定义。
min_amount 到 max_amount 区间disaster_min_amount 到 disaster_max_amount 区间disaster_min_amount <= disaster_max_amountdisaster_min_output <= disaster_max_outputapp/Module/Farm/Models/FarmSeedOutput.php - 模型更新app/Module/Farm/Models/FarmSeed.php - 模型更新app/Module/Farm/AdminControllers/FarmSeedOutputController.php - 后台管理app/Module/Farm/AdminControllers/FarmSeedController.php - 后台管理app/Module/Farm/Logics/CropLogic.php - 业务逻辑app/Module/Farm/Databases/GenerateSql/farm_seed_outputs.sql - 生成SQLapp/Module/Farm/Databases/GenerateSql/farm_seeds.sql - 生成SQL农场模块:修改产出数量区间为有灾害时最大产出+有灾害时最小产出
- 为FarmSeedOutput表添加disaster_min_amount字段
- 为FarmSeed表添加disaster_min_output字段
- 更新模型类添加新字段到fillable和注释
- 更新后台管理界面显示和编辑新字段
- 更新CropLogic产量计算逻辑使用新的灾害时最小产出
- 修正数据库现有数据设置合理的默认值
- 更新生成的SQL文件反映新表结构
✅ 已完成 - 所有修改已实施并测试通过,代码已提交到远程仓库。