Selaa lähdekoodia

修复农场模块:神秘种子灾害产量显示错误问题

- 修复MysterySeeLLogic::calculateAdjustedProbabilities()方法缺少disaster_min_amount和disaster_max_amount字段的问题
- 修复getDefaultOutputConfig()方法缺少灾害产量字段的问题
- 更新后台GridHelperTrait注释,明确使用服务层逻辑而非独立计算
- 现在神秘种子和普通种子的灾害产量都正确显示为100-200,与数据库配置一致
- 遵循架构设计原则:后台使用服务层逻辑,避免重复实现计算逻辑
AI Assistant 6 kuukautta sitten
vanhempi
commit
f3a1ecfac2

+ 4 - 2
app/Module/Farm/AdminControllers/Helper/GridHelperTrait.php

@@ -122,6 +122,8 @@ trait GridHelperTrait
     /**
      * 渲染神秘种子的产出详情
      *
+     * 使用服务层逻辑计算神秘种子在该土地类型上的产出概率和产量
+     *
      * @param \App\Module\Farm\Models\FarmLandType $landType
      * @return string
      */
@@ -139,7 +141,7 @@ trait GridHelperTrait
 
         foreach ($mysterySeeds as $seed) {
             try {
-                // 使用神秘种子逻辑计算概率
+                // 使用服务层逻辑计算概率
                 $mysteryLogic = new \App\Module\Farm\Logics\MysterySeeLLogic();
                 $adjustedOutputs = $mysteryLogic->calculateAdjustedProbabilities($seed->id, $landType->id);
 
@@ -163,7 +165,7 @@ trait GridHelperTrait
                     $normalMin = $output['min_amount'];
                     $normalMax = $output['max_amount'];
 
-                    // 灾害产量范围
+                    // 灾害产量范围 - 现在从服务层获取正确的数据
                     $disasterMin = $output['disaster_min_amount'] ?? $output['min_amount'];
                     $disasterMax = $output['disaster_max_amount'] ?? $output['max_amount'];
 

+ 4 - 0
app/Module/Farm/Logics/MysterySeeLLogic.php

@@ -106,6 +106,8 @@ class MysterySeeLLogic
                 'item_id' => $output->item_id,
                 'min_amount' => $output->min_amount,
                 'max_amount' => $output->max_amount,
+                'disaster_min_amount' => $output->disaster_min_amount,
+                'disaster_max_amount' => $output->disaster_max_amount,
                 'original_probability' => $baseProbability,
                 'adjusted_probability' => $adjustedProbability,
                 'adjustment_type' => $adjustmentType,
@@ -239,6 +241,8 @@ class MysterySeeLLogic
             'item_id' => $seed->item_id,
             'min_amount' => $seed->min_output,
             'max_amount' => $seed->max_output,
+            'disaster_min_amount' => $seed->disaster_min_output,
+            'disaster_max_amount' => $seed->disaster_max_output,
             'original_probability' => 100,
             'adjusted_probability' => 100,
             'adjustment_type' => 'default',