|
|
@@ -46,8 +46,8 @@ class CraftService
|
|
|
|
|
|
// 检查用户是否可以合成该配方
|
|
|
$canCraft = $recipe->canCraftByUser($userId);
|
|
|
- if (!$canCraft['ValidateException']) {
|
|
|
- throw new Exception($canCraft['reason']);
|
|
|
+ if (!$canCraft['can_craft']) {
|
|
|
+ throw new ValidateException($canCraft['reason']);
|
|
|
}
|
|
|
|
|
|
// 检查消耗组是否存在
|
|
|
@@ -75,8 +75,8 @@ class CraftService
|
|
|
$quantity // 使用数量作为倍数
|
|
|
);
|
|
|
|
|
|
- if (!$consumeResult['success']) {
|
|
|
- throw new LogicException("消耗失败: " . $consumeResult['message']);
|
|
|
+ if ($consumeResult->error) {
|
|
|
+ throw new LogicException("消耗失败: " . $consumeResult->message);
|
|
|
}
|
|
|
|
|
|
// 判断合成是否成功(基于配方成功率)
|
|
|
@@ -112,7 +112,7 @@ class CraftService
|
|
|
$craftLog = new ItemCraftLog([
|
|
|
'user_id' => $userId,
|
|
|
'recipe_id' => $recipeId,
|
|
|
- 'materials' => $consumeResult['consumed'] ?? [],
|
|
|
+ 'materials' => $consumeResult->data['consumed'] ?? [],
|
|
|
'result_item_id' => $isSuccess && !empty($rewardItems) ? $rewardItems[0]->targetId : null,
|
|
|
'result_instance_id' => null,
|
|
|
'result_quantity' => $isSuccess && !empty($rewardItems) ? $rewardItems[0]->quantity : 0,
|
|
|
@@ -148,7 +148,7 @@ class CraftService
|
|
|
'trace' => $e->getTraceAsString()
|
|
|
]);
|
|
|
|
|
|
- return Res::success('合成失败');
|
|
|
+ return Res::error('合成失败: ' . $e->getMessage());
|
|
|
}
|
|
|
}
|
|
|
|