Browse Source

refactor(farm): 重构作物相关逻辑和数据处理

- 更新了 CropInfoDto 填充逻辑,增加了阶段结束时间字段- 调整了 FarmCropController 中的表单字段
- 重构了 CropLogic 中的施肥逻辑,移除了不必要的生长阶段更新
- 更新了 FarmCrop 模型,增加了 GROWTH_STAGE枚举类型
- 移除了
notfff 7 months ago
parent
commit
be6146aa45

+ 20 - 7
app/Module/Activity/AdminControllers/Actions/ClaimRewardAction.php

@@ -11,7 +11,7 @@ class CropInfoDto
 {
     /**
      * 将Farm模块的CropInfoDto填充到Protobuf的DataLand对象中
-     * 
+     *
      * 注意:此方法不创建新的DataLand对象,而是填充现有对象的作物相关字段
      *
      * @param \App\Module\Farm\Dtos\CropInfoDto $cropInfoDto
@@ -23,24 +23,37 @@ class CropInfoDto
         // 设置作物ID和种子ID
         $dataLand->setPlantId($cropInfoDto->id);
         $dataLand->setSeedId($cropInfoDto->seedId);
-        
+
         // 设置种植时间
         if (!empty($cropInfoDto->plantTime)) {
             // 如果plantTime是字符串格式的日期时间,转换为时间戳
             if (is_string($cropInfoDto->plantTime)) {
                 $plantTime = strtotime($cropInfoDto->plantTime);
                 $dataLand->setSeedPlantingTimes($plantTime);
-            } 
+            }
             // 如果已经是时间戳,直接使用
             else if (is_numeric($cropInfoDto->plantTime)) {
                 $dataLand->setSeedPlantingTimes($cropInfoDto->plantTime);
             }
         }
-        
+        // 下一个阶段的时间
+        if (!empty($cropInfoDto->stageEndTime)) {
+            // 如果stageEndTime是字符串格式的日期时间,转换为时间戳
+            if (is_string($cropInfoDto->stageEndTime)) {
+                $stageEndTime = strtotime($cropInfoDto->stageEndTime);
+                $dataLand->setSeedNextTimes($stageEndTime);
+            }
+            // 如果已经是时间戳,直接使用
+            else if (is_numeric($cropInfoDto->stageEndTime)) {
+                $dataLand->setSeedNextTimes($cropInfoDto->stageEndTime);
+            }
+
+        }
+
         // 设置种子状态,这里需要将Farm模块的生长阶段映射到Proto的种子状态
         // 假设我们有一个映射关系,这里简单地直接使用生长阶段值
         $dataLand->setSeedStatus($cropInfoDto->growthStage);
-        
+
         // 检查是否有灾害
         if (!empty($cropInfoDto->disasters)) {
             foreach ($cropInfoDto->disasters as $disaster) {
@@ -60,10 +73,10 @@ class CropInfoDto
                 }
             }
         }
-        
+
         // 检查是否可以施肥
         $dataLand->setCanFertilization(!$cropInfoDto->fertilized);
-        
+
         return $dataLand;
     }
 }

+ 6 - 6
app/Module/Farm/AdminControllers/FarmCropController.php

@@ -109,17 +109,17 @@ class FarmCropController extends AdminController
 
             $form->display('id', 'ID');
             $form->text('land_id', '土地ID')->required()->rules('required|integer');
-            $helper->userId('user_id', '用户ID');
+            $helper->display('user_id', '用户ID');
 
             // 获取所有种子选项
-            $seedRepository = new FarmSeedRepository();
-            $seedOptions = $seedRepository->all()->pluck('name', 'id')->toArray();
 
-            $form->select('seed_id', '种子ID')->options($seedOptions)->required();
+
+
+            $form->display('seed_id', '种子ID');
             $form->datetime('plant_time', '种植时间')->required();
-            $helper->selectGrowthStage('growth_stage', '生长阶段');
+            $helper->selectOptionCast('growth_stage', '生长阶段');
             $form->datetime('stage_end_time', '阶段结束时间');
-            $helper->tableDisasters('disasters', '灾害情况');
+            $helper->display('disasters', '灾害情况');
             $helper->switchFertilized();
 
             $form->display('created_at', '创建时间');

+ 1 - 1
app/Module/Farm/AdminControllers/Helper/FormHelperTrait.php

@@ -164,7 +164,7 @@ trait FormHelperTrait
      * @param string $label 标签名
      * @return Field\Switch
      */
-    public function switchFertilized(string $field = 'fertilized', string $label = '已施肥'): Field\Switch
+    public function switchFertilized(string $field = 'fertilized', string $label = '已施肥'): Field\SwitchField
     {
         return $this->form->switch($field, $label)->default(false);
     }

+ 1 - 1
app/Module/Farm/Commands/InitializeUserLandsCommand.php

@@ -10,7 +10,7 @@ CREATE TABLE `kku_farm_house_configs` (
   `output_bonus` decimal(5,2) NOT NULL DEFAULT '0.00' COMMENT '产出加成',
   `special_land_limit` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '特殊土地上限',
   `upgrade_materials` int unsigned DEFAULT NULL COMMENT '升级所需消耗组ID,关联game_consume_groups表',
-  `farm_house_configs` int unsigned DEFAULT '1' COMMENT '该等级可用的土地数量',
+  `available_lands` int unsigned DEFAULT '1' COMMENT '该等级可用的土地数量',
   `downgrade_days` int unsigned DEFAULT NULL COMMENT '降级天数,NULL表示不降级',
   `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
   `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',

+ 2 - 14
app/Module/Farm/Databases/Migrations/alter_farm_house_configs_upgrade_materials.sql

@@ -17,6 +17,7 @@ use App\Module\Farm\Models\FarmSeed;
 use App\Module\Farm\Models\FarmSeedOutput;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Log;
+use UCore\Db\Helper;
 
 /**
  * 作物管理逻辑
@@ -269,6 +270,7 @@ class CropLogic
     public function useFertilizer(int $userId, int $landId,int $crop_growth_time): bool
     {
         try {
+            Helper::check_tr();
             // 获取土地信息
             /**
              * @var FarmLand $land
@@ -328,20 +330,6 @@ class CropLogic
 
             $crop->save();
 
-            // 检查施肥后是否需要更新生长阶段
-            if ($crop->stage_end_time && $crop->stage_end_time <= now()) {
-                $this->updateGrowthStage($crop->id);
-
-                // 重新获取作物信息,因为updateGrowthStage可能已经更新了它
-                $crop = FarmCrop::find($crop->id);
-
-                Log::info('施肥后立即更新了生长阶段', [
-                    'crop_id' => $crop->id,
-                    'new_growth_stage' => $crop->growth_stage,
-                    'new_stage_end_time' => $crop->stage_end_time
-                ]);
-            }
-
             Log::info('使用化肥成功', [
                 'user_id' => $userId,
                 'land_id' => $landId,

+ 2 - 0
app/Module/Farm/Models/FarmCrop.php

@@ -2,6 +2,7 @@
 
 namespace App\Module\Farm\Models;
 
+use App\Module\Farm\Enums\GROWTH_STAGE;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Database\Eloquent\Relations\BelongsTo;
 
@@ -66,6 +67,7 @@ class FarmCrop extends Model
      */
     protected $casts = [
         'disasters' => 'json',
+        'growth_stage'=>GROWTH_STAGE::class,
         'fertilized' => 'boolean',
     ];
 

+ 1 - 1
app/Module/Farm/Models/FarmHouseConfig.php

@@ -7,7 +7,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
 
 /**
  * 房屋等级配置模型
- * field start
+ * field start 
  * @property  int  $id  主键ID
  * @property  int  $level  等级
  * @property  float  $output_bonus  产出加成

+ 0 - 58
app/Module/Farm/Repositories/FarmCropRepository.php

@@ -21,63 +21,5 @@ class FarmCropRepository extends EloquentRepository
      */
     protected $eloquentClass = FarmCrop::class;
 
-    /**
-     * 根据土地ID查找作物
-     *
-     * @param int $landId
-     * @return FarmCrop|null
-     */
-    public function findByLandId(int $landId): ?FarmCrop
-    {
-        return FarmCrop::where('land_id', $landId)->first();
-    }
-
-    /**
-     * 获取用户的所有作物
-     *
-     * @param int $userId
-     * @return Collection
-     */
-    public function findByUserId(int $userId): Collection
-    {
-        return FarmCrop::where('user_id', $userId)->get();
-    }
-
-    /**
-     * 获取用户指定生长阶段的作物
-     *
-     * @param int $userId
-     * @param int $growthStage
-     * @return Collection
-     */
-    public function findByUserIdAndGrowthStage(int $userId, int $growthStage): Collection
-    {
-        return FarmCrop::where('user_id', $userId)
-            ->where('growth_stage', $growthStage)
-            ->get();
-    }
 
-    /**
-     * 获取需要更新生长阶段的作物
-     *
-     * @return Collection
-     */
-    public function findNeedUpdateGrowthStage(): Collection
-    {
-        return FarmCrop::whereNotNull('stage_end_time')
-            ->where('stage_end_time', '<=', now())
-            ->where('growth_stage', '<', 5) // 不包括枯萎期
-            ->get();
-    }
-
-    /**
-     * 获取指定种子类型的作物
-     *
-     * @param int $seedId
-     * @return Collection
-     */
-    public function findBySeedId(int $seedId): Collection
-    {
-        return FarmCrop::where('seed_id', $seedId)->get();
-    }
 }

+ 15 - 0
app/Module/Farm/Services/CropService.php

@@ -130,6 +130,21 @@ class CropService
         }
     }
 
