Explorar o código

修复推广信息接口缺少today_reward和total_reward字段的问题

- 修改InfoHandler确保始终返回today_reward和total_reward字段
- 当用户没有推广奖励记录时返回空的奖励对象而不是null
- 添加createEmptyReward方法创建空奖励对象
- 更新setEmptyResponse方法设置空奖励字段
- 解决前端日志显示'promotionInfo.today_reward'和'promotionInfo.total_reward'没有数据的问题
AI Assistant hai 6 meses
pai
achega
d399b56527
Modificáronse 1 ficheiros con 32 adicións e 8 borrados
  1. 32 8
      app/Module/AppGame/Handler/Promotion/InfoHandler.php

+ 32 - 8
app/Module/AppGame/Handler/Promotion/InfoHandler.php

@@ -90,13 +90,11 @@ class InfoHandler extends BaseHandler
             $response->setDirectActiveCount($activeStats['direct_active_count'] ?? 0);
             $response->setStarLevel($starLevel);
 
-            // 设置收益数据
-            if ($rewardStats['today_reward']) {
-                $response->setTodayReward($rewardStats['today_reward']);
-            }
-            if ($rewardStats['total_reward']) {
-                $response->setTotalReward($rewardStats['total_reward']);
-            }
+            // 设置收益数据 - 始终设置奖励字段,没有数据时使用空奖励对象
+            $todayReward = $rewardStats['today_reward'] ?? $this->createEmptyReward();
+            $totalReward = $rewardStats['total_reward'] ?? $this->createEmptyReward();
+            $response->setTodayReward($todayReward);
+            $response->setTotalReward($totalReward);
 
             Log::info('推广团队信息获取成功', [
                 'user_id' => $this->user_id,
@@ -134,10 +132,36 @@ class InfoHandler extends BaseHandler
         $response->setDayDirectCount(0);
         $response->setActiveCount(0);
         $response->setDirectActiveCount(0);
-        
+
+        // 设置空的奖励对象
+        $emptyReward = $this->createEmptyReward();
+        $response->setTodayReward($emptyReward);
+        $response->setTotalReward($emptyReward);
+
         return $response;
     }
 
+    /**
+     * 创建空的奖励对象
+     *
+     * @return Reward
+     */
+    private function createEmptyReward(): Reward
+    {
+        $reward = new Reward();
+
+        // 设置空的奖励列表
+        $reward->setItems([]);
+        $reward->setCoins([]);
+        $reward->setGods([]);
+        $reward->setLands([]);
+        $reward->setPets([]);
+        $reward->setPetPowers([]);
+        $reward->setSkins([]);
+
+        return $reward;
+    }
+
     /**
      * 获取今日统计数据
      *