feat : admin driver name
This commit is contained in:
@@ -4,6 +4,7 @@ namespace App\Cache\Redis\Admin;
|
|||||||
|
|
||||||
use App\Cache\Redis\RedisCache;
|
use App\Cache\Redis\RedisCache;
|
||||||
use App\Constants\Admin\AuthCode;
|
use App\Constants\Admin\AuthCode;
|
||||||
|
use App\Constants\Common\RoleCode;
|
||||||
use App\Model\AdminMenu;
|
use App\Model\AdminMenu;
|
||||||
use App\Model\AdminRoleMenu;
|
use App\Model\AdminRoleMenu;
|
||||||
use App\Service\ServiceTrait\Admin\AdminRoleMenuTrait;
|
use App\Service\ServiceTrait\Admin\AdminRoleMenuTrait;
|
||||||
@@ -81,7 +82,7 @@ class RoleCache
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->roleId == AuthCode::SUPERADMIN) {
|
if ($this->roleId == RoleCode::SUPER_ADMIN) {
|
||||||
$menuIds = $this->adminMenuModel->getAllIds();
|
$menuIds = $this->adminMenuModel->getAllIds();
|
||||||
$data = (new MenuCache)->getMenu();
|
$data = (new MenuCache)->getMenu();
|
||||||
// $menuList = $this->adminMenuModel->getAllMenu();
|
// $menuList = $this->adminMenuModel->getAllMenu();
|
||||||
|
|||||||
@@ -12,10 +12,20 @@ class UserCode extends AbstractConstants
|
|||||||
* 禁用
|
* 禁用
|
||||||
* @Message("该用户已被禁用")
|
* @Message("该用户已被禁用")
|
||||||
*/
|
*/
|
||||||
const DISABLE = 2;
|
const int DISABLE = 2;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 启用
|
* 启用
|
||||||
*/
|
*/
|
||||||
const ENABLE = 1;
|
const int ENABLE = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 未删除
|
||||||
|
*/
|
||||||
|
const int IS_NO_DEL = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Message("该用户已被删除")
|
||||||
|
*/
|
||||||
|
const int IS_DEL = 2;
|
||||||
}
|
}
|
||||||
11
app/Constants/Common/RoleCode.php
Normal file
11
app/Constants/Common/RoleCode.php
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Constants\Common;
|
||||||
|
|
||||||
|
class RoleCode
|
||||||
|
{
|
||||||
|
const int SUPER_ADMIN = 1;
|
||||||
|
const int ADMIN = 2;
|
||||||
|
const int CHEF = 3;
|
||||||
|
const int DRIVER = 4;
|
||||||
|
}
|
||||||
@@ -52,4 +52,16 @@ class SiteController
|
|||||||
{
|
{
|
||||||
return (new SiteService)->info();
|
return (new SiteService)->info();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 司机列表
|
||||||
|
* @param SiteRequest $request
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
#[RequestMapping(path: "driver_list", methods: "GET")]
|
||||||
|
#[Scene(scene: "driver_list")]
|
||||||
|
public function driverList(SiteRequest $request)
|
||||||
|
{
|
||||||
|
return (new SiteService)->driverList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace App\Exception\Handler;
|
namespace App\Exception\Handler;
|
||||||
|
|
||||||
|
use App\Lib\AdminReturn;
|
||||||
use App\Lib\Log;
|
use App\Lib\Log;
|
||||||
use Hyperf\Contract\StdoutLoggerInterface;
|
use Hyperf\Contract\StdoutLoggerInterface;
|
||||||
use Hyperf\ExceptionHandler\ExceptionHandler;
|
use Hyperf\ExceptionHandler\ExceptionHandler;
|
||||||
@@ -21,7 +22,7 @@ use Throwable;
|
|||||||
|
|
||||||
class AppExceptionHandler extends ExceptionHandler
|
class AppExceptionHandler extends ExceptionHandler
|
||||||
{
|
{
|
||||||
public function __construct(protected StdoutLoggerInterface $logger,protected Log $log)
|
public function __construct(protected StdoutLoggerInterface $logger,protected Log $log,protected AdminReturn $return)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,7 +34,11 @@ class AppExceptionHandler extends ExceptionHandler
|
|||||||
$this->log->error(sprintf('%s[%s] in %s', $throwable->getMessage(), $throwable->getLine(), $throwable->getFile()));
|
$this->log->error(sprintf('%s[%s] in %s', $throwable->getMessage(), $throwable->getLine(), $throwable->getFile()));
|
||||||
$this->log->error($throwable->getTraceAsString());
|
$this->log->error($throwable->getTraceAsString());
|
||||||
|
|
||||||
return $response->withHeader('Server', 'Hyperf')->withStatus(500)->withBody(new SwooleStream('Internal Server Error.'));
|
$result = $this->return->error('Internal Server Error.');
|
||||||
|
return $response->withHeader("Content-Type", "application/json")
|
||||||
|
->withStatus(200)
|
||||||
|
->withBody(new SwooleStream(json_encode($result, JSON_UNESCAPED_UNICODE)));
|
||||||
|
// return $response->withHeader('Server', 'Hyperf')->withStatus(500)->withBody(new SwooleStream('Internal Server Error.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isValid(Throwable $throwable): bool
|
public function isValid(Throwable $throwable): bool
|
||||||
|
|||||||
43
app/Middleware/CoreMiddleware.php
Normal file
43
app/Middleware/CoreMiddleware.php
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Middleware;
|
||||||
|
|
||||||
|
use App\Lib\AdminReturn;
|
||||||
|
use Hyperf\Di\Annotation\Inject;
|
||||||
|
use Hyperf\HttpMessage\Stream\SwooleStream;
|
||||||
|
use Psr\Http\Message\ResponseInterface;
|
||||||
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
|
|
||||||
|
class CoreMiddleware extends \Hyperf\HttpServer\CoreMiddleware
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var AdminReturn
|
||||||
|
*/
|
||||||
|
#[Inject]
|
||||||
|
protected AdminReturn $return;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 404重写
|
||||||
|
* @param ServerRequestInterface $request
|
||||||
|
* @return ResponseInterface
|
||||||
|
*/
|
||||||
|
protected function handleNotFound(ServerRequestInterface $request): ResponseInterface
|
||||||
|
{
|
||||||
|
return $this->response()->withHeader("Content-Type", "application/json")
|
||||||
|
->withStatus(200)
|
||||||
|
->withBody(new SwooleStream(json_encode($this->return->error('路由不存在'), JSON_UNESCAPED_UNICODE)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 405重写
|
||||||
|
* @param array $methods
|
||||||
|
* @param ServerRequestInterface $request
|
||||||
|
* @return ResponseInterface
|
||||||
|
*/
|
||||||
|
protected function handleMethodNotAllowed(array $methods, ServerRequestInterface $request): ResponseInterface
|
||||||
|
{
|
||||||
|
return $this->response()->withHeader("Content-Type", "application/json")
|
||||||
|
->withStatus(200)
|
||||||
|
->withBody(new SwooleStream(json_encode($this->return->error('路由请求方法不正确'), JSON_UNESCAPED_UNICODE)));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -81,4 +81,17 @@ class AdminSection extends Model
|
|||||||
{
|
{
|
||||||
return $this->where('id',$id)->value('city_id') ?? 0;
|
return $this->where('id',$id)->value('city_id') ?? 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $cityId
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getIdsByCityId(int $cityId): array
|
||||||
|
{
|
||||||
|
return $this
|
||||||
|
->where('city_id',$cityId)
|
||||||
|
->where('status',AuthCode::SECTION_STATUS_ENABLE)
|
||||||
|
->pluck('id')
|
||||||
|
->toArray();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,12 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace App\Service\Admin\System;
|
namespace App\Service\Admin\System;
|
||||||
|
|
||||||
|
use App\Constants\Admin\UserCode;
|
||||||
|
use App\Constants\Common\RoleCode;
|
||||||
|
use App\Model\AdminSection;
|
||||||
|
use App\Model\AdminUser;
|
||||||
use App\Service\Admin\BaseService;
|
use App\Service\Admin\BaseService;
|
||||||
|
use Hyperf\Di\Annotation\Inject;
|
||||||
|
|
||||||
class SiteService extends BaseService
|
class SiteService extends BaseService
|
||||||
{
|
{
|
||||||
@@ -36,6 +41,51 @@ class SiteService extends BaseService
|
|||||||
|
|
||||||
public function info()
|
public function info()
|
||||||
{
|
{
|
||||||
|
return $this->return->success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注入用户类
|
||||||
|
* @var AdminUser
|
||||||
|
*/
|
||||||
|
#[Inject]
|
||||||
|
protected AdminUser $adminUserModel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注入部门类
|
||||||
|
* @var AdminSection
|
||||||
|
*/
|
||||||
|
#[Inject]
|
||||||
|
protected AdminSection $adminSectionModel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function driverList(): array
|
||||||
|
{
|
||||||
|
$limit = $this->request->input('limit', 10);
|
||||||
|
$cityId = (int)$this->request->input('city_id',0);
|
||||||
|
$name = $this->request->input('name');
|
||||||
|
|
||||||
|
// $where[] = [
|
||||||
|
// ['is_del', '=', UserCode::IS_NO_DEL],
|
||||||
|
// ['status','=',UserCode::ENABLE],
|
||||||
|
// ['role_id','=',RoleCode::DRIVER]
|
||||||
|
// ];
|
||||||
|
|
||||||
|
$list = $this
|
||||||
|
->adminUserModel
|
||||||
|
->where('is_del',UserCode::IS_NO_DEL)
|
||||||
|
->where('status',UserCode::ENABLE)
|
||||||
|
->where('role_id',RoleCode::DRIVER)
|
||||||
|
->when($name, function ($query) use ($name) {
|
||||||
|
$query->where('name', 'like', "$name%");
|
||||||
|
})
|
||||||
|
->when($cityId > 0, function ($query) use ($cityId) {
|
||||||
|
$query->whereIn('section_id', $this->adminSectionModel->getIdsByCityId($cityId));
|
||||||
|
})
|
||||||
|
->paginate($limit,['chinese_name','id','mobile','status'])->toArray();
|
||||||
|
|
||||||
|
return $this->return->success('success',$list);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -13,6 +13,7 @@ namespace App\Service\Admin\User;
|
|||||||
use App\Cache\Redis\Admin\MenuCache;
|
use App\Cache\Redis\Admin\MenuCache;
|
||||||
use App\Cache\Redis\Admin\RoleCache;
|
use App\Cache\Redis\Admin\RoleCache;
|
||||||
use App\Constants\Admin\AuthCode;
|
use App\Constants\Admin\AuthCode;
|
||||||
|
use App\Constants\Common\RoleCode;
|
||||||
use App\Exception\AdminException;
|
use App\Exception\AdminException;
|
||||||
use App\Model\AdminRole;
|
use App\Model\AdminRole;
|
||||||
use App\Model\AdminRoleMenu;
|
use App\Model\AdminRoleMenu;
|
||||||
@@ -178,7 +179,7 @@ class RoleService extends BaseService
|
|||||||
public function changeStatus(): array
|
public function changeStatus(): array
|
||||||
{
|
{
|
||||||
$id = (int)$this->request->input('role_id');
|
$id = (int)$this->request->input('role_id');
|
||||||
if ($id == AuthCode::SUPERADMIN) throw new AdminException('超级管理员不可关闭');
|
if ($id == RoleCode::SUPER_ADMIN) throw new AdminException('超级管理员不可关闭');
|
||||||
|
|
||||||
if (!$info = $this->adminRoleModel->getInfoById($id)) throw new AdminException('角色不存在');
|
if (!$info = $this->adminRoleModel->getInfoById($id)) throw new AdminException('角色不存在');
|
||||||
|
|
||||||
|
|||||||
@@ -10,4 +10,5 @@ declare(strict_types=1);
|
|||||||
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
||||||
*/
|
*/
|
||||||
return [
|
return [
|
||||||
|
Hyperf\HttpServer\CoreMiddleware::class => App\Middleware\CoreMiddleware::class,
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user