repository = $repository; } /** * 添加或更新零号线用户 * * @param AddZeroUserValidate $validate 验证器实例 * @return Json */ public function addZeroUser(AddZeroUserValidate $validate): Json { // 执行验证 $validationResult = $validate->validate(); // 验证失败,返回错误信息 if ($validationResult['status'] === 'error') { return app('json')->fail($validationResult['message']); } /** @var ZeroUserRequestEntity $entity 请求实体 */ $entity = $validationResult['data']; // 自动验证枚举参数 $requestData = $entity->toUnderlineArray(); // 使用智能枚举验证器自动验证,直接传递枚举类名 $validationResult = EnumUtil::autoValidate(\app\common\enum\user\ZeroUserEnum::class, $requestData); if (!$validationResult['valid']) { return app('json')->fail(implode('; ', $validationResult['errors'])); } try { // 执行插入或更新操作 $result = $this->repository->insertOrUpdate( $entity->getId(), $requestData ); // 根据操作结果返回相应的响应 if ($result) { $response = ZeroUserLineResponseEntity::success(); return app('json')->success($response->toResponseArray()); } else { $response = ZeroUserLineResponseEntity::error(); return app('json')->fail($response->toResponseArray()); } } catch (\Exception $e) { // 记录详细异常日志 $errorMessage = '零号线用户操作异常: ' . $e->getMessage() . ' File: ' . $e->getFile() . ' Line: ' . $e->getLine(); \think\facade\Log::error($errorMessage); // 根据环境返回不同的错误信息 $isDev = app()->isDebug(); if ($isDev) { // 开发环境返回详细错误信息 return app('json')->fail('操作失败: ' . $e->getMessage()); } else { // 生产环境返回友好提示 return app('json')->fail('系统繁忙,请稍后重试'); } } } }