NewUser.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace app\controller\admin\user;
  3. use app\common\repositories\user\ZeroUserRepository;
  4. use app\entity\admin\request\user\ZeroUserRequestEntity;
  5. use app\entity\admin\response\user\ZeroUserLineResponseEntity;
  6. use app\validate\admin\user\AddZeroUserValidate;
  7. use think\response\Json;
  8. /**
  9. * 零号线用户控制器
  10. * 负责零号线用户的添加和更新操作
  11. */
  12. class NewUser
  13. {
  14. /**
  15. * 用户仓库实例
  16. * @var ZeroUserRepository
  17. */
  18. protected $repository;
  19. /**
  20. * 构造函数
  21. *
  22. * @param ZeroUserRepository $repository
  23. */
  24. public function __construct(ZeroUserRepository $repository)
  25. {
  26. $this->repository = $repository;
  27. }
  28. /**
  29. * 添加或更新零号线用户
  30. *
  31. * @param AddZeroUserValidate $validate 验证器实例
  32. * @return Json
  33. */
  34. public function addZeroUser(AddZeroUserValidate $validate): Json
  35. {
  36. // 执行验证
  37. $validationResult = $validate->validate();
  38. // 验证失败,返回错误信息
  39. if ($validationResult['status'] === 'error') {
  40. return app('json')->fail($validationResult['message']);
  41. }
  42. /** @var ZeroUserRequestEntity $entity 请求实体 */
  43. $entity = $validationResult['data'];
  44. try {
  45. // 执行插入或更新操作
  46. $result = $this->repository->insertOrUpdate(
  47. $entity->getId(),
  48. $entity->getArray()
  49. );
  50. // 根据操作结果返回相应的响应
  51. if ($result) {
  52. $response = ZeroUserLineResponseEntity::success();
  53. return app('json')->success($response->toResponseArray());
  54. } else {
  55. $response = ZeroUserLineResponseEntity::error();
  56. return app('json')->fail($response->toResponseArray());
  57. }
  58. } catch (\Exception $e) {
  59. // 记录异常日志
  60. \think\facade\Log::error('零号线用户操作异常: '.$e->getMessage());
  61. // 返回友好的错误信息
  62. return app('json')->fail('系统繁忙,请稍后重试');
  63. }
  64. }
  65. }