Bladeren bron

Merge branch 'master' of http://git.bjzxtw.org.cn:3000/zxt/admin_consumer

AI 3 weken geleden
bovenliggende
commit
aacb73f7ab

+ 20 - 2
app/Controller/NewsController.php

@@ -45,9 +45,27 @@ class NewsController extends AbstractController
      */
     public function getCategoryList()
     {
-        $result = $this->newsServiceClient->getCategoryList([]);
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'page'=> 'required',
+                'pageSize'=> 'required',
+
+            ],
+            [
+                'page.required' => 'id不能为空',
+                'pageSize.required' => 'id不能为空',
+
+            ]
+        );
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $result = $this->newsServiceClient->getCategoryList($requireData);
         if($result['code'] == 200){
-            return Result::success(PublicData::buildMenuTree($result['data']));
+            return Result::success($result['data']);
         }
         return  Result::error($result['message']);
     }

+ 31 - 0
app/Controller/WebController.php

@@ -766,4 +766,35 @@ class WebController extends AbstractController
         $result = $this->newsServiceClient->getWebsiteCatidArticle($requireData);
         return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
     }
+    /*
+     * 获取底部所有信息
+     * 
+     * */
+    public function getWebsiteFootAll()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'link_textnum' => 'required|integer',
+                'link_imgnum' => 'required|integer',
+                'link_footnum' => 'required|integer',
+            ],
+            [
+                'link_textnum.required' => '文字类型友情链接数量不能为空',
+                'link_textnum.integer' => '文字类型友情链接数量必须为整数',
+                'link_imgnum.required' => '图片类型友情链接数量不能为空',
+                'link_imgnum.integer' => '图片类型友情链接数量必须为整数',
+                'link_footnum.required' => '底部友情链接数量不能为空',
+                'link_footnum.integer' => '底部友情链接数量必须为整数',
+            ] 
+        );
+        if ($validator->fails()){
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage); 
+        }
+        $requireData['website_id'] =  Context::get("SiteId");
+        $result = $this->websiteServiceClient->getWebsiteFootAll($requireData);
+        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
+    }
 }

+ 1 - 1
app/JsonRpc/WebsiteService.php

@@ -687,7 +687,7 @@ class WebsiteService extends AbstractServiceClient implements WebsiteServiceInte
      * @param array $data
      * @return mixed
      */
-    public function getWebsiteCatidArticle(array $data)
+    public function getWebsiteFootAll(array $data)
     {
         return $this->__request(__FUNCTION__, $data);
     }

+ 6 - 1
app/JsonRpc/WebsiteServiceInterface.php

@@ -447,5 +447,10 @@ interface WebsiteServiceInterface
      *
      */
     public function getWebsiteParentCategory(array $data);
-
+    /**
+     * @param array $data
+     * @return mixed
+     *
+     */
+    public function getWebsiteFootAll(array $data);
 }

+ 95 - 0
app/Middleware/Auth/PublicMiddleware - 副本.php

@@ -0,0 +1,95 @@
+<?php
+
+declare(strict_types=1);
+
+namespace App\Middleware\Auth;
+
+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 PublicMiddleware implements MiddlewareInterface
+{
+    protected ContainerInterface $container;
+
+    protected RequestInterface $request;
+
+    protected HttpResponse $response;
+    protected JWT $JWT;
+    /**
+     * @var WebsiteServiceInterface
+     */
+    #[Inject]
+    private $websiteServiceClient;
+    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['userurl']) && $header['userurl'][0]!='null' && isset($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' => '网站不存在...',
+                        ]
+                    );
+                }
+//                var_dump($result['data']);
+                // var_dump("获取站点id:",$result);
+                Context::set("SiteId",$result['data']['id']);
+                if($result['data']['id']==1){
+                    Context::set("SiteId",0);
+                }
+
+                if ($result) {
+                    return $handler->handle($request);
+                }
+            }else{
+                return $this->response->json(
+                    [
+                        'code' => -1,
+                        'data' => [],
+                        'message' => 'userurl:必填',
+                    ]
+                );
+            }
+
+        }catch (\Exception $e){
+//            var_dump("错误消息:",$e->getMessage(),$e->getCode());
+            return $this->response->json(
+                [
+                    'code' => $e->getCode(),
+                    'data' => [],
+                    'message' => 'userurl必填:'.$e->getMessage(),
+                ]
+            );
+        }
+        return false;
+    }
+}

