rkljw 10 месяцев назад
Родитель
Сommit
0e1ec10176

+ 3 - 3
app/Controller/AbstractController.php

@@ -43,9 +43,9 @@ abstract class AbstractController
         // 第一个参数对应日志的 name, 第二个参数对应 config/autoload/logger.php 内的 key
         $this->logger = $loggerFactory->get('admin_consumer:', 'default');
 
-        $a= 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwaHBlcjY2Ni9qd3QiLCJ1aWQiOjEsInVzZXJuYW1lIjoieHgiLCJqd3Rfc2NlbmUiOiJkZWZhdWx0IiwianRpIjoiZGVmYXVsdF82NjYyYTg5NTQ5MTk2MS40NTgzOTUyNCIsImlhdCI6MTcxNzc0MTcxNywibmJmIjoxNzE3NzQxNzE3LCJleHAiOjE3MTc3NDg5MTd9.cTqoaSn5P3mW8__O2O2rv2dxiGtfSZk-E8fisjHFwCg';
-        $headers = $this->request->getHeaders();
-        if($headers && $headers['token'][0]){
+         $headers = $this->request->getHeaders();
+        var_dump($headers);
+        if($headers &&  isset($headers['token']) && isset($headers['token'][0])){
             $userInfo = $this->jwt->getClaimsByToken($headers['token'][0]);
             $this->UserId = $userInfo['uid'];
         }

+ 1 - 3
app/Controller/AdController.php

@@ -18,9 +18,7 @@ use Hyperf\Logger;
 #[AutoController]
 class AdController extends AbstractController
 {
-//    public function __construct(protected StdoutLoggerInterface $logger)
-//    {
-//    }
+
     /**
      * @var AdServiceInterface
      */

+ 129 - 0
app/Controller/AuthorityController.php

@@ -0,0 +1,129 @@
+<?php
+
+declare(strict_types=1);
+
+namespace App\Controller;
+
+use App\JsonRpc\AuthorityServiceInterface;
+use Hyperf\Di\Annotation\Inject;
+use Hyperf\HttpServer\Annotation\AutoController;
+use App\Tools\Result;
+use App\Constants\ErrorCode;
+use Hyperf\Validation\Contract\ValidatorFactoryInterface;
+/**
+ * Class AuthorityController
+ * @package App\Controller
+ */
+#[AutoController]
+class AuthorityController extends AbstractController
+{
+    #[Inject]
+    protected ValidatorFactoryInterface $validationFactory;
+    /**
+     * @var AuthorityServiceInterface
+     */
+    #[Inject]
+    private $authorityServiceClient;
+
+
+    /**
+     * 获取菜单列表
+     * @return array
+     */
+    public function getMenuList()
+    {
+        $id =  (int)$this->request->input("id",0);
+        $page =  (int)$this->request->input("page",1);
+        $pageSize =  (int)$this->request->input("pageSize",10);
+        $data = [
+            'id'=>$id,
+            'page'=>$page,
+            'pageSize'=>$pageSize
+        ];
+        $result = $this->authorityServiceClient->getMenuList($data);
+        return $result?Result::success($result['data']):Result::error($result['message']);
+    }
+
+    /**
+     * 删除菜单
+     * @return array
+     */
+    public function delMenu()
+    {
+        $id =  (int)$this->request->input("id",0);
+        $data = [
+            'id'=>$id,
+            'page'=>1,
+            'pageSize'=>2
+        ];
+        $result = $this->authorityServiceClient->getMenuList($data);
+        if(count($result['data']['rows'])>0){
+            return Result::error("有子菜单不能删除");
+        }
+        return $this->authorityServiceClient->delMenu($data);
+
+    }
+
+    /**
+     * 添加菜单
+     * @return array|void
+     */
+    public function addMent()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'pid' => 'required',
+                'label' => 'required',
+                'url' => 'required',
+
+            ],
+            [
+                'pid.required' => '父级id不能为空',
+                'label.required' => '菜单名称不能为空',
+                'url.required' => '路由地址不能为空',
+            ]
+        );
+        if ($validator->fails()){
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+
+        $result = $this->authorityServiceClient->addMenu($requireData);
+        return $result?Result::success($result['data']):Result::error($result['message']);
+    }
+    /**
+     * 修改菜单
+     * @return array|void
+     */
+    public function updateMent()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'id' => 'required',
+                'pid' => 'required',
+                'label' => 'required',
+                'url' => 'required',
+
+            ],
+            [
+                'id.required' => 'id不能为空',
+                'pid.required' => '父级id不能为空',
+                'label.required' => '菜单名称不能为空',
+                'url.required' => '路由地址不能为空',
+            ]
+        );
+        if ($validator->fails()){
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $result = $this->authorityServiceClient->updateMenu($requireData);
+        return $result?Result::success($result['data']):Result::error($result['message']);
+    }
+
+
+
+}

