Browse Source

refactor(farm): 重构农场模块代码

- 移除 DemoController 中未使用的代码
- 删除 GridHelperTrait 中的 columnGrowthStage 方法
- 更新 FarmCropController 中的生长阶段列显示逻辑- 优化 FarmUserSummaryController 中的土地详情和物品详情的链接- 调整 UCore\DcatAdmin\GridHelper 中的引用
notfff 7 months ago
parent
commit
31d014bcc4

+ 0 - 1
UCore/DcatAdmin/GridHelper.php

@@ -6,7 +6,6 @@ namespace UCore\DcatAdmin;
 use UCore\DcatAdmin\Grid\Views\GridHeader;
 use UCore\DcatAdmin\Traits\AdminId;
 use UCore\DcatAdmin\Traits\UserID;
-use App\Module\File\Img;
 use Carbon\CarbonInterface;
 use Carbon\Traits\Converter;
 use Dcat\Admin\Grid;

+ 2 - 0
app/Http/Controllers/DemoController.php

@@ -14,6 +14,7 @@ use Uraus\App\Common\RESPONSE_CODE;
 use Uraus\App\Request;
 use Uraus\App\Response;
 use Google\Protobuf\Internal\Message;
+use Uraus\Kku\Request\RequestLandFertilizer;
 use Uraus\Kku\Request\RequestLandSow;
 use Uraus\Kku\Request\RequestUserQueryData;
 
@@ -29,6 +30,7 @@ class DemoController extends Controller
         $user_id = $httpRequest->input('user_id');
         RequestLandSow::class;
 
+        RequestLandFertilizer::class;
     }
 
 

+ 2 - 1
app/Module/Farm/AdminControllers/FarmCropController.php

@@ -50,7 +50,8 @@ class FarmCropController extends AdminController
             $helper->columnUserId();
             $grid->column('seed_id', '种子ID')->sortable();
             $grid->column('plant_time', '种植时间')->sortable();
-            $helper->columnGrowthStage();
+            $helper->columnUseingEnmu('growth_stage', \App\Module\Farm\Enums\GROWTH_STAGE::class,'生长阶段');
+
             $grid->column('stage_end_time', '阶段结束时间')->sortable();
             $helper->columnFertilized();
             $helper->columnCreatedAt();

+ 0 - 19
app/Module/Farm/AdminControllers/Helper/GridHelperTrait.php

@@ -47,25 +47,6 @@ trait GridHelperTrait
         });
     }
 