+ 89 - 0
app/Middleware/Auth/SensitiveMiddleware.php

@@ -0,0 +1,89 @@
+<?php
+
+declare(strict_types=1);
+
+namespace App\Middleware\Auth;
+
+use App\Tools\PublicData;
+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 function Hyperf\Support\env;
+
+class SensitiveMiddleware implements MiddlewareInterface
+{
+    protected ContainerInterface $container;
+
+    protected RequestInterface $request;
+
+    protected HttpResponse $response;
+
+    public function __construct( RequestInterface $request, HttpResponse $response)
+    {
+        $this->request = $request;
+        $this->response = $response;
+    }
+
+    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
+    {
+        try {
+          $req = $this->request->all();
+          $concatenated = "";
+          if($req){
+              foreach ($req as $value) {
+                  if (is_array($value)) {
+                      // 如果值是数组,将数组元素用逗号连接
+                      $concatenated.= implode(',', $value);
+                  } else {
+                      // 如果不是数组,直接拼接
+                      $concatenated.= $value;
+                  }
+              }
+          }
+          $url = env("SENSITIVE_WORD")."?msg=".urlencode($concatenated);
+          $rep = PublicData::http_get($url);
+            if (preg_match('/\{[^{}]*"code":[^}]*\}/', $rep, $matches)) {
+                $jsonString = $matches[0];
+                // 解析 JSON 字符串为 PHP 数组
+                $jsonData = json_decode($jsonString, true);
+                if ($jsonData!== null) {
+                    // 输出解析后的 JSON 数据
+                    print_r($jsonData);
+                    if($jsonData['code']==200){
+                        if(isset($jsonData['num']) && $jsonData['num']>0){
+                            return $this->response->json(
+                                [
+                                    'code' => 0,
+                                    'data' => [],
+                                    'message' => "存在敏感词:".$jsonData['ci'],
+                                ]
+                            );
+                        }
+                    }
+                } else {
+                    return $this->response->json(
+                        [
+                            'code' => 0,
+                            'data' => [],
+                            'message' => '解析敏感词接口失败',
+                        ]
+                    );
+                }
+            }
+          return $handler->handle($request);
+        }catch (\Exception $e){
+            return $this->response->json(
+                [
+                    'code' => $e->getCode(),
+                    'data' => [],
+                    'message' => '敏感词检测失败:'.$e->getMessage(),
+                ]
+            );
+        }
+        return false;
+    }
+}

+ 2 - 0
config/api/web.php

@@ -44,6 +44,8 @@ Router::addGroup(
                 Router::get('/getWebsiteParentCategory', [WebController::class, 'getWebsiteParentCategory']);
                 // 获取栏目下的文章
                 Router::get('/getWebsiteCatidArticle', [WebController::class, 'getWebsiteCatidArticle']);
+                // 获取底部所有信息
+                Router::get('/getWebsiteFootAll', [WebController::class, 'getWebsiteFootAll']);
             },
     ['middleware' => [WebMiddleware::class]]
 );

+ 1 - 1
config/autoload/middlewares.php

@@ -2,7 +2,7 @@
 return [
     'http' => [
         \App\Middleware\CorsMiddleware::class,
-//        \App\Middleware\Auth\FooMiddleware::class,
+        \App\Middleware\Auth\SensitiveMiddleware::class,
         \Hyperf\Validation\Middleware\ValidationMiddleware::class,
     ],
     'ws' => [