getRow(); // 只有有效的映射关系才允许同步 return $row->status === UrsUserMapping::STATUS_VALID; } /** * 处理请求 * * @param Request $request * @return mixed */ public function handle(Request $request) { $id = $this->getKey(); $mapping = UrsUserMapping::find($id); if (!$mapping) { return $this->response()->error('用户映射记录不存在'); } if ($mapping->status !== UrsUserMapping::STATUS_VALID) { return $this->response()->error('只能同步有效状态的映射关系'); } try { // 同步用户信息 $result = UrsUserMappingService::syncUserInfo($mapping); if ($result['success']) { $message = "用户信息同步成功!"; // 添加同步详情 if (!empty($result['updated_fields'])) { $message .= "\n更新字段:" . implode(', ', $result['updated_fields']); } if (!empty($result['sync_time'])) { $message .= "\n同步时间:" . $result['sync_time']; } return $this->response() ->success($message) ->refresh(); } else { $message = "用户信息同步失败!"; // 添加失败原因 if (!empty($result['error'])) { $message .= "\n错误信息:" . $result['error']; } return $this->response()->error($message); } } catch (\Exception $e) { return $this->response()->error('同步失败:' . $e->getMessage()); } } /** * 确认对话框 * * @return string */ public function confirm() { return '确定要从URS系统同步此用户的信息吗?这将更新本地的用户数据。'; } }