| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- <?php
- namespace app\controller\admin\user;
- use app\common\repositories\user\ZeroUserRepository;
- use app\controller\admin\BaseController;
- use app\entity\admin\request\user\ZeroUserListRequestEntity;
- use app\entity\admin\request\user\ZeroUserRequestEntity;
- use app\entity\admin\response\user\ZeroUserLineResponseEntity;
- use app\entity\admin\response\user\ZeroUserListResponseEntity;
- use app\validate\admin\user\AddZeroUserValidate;
- use app\validate\admin\user\ZeroUserListValidate;
- use think\response\Json;
- /**
- * 零号线用户控制器
- * 负责零号线用户的添加和更新操作
- */
- class NewUser extends BaseController
- {
- /**
- * 用户仓库实例
- * @var ZeroUserRepository
- */
- protected $repository;
- /**
- * 构造函数
- *
- * @param ZeroUserRepository $repository
- */
- public function __construct(ZeroUserRepository $repository)
- {
- parent::__construct();
- $this->repository = $repository;
- }
- /**
- * 添加或更新零号线用户
- *
- * @param AddZeroUserValidate $validate 验证器实例
- * @return Json
- */
- public function addZeroUser(AddZeroUserValidate $validate): Json
- {
- // 执行验证并获取实体
- $validationResult = $this->validateRequest($validate, ZeroUserRequestEntity::class);
- if ($validationResult instanceof Json) {
- return $validationResult;
- }
- // 验证枚举数据
- $enumValidationResult = $this->validateEnumData($validationResult->toUnderlineArray());
- if ($enumValidationResult instanceof Json) {
- return $enumValidationResult;
- }
- try {
- // 执行插入或更新操作
- $result = $this->repository->insertOrUpdate(
- $validationResult->getId(),
- $validationResult->toUnderlineArray()
- );
- // 根据操作结果返回相应的响应
- 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('系统繁忙,请稍后重试');
- }
- }
- }
- /**
- * 0号线用户列表
- * @param ZeroUserListValidate $validate
- * @return Json
- */
- public function getZeroUserList(ZeroUserListValidate $validate): Json
- {
- // 执行验证并获取实体
- $validationResult = $this->validateRequest($validate, ZeroUserListRequestEntity::class);
- if ($validationResult instanceof Json) {
- return $validationResult;
- }
- // 验证枚举数据
- $enumValidationResult = $this->validateEnumData($validationResult->toUnderlineArray());
- if ($enumValidationResult instanceof Json) {
- return $enumValidationResult;
- }
- // 获取列表
- $list = $this->repository->getList($validationResult);
- return ZeroUserListResponseEntity::response($list);
- }
- }
|