Browse Source

refactor(game-items): 移除仓库层并直接使用模型

- 移除了 GameItems 模块中的多个 Repository 类
- 将相关逻辑直接移至对应的 Model 类中
- 更新了多个控制器中的代码,使其直接使用 Model 类- 优化了部分代码结构,提高了可读性和维护性
notfff 7 months ago
parent
commit
a7fe0d2d3d

+ 2 - 3
app/Module/GameItems/AdminControllers/ChestOpenLogController.php

@@ -3,7 +3,6 @@
 namespace App\Module\GameItems\AdminControllers;
 
 use App\Module\GameItems\Repositorys\ItemChestOpenLogRepository;
-use App\Module\GameItems\Repositorys\ItemRepository;
 use Dcat\Admin\Grid;
 use Dcat\Admin\Show;
 use UCore\DcatAdmin\AdminController;
@@ -76,7 +75,7 @@ class ChestOpenLogController extends AdminController
                 $helper->equal('id', 'ID');
                 $helper->equal('user_id', '用户ID');
                 $filter->equal('chest_id', '宝箱')->select(
-                    (new ItemRepository())->where('type', 5)->pluck('name', 'id')
+                    \App\Module\GameItems\Models\Item::where('type', 5)->pluck('name', 'id')
                 );
                 $filter->equal('pity_triggered', '触发保底')->radio([
                     1 => '是',
@@ -148,7 +147,7 @@ class ChestOpenLogController extends AdminController
                         $html .= '<tbody>';
 
                         foreach ($chestResult as $item) {
-                            $itemInfo = (new ItemRepository())->find($item['item_id']);
+                            $itemInfo = \App\Module\GameItems\Models\Item::find($item['item_id']);
                             $itemName = $itemInfo ? $itemInfo->name : '未知物品';
 
                             $html .= '<tr>';

+ 2 - 2
app/Module/GameItems/AdminControllers/DismantleLogController.php

@@ -78,11 +78,11 @@ class DismantleLogController extends AdminController
                 $helper->equal('id', 'ID');
                 $helper->equal('user_id', '用户ID');
                 $filter->equal('item_id', '物品')->select(
-                    (new ItemRepository())->pluck('name', 'id')
+                    \App\Module\GameItems\Models\Item::pluck('name', 'id')
                 );
                 $helper->equal('instance_id', '实例ID');
                 $filter->equal('rule_id', '规则ID')->select(
-                    (new ItemDismantleRuleRepository())->pluck('id', 'id')
+                    \App\Module\GameItems\Models\ItemDismantleRule::pluck('id', 'id')
                 );
                 $filter->between('dismantle_time', '分解时间')->datetime();
             });

+ 1 - 1
app/Module/GameItems/AdminControllers/InstanceController.php

@@ -55,7 +55,7 @@ class InstanceController extends AdminController
                 $helper = new FilterHelper($filter, $this);
                 $helper->equal('id', 'ID');
                 $filter->equal('item_id', '基础物品')->select(
-                    (new ItemRepository())->where('is_unique', 1)->pluck('name', 'id')
+                    \App\Module\GameItems\Models\Item::where('is_unique', 1)->pluck('name', 'id')
                 );
                 $filter->like('name', '实例名称');
                 $filter->equal('tradable', '可交易')->radio([

+ 4 - 4
app/Module/GameItems/AdminControllers/UserOutputCounterController.php

@@ -3,7 +3,7 @@
 namespace App\Module\GameItems\AdminControllers;
 
 use App\Module\GameItems\Repositorys\ItemUserOutputCounterRepository;
-use App\Module\GameItems\Repositorys\ItemOutputLimitRepository;
+use App\Module\GameItems\Models\ItemOutputLimit;
 use Dcat\Admin\Grid;
 use Dcat\Admin\Show;
 use Dcat\Admin\Layout\Content;
@@ -73,10 +73,10 @@ class UserOutputCounterController extends AdminController
                 $helper->equal('id', 'ID');
                 $helper->equal('user_id', '用户ID');
                 $filter->equal('limit_id', '限制ID')->select(
-                    (new ItemOutputLimitRepository())->with('item')->get()->pluck('item.name', 'id')
+                    \App\Module\GameItems\Models\ItemOutputLimit::with('item')->get()->pluck('item.name', 'id')
                 );
-                $helper->between('current_count', '当前计数');
-                $helper->between('last_reset_time', '上次重置时间')->datetime();
+                $filter->between('current_count', '当前计数');
+                $filter->between('last_reset_time', '上次重置时间')->datetime();
             });
         });
     }