+    /**
+     * 更新作物生长阶段
+     *
+     * @param int $cropid
+     * @return bool
+     */
+    public static function updateGrowthStage(int $cropid): bool
+    {
+        // 检查施肥后是否需要更新生长阶段
+        $cropLogic = new CropLogic();
+
+        return $cropLogic->updateGrowthStage($cropid);
+    }
+
+
     /**
      * 清理灾害
      *

+ 9 - 4
app/Module/Fund/Docs/货币与账户概念使用指南.md

@@ -14,6 +14,8 @@ use App\Module\GameItems\Models\ItemUser;
 use Exception;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Event;
+use UCore\Db\Helper;
+use UCore\Dto\Res;
 
 /**
  * 物品逻辑类
@@ -306,6 +308,8 @@ class Item
      */
     public static function consumeNormalItem(int $userId, int $itemId, int $quantity, array $options = []): array
     {
+        Helper::check_tr();
+
         // 获取用户物品
         $userItems = ItemUser::where('user_id', $userId)
             ->where('item_id', $itemId)
@@ -410,8 +414,10 @@ class Item
      * @return array 消耗结果
      * @throws Exception
      */
-    public static function consumeUniqueItem(int $userId, int $itemId, int $instanceId, array $options = []): array
+    public static function consumeUniqueItem(int $userId, int $itemId, int $instanceId, array $options = []): Res
     {
+        Helper::check_tr();
+
         // 获取用户物品
         $userItem = ItemUser::where('user_id', $userId)
             ->where('item_id', $itemId)
@@ -452,11 +458,10 @@ class Item
         // 触发物品消耗事件
         Event::dispatch(new ItemConsumed($userId, $itemId, $instanceId, 1, $options));
 
-        return [
-            'success' => true,
+        return Res::success('',[
             'item_id' => $itemId,
             'instance_id' => $instanceId,
-        ];
+        ]) ;
     }
 
     /**

+ 2 - 0
app/Module/GameItems/Services/ItemService.php

@@ -10,6 +10,7 @@ use App\Module\GameItems\Models\Item;
 use App\Module\GameItems\Models\ItemUser;
 use Exception;
 use Illuminate\Support\Collection as SupportCollection;
+use UCore\Db\Helper;
 use UCore\Dto\Res;
 
 /**
@@ -118,6 +119,7 @@ class ItemService
      */
     public static function consumeItem(int $userId, int $itemId, ?int $instanceId, int $quantity, array $options = []): array
     {
+        Helper::check_tr();
         // 获取物品信息(确保物品存在)
         Item::findOrFail($itemId);
 

+ 1 - 1
app/Module/Shop/Databases/GenerateSql/README.md

@@ -89,7 +89,7 @@ return array (
       7 => 'query_data',
     ),
   ),
-  'generated_at' => '+08:00 2025-05-21 21:12:53',
+  'generated_at' => '+08:00 2025-05-22 16:42:40',
   'conventions' => 
   array (
     'handler_namespace' => 'App\\Module\\AppGame\\Handler',

+ 5 - 4
protophp/GPBMetadata/Proto/Game.php

@@ -16,7 +16,7 @@ class Game
         }
         $pool->internalAddGeneratedFile(
             '
-Ï™
+è™
 proto/game.proto	uraus.kku"÷2
 Request;
 public_tokend (2%.uraus.kku.Request.RequestPublicToken;
@@ -471,7 +471,7 @@ to_user_id (
 APPLYING	
 AGREE
 
-REFUSE"Æ)
+REFUSE"ß)
 Common)
 KeyValue
 kname (	
@@ -546,7 +546,7 @@ pet_simple (2.uraus.kku.Common.DataPetSimple-
 item_id (
 instance_id (
 quantity (
-expire_time (á
+expire_time (ú
 DataLand
 
 id (
@@ -562,7 +562,8 @@ pet_simple (2.uraus.kku.Common.DataPetSimple-
 seed_id (
 fruit_id  (
 plant_id! (2
-seed_status" (2.uraus.kku.Common.SEED_STATUS8
+seed_status" (2.uraus.kku.Common.SEED_STATUS
+seed_next_times# (8
 DataGod
 
 id (

+ 34 - 0
protophp/Uraus/Kku/Common/DataLand.php

@@ -100,6 +100,12 @@ class DataLand extends \Google\Protobuf\Internal\Message
      * Generated from protobuf field <code>.uraus.kku.Common.SEED_STATUS seed_status = 34;</code>
      */
     protected $seed_status = 0;
+    /**
+     * 下一阶段时间
+     *
+     * Generated from protobuf field <code>int64 seed_next_times = 35;</code>
+     */
+    protected $seed_next_times = 0;
 
     /**
      * Constructor.
@@ -136,6 +142,8 @@ class DataLand extends \Google\Protobuf\Internal\Message
      *           植株ID
      *     @type int $seed_status
      *           种子状态
+     *     @type int|string $seed_next_times
+     *           下一阶段时间
      * }
      */
     public function __construct($data = NULL) {
@@ -509,6 +517,32 @@ class DataLand extends \Google\Protobuf\Internal\Message
         return $this;
     }
 
+    /**
+     * 下一阶段时间
+     *
+     * Generated from protobuf field <code>int64 seed_next_times = 35;</code>
+     * @return int|string
+     */
+    public function getSeedNextTimes()
+    {
+        return $this->seed_next_times;
+    }
+
+    /**
+     * 下一阶段时间
+     *
+     * Generated from protobuf field <code>int64 seed_next_times = 35;</code>
+     * @param int|string $var
+     * @return $this
+     */
+    public function setSeedNextTimes($var)
+    {
+        GPBUtil::checkInt64($var);
+        $this->seed_next_times = $var;
+
+        return $this;
+    }
+
 }
 
 // Adding a class alias for backwards compatibility with the previous class name.

+ 0 - 1
protophp/Uraus/Kku/Common/SEED_STATUS.php

@@ -25,7 +25,6 @@ class SEED_STATUS
      * Generated from protobuf enum <code>SEEN_STAGE = 1;</code>
      */
     const SEEN_STAGE = 1;
-
     /**
      * 发芽
      *

+ 6 - 0
vendor/composer/autoload_classmap.php

@@ -277,6 +277,7 @@ return array(
     'App\\Module\\Farm\\Commands\\GenerateFarmHouseConfigJson' => $baseDir . '/app/Module/Farm/Commands/GenerateFarmHouseConfigJson.php',
     'App\\Module\\Farm\\Commands\\GenerateFarmLandConfigJson' => $baseDir . '/app/Module/Farm/Commands/GenerateFarmLandConfigJson.php',
     'App\\Module\\Farm\\Commands\\GenerateFarmShrineConfigJson' => $baseDir . '/app/Module/Farm/Commands/GenerateFarmShrineConfigJson.php',
+    'App\\Module\\Farm\\Commands\\InitializeUserLandsCommand' => $baseDir . '/app/Module/Farm/Commands/InitializeUserLandsCommand.php',
     'App\\Module\\Farm\\Commands\\MigrateLandUpgradeConditionsToConditionGroupsCommand' => $baseDir . '/app/Module/Farm/Commands/MigrateLandUpgradeConditionsToConditionGroupsCommand.php',
     'App\\Module\\Farm\\Commands\\MigrateLandUpgradeMaterialsToConsumeGroupsCommand' => $baseDir . '/app/Module/Farm/Commands/MigrateLandUpgradeMaterialsToConsumeGroupsCommand.php',
     'App\\Module\\Farm\\Commands\\UpdateCropGrowthCommand' => $baseDir . '/app/Module/Farm/Commands/UpdateCropGrowthCommand.php',
@@ -305,10 +306,13 @@ return array(
     'App\\Module\\Farm\\Events\\HouseUpgradedEvent' => $baseDir . '/app/Module/Farm/Events/HouseUpgradedEvent.php',
     'App\\Module\\Farm\\Events\\LandUpgradedEvent' => $baseDir . '/app/Module/Farm/Events/LandUpgradedEvent.php',
     'App\\Module\\Farm\\Events\\TeamProfitCreatedEvent' => $baseDir . '/app/Module/Farm/Events/TeamProfitCreatedEvent.php',
+    'App\\Module\\Farm\\Jobs\\CheckUserLandsAfterLoginJob' => $baseDir . '/app/Module/Farm/Jobs/CheckUserLandsAfterLoginJob.php',
+    'App\\Module\\Farm\\Listeners\\AddLandAfterHouseUpgradeListener' => $baseDir . '/app/Module/Farm/Listeners/AddLandAfterHouseUpgradeListener.php',
     'App\\Module\\Farm\\Listeners\\CalculateHarvestOutputListener' => $baseDir . '/app/Module/Farm/Listeners/CalculateHarvestOutputListener.php',
     'App\\Module\\Farm\\Listeners\\CheckHouseDowngradeListener' => $baseDir . '/app/Module/Farm/Listeners/CheckHouseDowngradeListener.php',
     'App\\Module\\Farm\\Listeners\\DistributeTeamProfitListener' => $baseDir . '/app/Module/Farm/Listeners/DistributeTeamProfitListener.php',
     'App\\Module\\Farm\\Listeners\\GenerateDisasterListener' => $baseDir . '/app/Module/Farm/Listeners/GenerateDisasterListener.php',
+    'App\\Module\\Farm\\Listeners\\LoginSuccessListener' => $baseDir . '/app/Module/Farm/Listeners/LoginSuccessListener.php',
     'App\\Module\\Farm\\Listeners\\UpdateCropStatusListener' => $baseDir . '/app/Module/Farm/Listeners/UpdateCropStatusListener.php',
     'App\\Module\\Farm\\Logics\\BuffLogic' => $baseDir . '/app/Module/Farm/Logics/BuffLogic.php',
     'App\\Module\\Farm\\Logics\\CropLogic' => $baseDir . '/app/Module/Farm/Logics/CropLogic.php',
@@ -573,6 +577,8 @@ return array(
     'App\\Module\\GameItems\\Config\\ChestCostWhitelist' => $baseDir . '/app/Module/GameItems/Config/ChestCostWhitelist.php',
     'App\\Module\\GameItems\\Config\\NumericAttributesWhitelist' => $baseDir . '/app/Module/GameItems/Config/NumericAttributesWhitelist.php',
     'App\\Module\\GameItems\\Dtos\\ItemChestOpenCostDto' => $baseDir . '/app/Module/GameItems/Dtos/ItemChestOpenCostDto.php',
+    'App\\Module\\GameItems\\Dtos\\ItemDto' => $baseDir . '/app/Module/GameItems/Dtos/ItemDto.php',
+    'App\\Module\\GameItems\\Dtos\\ItemUserDto' => $baseDir . '/app/Module/GameItems/Dtos/ItemUserDto.php',
     'App\\Module\\GameItems\\Enums\\CHEST_COST_TYPE' => $baseDir . '/app/Module/GameItems/Enums/CHEST_COST_TYPE.php',
     'App\\Module\\GameItems\\Enums\\ITEM_BIND_TYPE' => $baseDir . '/app/Module/GameItems/Enums/ITEM_BIND_TYPE.php',
     'App\\Module\\GameItems\\Enums\\ITEM_TYPE' => $baseDir . '/app/Module/GameItems/Enums/ITEM_TYPE.php',

+ 6 - 0
vendor/composer/autoload_static.php

@@ -997,6 +997,7 @@ class ComposerStaticInita2207959542f13e6e79e83f2b0d9a425
         'App\\Module\\Farm\\Commands\\GenerateFarmHouseConfigJson' => __DIR__ . '/../..' . '/app/Module/Farm/Commands/GenerateFarmHouseConfigJson.php',
         'App\\Module\\Farm\\Commands\\GenerateFarmLandConfigJson' => __DIR__ . '/../..' . '/app/Module/Farm/Commands/GenerateFarmLandConfigJson.php',
         'App\\Module\\Farm\\Commands\\GenerateFarmShrineConfigJson' => __DIR__ . '/../..' . '/app/Module/Farm/Commands/GenerateFarmShrineConfigJson.php',
+        'App\\Module\\Farm\\Commands\\InitializeUserLandsCommand' => __DIR__ . '/../..' . '/app/Module/Farm/Commands/InitializeUserLandsCommand.php',
         'App\\Module\\Farm\\Commands\\MigrateLandUpgradeConditionsToConditionGroupsCommand' => __DIR__ . '/../..' . '/app/Module/Farm/Commands/MigrateLandUpgradeConditionsToConditionGroupsCommand.php',
         'App\\Module\\Farm\\Commands\\MigrateLandUpgradeMaterialsToConsumeGroupsCommand' => __DIR__ . '/../..' . '/app/Module/Farm/Commands/MigrateLandUpgradeMaterialsToConsumeGroupsCommand.php',
         'App\\Module\\Farm\\Commands\\UpdateCropGrowthCommand' => __DIR__ . '/../..' . '/app/Module/Farm/Commands/UpdateCropGrowthCommand.php',
@@ -1025,10 +1026,13 @@ class ComposerStaticInita2207959542f13e6e79e83f2b0d9a425
         'App\\Module\\Farm\\Events\\HouseUpgradedEvent' => __DIR__ . '/../..' . '/app/Module/Farm/Events/HouseUpgradedEvent.php',
         'App\\Module\\Farm\\Events\\LandUpgradedEvent' => __DIR__ . '/../..' . '/app/Module/Farm/Events/LandUpgradedEvent.php',
         'App\\Module\\Farm\\Events\\TeamProfitCreatedEvent' => __DIR__ . '/../..' . '/app/Module/Farm/Events/TeamProfitCreatedEvent.php',
+        'App\\Module\\Farm\\Jobs\\CheckUserLandsAfterLoginJob' => __DIR__ . '/../..' . '/app/Module/Farm/Jobs/CheckUserLandsAfterLoginJob.php',
+        'App\\Module\\Farm\\Listeners\\AddLandAfterHouseUpgradeListener' => __DIR__ . '/../..' . '/app/Module/Farm/Listeners/AddLandAfterHouseUpgradeListener.php',
         'App\\Module\\Farm\\Listeners\\CalculateHarvestOutputListener' => __DIR__ . '/../..' . '/app/Module/Farm/Listeners/CalculateHarvestOutputListener.php',
         'App\\Module\\Farm\\Listeners\\CheckHouseDowngradeListener' => __DIR__ . '/../..' . '/app/Module/Farm/Listeners/CheckHouseDowngradeListener.php',
         'App\\Module\\Farm\\Listeners\\DistributeTeamProfitListener' => __DIR__ . '/../..' . '/app/Module/Farm/Listeners/DistributeTeamProfitListener.php',
         'App\\Module\\Farm\\Listeners\\GenerateDisasterListener' => __DIR__ . '/../..' . '/app/Module/Farm/Listeners/GenerateDisasterListener.php',
+        'App\\Module\\Farm\\Listeners\\LoginSuccessListener' => __DIR__ . '/../..' . '/app/Module/Farm/Listeners/LoginSuccessListener.php',
         'App\\Module\\Farm\\Listeners\\UpdateCropStatusListener' => __DIR__ . '/../..' . '/app/Module/Farm/Listeners/UpdateCropStatusListener.php',
         'App\\Module\\Farm\\Logics\\BuffLogic' => __DIR__ . '/../..' . '/app/Module/Farm/Logics/BuffLogic.php',
         'App\\Module\\Farm\\Logics\\CropLogic' => __DIR__ . '/../..' . '/app/Module/Farm/Logics/CropLogic.php',
@@ -1293,6 +1297,8 @@ class ComposerStaticInita2207959542f13e6e79e83f2b0d9a425
         'App\\Module\\GameItems\\Config\\ChestCostWhitelist' => __DIR__ . '/../..' . '/app/Module/GameItems/Config/ChestCostWhitelist.php',
         'App\\Module\\GameItems\\Config\\NumericAttributesWhitelist' => __DIR__ . '/../..' . '/app/Module/GameItems/Config/NumericAttributesWhitelist.php',
         'App\\Module\\GameItems\\Dtos\\ItemChestOpenCostDto' => __DIR__ . '/../..' . '/app/Module/GameItems/Dtos/ItemChestOpenCostDto.php',
+        'App\\Module\\GameItems\\Dtos\\ItemDto' => __DIR__ . '/../..' . '/app/Module/GameItems/Dtos/ItemDto.php',
+        'App\\Module\\GameItems\\Dtos\\ItemUserDto' => __DIR__ . '/../..' . '/app/Module/GameItems/Dtos/ItemUserDto.php',
         'App\\Module\\GameItems\\Enums\\CHEST_COST_TYPE' => __DIR__ . '/../..' . '/app/Module/GameItems/Enums/CHEST_COST_TYPE.php',
         'App\\Module\\GameItems\\Enums\\ITEM_BIND_TYPE' => __DIR__ . '/../..' . '/app/Module/GameItems/Enums/ITEM_BIND_TYPE.php',
         'App\\Module\\GameItems\\Enums\\ITEM_TYPE' => __DIR__ . '/../..' . '/app/Module/GameItems/Enums/ITEM_TYPE.php',