瀏覽代碼

投诉举报

rkljw 13 小時之前
父節點
當前提交
9fca533779
共有 2 個文件被更改,包括 132 次插入10 次删除
  1. 119 0
      app/Middleware/Auth/ComplaintMiddleware.php
  2. 13 10
      config/api/public.php

+ 119 - 0
app/Middleware/Auth/ComplaintMiddleware.php

@@ -0,0 +1,119 @@
+<?php
+
+declare(strict_types=1);
+
+namespace App\Middleware\Auth;
+use App\Controller\LoginController;
+use App\Controller\UserController;
+use Hyperf\Di\Annotation\Inject;
+use Hyperf\HttpServer\Contract\RequestInterface;
+use Hyperf\HttpServer\Contract\ResponseInterface as HttpResponse;
+use Psr\Container\ContainerInterface;
+use Psr\Http\Message\ResponseInterface;
+use Psr\Http\Message\ServerRequestInterface;
+use Psr\Http\Server\MiddlewareInterface;
+use Psr\Http\Server\RequestHandlerInterface;
+use Hyperf\Context\Context;
+use App\JsonRpc\WebsiteServiceInterface;
+use Phper666\JWTAuth\JWT;
+class ComplaintMiddleware implements MiddlewareInterface
+{
+    protected ContainerInterface $container;
+
+    protected RequestInterface $request;
+
+    protected HttpResponse $response;
+    protected JWT $JWT;
+    /**
+     * @var WebsiteServiceInterface
+     */
+    #[Inject]
+    private $websiteServiceClient;
+    /**
+     * @var LoginController
+     */
+    #[Inject]
+    protected $loginController;
+
+    /**
+     * @var UserController
+     */
+    #[Inject]
+    protected $userController;
+    public function __construct(ContainerInterface $container, HttpResponse $response, RequestInterface $request,Jwt $JWT)
+    {
+        $this->container = $container;
+        $this->response = $response;
+        $this->request = $request;
+        $this->JWT = $JWT;
+
+    }
+
+    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
+    {
+
+        $header = $request->getHeaders();
+        try {
+
+            if($header &&  isset($header['token']) && $header['token'][0]!='null' && $header['token'][0]!='' && isset($header['token'][0])){
+//                var_dump("token类型:",$header['token'][0]);
+                $ver = $this->JWT->getClaimsByToken($header['token'][0]);
+                $tokenTime =  $this->JWT->getTokenDynamicCacheTime($header['token'][0]);
+                $this->JWT->verifyToken($header['token'][0]);
+                if($tokenTime==0){
+                   return $this->response->json(
+                       [
+                           'code' => -1,
+                           'data' => [],
+                           'message' => 'token无效,请重新登录',
+                       ]
+                   );
+                }
+                if(isset($header['userurl']) && $header['userurl'] && $header['userurl'][0]){
+                    $origin = $header['userurl'][0];
+                    $data = [
+                        'website_url'=>$origin
+                    ];
+
+                    $result = $this->websiteServiceClient->getWebsiteId($data);
+                    if(!isset($result['data']['id']) || !$result['data']['id']){
+                        return $this->response->json(
+                            [
+                                'code' => -1,
+                                'data' => [],
+
+                                'message' => '网站不存在...',
+                            ]
+                        );
+                    }
+                    Context::set("SiteId",$result['data']['id']);
+                }
+                var_dump("中间件:",$ver);
+                Context::set("UserId",$ver['uid']);
+                Context::set("TypeId",$ver['type_id']);
+                if ($ver) {
+                    return $handler->handle($request);
+                }
+            }else{
+                return $this->response->json(
+                    [
+                        'code' => -1,
+                        'data' => [],
+                        'message' => 'token无效,请重新登录',
+                    ]
+                );
+            }
+
+        }catch (\Exception $e){
+            var_dump("错误消息1:",$e->getMessage(),$e->getCode());
+            return $this->response->json(
+                [
+                    'code' => $e->getCode(),
+                    'data' => [],
+                    'message' => $e->getMessage(),
+                ]
+            );
+        }
+        return false;
+    }
+}

+ 13 - 10
config/api/public.php

@@ -17,17 +17,8 @@ Router::addGroup(
         Router::post('/delUserLevel', [PublicController::class, 'delUserLevel']);
         Router::post('/updateUserLevel', [PublicController::class, 'updateUserLevel']);
         Router::get('/getCityList', [PublicController::class, 'getCityList']);
-        //添加投诉举报
-        Router::post('/addComplaint', [PublicController::class, 'addComplaint']);
-
-        //修改投诉举报
-        Router::addRoute(['GET', 'POST'], '/upComplaint', [PublicController::class, 'upComplaint']);
-        //投诉举报列表
-        Router::addRoute(['GET', 'POST'], '/getComplaint', [PublicController::class, 'getComplaint']);
-        //查看投诉举报信息
-        Router::addRoute(['GET', 'POST'], '/getLetterOfComplaintInfo', [PublicController::class, 'getLetterOfComplaintInfo']);
-        //删除投诉举报信息
 
+        //删除投诉举报信息
         Router::post('/delLetterOfComplaint', [PublicController::class, 'delLetterOfComplaint']);
 
         //下载文件
@@ -121,6 +112,18 @@ Router::addGroup(
     ['middleware' => [FooMiddleware::class]]
 );
 
+Router::addGroup(
+    '/public', function () {
+    //添加投诉举报
+    Router::post('/addComplaint', [PublicController::class, 'addComplaint']);
+    //修改投诉举报
+    Router::addRoute(['GET', 'POST'], '/upComplaint', [PublicController::class, 'upComplaint']);
+    //投诉举报列表
+    Router::addRoute(['GET', 'POST'], '/getComplaint', [PublicController::class, 'getComplaint']);
+    //查看投诉举报信息
+    Router::addRoute(['GET', 'POST'], '/getLetterOfComplaintInfo', [PublicController::class, 'getLetterOfComplaintInfo']);
+},
+    ['middleware' => [\App\Middleware\Auth\ComplaintMiddleware::class]]);
 Router::addGroup(
     '/public', function () {
         //获取所有的职能部门