+ 4 - 5
app/Module/GameItems/AdminControllers/UserRecipeController.php

@@ -3,7 +3,6 @@
 namespace App\Module\GameItems\AdminControllers;
 
 use App\Module\GameItems\Repositorys\ItemUserRecipeRepository;
-use App\Module\GameItems\Repositorys\ItemRecipeRepository;
 use Dcat\Admin\Grid;
 use Dcat\Admin\Show;
 use Dcat\Admin\Layout\Content;
@@ -75,15 +74,15 @@ class UserRecipeController extends AdminController
                 $helper->equal('id', 'ID');
                 $helper->equal('user_id', '用户ID');
                 $filter->equal('recipe_id', '配方')->select(
-                    (new ItemRecipeRepository())->pluck('name', 'id')
+                    \App\Module\GameItems\Models\ItemRecipe::pluck('name', 'id')
                 );
                 $filter->equal('is_unlocked', '是否解锁')->radio([
                     1 => '是',
                     0 => '否',
                 ]);
-                $helper->between('unlock_time', '解锁时间')->datetime();
-                $helper->between('craft_count', '合成次数');
-                $helper->between('last_craft_time', '上次合成时间')->datetime();
+                $filter->between('unlock_time', '解锁时间')->datetime();
+                $filter->between('craft_count', '合成次数');
+                $filter->between('last_craft_time', '上次合成时间')->datetime();
             });
         });
     }

+ 6 - 2
app/Module/Pet/AdminControllers/Helper/GridHelperTrait.php

@@ -35,7 +35,9 @@ trait GridHelperTrait
                 PetGrade::FOURTH->value => '四品',
             ];
 
-            return "<span class='label bg-{$colors[$value]}'>{$labels[$value]}</span>";
+            $color = $colors[$value] ?? 'default';
+            $label = $labels[$value] ?? '未知';
+            return "<span class='label bg-{$color}'>{$label}</span>";
         })->label();
     }
 
@@ -67,7 +69,9 @@ trait GridHelperTrait
                 PetStatus::DEAD->value => '死亡',
             ];
 
-            return "<span class='label bg-{$colors[$value]}'>{$labels[$value]}</span>";
+            $color = $colors[$value] ?? 'default';
+            $label = $labels[$value] ?? '未知';
+            return "<span class='label bg-{$color}'>{$label}</span>";
         })->label();
     }
 

+ 7 - 1
app/Module/Pet/AdminControllers/PetConfigController.php

@@ -64,7 +64,13 @@ class PetConfigController extends AdminController
                 return $value;
             });
 
-            $grid->column('stamina_recovery', '体力恢复值/分钟')->sortable();
+            $grid->column('stamina_recovery', '体力恢复值/分钟')->display(function () {
+                $numericAttributes = $this->numeric_attributes;
+                if ($numericAttributes && isset($numericAttributes->stamina_recovery)) {
+                    return $numericAttributes->stamina_recovery . ' /分钟';
+                }
+                return '-';
+            });
             $grid->column('created_at', '创建时间');
             $grid->column('updated_at', '更新时间');
 

+ 6 - 6
app/Module/Pet/Models/PetUser.php

@@ -10,8 +10,8 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
 /**
  * 宠物模型
  *
- * field start 
- * @property  int  $id  
+ * field start
+ * @property  int  $id
  * @property  int  $user_id  用户ID
  * @property  string  $name  宠物名称
  * @property  int  $grade  品阶
@@ -19,8 +19,8 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
  * @property  int  $experience  经验
  * @property  int  $stamina  体力
  * @property  int  $status  宠物状态:0未知,1正常,2战斗中,3死亡
- * @property  \Carbon\Carbon  $created_at  
- * @property  \Carbon\Carbon  $updated_at  
+ * @property  \Carbon\Carbon  $created_at
+ * @property  \Carbon\Carbon  $updated_at
  * field end
  */
 class PetUser extends ModelCore
@@ -37,7 +37,7 @@ class PetUser extends ModelCore
      *
      * @var array
      */
-    // attrlist start 
+    // attrlist start
     protected $fillable = [
         'id',
         'user_id',
@@ -73,7 +73,7 @@ class PetUser extends ModelCore
      */
     public function user(): BelongsTo
     {
-        return $this->belongsTo(\App\Models\User::class, 'user_id');
+        return $this->belongsTo(\App\Module\User\Models\User::class, 'user_id');
     }
 
     /**