Parcourir la source

refactor(AppGame): 优化作物信息和宠物数据的处理逻辑- 移除了 LandInfoDto 中不必要的阶段时间处理逻辑
-优化了 PetDataDto 中宠物生活技能的处理方式
- 更新了 CropInfoDto 中阶段时间的类型和处理方式

notfff il y a 7 mois
Parent
commit
e1035f8d1f

+ 6 - 18
app/Module/AppGame/Proto/LandInfoDto.php

@@ -52,30 +52,18 @@ class LandInfoDto
                     $dataLand->setSeedPlantingTimes($landInfoDto->crop->plantTime);
                 }
             }
-            // 下一阶段的时间
-            if (!empty($landInfoDto->crop->stageEndTime)) {
-                if (is_string($landInfoDto->crop->stageEndTime)) {
-                    $nextGrowthTime = strtotime($landInfoDto->crop->stageEndTime);
-                    $dataLand->setStageNextTimes($nextGrowthTime);
-                }
-                else if (is_numeric($landInfoDto->crop->stageEndTime)) {
-                    $dataLand->setStageNextTimes($landInfoDto->crop->stageEndTime);
 
-                }
-            }
 
             // 阶段开始时间
             if (!empty($landInfoDto->crop->stageStartTime)) {
-                if (is_string($landInfoDto->crop->stageStartTime)) {
-                    $nextGrowthTime = strtotime($landInfoDto->crop->stageStartTime);
-                    $dataLand->setStageStartTimes($nextGrowthTime);
-                }
-                else if (is_numeric($landInfoDto->crop->stageStartTime)) {
-                    $dataLand->setStageStartTimes($landInfoDto->crop->stageStartTime);
+                $dataLand->setStageStartTimes($landInfoDto->crop->stageStartTime->timestamp);
 
-                }
-            }
 
+            }
+            // 下一阶段的时间
+            if (!empty($landInfoDto->crop->stageEndTime)) {
+                $dataLand->setStageNextTimes($landInfoDto->crop->stageEndTime->timestamp);
+            }
 
             // 设置种子状态,这里需要将Farm模块的生长阶段映射到Proto的种子状态
             // 假设我们有一个映射关系,这里简单地直接使用生长阶段值

+ 4 - 4
app/Module/AppGame/Proto/PetDataDto.php

@@ -19,7 +19,7 @@ class PetDataDto
     public static function toDataPet(\App\Module\Pet\Dtos\PetDataDto $petDataDto): DataPet
     {
         $dataPet = new DataPet();
-        
+
         // 设置基本宠物信息
         $dataPet->setId($petDataDto->id);
         $dataPet->setTypeId($petDataDto->typeId);
@@ -32,13 +32,13 @@ class PetDataDto
         $dataPet->setFightingCapacity($petDataDto->fightingCapacity);
         $dataPet->setGrade($petDataDto->grade);
         $dataPet->setStatus($petDataDto->status);
-        
+
         // 设置生活技能
         if (!empty($petDataDto->lifeSkills)) {
             $lifeSkills = [];
             foreach ($petDataDto->lifeSkills as $skill) {
                 $petLifeSkill = new PetLifeSkill();
-                $petLifeSkill->setPetId($petDataDto->id);
+
                 $petLifeSkill->setSkillId($skill->skillId ?? 0);
                 $petLifeSkill->setCanuse($skill->canUse ?? false);
                 $petLifeSkill->setCurnum($skill->currentCooldown ?? 0);
@@ -47,7 +47,7 @@ class PetDataDto
             }
             $dataPet->setLifeSkills($lifeSkills);
         }
-        
+
         return $dataPet;
     }
 }

+ 6 - 5
app/Module/Farm/Dtos/CropInfoDto.php

@@ -4,6 +4,7 @@ namespace App\Module\Farm\Dtos;
 
 use App\Module\Farm\Enums\GROWTH_STAGE;
 use App\Module\Farm\Models\FarmCrop;
+use Illuminate\Support\Carbon;
 
 /**
  * 作物信息数据传输对象
@@ -69,16 +70,16 @@ class CropInfoDto
     /**
      * 当前阶段开始时间
      *
-     * @var \Carbon\Carbon|null
+     * @var Carbon|null
      */
-    public $stageStartTime;
+    public ?Carbon $stageStartTime;
 
     /**
      * 当前阶段结束时间
      *
      * @var string|null
      */
-    public $stageEndTime;
+    public ?Carbon $stageEndTime;
 
     /**
      * 灾害情况
@@ -116,7 +117,7 @@ class CropInfoDto
         $dto->seedId = $crop->seed_id;
         $dto->seedName = $crop->seed->name ?? '';
 
-        //        dd($crop);
+
         $dto->plantTime = $crop->plant_time;
 
         $dto->growthStage = $crop->growth_stage->value();
@@ -126,7 +127,7 @@ class CropInfoDto
         $dto->disasters = $crop->disasters;
         $dto->fertilized = $crop->fertilized;
         $dto->finalOutputItemId = $crop->final_output_item_id;
-
+//        dd($dto);
         return $dto;
     }