find($conditionGroupCode) : GameConditionGroup::with('conditionItems')->where('code', $conditionGroupCode)->first(); return $conditionGroup; } catch (\Exception $e) { Log::error('获取条件组详情失败', [ 'condition_group' => $conditionGroupCode, 'error' => $e->getMessage() ]); return null; } } /** * 获取条件组条件 * * @param int|string $conditionGroupCode 条件组ID或编码 * @return array 条件组条件 */ public static function getConditionItems($conditionGroupCode): array { try { // 获取条件组 $conditionGroup = self::getConditionGroup($conditionGroupCode); if (!$conditionGroup || $conditionGroup->conditionItems->isEmpty()) { return []; } $conditions = []; // 处理每个条件项 foreach ($conditionGroup->conditionItems as $item) { $conditionItem = [ 'id' => $item->id, 'type' => $item->condition_type, 'target_id' => $item->target_id, 'operator' => $item->operator, 'value' => $item->value, 'group_id' => $conditionGroup->id, 'group_code' => $conditionGroup->code, 'group_name' => $conditionGroup->name, 'logic_type' => $conditionGroup->logic_type, 'operator_name' => CONDITION_OPERATOR::getName($item->operator) ]; // 使用统一的条件类型描述器获取目标名称和条件名称 $conditionItem['target_name'] = \App\Module\Game\Services\ConditionTypeDescriptor::getTargetNameFromModel($item); $conditionItem['condition_name'] = CONDITION_TYPE::getName($item->condition_type); $conditions[] = $conditionItem; } return $conditions; } catch (\Exception $e) { Log::error('获取条件组条件失败', [ 'condition_group' => $conditionGroupCode, 'error' => $e->getMessage() ]); return []; } } }