-    /**
-     * 添加生长阶段列
-     *
-     * @param string $field 字段名
-     * @param string $label 标签名
-     * @return Column
-     */
-    public function columnGrowthStage(string $field = 'growth_stage', string $label = '生长阶段'): Column
-    {
-        return $this->grid->column($field, $label)->display(function ($value) {
-            return GROWTH_STAGE::getName($value);
-        })->label([
-            GROWTH_STAGE::SEED->value => 'default',
-            GROWTH_STAGE::SPROUT->value => 'info',
-            GROWTH_STAGE::GROWTH->value => 'primary',
-            GROWTH_STAGE::MATURE->value => 'success',
-            GROWTH_STAGE::WITHERED->value => 'danger',
-        ]);
-    }
 
     /**
      * 添加土地状态列

+ 17 - 19
app/Module/Game/AdminControllers/FarmUserSummaryController.php

@@ -7,28 +7,18 @@ use App\Module\Farm\Models\FarmCrop;
 use App\Module\Farm\Models\FarmGodBuff;
 use App\Module\Farm\Models\FarmHouseConfig;
 use App\Module\Farm\Models\FarmLand;
-use App\Module\Farm\Models\FarmLandType;
-use App\Module\Farm\Models\FarmSeed;
 use App\Module\Farm\Models\FarmUser;
-use App\Module\Farm\Services\BuffService;
-use App\Module\Farm\Services\FarmService;
-use App\Module\Farm\Services\HouseService;
-use App\Module\Farm\Services\LandService;
 use App\Module\Fund\Models\FundModel;
 use App\Module\Fund\Services\AccountService;
 use App\Module\GameItems\Enums\ITEM_TYPE;
-use App\Module\GameItems\Models\Item;
 use App\Module\GameItems\Models\ItemUser;
-use App\Module\GameItems\Services\ItemService;
 use App\Module\User\Models\User;
 use Dcat\Admin\Grid;
 use Dcat\Admin\Layout\Content;
 use Dcat\Admin\Layout\Row;
 use Dcat\Admin\Widgets\Card;
 use Dcat\Admin\Widgets\Table;
-use Dcat\Admin\Widgets\Box;
 use Dcat\Admin\Widgets\Alert;
-use Illuminate\Support\Facades\DB;
 use Spatie\RouteAttributes\Attributes\Get;
 use Spatie\RouteAttributes\Attributes\Resource;
 use UCore\DcatAdmin\AdminController;
@@ -170,7 +160,7 @@ class FarmUserSummaryController extends AdminController
         </div>
         <div class="row mt-2">
             <div class="col-md-12">
-                <a href="javascript:void(0);" class="btn btn-sm btn-primary" onclick="window.open('farm-house-configs', '_blank')">查看房屋配置</a>
+                <a href="javascript:void(0);" class="btn btn-sm btn-primary" onclick="window.open('/admin/farm-house-configs', '_blank')">查看房屋配置</a>
             </div>
         </div>
         HTML;
@@ -254,7 +244,7 @@ class FarmUserSummaryController extends AdminController
         $statsContent .= '</div>';
 
         // 创建土地详情表格
-        $headers = [  'ID','位置', '土地类型', '状态', '种植作物', '种植时间', '生长阶段' ];
+        $headers = [  'ID','位置', '土地类型', '状态', '种植作物', '种植时间', '生长阶段', '本阶段开始时间', '本阶段结束时间' ];
         $rows    = [];
 
         foreach ($lands as $land) {
@@ -265,12 +255,16 @@ class FarmUserSummaryController extends AdminController
             $cropInfo    = '无';
             $plantTime   = '';
             $growthStage = '';
+            $stageStartTime = '';
+            $stageEndTime = '';
 
             if ($crop) {
                 $seedName    = $crop->seed ? $crop->seed->name : "种子{$crop->seed_id}";
                 $cropInfo    = $seedName;
                 $plantTime   = $crop->plant_time;
                 $growthStage = $this->getGrowthStageName($crop->growth_stage);
+                $stageStartTime = $crop->stage_start_time;
+                $stageEndTime = $crop->stage_end_time;
             }
 
             $rows[] = [
@@ -281,6 +275,8 @@ class FarmUserSummaryController extends AdminController
                 $cropInfo,
                 $plantTime,
                 $growthStage,
+                $stageStartTime,
+                $stageEndTime,
             ];
         }
 
@@ -291,7 +287,7 @@ class FarmUserSummaryController extends AdminController
         $content .= <<<HTML
         <div class="row mt-2">
             <div class="col-md-12">
-                <a href="javascript:void(0);" class="btn btn-sm btn-primary" onclick="window.open('farm-lands?user_id={$userId}', '_blank')">查看土地详情</a>
+                <a href="javascript:void(0);" class="btn btn-sm btn-primary" onclick="window.open('/admin/farm-lands?user_id={$userId}', '_blank')">查看土地详情</a>
             </div>
         </div>
         HTML;
@@ -302,14 +298,15 @@ class FarmUserSummaryController extends AdminController
     /**
      * 获取生长阶段名称
      *
-     * @param int $stage 生长阶段值
+     * @param GROWTH_STAGE $stage 生长阶段枚举
      * @return string 生长阶段名称
      */
     protected function getGrowthStageName(GROWTH_STAGE $stage)
     {
         $stageNames = GROWTH_STAGE::getValueDescription();
+        $stageValue = $stage->value;
 
-        return $stageNames[$stage->valueInt()] ?? "阶段{$stage}";
+        return $stageNames[$stageValue] ?? "阶段{$stageValue}";
     }
 
     /**
@@ -360,7 +357,7 @@ class FarmUserSummaryController extends AdminController
         {$table->render()}
         <div class="row mt-2">
             <div class="col-md-12">
-                <a href="javascript:void(0);" class="btn btn-sm btn-primary" onclick="window.open('game-items-users?user_id={$userId}', '_blank')">查看物品详情</a>
+                <a href="javascript:void(0);" class="btn btn-sm btn-primary" onclick="window.open('/admin/game-items-users?user_id={$userId}', '_blank')">查看物品详情</a>
             </div>
         </div>
         HTML;
@@ -371,14 +368,15 @@ class FarmUserSummaryController extends AdminController
     /**
      * 获取物品类型名称
      *
-     * @param int $type 物品类型值
+     * @param ITEM_TYPE $type 物品类型枚举
      * @return string 物品类型名称
      */
     protected function getItemTypeName(ITEM_TYPE $type)
     {
         $typeNames = ITEM_TYPE::getValueDescription();
+        $typeValue = $type->value;
 
-        return $typeNames[$type->valueInt()] ?? "类型{$type}";
+        return $typeNames[$typeValue] ?? "类型{$typeValue}";
     }
 
     /**
@@ -422,7 +420,7 @@ class FarmUserSummaryController extends AdminController
         {$table->render()}
         <div class="row mt-2">
             <div class="col-md-12">
-                <a href="javascript:void(0);" class="btn btn-sm btn-primary" onclick="window.open('fund-accounts?user_id={$userId}', '_blank')">查看账户详情</a>
+                <a href="javascript:void(0);" class="btn btn-sm btn-primary" onclick="window.open('/admin/fund-accounts?user_id={$userId}', '_blank')">查看账户详情</a>
             </div>
         </div>
         HTML;