batchUpdatePersonnelPermissions(); $message = sprintf( '教研管理人员同步完成 - 总计: %d, 成功: %d, 失败: %d', $result['total'], $result['success'], $result['failed'] ); Log::info($message, $result); // 如果有失败的记录,记录详细错误信息 if ($result['failed'] > 0 && !empty($result['errors'])) { Log::warning('教研管理人员同步部分失败', [ 'failed_count' => $result['failed'], 'errors' => $result['errors'] ]); } return $message; } catch (\Exception $e) { $error = '教研管理人员同步任务执行失败: ' . $e->getMessage(); Log::error($error, [ 'file' => $e->getFile(), 'line' => $e->getLine(), 'trace' => $e->getTraceAsString() ]); return $error; } } /** * 手动执行同步任务(用于测试) * @param array|null $tableTypes 指定要同步的table_type数组 * @return string */ public function manualSync(?array $tableTypes = null) { try { Log::info('手动执行教研管理人员同步任务', ['table_types' => $tableTypes]); $service = new LessonCourseTeachingService(); // 执行指定模块的批量人员权限同步 $result = $service->batchUpdatePersonnelPermissions($tableTypes); $message = sprintf( '手动同步完成 - 总计: %d, 成功: %d, 失败: %d', $result['total'], $result['success'], $result['failed'] ); Log::info($message, $result); return $message; } catch (\Exception $e) { $error = '手动同步任务执行失败: ' . $e->getMessage(); Log::error($error, [ 'file' => $e->getFile(), 'line' => $e->getLine() ]); return $error; } } }