AI 3 月之前
父節點
當前提交
2ca0181381
共有 6 個文件被更改,包括 169 次插入1 次删除
  1. 71 0
      app/Controller/EsController.php
  2. 54 0
      app/JsonRpc/EsService.php
  3. 15 0
      app/JsonRpc/EsServiceInterface.php
  4. 20 0
      config/api/es.php
  5. 8 0
      config/autoload/services.php
  6. 1 1
      config/routes.php

+ 71 - 0
app/Controller/EsController.php

@@ -0,0 +1,71 @@
+<?php
+
+declare (strict_types = 1);
+
+namespace App\Controller;
+
+use App\JsonRpc\EsServiceInterface;
+use App\JsonRpc\UserServiceInterface;
+use App\Tools\Result;
+use Hyperf\Context\Context;
+use Hyperf\Di\Annotation\Inject;
+use Hyperf\HttpServer\Contract\RequestInterface;
+use Hyperf\HttpServer\Contract\ResponseInterface;
+use Hyperf\Validation\Contract\ValidatorFactoryInterface;
+
+/**
+ * Class EsController
+ * @package App\Controller
+ */
+class EsController extends AbstractController
+{
+    #[Inject]
+    protected ValidatorFactoryInterface $validationFactory;
+
+    /**
+     * @var EsServiceInterface
+     */
+    #[Inject]
+    private $EsServiceClient;
+    #[Inject]
+    private UserServiceInterface $userServiceClient;
+    public function createIndex()
+    {
+        
+        $requireData = $this->request->all();
+        $result = $this->EsServiceClient->createIndex($requireData)??[];
+        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
+    }
+    public function deleteIndex(){
+        $requireData = $this->request->all();
+        $result = $this->EsServiceClient->deleteIndex($requireData)??[];
+        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
+    }
+    public function getDocument(){
+        $requireData = $this->request->all();
+        $result = $this->EsServiceClient->getDocument($requireData)??[];
+        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
+    }
+    public function updateData(){
+        $requireData = $this->request->all();
+        $result = $this->EsServiceClient->updateData($requireData)??[];
+        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
+    }
+    public function deleteData(){
+        $requireData = $this->request->all();
+        $result = $this->EsServiceClient->deleteData($requireData)??[];
+        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
+    }
+    public function associateData(){
+        $requireData = $this->request->all();
+        $result = $this->EsServiceClient->associateData($requireData)??[];
+        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
+    }
+    public function searchIndex(){
+        $requireData = $this->request->all();
+        $result = $this->EsServiceClient->searchIndex($requireData)??[];
+        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
+    }
+
+
+}

+ 54 - 0
app/JsonRpc/EsService.php

@@ -0,0 +1,54 @@
+<?php
+
+namespace App\JsonRpc;
+
+use Hyperf\RpcClient\AbstractServiceClient;
+
+class EsService extends AbstractServiceClient implements EsServiceInterface
+{
+    /**
+     * 定义对应服务提供者的服务名称
+     * @var string
+     */
+    protected string $serviceName = 'EsService';
+    /**
+     * 定义对应服务提供者的服务协议
+     * @var string
+     */
+    protected string $protocol = 'jsonrpc-http';
+    /**
+     * 创建索引
+     *
+     * @param array $data
+     * @return array
+     */
+    public function createIndex(array $data): array
+    {
+        var_dump($data, true, 'SERVICE=================1');
+        return $this->__request(__FUNCTION__, $data);
+    }
+    public function associateData(array $data): array
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    public function searchIndex(array $data): array
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    public function deleteIndex(array $data): array
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    public function getDocument(array $data): array
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    public function updateData(array $data): array
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    public function deleteData(array $data): array
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+}

+ 15 - 0
app/JsonRpc/EsServiceInterface.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace App\JsonRpc;
+
+interface EsServiceInterface
+{
+    public function createIndex(array $data);
+    public function associateData(array $data);
+    public function searchIndex(array $data);
+    public function deleteIndex(array $data);
+    public function deleteData(array $data);
+    public function updateData(array $data);
+    public function getDocument(array $data);
+
+}

+ 20 - 0
config/api/es.php

@@ -0,0 +1,20 @@
+<?php
+
+declare (strict_types = 1);
+use App\Controller\EsController;
+use App\Middleware\Auth\FooMiddleware;
+use Hyperf\HttpServer\Router\Router;
+
+Router::addGroup(
+    '/es', function () {
+        Router::post('/createIndex', [EsController::class, 'createIndex']);
+        Router::post('/associateData', [EsController::class, 'associateData']);
+        Router::post('/searchIndex', [EsController::class, 'searchIndex']);
+        Router::post('/deleteIndex', [EsController::class, 'deleteIndex']);
+        Router::post('/deleteData', [EsController::class, 'deleteData']);
+        Router::post('/updateData', [EsController::class, 'updateData']);
+        Router::post('/getDocument', [EsController::class, 'getDocument']);
+
+    },
+    ['middleware' => [FooMiddleware::class]]
+);

+ 8 - 0
config/autoload/services.php

@@ -102,5 +102,13 @@ return [
                 ['host' => '127.0.0.1', 'port' => 9502],
             ],
         ],
+        [
+            //es服务
+            'name' => 'EsService',
+            'service' => \App\JsonRpc\EsServiceInterface::class,
+            'nodes' => [
+                ['host' => '127.0.0.1', 'port' => 9510],
+            ],
+        ],
     ],
 ];

+ 1 - 1
config/routes.php

@@ -37,4 +37,4 @@ require __DIR__ . '/api/web.php';
 require __DIR__ . '/api/order.php';
 require __DIR__ . '/api/collector.php';
 require __DIR__ . '/api/footer.php';
-
+require __DIR__ . '/api/es.php';