Просмотр исходного кода

refactor(game): 重构游戏内消耗日志的 source_type 使用方式

- 将字符串类型的 source_type 替换为 REWARD_SOURCE_TYPE 枚举
- 更新了多个模块中的消耗日志记录方式- 增加了物品、农场、宝箱等模块的特定消耗类型
notfff 6 месяцев назад
Родитель
Сommit
3b8ff62a3f

+ 1 - 1
app/Module/AppGame/Handler/Shop/BuyHandler.php

@@ -68,7 +68,7 @@ class BuyHandler extends BaseHandler
                 $consumeResult = ConsumeService::executeConsume(
                     $userId,
                     $shopItem->consume_group_id,
-                    'shop_buy',
+                    REWARD_SOURCE_TYPE::SHOP_PURCHASE,
                     $goodId,
                     false,// 不重复检查,因为验证阶段已经检查过
                     $number

+ 6 - 1
app/Module/Farm/Logics/LandLogic.php

@@ -13,6 +13,7 @@ use App\Module\Farm\Models\FarmLandType;
 use App\Module\Farm\Models\FarmLandUpgradeConfig;
 use App\Module\Farm\Models\FarmUpgradeLog;
 use App\Module\Farm\Models\FarmUser;
+use App\Module\Game\Enums\REWARD_SOURCE_TYPE;
 use App\Module\Game\Services\ConsumeService;
 use Illuminate\Support\Collection;
 use Illuminate\Support\Facades\Log;
@@ -203,7 +204,11 @@ class LandLogic
         $upgradeLog->save();
 
         // 进行消耗
-        $ec = ConsumeService::executeConsume($userId, $config->materials, 'land_upgrade', $upgradeLog->id, false);
+        $ec = ConsumeService::executeConsume(
+            $userId, $config->materials,
+            REWARD_SOURCE_TYPE::LAND_UPGRADE,
+            'land_upgrade',
+            $upgradeLog->id, false);
         if ($ec->error) {
             throw new LogicException('消耗失败');
         }

+ 5 - 1
app/Module/Farm/Services/HouseService.php

@@ -6,6 +6,7 @@ use App\Module\Farm\Dtos\HouseRankDto;
 use App\Module\Farm\Dtos\WealthRankDto;
 use App\Module\Farm\Logics\HouseLogic;
 use App\Module\Farm\Models\FarmHouseConfig;
+use App\Module\Game\Enums\REWARD_SOURCE_TYPE;
 use Illuminate\Support\Facades\Log;
 use UCore\Exception\LogicException;
 use UCore\Exception\ValidateException;
@@ -204,7 +205,10 @@ class HouseService
         $consumeGroupId  = $nextLevelConfig->upgrade_materials;
 
         // 执行消耗
-        $consumeResult = \App\Module\Game\Services\ConsumeService::executeConsume($userId, $consumeGroupId, 'house_upgrade', $farmUser->id);
+        $consumeResult = \App\Module\Game\Services\ConsumeService::executeConsume(
+            $userId, $consumeGroupId,
+            REWARD_SOURCE_TYPE::FARM_UPGRADE,
+            $farmUser->id);
         if ($consumeResult->error) {
             throw new LogicException($consumeResult->message ?? '消耗材料失败');
         }

+ 10 - 1
app/Module/Game/Enums/REWARD_SOURCE_TYPE.php

@@ -35,6 +35,8 @@ enum REWARD_SOURCE_TYPE: string
      */
     case LEVEL = 'level';
 
+    ## 物品模块
+
     /**
      * 宝箱奖励
      */
@@ -45,6 +47,7 @@ enum REWARD_SOURCE_TYPE: string
      */
     case CRAFT = 'craft';
 
+
     // ==================== 农场系统 ====================
 
     /**
@@ -63,7 +66,7 @@ enum REWARD_SOURCE_TYPE: string
     case FARM_PLANT = 'farm_plant';
 
     /**
-     * 农场升级奖励
+     * 农场升级奖励(房屋)
      */
     case FARM_UPGRADE = 'farm_upgrade';
 
@@ -77,6 +80,12 @@ enum REWARD_SOURCE_TYPE: string
      */
     case LAND_UNLOCK = 'land_unlock';
 
+    /**
+     * 土地升级
+     */
+    case LAND_UPGRADE = 'land_upgrade';
+
+
     // ==================== 每日系统 ====================
 
     /**

+ 2 - 2
app/Module/GameItems/Services/ChestService.php

@@ -64,7 +64,7 @@ class ChestService
             $consumeResult = ConsumeService::executeConsume(
                 $userId,
                 $chestConfig->consume_group_id,
-                "开启宝箱",
+                REWARD_SOURCE_TYPE::CHEST,
                 $chestId,
                 true, // 检查消耗条件
                 $quantity // 使用开启数量作为倍率
@@ -82,7 +82,7 @@ class ChestService
             null,
             $quantity,
             [
-                'source_type' => 'chest_open',
+                'source_type' => REWARD_SOURCE_TYPE::CHEST->value(),
                 'source_id'   => $chestId,
                 'details'     => [ 'quantity' => $quantity ],
                 'ip_address'  => $options['ip_address'] ?? null,

+ 1 - 1
app/Module/GameItems/Services/CraftService.php

@@ -70,7 +70,7 @@ class CraftService
             $consumeResult = ConsumeService::executeConsume(
                 $userId,
                 $recipe->consume_group_id,
-                'craft',
+                REWARD_SOURCE_TYPE::CRAFT,
                 $recipeId,
                 true, // 检查消耗条件
                 $quantity // 使用数量作为倍数