+ 66 - 0
app/JsonRpc/AuthorityService.php

@@ -0,0 +1,66 @@
+<?php
+
+namespace App\JsonRpc;
+
+use Hyperf\RpcClient\AbstractServiceClient;
+
+class AuthorityService extends AbstractServiceClient implements AuthorityServiceInterface
+{
+    /**
+     * 定义对应服务提供者的服务名称
+     * @var string
+     */
+    protected string $serviceName = 'AuthorityService';
+    /**
+     * 定义对应服务提供者的服务协议
+     * @var string
+     */
+    protected string $protocol = 'jsonrpc-http';
+
+
+    /**
+     * @param array $data
+     * @return array
+     */
+    public function getMenuList(array $data)
+    {
+
+        return $this->__request(__FUNCTION__, $data);
+    }
+
+    /**
+     * @param array $data
+     * @return array
+     */
+    public function getMenuInfo(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+
+    /**
+     * @param array $data
+     * @return array
+     */
+    public function updateMenu(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+
+    /**
+     * @param array $data
+     * @return array
+     */
+    public function delMenu(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+
+    /**
+     * @param array $data
+     * @return array
+     */
+    public function addMenu(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+}

+ 40 - 0
app/JsonRpc/AuthorityServiceInterface.php

@@ -0,0 +1,40 @@
+<?php
+
+namespace App\JsonRpc;
+interface AuthorityServiceInterface
+{
+    /**
+     * 菜单列表
+     * @param array $data
+     * @return array
+     */
+    public function getMenuList(array $data);
+
+    /**
+     * 获取菜单信息
+     * @param array $data
+     * @return array
+     */
+    public function getMenuInfo(array $data);
+
+    /**
+     * 更新菜单
+     * @param array $data
+     * @return array
+     */
+    public function updateMenu(array $data);
+
+    /**
+     * 删除惨淡
+     * @param array $data
+     * @return array
+     */
+    public function delMenu(array $data);
+
+    /**
+     * 创建菜单
+     * @param array $data
+     * @return array
+     */
+    public function addMenu(array $data);
+}

+ 9 - 0
config/autoload/services.php

@@ -11,6 +11,15 @@ return [
                 ['host' => '192.168.31.193', 'port' => 9504],
             ],
         ],
+        [
+            // 权限管理
+            'name' => 'AuthorityService',
+            'service' => \App\JsonRpc\AuthorityServiceInterface::class,
+            // 直接对指定的节点进行消费,通过下面的 nodes 参数来配置服务提供者的节点信息
+            'nodes' => [
+                ['host' => '192.168.31.193', 'port' => 9504],
+            ],
+        ],
         [
             // 广告中心
             'name' => 'AdService',

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
runtime/container/classes.cache


+ 2 - 2
runtime/container/proxy/App_Controller_AbstractController.proxy.php

@@ -38,9 +38,9 @@ abstract class AbstractController
         $this->__handlePropertyHandler(__CLASS__);
         // 第一个参数对应日志的 name, 第二个参数对应 config/autoload/logger.php 内的 key
         $this->logger = $loggerFactory->get('admin_consumer:', 'default');
-        $a = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwaHBlcjY2Ni9qd3QiLCJ1aWQiOjEsInVzZXJuYW1lIjoieHgiLCJqd3Rfc2NlbmUiOiJkZWZhdWx0IiwianRpIjoiZGVmYXVsdF82NjYyYTg5NTQ5MTk2MS40NTgzOTUyNCIsImlhdCI6MTcxNzc0MTcxNywibmJmIjoxNzE3NzQxNzE3LCJleHAiOjE3MTc3NDg5MTd9.cTqoaSn5P3mW8__O2O2rv2dxiGtfSZk-E8fisjHFwCg';
         $headers = $this->request->getHeaders();
-        if ($headers && $headers['token'][0]) {
+        var_dump($headers);
+        if ($headers && isset($headers['token']) && isset($headers['token'][0])) {
             $userInfo = $this->jwt->getClaimsByToken($headers['token'][0]);
             $this->UserId = $userInfo['uid'];
         }

+ 0 - 3
runtime/container/proxy/App_Controller_AdController.proxy.php

@@ -26,9 +26,6 @@ class AdController extends AbstractController
         }
         $this->__handlePropertyHandler(__CLASS__);
     }
-    //    public function __construct(protected StdoutLoggerInterface $logger)
-    //    {
-    //    }
     /**
      * @var AdServiceInterface
      */

+ 92 - 0
runtime/container/proxy/App_Controller_AuthorityController.proxy.php

@@ -0,0 +1,92 @@
+<?php
+
+declare (strict_types=1);
+namespace App\Controller;
+
+use App\JsonRpc\AuthorityServiceInterface;
+use Hyperf\Di\Annotation\Inject;
+use Hyperf\HttpServer\Annotation\AutoController;
+use App\Tools\Result;
+use App\Constants\ErrorCode;
+use Hyperf\Validation\Contract\ValidatorFactoryInterface;
+/**
+ * Class AuthorityController
+ * @package App\Controller
+ */
+#[AutoController]
+class AuthorityController extends AbstractController
+{
+    use \Hyperf\Di\Aop\ProxyTrait;
+    use \Hyperf\Di\Aop\PropertyHandlerTrait;
+    function __construct(\Hyperf\Logger\LoggerFactory $loggerFactory)
+    {
+        if (method_exists(parent::class, '__construct')) {
+            parent::__construct(...func_get_args());
+        }
+        $this->__handlePropertyHandler(__CLASS__);
+    }
+    #[Inject]
+    protected ValidatorFactoryInterface $validationFactory;
+    /**
+     * @var AuthorityServiceInterface
+     */
+    #[Inject]
+    private $authorityServiceClient;
+    /**
+     * 获取菜单列表
+     * @return array
+     */
+    public function getMenuList()
+    {
+        $id = (int) $this->request->input("id", 0);
+        $page = (int) $this->request->input("page", 1);
+        $pageSize = (int) $this->request->input("pageSize", 10);
+        $data = ['id' => $id, 'page' => $page, 'pageSize' => $pageSize];
+        $result = $this->authorityServiceClient->getMenuList($data);
+        return $result ? Result::success($result['data']) : Result::error($result['message']);
+    }
+    /**
+     * 删除菜单
+     * @return array
+     */
+    public function delMenu()
+    {
+        $id = (int) $this->request->input("id", 0);
+        $data = ['id' => $id, 'page' => 1, 'pageSize' => 2];
+        $result = $this->authorityServiceClient->getMenuList($data);
+        if (count($result['data']['rows']) > 0) {
+            return Result::error("有子菜单不能删除");
+        }
+        return $this->authorityServiceClient->delMenu($data);
+    }
+    /**
+     * 添加菜单
+     * @return array|void
+     */
+    public function addMent()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make($requireData, ['pid' => 'required', 'label' => 'required', 'url' => 'required'], ['pid.required' => '父级id不能为空', 'label.required' => '菜单名称不能为空', 'url.required' => '路由地址不能为空']);
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $result = $this->authorityServiceClient->addMenu($requireData);
+        return $result ? Result::success($result['data']) : Result::error($result['message']);
+    }
+    /**
+     * 修改菜单
+     * @return array|void
+     */
+    public function updateMent()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make($requireData, ['id' => 'required', 'pid' => 'required', 'label' => 'required', 'url' => 'required'], ['id.required' => 'id不能为空', 'pid.required' => '父级id不能为空', 'label.required' => '菜单名称不能为空', 'url.required' => '路由地址不能为空']);
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $result = $this->authorityServiceClient->updateMenu($requireData);
+        return $result ? Result::success($result['data']) : Result::error($result['message']);
+    }
+}

+ 52 - 0
runtime/container/proxy/App_JsonRpc_AuthorityServiceInterface.rpc-client.proxy.php

@@ -0,0 +1,52 @@
+<?php
+
+namespace App\JsonRpc;
+
+class AuthorityServiceInterface_d7c83bbdf31b209726780ad3a4224d55 extends \Hyperf\RpcClient\Proxy\AbstractProxyService implements AuthorityServiceInterface
+{
+    /**
+     * 菜单列表
+     * @param array $data
+     * @return array
+     */
+    public function getMenuList(array $data)
+    {
+        return $this->client->__call(__FUNCTION__, func_get_args());
+    }
+    /**
+     * 获取菜单信息
+     * @param array $data
+     * @return array
+     */
+    public function getMenuInfo(array $data)
+    {
+        return $this->client->__call(__FUNCTION__, func_get_args());
+    }
+    /**
+     * 更新菜单
+     * @param array $data
+     * @return array
+     */
+    public function updateMenu(array $data)
+    {
+        return $this->client->__call(__FUNCTION__, func_get_args());
+    }
+    /**
+     * 删除惨淡
+     * @param array $data
+     * @return array
+     */
+    public function delMenu(array $data)
+    {
+        return $this->client->__call(__FUNCTION__, func_get_args());
+    }
+    /**
+     * 创建菜单
+     * @param array $data
+     * @return array
+     */
+    public function addMenu(array $data)
+    {
+        return $this->client->__call(__FUNCTION__, func_get_args());
+    }
+}

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
runtime/container/scan.cache


+ 1 - 1
runtime/hyperf.pid

@@ -1 +1 @@
-4273
+6475

+ 6 - 0
runtime/logs/hyperf.log

@@ -21,3 +21,9 @@
 [2024-06-13 20:00:15] admin_consumer:.DEBUG: 1111 [] []
 [2024-06-13 20:01:27] admin_consumer:.DEBUG: 1111 [] []
 [2024-06-13 20:01:46] admin_consumer:.DEBUG: 1111 [] []
+[2024-06-14 08:54:40] admin_consumer:.INFO: 验证之前 [] []
+[2024-06-14 08:54:40] admin_consumer:.INFO: 验证之前 [] []
+[2024-06-14 08:54:42] admin_consumer:.INFO: 验证用户返回值: {"code":200,"message":"success","data":{"id":32,"user_name":"1","password":"71ab877bcad54b1f348d59675c7980c7","avatar":"https://img-blog.csdnimg.cn/direct/ceac7ca44c3040c4889de24f2dae4497.jpeg","last_login_ip":null,"last_login_time":"2024-06-11 09:05:28","mobile":"3","status":1,"role_id":1,"email":"5@qq.com","salt":"569295","rong_token":"","level_id":8,"updated_at":"2024-06-11 09:05:28","created_at":"2024-06-11 09:05:28"}} []
+[2024-06-14 11:34:36] admin_consumer:.INFO: 验证之前 [] []
+[2024-06-14 11:34:36] admin_consumer:.INFO: 验证之前 [] []
+[2024-06-14 11:34:37] admin_consumer:.INFO: 验证用户返回值: {"code":200,"message":"success","data":{"id":32,"user_name":"1","password":"71ab877bcad54b1f348d59675c7980c7","avatar":"https://img-blog.csdnimg.cn/direct/ceac7ca44c3040c4889de24f2dae4497.jpeg","last_login_ip":null,"last_login_time":"2024-06-11 09:05:28","mobile":"3","status":1,"role_id":1,"email":"5@qq.com","salt":"569295","rong_token":"","level_id":8,"updated_at":"2024-06-11 09:05:28","created_at":"2024-06-11 09:05:28"}} []

+ 3 - 0
vendor/composer/autoload_classmap.php

@@ -9,6 +9,7 @@ return array(
     'App\\Constants\\ErrorCode' => $baseDir . '/app/Constants/ErrorCode.php',
     'App\\Controller\\AbstractController' => $baseDir . '/app/Controller/AbstractController.php',
     'App\\Controller\\AdController' => $baseDir . '/app/Controller/AdController.php',
+    'App\\Controller\\AuthorityController' => $baseDir . '/app/Controller/AuthorityController.php',
     'App\\Controller\\IndexController' => $baseDir . '/app/Controller/IndexController.php',
     'App\\Controller\\LoginController' => $baseDir . '/app/Controller/LoginController.php',
     'App\\Controller\\UserController' => $baseDir . '/app/Controller/UserController.php',
@@ -16,6 +17,8 @@ return array(
     'App\\Exception\\Handler\\AppExceptionHandler' => $baseDir . '/app/Exception/Handler/AppExceptionHandler.php',
     'App\\JsonRpc\\AdService' => $baseDir . '/app/JsonRpc/AdService.php',
     'App\\JsonRpc\\AdServiceInterface' => $baseDir . '/app/JsonRpc/AdServiceInterface.php',
+    'App\\JsonRpc\\AuthorityService' => $baseDir . '/app/JsonRpc/AuthorityService.php',
+    'App\\JsonRpc\\AuthorityServiceInterface' => $baseDir . '/app/JsonRpc/AuthorityServiceInterface.php',
     'App\\JsonRpc\\DistrictServiceInterface' => $baseDir . '/app/JsonRpc/DistrictServiceInterface.php',
     'App\\JsonRpc\\UserService' => $baseDir . '/app/JsonRpc/UserService.php',
     'App\\JsonRpc\\UserServiceInterface' => $baseDir . '/app/JsonRpc/UserServiceInterface.php',

+ 3 - 0
vendor/composer/autoload_static.php

@@ -757,6 +757,7 @@ class ComposerStaticInited6e1e4568df3e81747ba57e8b3d7786
         'App\\Constants\\ErrorCode' => __DIR__ . '/../..' . '/app/Constants/ErrorCode.php',
         'App\\Controller\\AbstractController' => __DIR__ . '/../..' . '/app/Controller/AbstractController.php',
         'App\\Controller\\AdController' => __DIR__ . '/../..' . '/app/Controller/AdController.php',
+        'App\\Controller\\AuthorityController' => __DIR__ . '/../..' . '/app/Controller/AuthorityController.php',
         'App\\Controller\\IndexController' => __DIR__ . '/../..' . '/app/Controller/IndexController.php',
         'App\\Controller\\LoginController' => __DIR__ . '/../..' . '/app/Controller/LoginController.php',
         'App\\Controller\\UserController' => __DIR__ . '/../..' . '/app/Controller/UserController.php',
@@ -764,6 +765,8 @@ class ComposerStaticInited6e1e4568df3e81747ba57e8b3d7786
         'App\\Exception\\Handler\\AppExceptionHandler' => __DIR__ . '/../..' . '/app/Exception/Handler/AppExceptionHandler.php',
         'App\\JsonRpc\\AdService' => __DIR__ . '/../..' . '/app/JsonRpc/AdService.php',
         'App\\JsonRpc\\AdServiceInterface' => __DIR__ . '/../..' . '/app/JsonRpc/AdServiceInterface.php',
+        'App\\JsonRpc\\AuthorityService' => __DIR__ . '/../..' . '/app/JsonRpc/AuthorityService.php',
+        'App\\JsonRpc\\AuthorityServiceInterface' => __DIR__ . '/../..' . '/app/JsonRpc/AuthorityServiceInterface.php',
         'App\\JsonRpc\\DistrictServiceInterface' => __DIR__ . '/../..' . '/app/JsonRpc/DistrictServiceInterface.php',
         'App\\JsonRpc\\UserService' => __DIR__ . '/../..' . '/app/JsonRpc/UserService.php',
         'App\\JsonRpc\\UserServiceInterface' => __DIR__ . '/../..' . '/app/JsonRpc/UserServiceInterface.php',

Некоторые файлы не были показаны из-за большого количества измененных файлов