Forráskód Böngészése

移除调试信息并完善AppGameProtobufResponseListener的兼容性处理:支持lifeSkills的对象和数组两种格式

notfff 7 hónapja
szülő
commit
61d9749595

+ 5 - 29
app/Module/AppGame/Listeners/AppGameProtobufResponseListener.php

@@ -99,46 +99,22 @@ class AppGameProtobufResponseListener
             $p->setGrade($pet->grade);
             $lifeSkills=[];
 
-            // 添加调试信息
-            Log::debug('处理宠物生活技能数据', [
-                'user_id' => $user_id,
-                'pet_id' => $pet->id,
-                'pet_class' => get_class($pet),
-                'life_skills_type' => gettype($pet->lifeSkills),
-                'life_skills_count' => count($pet->lifeSkills)
-            ]);
-
-            foreach ($pet->lifeSkills as $index => $lifeSkill){
-                // 添加调试信息
-                Log::debug('处理单个生活技能', [
-                    'user_id' => $user_id,
-                    'pet_id' => $pet->id,
-                    'skill_index' => $index,
-                    'skill_type' => gettype($lifeSkill),
-                    'skill_class' => is_object($lifeSkill) ? get_class($lifeSkill) : 'not_object'
-                ]);
-
+            foreach ($pet->lifeSkills as $lifeSkill){
                 $ls = new \Uraus\Kku\Common\PetLifeSkill();
 
-                // 安全地访问属性
+                // 兼容处理:支持对象和数组两种格式
                 if (is_object($lifeSkill)) {
+                    // 对象格式(正常情况)
                     $ls->setSkillId($lifeSkill->skillId);
                     $ls->setCanuse($lifeSkill->canuse);
                     $ls->setCurnum($lifeSkill->curnum);
                     $ls->setMaxnum($lifeSkill->maxnum);
                 } elseif (is_array($lifeSkill)) {
-                    // 如果是数组,使用数组访问方式
-                    $ls->setSkillId($lifeSkill['skill_id'] ?? 0);
+                    // 数组格式(缓存恢复时的兼容处理)
+                    $ls->setSkillId($lifeSkill['skill_id'] ?? $lifeSkill['skillId'] ?? 0);
                     $ls->setCanuse($lifeSkill['canuse'] ?? false);
                     $ls->setCurnum($lifeSkill['curnum'] ?? 0);
                     $ls->setMaxnum($lifeSkill['maxnum'] ?? 0);
-
-                    Log::warning('生活技能数据是数组而不是对象', [
-                        'user_id' => $user_id,
-                        'pet_id' => $pet->id,
-                        'skill_index' => $index,
-                        'skill_data' => $lifeSkill
-                    ]);
                 }
 
                 $lifeSkills[] = $ls;

+ 42 - 0
tests/Dev/TestShifei.php

@@ -0,0 +1,42 @@
+<?php
+
+namespace Dev;
+
+use Tests\TestCase;
+
+/**
+ * 测试施肥
+ * 
+ */
+class TestShifei extends TestCase
+{
+
+    public $token = '';
+
+    public function test_1()
+    {
+
+    }
+
+    private function requestProtobuf()
+    {
+
+        return '{
+	"runUnid": "683559453fc5c",
+	"runMs": "1093",
+	"code": "OK",
+	"callpath": "Land-Fertilizer",
+	"lastData": {
+		"items": [
+			{
+				"itemId": "21",
+				"quantity": "9979"
+			}
+		]
+	},
+	"landFertilizer": []
+}';
+
+    }
+
+}