Browse Source

Merge branch 'master_good' into 20241106_lj_chat

AI 2 months ago
parent
commit
e5c774faa1
69 changed files with 3229 additions and 4202 deletions
  1. 37 0
      .env
  2. 254 0
      .idea/workspace.xml
  3. 14 14
      app/Amqp/Consumer/MqConsumer.php
  4. 1 1
      app/Amqp/Producer/MqProducer.php
  5. 0 20
      app/Cache/Contracts/HashRedisInterface.php
  6. 0 20
      app/Cache/Contracts/StreamRedisInterface.php
  7. 3 3
      app/Controller/AbstractController.php
  8. 1 0
      app/Controller/ChatController.php
  9. 798 0
      app/Controller/CollectorController.php
  10. 9 5
      app/Controller/LoginController.php
  11. 58 0
      app/Controller/MinioController.php
  12. 33 4
      app/Controller/NewsController.php
  13. 89 87
      app/Controller/OrderController.php
  14. 61 12
      app/Controller/PublicController.php
  15. 66 0
      app/Controller/SseController.php
  16. 47 13
      app/Controller/UserController.php
  17. 435 7
      app/Controller/WebController.php
  18. 4 4
      app/Controller/WebsiteController.php
  19. 150 0
      app/JsonRpc/CollectorService.php
  20. 86 0
      app/JsonRpc/CollectorServiceInterface.php
  21. 20 2
      app/JsonRpc/NewsService.php
  22. 9 3
      app/JsonRpc/NewsServiceInterface.php
  23. 10 1
      app/JsonRpc/OrderService.php
  24. 6 0
      app/JsonRpc/OrderServiceInterface.php
  25. 27 3
      app/JsonRpc/PublicRpcService.php
  26. 16 4
      app/JsonRpc/PublicRpcServiceInterface.php
  27. 9 0
      app/JsonRpc/UserService.php
  28. 6 0
      app/JsonRpc/UserServiceInterface.php
  29. 60 9
      app/JsonRpc/WebsiteService.php
  30. 49 0
      app/JsonRpc/WebsiteServiceInterface.php
  31. 3 2
      app/Middleware/Auth/FooMiddleware.php
  32. 4 1
      app/Middleware/Auth/WebMiddleware.php
  33. 2 1
      app/Middleware/CorsMiddleware.php
  34. 14 0
      app/Process/AsyncQueueConsumer.php
  35. 34 0
      app/Service/GatherQueueService.php
  36. 32 0
      app/Service/ImportQueueService.php
  37. 41 0
      app/Service/Server/StreamServer.php
  38. 62 0
      app/Tools/PublicData.php
  39. 28 28
      app/Tools/Result.php
  40. 9 3
      composer.json
  41. 426 138
      composer.lock
  42. 56 0
      config/api/collector.php
  43. 10 9
      config/api/order.php
  44. 18 2
      config/api/public.php
  45. 2 0
      config/api/user.php
  46. 11 1
      config/api/web.php
  47. 44 0
      config/autoload/async_queue.php
  48. 1 0
      config/autoload/processes.php
  49. 32 4
      config/autoload/redis.php
  50. 9 7
      config/autoload/server.php
  51. 31 0
      config/autoload/services.php
  52. 2 0
      config/routes.php
  53. 0 0
      runtime/container/classes.cache
  54. 0 169
      runtime/container/proxy/App_Controller_AdController.proxy.php
  55. 0 139
      runtime/container/proxy/App_Controller_AuthorityController.proxy.php
  56. 0 672
      runtime/container/proxy/App_Controller_ChatController.proxy.php
  57. 0 58
      runtime/container/proxy/App_Controller_IndexController.proxy.php
  58. 0 93
      runtime/container/proxy/App_Controller_LinkController.proxy.php
  59. 0 217
      runtime/container/proxy/App_Controller_LoginController.proxy.php
  60. 0 248
      runtime/container/proxy/App_Controller_NewsController.proxy.php
  61. 0 417
      runtime/container/proxy/App_Controller_PublicController.proxy.php
  62. 0 336
      runtime/container/proxy/App_Controller_UserController.proxy.php
  63. 0 701
      runtime/container/proxy/App_Controller_WebsiteController.proxy.php
  64. 0 69
      runtime/container/proxy/App_JsonRpc_AuthorityServiceInterface.rpc-client.proxy.php
  65. 0 93
      runtime/container/proxy/App_JsonRpc_NewsServiceInterface.rpc-client.proxy.php
  66. 0 145
      runtime/container/proxy/App_JsonRpc_UserServiceInterface.rpc-client.proxy.php
  67. 0 345
      runtime/container/proxy/App_JsonRpc_WebsiteServiceInterface.rpc-client.proxy.php
  68. 0 92
      runtime/container/proxy/App_Tools_CommonService.proxy.php
  69. 0 0
      runtime/container/scan.cache

+ 37 - 0
.env

@@ -0,0 +1,37 @@
+APP_NAME=admin_consumer
+APP_ENV=dev
+HOST = http://192.168.1.201:9501/
+DB_DRIVER=mysql
+DB_HOST=127.0.0.1
+DB_PORT=3306
+DB_DATABASE=hyperf
+DB_USERNAME=root
+DB_PASSWORD=root123
+DB_CHARSET=utf8mb4
+DB_COLLATION=utf8mb4_unicode_ci
+DB_PREFIX=
+
+#REDIS_HOST=101.254.114.211
+#REDIS_AUTH=YPWWnFnNebc7427B
+#REDIS_PORT=26739
+#REDIS_DB=0
+
+
+REDIS_HOST=192.168.1.201
+REDIS_AUTH=
+REDIS_PORT=6379
+REDIS_DB=0
+
+AMQP_HOST=103.105.201.2
+AMQP_PORT=5673
+AMQP_USER=rabbitmq
+AMQP_PASSWORD=H8eDTAk6LY7EjJ8y
+
+
+#小程序获取openid
+WECHAT = https://api.weixin.qq.com/
+
+#小程序appID
+APPID = wx830ada852dd1707f
+#小程序SECRET
+APP_SECRET = 09d1ac9287cb6f3c5e81aa27a6b7138e

+ 254 - 0
.idea/workspace.xml

@@ -0,0 +1,254 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="AutoImportSettings">
+    <option name="autoReloadType" value="SELECTIVE" />
+  </component>
+  <component name="ChangeListManager">
+    <list default="true" id="f943e179-929c-4d98-8619-4423423ee73e" name="更改" comment="" />
+    <option name="SHOW_DIALOG" value="false" />
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+    <option name="LAST_RESOLUTION" value="IGNORE" />
+  </component>
+  <component name="ComposerSettings" synchronizationState="SYNCHRONIZE">
+    <pharConfigPath>$PROJECT_DIR$/composer.json</pharConfigPath>
+    <execution />
+  </component>
+  <component name="Git.Settings">
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
+  </component>
+  <component name="MarkdownSettingsMigration">
+    <option name="stateVersion" value="1" />
+  </component>
+  <component name="PhpWorkspaceProjectConfiguration" interpreter_name="D:\BtSoft\php\74\php.exe">
+    <include_path>
+      <path value="$PROJECT_DIR$/vendor/hyperf/engine-contract" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/code-parser" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/snowflake" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/redis" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/engine" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/memory" />
+      <path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/watcher" />
+      <path value="$PROJECT_DIR$/vendor/symfony/http-foundation" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/collection" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/testing" />
+      <path value="$PROJECT_DIR$/vendor/symfony/console" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/nacos" />
+      <path value="$PROJECT_DIR$/vendor/evenement/evenement" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/json-rpc" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/cache" />
+      <path value="$PROJECT_DIR$/vendor/phar-io/version" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/event" />
+      <path value="$PROJECT_DIR$/vendor/phar-io/manifest" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/service-governance-consul" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/codec" />
+      <path value="$PROJECT_DIR$/vendor/php-di/phpdoc-reader" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/config-nacos" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/config-center" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/dispatcher" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/model-listener" />
+      <path value="$PROJECT_DIR$/vendor/php-amqplib/php-amqplib" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/pool" />
+      <path value="$PROJECT_DIR$/vendor/jetbrains/phpstorm-attributes" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/translation" />
+      <path value="$PROJECT_DIR$/vendor/easyswoole/spl" />
+      <path value="$PROJECT_DIR$/vendor/clue/ndjson-react" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/logger" />
+      <path value="$PROJECT_DIR$/vendor/easyswoole/verifycode" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/contract" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/consul" />
+      <path value="$PROJECT_DIR$/vendor/swoole/ide-helper" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/utils" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/constants" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/load-balancer" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/command" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/support" />
+      <path value="$PROJECT_DIR$/vendor/paragonie/constant_time_encoding" />
+      <path value="$PROJECT_DIR$/vendor/paragonie/random_compat" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/context" />
+      <path value="$PROJECT_DIR$/vendor/vlucas/phpdotenv" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/server" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/service-governance-nacos" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/config" />
+      <path value="$PROJECT_DIR$/vendor/friendsofphp/php-cs-fixer" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/rpc" />
+      <path value="$PROJECT_DIR$/vendor/swow/psr7-plus" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/stringable" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/devtool" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/pipeline" />
+      <path value="$PROJECT_DIR$/vendor/fidry/cpu-core-counter" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/coroutine" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/http-server" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/amqp" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/http-message" />
+      <path value="$PROJECT_DIR$/vendor/composer" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/macroable" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/di" />
+      <path value="$PROJECT_DIR$/vendor/egulias/email-validator" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/coordinator" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/db-connection" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php83" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-grapheme" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/validation" />
+      <path value="$PROJECT_DIR$/vendor/symfony/stopwatch" />
+      <path value="$PROJECT_DIR$/vendor/symfony/options-resolver" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/guzzle" />
+      <path value="$PROJECT_DIR$/vendor/symfony/deprecation-contracts" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/rpc-client" />
+      <path value="$PROJECT_DIR$/vendor/symfony/finder" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-ctype" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/websocket-server" />
+      <path value="$PROJECT_DIR$/vendor/symfony/service-contracts" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php81" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/tappable" />
+      <path value="$PROJECT_DIR$/vendor/symfony/translation-contracts" />
+      <path value="$PROJECT_DIR$/vendor/friendsofhyperf/openai-client" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/service-governance" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php80" />
+      <path value="$PROJECT_DIR$/vendor/hamcrest/hamcrest-php" />
+      <path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
+      <path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher" />
+      <path value="$PROJECT_DIR$/vendor/nikic/fast-route" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/conditionable" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-normalizer" />
+      <path value="$PROJECT_DIR$/vendor/symfony/process" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/stdlib" />
+      <path value="$PROJECT_DIR$/vendor/symfony/translation" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/serializer" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-idn" />
+      <path value="$PROJECT_DIR$/vendor/guzzlehttp/guzzle" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/rpc-server" />
+      <path value="$PROJECT_DIR$/vendor/phpstan/phpstan" />
+      <path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher-contracts" />
+      <path value="$PROJECT_DIR$/vendor/theseer/tokenizer" />
+      <path value="$PROJECT_DIR$/vendor/symfony/string" />
+      <path value="$PROJECT_DIR$/vendor/guzzlehttp/promises" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/framework" />
+      <path value="$PROJECT_DIR$/vendor/symfony/filesystem" />
+      <path value="$PROJECT_DIR$/vendor/guzzlehttp/psr7" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/php-file-iterator" />
+      <path value="$PROJECT_DIR$/vendor/laminas/laminas-mime" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/exception-handler" />
+      <path value="$PROJECT_DIR$/vendor/laminas/laminas-stdlib" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
+      <path value="$PROJECT_DIR$/vendor/php-http/multipart-stream-builder" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/process" />
+      <path value="$PROJECT_DIR$/vendor/php-http/discovery" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/phpunit" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/php-timer" />
+      <path value="$PROJECT_DIR$/vendor/zx/php-tools" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/php-invoker" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" />
+      <path value="$PROJECT_DIR$/vendor/monolog/monolog" />
+      <path value="$PROJECT_DIR$/vendor/phpoption/phpoption" />
+      <path value="$PROJECT_DIR$/vendor/fig/http-message-util" />
+      <path value="$PROJECT_DIR$/vendor/markrogoyski/math-php" />
+      <path value="$PROJECT_DIR$/vendor/psr/simple-cache" />
+      <path value="$PROJECT_DIR$/vendor/psr/clock" />
+      <path value="$PROJECT_DIR$/vendor/psr/http-server-middleware" />
+      <path value="$PROJECT_DIR$/vendor/psr/cache" />
+      <path value="$PROJECT_DIR$/vendor/psr/http-message" />
+      <path value="$PROJECT_DIR$/vendor/psr/event-dispatcher" />
+      <path value="$PROJECT_DIR$/vendor/psr/container" />
+      <path value="$PROJECT_DIR$/vendor/psr/http-client" />
+      <path value="$PROJECT_DIR$/vendor/psr/http-server-handler" />
+      <path value="$PROJECT_DIR$/vendor/psr/http-factory" />
+      <path value="$PROJECT_DIR$/vendor/react/child-process" />
+      <path value="$PROJECT_DIR$/vendor/react/event-loop" />
+      <path value="$PROJECT_DIR$/vendor/react/stream" />
+      <path value="$PROJECT_DIR$/vendor/react/cache" />
+      <path value="$PROJECT_DIR$/vendor/openai-php/client" />
+      <path value="$PROJECT_DIR$/vendor/react/promise" />
+      <path value="$PROJECT_DIR$/vendor/react/socket" />
+      <path value="$PROJECT_DIR$/vendor/psr/log" />
+      <path value="$PROJECT_DIR$/vendor/lcobucci/jwt" />
+      <path value="$PROJECT_DIR$/vendor/react/dns" />
+      <path value="$PROJECT_DIR$/vendor/lcobucci/clock" />
+      <path value="$PROJECT_DIR$/vendor/phpseclib/phpseclib" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/database" />
+      <path value="$PROJECT_DIR$/vendor/mockery/mockery" />
+      <path value="$PROJECT_DIR$/vendor/ralouphie/getallheaders" />
+      <path value="$PROJECT_DIR$/vendor/phper666/jwt-auth" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/lines-of-code" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/object-enumerator" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/type" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/diff" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/recursion-context" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/environment" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/version" />
+      <path value="$PROJECT_DIR$/vendor/death_satan/hyperf-validate" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/complexity" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/exporter" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/cli-parser" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/comparator" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/code-unit" />
+      <path value="$PROJECT_DIR$/vendor/doctrine/deprecations" />
+      <path value="$PROJECT_DIR$/vendor/doctrine/annotations" />
+      <path value="$PROJECT_DIR$/vendor/doctrine/lexer" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/object-reflector" />
+      <path value="$PROJECT_DIR$/vendor/stella-maris/clock" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/global-state" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
+      <path value="$PROJECT_DIR$/vendor/graham-campbell/result-type" />
+      <path value="$PROJECT_DIR$/vendor/doctrine/instantiator" />
+      <path value="$PROJECT_DIR$/vendor/doctrine/inflector" />
+      <path value="$PROJECT_DIR$/vendor/nesbot/carbon" />
+      <path value="$PROJECT_DIR$/vendor/hyperf/async-queue" />
+      <path value="$PROJECT_DIR$/vendor/carbonphp/carbon-doctrine-types" />
+      <path value="$PROJECT_DIR$/vendor/aws/aws-crt-php" />
+      <path value="$PROJECT_DIR$/vendor/aws/aws-sdk-php" />
+      <path value="$PROJECT_DIR$/vendor/mtdowling/jmespath.php" />
+    </include_path>
+  </component>
+  <component name="ProjectColorInfo"><![CDATA[{
+  "associatedIndex": 3
+}]]></component>
+  <component name="ProjectId" id="2qujtr8hxgPzTXMJ7F15U9bBHUB" />
+  <component name="ProjectViewState">
+    <option name="hideEmptyMiddlePackages" value="true" />
+    <option name="showLibraryContents" value="true" />
+  </component>
+  <component name="PropertiesComponent"><![CDATA[{
+  "keyToString": {
+    "RunOnceActivity.OpenProjectViewOnStart": "true",
+    "RunOnceActivity.ShowReadmeOnStart": "true",
+    "git-widget-placeholder": "正在合并 dev",
+    "kotlin-language-version-configured": "true",
+    "last_opened_file_path": "D:/wwwroot/zxt",
+    "node.js.detected.package.eslint": "true",
+    "node.js.detected.package.tslint": "true",
+    "node.js.selected.package.eslint": "(autodetect)",
+    "node.js.selected.package.tslint": "(autodetect)",
+    "nodejs_package_manager_path": "npm",
+    "vue.rearranger.settings.migration": "true"
+  }
+}]]></component>
+  <component name="RecentsManager">
+    <key name="MoveFile.RECENT_KEYS">
+      <recent name="D:\wwwroot\zxt\admin_consumer\config\autoload" />
+    </key>
+  </component>
+  <component name="RunManager">
+    <configuration name="主" type="PHPUnitRunConfigurationType" factoryName="PHPUnit">
+      <TestRunner configuration_file="$PROJECT_DIR$/phpunit.xml.dist" scope="XML" use_alternative_configuration_file="true" />
+      <method v="2" />
+    </configuration>
+  </component>
+  <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
+  <component name="TaskManager">
+    <task active="true" id="Default" summary="默认任务">
+      <changelist id="f943e179-929c-4d98-8619-4423423ee73e" name="更改" comment="" />
+      <created>1735519571105</created>
+      <option name="number" value="Default" />
+      <option name="presentableId" value="Default" />
+      <updated>1735519571105</updated>
+      <workItem from="1735519572141" duration="10106000" />
+    </task>
+    <servers />
+  </component>
+  <component name="TypeScriptGeneratedFilesManager">
+    <option name="version" value="3" />
+  </component>
+</project>

+ 14 - 14
app/Amqp/Consumer/MqConsumer.php

@@ -13,7 +13,7 @@ use PhpAmqpLib\Message\AMQPMessage;
 use Psr\Log\LoggerInterface;
 use Hyperf\Redis\RedisFactory;
 
-#[Consumer(exchange: 'chatdev', routingKey: 'chatdev', queue: 'chatdev', name: "chatdev", nums: 1)]
+#[Consumer(exchange: 'chatprod', routingKey: 'chatprod', queue: 'chatprod', name: "chatprod", nums: 1)]
 class MqConsumer extends ConsumerMessage
 {
     /**
@@ -33,21 +33,21 @@ class MqConsumer extends ConsumerMessage
 
     public function consumeMessage($data, AMQPMessage $message): Result
     {
-        $redis = $this->redisFactory->get('default');
-        $lockKey = 'mq_consumer_lock';
-        $lockValue = uniqid();
+        // $redis = $this->redisFactory->get('default');
+        // $lockKey = 'mq_consumer_lock';
+        // $lockValue = uniqid();
 
-        // 获取锁
-        $lockAcquired = $redis->setnx($lockKey, $lockValue);
-        if (!$lockAcquired) {
-            $this->logger->info('Another consumer instance is already running.');
-            $this->logger->info($redis->get($lockKey));
-            // return Result::ACK;
-            return Result::REQUEUE;
-        }
+        // // 获取锁
+        // $lockAcquired = $redis->setnx($lockKey, $lockValue);
+        // if (!$lockAcquired) {
+        //     $this->logger->info('Another consumer instance is already running.');
+        //     $this->logger->info($redis->get($lockKey));
+        //     // return Result::ACK;
+        //     return Result::REQUEUE;
+        // }
 
-        // 设置锁过期时间,防止死锁
-        $redis->expire($lockKey, 60);
+        // // 设置锁过期时间,防止死锁
+        // $redis->expire($lockKey, 60);
         try {
             // 数据存储
             $this->logger->info('消费数据', ['data' => $data]);

+ 1 - 1
app/Amqp/Producer/MqProducer.php

@@ -7,7 +7,7 @@ namespace App\Amqp\Producer;
 use Hyperf\Amqp\Annotation\Producer;
 use Hyperf\Amqp\Message\ProducerMessage;
 
-#[Producer(exchange: 'chatdev', routingKey: 'chatdev')]
+#[Producer(exchange: 'chatprod', routingKey: 'chatprod')]
 class MqProducer extends ProducerMessage
 {
     public function __construct($data)

+ 0 - 20
app/Cache/Contracts/HashRedisInterface.php

@@ -1,20 +0,0 @@
-<?php
-
-namespace App\Cache\Contracts;
-
-interface SetRedisInterface
-{
-    public function count();
-
-    public function add(string ...$member);
-
-    public function rem(string ...$member);
-
-    public function isMember(string $member);
-
-    public function randMember($count = 1);
-
-    public function all();
-
-    public function delete();
-}

+ 0 - 20
app/Cache/Contracts/StreamRedisInterface.php

@@ -1,20 +0,0 @@
-<?php
-
-namespace App\Cache\Contracts;
-
-interface SetRedisInterface
-{
-    public function count();
-
-    public function add(string ...$member);
-
-    public function rem(string ...$member);
-
-    public function isMember(string $member);
-
-    public function randMember($count = 1);
-
-    public function all();
-
-    public function delete();
-}

+ 3 - 3
app/Controller/AbstractController.php

@@ -17,9 +17,7 @@ use Hyperf\HttpServer\Contract\RequestInterface;
 use Hyperf\HttpServer\Contract\ResponseInterface;
 
 
-use Hyperf\Logger\LoggerFactory;
 use Psr\Container\ContainerInterface;
-use Psr\Log\LoggerInterface;
 
 abstract class AbstractController
 {
@@ -31,15 +29,17 @@ abstract class AbstractController
 
     #[Inject]
     protected ResponseInterface $response;
+
     
     /**
      * @var LoggerInterface
      */
-    private $logger;
+//    private $logger;
 //    public function __construct(LoggerFactory $loggerFactory)
 //    {
 //        $this->logger =  $loggerFactory->get('admin_consumer:', 'default');
 //        $this->logger->info("项目启动访问一次");
 //    }
 
+
 }

+ 1 - 0
app/Controller/ChatController.php

@@ -640,6 +640,7 @@ class ChatController extends AbstractController
         }
         $requireData['user_id'] = Context::get("UserId");
         $result = $this->chatServiceClient->joinGroup($requireData);
+        var_dump($result,'-----------1--------');
         return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
     }
 

+ 798 - 0
app/Controller/CollectorController.php

@@ -0,0 +1,798 @@
+<?php
+
+declare(strict_types=1);
+namespace App\Controller;
+
+use App\JsonRpc\CollectorServiceInterface;
+use App\Tools\PublicData;
+use Hyperf\Di\Annotation\Inject;
+use Hyperf\HttpServer\Annotation\AutoController;
+use App\Tools\Result;
+use Hyperf\Validation\Contract\ValidatorFactoryInterface;
+use App\Constants\ErrorCode;
+use Hyperf\Context\Context;
+//use App\Service\GatherQueueService;
+use App\Service\ImportQueueService;
+/**
+ * ClassCollectorController
+ * @package App\Controller
+ */
+
+class CollectorController extends AbstractController
+{
+    #[Inject]
+    protected ValidatorFactoryInterface $validationFactory;
+//    #[Inject]
+//    protected GatherQueueService $Gservice;
+    #[Inject]
+    protected ImportQueueService $Iservice;
+
+    /**
+     * @var CollectorServiceInterface
+     */
+    #[Inject]
+    private $collectorServiceClient;
+ 
+    /**
+     * 添加网站
+     * @return array
+     */
+    public function addWeb()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'name'=> 'required',
+                'url'=> 'required',
+            ],
+            [
+                'name.required' => '网站名称不能为空',
+                'url.required' => '网站地址不能为空',
+            ]
+        );
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+
+
+        
+        $result = $this->collectorServiceClient->addWeb($requireData);
+        if ($result['code'] != ErrorCode::SUCCESS) {
+            return Result::error($result['message'],0,[]);
+        }
+        return Result::success($result['data']);
+    }
+     /**
+     * 获取及搜索网站
+     * @return array
+     */
+    public function getWeb()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'page'=> 'required',
+                'pageSize'=> 'required',
+            ],
+            [
+                'page.required' => '第几页不能为空',
+                'pageSize.required' => '每页显示条数不能为空',
+            ]
+        );
+        if(isset($requireData['keyWord'])){
+            $validator = $this->validationFactory->make(
+                $requireData,
+                [
+                    'keyWord'=> 'required'
+                ],
+                [
+                    'keyWord.required' => '搜索词不能为空'
+                ]
+            );
+        }
+        
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }        
+        $result = $this->collectorServiceClient->getWeb($requireData);
+        if ($result['code'] != ErrorCode::SUCCESS) {
+            return Result::error($result['message'],0,[]);
+        }
+        return Result::success($result['data']);
+    }
+    /**
+     * 修改网站
+     * @return array
+     */
+    public function upWeb()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'name'=> 'required',
+                'url'=> 'required',
+                'id' => 'required'
+            ],
+            [
+                'name.required' => '网站名称不能为空',
+                'url.required' => '网站地址不能为空',
+                'id.required' => '网站id不能为空'
+            ]
+        );        
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }        
+        $result = $this->collectorServiceClient->upWeb($requireData);
+        if ($result['code'] != ErrorCode::SUCCESS) {
+            return Result::error($result['message'],0,[]);
+        }
+        return Result::success($result['data']);
+    }
+    /**
+     * 删除网站 
+     * @return array
+     */
+    public function delWeb()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'id' => 'required'
+            ],
+            [
+                'id.required' => '网站id不能为空'
+            ]
+        );        
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }        
+        $result = $this->collectorServiceClient->delWeb($requireData);
+        if ($result['code'] != ErrorCode::SUCCESS) {
+            return Result::error($result['message'],0,[]);
+        }
+        return Result::success($result['data']);
+    }
+    
+    /**
+     * 添加规则任务
+     * @return array
+     */
+
+    public function addRule()
+    {
+        
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'name' => 'required',
+                'web_id' => 'required',
+                'type' => 'required'
+            ],
+            [
+                'name.required' => '任务规则名称不能为空',
+                'web_id.required' => '网站id不能为空',
+                'type.required' => '网站类型不能为空'
+            ]
+        );  
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        switch($requireData['type']){
+            case 1:
+                $validator = $this->validationFactory->make(
+                    $requireData,
+                    [
+                        'first_url' => 'required',
+                        'second_start' => 'required',
+                        'second_num' => 'required',
+                        'second_end' => 'required',
+                        'end_pagenum' => 'required',
+                        'start' => 'required',
+                        'con_url' => 'required',
+                        'title' => 'required',
+                        'content' => 'required'
+                    ],
+                    [
+                        'first_url.required' => '第1页网址不能为空',
+                        'second_start.required' => '第2页网址开头不能为空',
+                        'second_num.required' => '第2页代码页数不能为空',
+                        'second_end.required' => '第2页网址结束字符串不能为空',
+                        'end_pagenum.required' => '列表页结束页码不能为空',
+                        'start.required' => '开始代码不能为空',
+                        'con_url.required' => '详情页前缀地址不能为空',
+                        'title.required' => '标题标签类名不能为空',
+                        'content.required' => '内容标签类名不能为空'
+                    ]
+                ); 
+                if ($validator->fails()) {
+                    $errorMessage = $validator->errors()->first();
+                    return Result::error($errorMessage);
+                } 
+
+                break; 
+            case 2:
+                $validator = $this->validationFactory->make(
+                    $requireData,
+                    [
+                        'first_url' => 'required',
+                        'parameter' => 'required',
+                        'start' => 'required',
+                        'title' => 'required',
+                        'content' => 'required',
+                    ],
+                    [
+                        'first_url.required' => '开始采集地址不能为空',
+                        'parameter.required' => '接口参数不能为空',
+                        'start.required' => '列表标签不能为空',
+                        'title.required' => '标题标签不能为空',
+                        'content.required' => '内容标签不能为空'
+                    ]
+                );  
+                if ($validator->fails()) {
+                    $errorMessage = $validator->errors()->first();
+                    return Result::error($errorMessage);
+                }  
+                // var_dump("============2============");                    
+                break;
+            case 3:
+                $validator = $this->validationFactory->make(
+                    $requireData,
+                    [
+                        'diy_rule' => 'required'
+                    ],
+                    [
+                        'diy_rule.required' => '采集规则不能为空'
+                    ]
+                ); 
+                if ($validator->fails()) {
+                    $errorMessage = $validator->errors()->first();
+                    return Result::error($errorMessage);
+                }  
+                // var_dump("============3============");  
+                break;
+            default:
+                return Result::error('请输入正确的网站类型');
+                break;
+                
+        }
+
+        if(isset($requireData['writer_class']) && $requireData['type'] == 2){
+            $validator = $this->validationFactory->make(
+                $requireData,
+                [
+                    'writer_class' => 'required'
+                ],
+                [
+                    'writer_class.required' => '作者标签不能为空'
+                ]
+            ); 
+            if ($validator->fails()) {
+                $errorMessage = $validator->errors()->first();
+                return Result::error($errorMessage);
+            }  
+        }
+
+        if(isset($requireData['writer']) && $requireData['type'] != 3){
+            $validator = $this->validationFactory->make(
+                $requireData,
+                [
+                    'writer' => 'required'
+                ],
+                [
+                    'writer.required' => '文章作者不能为空'
+                ]
+            );  
+            if ($validator->fails()) {
+                $errorMessage = $validator->errors()->first();
+                return Result::error($errorMessage);
+            }  
+        }
+        // return Result::success($requireData);
+        $result = $this->collectorServiceClient->addRule($requireData);
+        if ($result['code'] != ErrorCode::SUCCESS) {
+            return Result::error($result['message'],0,[]);
+        }
+        return Result::success($result['data']);
+    }
+    
+    /**
+     * 获取并搜索任务规则
+     * @return array
+     */
+    public function getRule()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'pageSize' => 'required',
+                'page' => 'required'
+            ],
+            [
+                'pageSize.required' => '每页显示数量不能为空',
+                'page.required' => '第几页不能为空',
+            ]
+        ); 
+        if(isset($requireData['keyWord'])){
+            $validator = $this->validationFactory->make(
+                $requireData,
+                [
+                    'keyWord' => 'required'
+                ],
+                [
+                    'keyWord.required' => '搜索词不能为空'
+                ]
+            ); 
+        }      
+
+        if(isset($requireData['web_id'])){
+            $validator = $this->validationFactory->make(
+                $requireData,
+                [
+                    'web_id' => 'required'
+                ],
+                [
+                    'web_id.required' => '网站id不能为空'
+                ]
+            ); 
+        }   
+             
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }        
+        $result = $this->collectorServiceClient->getRule($requireData);
+        if ($result['code'] != ErrorCode::SUCCESS) {
+            return Result::error($result['message'],0,[]);
+        }
+        return Result::success($result['data']);
+    }
+    /**
+     * 获取某个规则任务
+     * @return array
+     */
+    public function getOneRule()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'id' => 'required'
+            ],
+            [
+                'id.required' => '任务规则id不能为空'
+            ]
+        );        
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }        
+        $result = $this->collectorServiceClient->getOneRule($requireData);
+        if ($result['code'] != ErrorCode::SUCCESS) {
+            return Result::error($result['message'],0,[]);
+        }
+        return Result::success($result['data']);
+    } 
+    /**
+     * 修改规则任务
+     * @return array
+     */
+    public function upRule()
+    {
+        $requireData = $this->request->all();
+        // var_dump("&&&&:",$requireData);
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'id' => 'required',
+                'name' => 'required',
+                'type' => 'required'
+            ],
+            [
+                'name.required' => '任务规则名称不能为空',
+                'id.required' => '任务规则id不能为空',
+                'type.required' => '网站类型不能为空'
+            ]
+        );  
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        switch($requireData['type']){
+            case 1:
+                $validator = $this->validationFactory->make(
+                    $requireData,
+                    [
+                        'first_url' => 'required',
+                        'second_start' => 'required',
+                        'second_num' => 'required',
+                        'second_end' => 'required',
+                        'start' => 'required',
+                        'con_url' => 'required',
+                        'title' => 'required',
+                        'content' => 'required',
+                    ],
+                    [
+                        'first_url.required' => '第1页网址不能为空',
+                        'second_start.required' => '第2页网址开头不能为空',
+                        'second_num.required' => '第2页代码页数不能为空',
+                        'second_end.required' => '第2页网址结束字符串不能为空',
+                        'end_pagenum.required' => '列表页结束页码不能为空',
+                        'start.required' => '开始代码不能为空',
+                        'con_url.required' => '详情页前缀地址不能为空',
+                        'title.required' => '标题标签类名不能为空',
+                        'content.required' => '内容标签类名不能为空',
+                    ]
+                ); 
+                if ($validator->fails()) {
+                    $errorMessage = $validator->errors()->first();
+                    return Result::error($errorMessage);
+                }  
+                // var_dump("============1============");  
+
+                break;                
+            case 2:
+                $validator = $this->validationFactory->make(
+                    $requireData,
+                    [
+                        'first_url' => 'required',
+                        'parameter' => 'required',
+                        'start' => 'required',
+                        'title' => 'required',
+                        'content' => 'required',
+                    ],
+                    [
+                        'first_url.required' => '开始采集地址不能为空',
+                        'parameter.required' => '接口参数不能为空',
+                        'start.required' => '列表标签不能为空',
+                        'title.required' => '标题标签不能为空',
+                        'content.required' => '内容标签不能为空'
+                    ]
+                );  
+                if ($validator->fails()) {
+                    $errorMessage = $validator->errors()->first();
+                    return Result::error($errorMessage);
+                }  
+                // var_dump("============2============");                    
+                break;
+            case 3:
+                $validator = $this->validationFactory->make(
+                    $requireData,
+                    [
+                        'diy_rule' => 'required'
+                    ],
+                    [
+                        'diy_rule.required' => '采集规则不能为空'
+                    ]
+                ); 
+                if ($validator->fails()) {
+                    $errorMessage = $validator->errors()->first();
+                    return Result::error($errorMessage);
+                }  
+                // var_dump("============3============");  
+                break;
+            default:
+                return Result::error('请输入正确的网站类型');
+                break;
+                
+        }
+        if(isset($requireData['writer_class']) && $requireData['type'] == 2){
+            $validator = $this->validationFactory->make(
+                $requireData,
+                [
+                    'writer_class' => 'required'
+                ],
+                [
+                    'writer_class.required' => '作者标签不能为空'
+                ]
+            ); 
+            if ($validator->fails()) {
+                $errorMessage = $validator->errors()->first();
+                return Result::error($errorMessage);
+            }  
+        }
+        
+        if(isset($requireData['writer']) && $requireData['type'] != 3){
+            $validator = $this->validationFactory->make(
+                $requireData,
+                [
+                    'writer' => 'required'
+                ],
+                [
+                    'writer.required' => '文章作者不能为空'
+                ]
+            );  
+            if ($validator->fails()) {
+                $errorMessage = $validator->errors()->first();
+                return Result::error($errorMessage);
+            }  
+        }
+        // var_dump("++++++++++",$requireData);
+        $result = $this->collectorServiceClient->upRule($requireData);
+        if ($result['code'] != ErrorCode::SUCCESS) {
+            return Result::error($result['message'],0,[]);
+        }
+        return Result::success($result['data']);
+
+    } 
+    /**
+    * 删除任务规则
+    * @return array
+    */
+    public function delRule()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'rule_id' => 'required'
+            ],
+            [
+                'rule_id.required' => '任务规则id不能为空'
+            ]
+        ); 
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }        
+        $result = $this->collectorServiceClient->delRule($requireData);
+        if ($result['code'] != ErrorCode::SUCCESS) {
+            return Result::error($result['message'],0,[]);
+        }
+        return Result::success($result['data']);
+    }
+
+    /**
+     * 开始采集
+     * @return array
+     */
+    public function sendCrawler()
+    {
+        $data = [];
+        $data['admin_user_id'] = Context::get("UserId");
+        $data['time'] = microtime();
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'id'=> 'required',
+            ],
+            [
+                'id.required' => '规则id不能为空',
+            ]
+        );
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+//        $b  = $this->Iservice->push($data,1);
+        $data['id'] = $requireData['id'];
+        var_dump("发送数据:",$data);
+        $result =  $this->collectorServiceClient->sendCrawler($data);
+        return $result['code']==200?Result::success($result['data']):Result::error('采集失败');
+
+    }
+
+    /**
+     * 发送请求
+     * @param $data
+     * @return array
+     */
+
+    public function goSendCrawler($data=[])
+    {
+        var_dump("我要开始采集了!!!");
+        $this->collectorServiceClient->sendCrawler($data);
+        return Result::success([]);
+    }
+    /**
+     * 获取并搜索资讯
+     * @return array
+     */
+    public function getInfo()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'rule_id' => 'required',
+                'pageSize' => 'required',
+                'page' => 'required'
+            ],
+            [
+                'rule_id.required' => '规则任务id不能为空',
+                'pageSize.required' => '每页显示数量不能为空',
+                'page.required' => '第几页不能为空'
+            ]
+        ); 
+
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $result = $this->collectorServiceClient->getInfo($requireData);        
+        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
+        
+    }
+    /**
+     * 获取某个资讯
+     * @return array
+     */
+    public function getOneInfo()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'art_id' => 'required'
+            ],
+            [
+                'art_id.required' => '资讯id不能为空'
+            ]
+        ); 
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $result = $this->collectorServiceClient->getOneInfo($requireData);
+        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
+    }
+    /**
+     *修改资讯
+     * @return array
+     */
+    public function upInfo()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+
+            $requireData,
+            [
+                'art_id' => 'required',
+                'title' => 'required',
+                'keyword' => 'required',
+                'content' => 'required',
+                'hits' => 'required',
+                'is_original' => 'required',
+                'islink' => 'required'
+            ],
+            [
+                'art_id.required' => '资讯id不能为空',
+                'title.required' => '资讯标题不能为空',
+                'keyword.required' => '资讯关键词不能为空',
+                'content.required' => '资讯内容不能为空',
+                'hits.required' => '浏览量不能为空',
+                'is_original.required' => '原创不能为空',
+                'islink.required' => '外链不能为空'
+            ]
+            
+        ); 
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        if($requireData['islink']==1){
+            $requireData = $this->request->all();
+            $validator = $this->validationFactory->make(
+                $requireData,
+                [
+                    'linkurl' => 'required'
+                ],
+                [
+                    'linkurl.required' => '外链地址不能为空'
+                ]
+            ); 
+            if ($validator->fails()) {
+                $errorMessage = $validator->errors()->first();
+                return Result::error($errorMessage);
+            }
+        }
+        if($requireData['is_original']==0){
+            $requireData = $this->request->all();
+            $validator = $this->validationFactory->make(
+                $requireData,
+                [
+                    'fromurl' => 'required',
+                    'copyfrom' => 'required'
+                ],
+                [
+                    'fromurl.required' => '采集来源地址不能为空',
+                    'copyfrom' => '采集来源不能为空'
+                ]
+            ); 
+            if ($validator->fails()) {
+                $errorMessage = $validator->errors()->first();
+                return Result::error($errorMessage);
+            }
+        }
+        $result = $this->collectorServiceClient->upInfo($requireData);
+        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
+    }
+    /**
+     * 删除资讯
+     * @return array
+     */
+    public function delInfo()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'art_id' => 'required'
+            ],
+            [
+                'art_id.required' => '资讯id不能为空'
+            ]
+        ); 
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $result = $this->collectorServiceClient->delInfo($requireData);
+        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
+    }
+    /**
+     * 关联导航池
+     * @return array
+     */
+    public function addCatid()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'rule_id' => 'required'
+            ],
+            [
+                'rule_id.required' => '任务规则id不能为空'
+            ]
+        ); 
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $result = $this->collectorServiceClient->addCatid($requireData);
+        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
+    }
+     /**
+     * 开始导入
+     * @return array
+     */
+    public function addArt()
+    {
+        $requireData = $this->request->all();
+        if(!empty($requireData)){
+            $validator = $this->validationFactory->make(
+                $requireData,
+                [
+                    'rule_id' => 'required'
+                ],
+                [
+                    'rule_id.required' => '任务规则id不能为空'
+                ]
+            ); 
+            if ($validator->fails()) {
+                $errorMessage = $validator->errors()->first();
+                return Result::error($errorMessage);
+            }
+        }
+        $data['rule_id'] = $requireData['rule_id'];
+        $data['time'] = microtime();
+        
+        // var_dump("=====111",$data);
+        $result  = $this->collectorServiceClient->addArt($data);
+        // var_dump("=====222",$result);
+        return Result::success($result);
+    }
+
+}

+ 9 - 5
app/Controller/LoginController.php

@@ -57,7 +57,6 @@ class LoginController extends AbstractController
             return Result::error("验证码已过期");
         }
         var_dump("验证码:", $code);
-
         var_dump((strtolower($code) . strtolower($reqData['captcha'])));
         if (strtolower($code) != strtolower($reqData['captcha'])) {
             return Result::error("验证码错误");
@@ -72,12 +71,16 @@ class LoginController extends AbstractController
 //        $this->logger->info("验证之前");
         $userInfos = $this->userServiceClient->verifyUserInfo($where);
         if ($userInfos['code'] == 0) {
-            return Result::error("用户名或密码错误");
+            return Result::error("用户不存在");
+        }
+//        var_dump("数据:",$userInfos);
+        if($userInfos['data']['status']==0){
+            return Result::error("用户已经冻结");
         }
-        var_dump("用户信息:", $userInfos);
+//        var_dump("用户信息:", $userInfos);
 //        $this->logger->info("验证用户返回值:", $userInfos);
         if (md5(md5($reqData['password']) . $userInfos['data']['salt']) != $userInfos['data']['password']) {
-            return Result::error("用户名或密码错误");
+            return Result::error("登陆密码错误");
         }
         $userData = [
             'uid' => $userInfos['data']['id'], // 如果使用单点登录,必须存在配置文件中的sso_key的值,一般设置为用户的id
@@ -88,7 +91,7 @@ class LoginController extends AbstractController
             'level_id' => $userInfos['data']['level_id'],
             'type_id' => $userInfos['data']['type_id'],
         ];
-        var_dump($userData);
+//        var_dump($userData);
         // 使用默认场景登录
         $token = $jwt->getToken('default', $userData);
         $data = [
@@ -200,6 +203,7 @@ class LoginController extends AbstractController
                 'user_name' => $response['phone_info']['purePhoneNumber'],
                 'salt' => $salt,
                 'password' => $openInfoData['openid'],
+                'type_id' => 20000,
             ];
             $checkUserInfo = $this->userServiceClient->createUser($createUserData);
         }

+ 58 - 0
app/Controller/MinioController.php

@@ -0,0 +1,58 @@
+<?php
+declare (strict_types = 1);
+namespace App\Controller;
+
+use App\JsonRpc\PublicRpcServiceInterface;
+use App\Tools\Result;
+use Hyperf\Di\Annotation\Inject;
+use Hyperf\Validation\Contract\ValidatorFactoryInterface;
+
+class MinioController extends AbstractController
+{
+    #[Inject]
+    protected ValidatorFactoryInterface $validationFactory;
+    /**
+     * @var PublicRpcServiceInterface
+     */
+    #[Inject]
+    private $publicServiceClient;
+
+    /**
+     * 获取所有的buckets
+     * @return array
+     */
+    public function listBuckets()
+    {
+       $result = $this->publicServiceClient->getBuckets([]);
+        // 直接返回服务层生成的响应
+       return Result::success($result['data']);
+    }
+
+    /**
+     * 上传文件
+     * @return array
+     */
+    public function uploadFiles()
+    {
+        $uploadedFile  = $this->request->file('file');
+        if ($uploadedFile && $uploadedFile->isValid()) {
+            $filename = $uploadedFile->getClientFilename();
+            $fileContent = base64_encode(file_get_contents($uploadedFile->getRealPath()));
+            $mimeType = $uploadedFile->getMimeType();
+            $data['fileContent'] = $fileContent;
+            $data['fileName'] = $filename;
+            $data['contentType'] = $mimeType;
+            $data['ext'] = $uploadedFile->getExtension();
+            $data['size'] = $uploadedFile->getSize();
+            $result = $this->publicServiceClient->uploadFile($data);
+            if($result['code']==200){
+                return Result::success($result['data']);
+            }else{
+                return Result::error("上传失败了!");
+            }
+        }else{
+            return Result::error("请选择需要上传的文件");
+        }
+
+    }
+}

+ 33 - 4
app/Controller/NewsController.php

@@ -63,6 +63,7 @@ class NewsController extends AbstractController
      */
     public function categoryList()
     {
+
         $requireData = $this->request->all();
         $validator = $this->validationFactory->make(
             $requireData,
@@ -77,10 +78,12 @@ class NewsController extends AbstractController
             $errorMessage = $validator->errors()->first();
             return Result::error($errorMessage);
         }
-//        $requireData['website_id'] = Context::get("SiteId");
+
+        $requireData['website_id'] = Context::get("SiteId");
+
         $result = $this->newsServiceClient->categoryList($requireData);
-        $rep = PublicData::buildMenuTree($result['data']);
-        return $result ? Result::success($rep) : Result::error($result['message']);
+//        $rep = PublicData::buildMenuTree($result['data']);
+        return $result ? Result::success($result['data']) : Result::error($result['message']);
     }
 
     /**
@@ -196,6 +199,7 @@ class NewsController extends AbstractController
     public function getArticleList()
     {
         $requireData = $this->request->all();
+
         $validator = $this->validationFactory->make(
             $requireData,
             [
@@ -213,7 +217,27 @@ class NewsController extends AbstractController
             $errorMessage = $validator->errors()->first();
             return Result::error($errorMessage);
         }
-
+        $requireData['website_id'] = Context::get("SiteId");
+        var_dump("资讯:",$requireData);
+        $result = $this->newsServiceClient->getArticleList($requireData);
+        //1通过,2待审核,3待发 4,拒绝 5删除
+        $statusList = [
+            '0'=>'待审核',
+            '1'=>'已发布',
+            '2'=>'待审核',
+            '3'=>'待发',
+            '4'=>'拒绝',
+            '5'=>'删除',
+        ];
+        if($result['data']){
+            foreach ($result['data']['rows'] as $k=>$v) {
+                $result['data']['rows'][$k]['cat_arr_id'] = $v['cat_arr_id']?json_decode($v['cat_arr_id']):[0];
+                $result['data']['rows'][$k]['tag'] = $v['tag']?json_decode($v['tag']):[];
+                $result['data']['rows'][$k]['status_name'] = $statusList[$v['status']];
+                $result['data']['rows'][$k]['level'] = (string)$v['level'];
+                $result['data']['rows'][$k]['islink'] = isset($v['islink']) && $v['islink']>0?true:false;
+            }
+        }
         $result = $this->newsServiceClient->getArticleList($requireData);
 
         return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
@@ -275,6 +299,8 @@ class NewsController extends AbstractController
 
         $loginIp = $this->request->getHeader('x-forwarded-for')[0] ?? $this->request->getHeader('x-real-ip')[0] ?? $this->request->getServerParams()['remote_addr'] ?? '0.0.0.0';
         $requireData['ip'] = $loginIp;
+
+//        $requireData['website_id'] = Context::get("SiteId");
         $requireData['admin_user_id'] =Context::get("UserId");
         
         $requireData['level'] = isset($requireData['level']) &&  $requireData['level']?$requireData['level']:0;
@@ -313,6 +339,7 @@ class NewsController extends AbstractController
             $errorMessage = $validator->errors()->first();
             return Result::error($errorMessage);
         }
+
         $requireData['catid'] = isset($requireData['cat_arr_id'])?end($requireData['cat_arr_id']):'';
         $requireData['cat_arr_id'] = isset($requireData['cat_arr_id'])?json_encode($requireData['cat_arr_id']):'';
 
@@ -365,6 +392,8 @@ class NewsController extends AbstractController
             $errorMessage = $validator->errors()->first();
             return Result::error($errorMessage);
         }
+
+//        $requireData['website_id'] = Context::get("SiteId");
         $result = $this->newsServiceClient->delArticle($requireData);
         return $result['code']==200 ? Result::success($result['data']) : Result::error($result['message']);
     }

+ 89 - 87
app/Controller/OrderController.php

@@ -26,69 +26,70 @@ class OrderController extends AbstractController
      */
     #[Inject]
     private $orderServiceClient;
-    public function index(RequestInterface $request, ResponseInterface $response)
-    {
-        return $response->raw('Hello Hyperf!');
-    }
-
     /***
      * 状态说明
      */
-    public function getStauts()
+    
+    public function getStatus()
     {
         $data['order'] = [
-            1 => '通过',
-            2 => '驳回',
-            3 => '撤回',
-            4 => '修改',
-            5 => '过期',
+            1 => '已通过',
+            2 => '已驳回',
+            3 => '已取消',
+            5 => '已过期',
             6 => '待审核',
-            7 => '结束',
+            7 => '已完成'
         ];
         $data['order_ad'] = [
             1 => '待投放',
-            2 => '驳回',
-            3 => '撤回',
-            4 => '修改',
-            5 => '过期',
+            2 => '已失效',
+            3 => '已失效',
+            5 => '待审核',
             6 => '待审核',
-            7 => '结束',
-            8 => '投放中',
+            7 => '已失效',
+            8 => '投放中'
         ];
+        $data['check'] = [
+            1 => '已通过',
+            2 => '已驳回',
+            6 => '待审核',
+           
+        ];        
         return Result::success($data);
-
     }
     /**
-     * 查询广告位
+     * 获取广告尺寸及查询广告位
      */
     public function getAD()
     {
         $requireData = $this->request->all();
-        $validator = $this->validationFactory->make(
-            $requireData,
-            [
-                'width' => 'required',
-                'height' => 'required',
-                'starttime' => 'required',
-                'endtime' => 'required',
-                'pageSize' => 'required',
-                'page' => 'required',
-
-            ],
-            [
-                'width.required' => '图片宽度不能为空',
-                'height.required' => '图片高度不能为空',
-                'starttime.required' => '广告开始时间不能为空',
-                'endtime.required' => '广告结束时间不能为空',
-                'pageSize.required' => '显示条数不能为空',
-                'page.required' => '分页不能为空',
-
-            ]
-        );
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
+        if(!empty($requireData)){
+            $validator = $this->validationFactory->make(
+                $requireData,
+                [
+                    'ad_size_id' => 'required',
+                    'starttime' => 'required',
+                    'endtime' => 'required',
+                    'pageSize' => 'required',
+                    'page' => 'required',
+    
+                ],
+                [
+                    'ad_size_id.required' => '广告尺寸id不能为空',
+                    'starttime.required' => '广告开始时间不能为空',
+                    'endtime.required' => '广告结束时间不能为空',
+                    'pageSize.required' => '显示条数不能为空',
+                    'page.required' => '分页不能为空',
+    
+                ]
+            );
+            if ($validator->fails()) {
+                $errorMessage = $validator->errors()->first();
+                return Result::error($errorMessage);
+            }
         }
+        
+        
         $result = $this->orderServiceClient->getAD($requireData);
         return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
     }
@@ -102,42 +103,24 @@ class OrderController extends AbstractController
         $validator = $this->validationFactory->make(
             $requireData,
             [
-                'width' => 'required',
-                'height' => 'required',
+                'ad_size_id' => 'required',
                 'starttime' => 'required',
                 'endtime' => 'required',
-
+                'pageSize' => 'required',
+                'page' => 'required',
             ],
             [
-                'width.required' => '图片宽度不能为空',
-                'height.required' => '图片高度不能为空',
+                'ad_size_id.required' => '广告尺寸id不能为空',
                 'starttime.required' => '广告开始时间不能为空',
                 'endtime.required' => '广告结束时间不能为空',
-
+                'pageSize.required' => '显示条数不能为空',
+                'page.required' => '分页不能为空'
             ]
         );
-        if (!empty($requireData['website_id'])) {
-            $validator = $this->validationFactory->make(
-                $requireData,
-                [
-                    'website_id' => 'required',
-                    'pageSize' => 'required',
-                    'page' => 'required',
-
-                ],
-                [
-                    'website_id.required' => '网站id不能为空',
-                    'pageSize.required' => '显示条数不能为空',
-                    'page.required' => '分页不能为空',
-
-                ]
-            );
-        }
         if ($validator->fails()) {
             $errorMessage = $validator->errors()->first();
             return Result::error($errorMessage);
         }
-
         $result = $this->orderServiceClient->getWebsiteAd($requireData);
         return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
     }
@@ -165,6 +148,31 @@ class OrderController extends AbstractController
         return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
     }
 
+     /**
+     * 获取广告订单价格
+     */
+    public function getPrice(){
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+        $requireData,
+            [
+                'starttime' => 'required',
+                'endtime' => 'required',
+            ],
+            [
+                'starttime.required' => '广告开始时间不能为空',
+                'endtime.required' => '广告结束时间不能为空',
+            ]
+        );
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        // var_dump($requireData);
+        $result = $this->orderServiceClient->getPrice($requireData);
+        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
+    }
+    
     /**
      * 添加订单
      */
@@ -176,24 +184,23 @@ class OrderController extends AbstractController
             [
 
                 'name' => 'required',
-                'width' => 'required',
-                'height' => 'required',
+                'ad_size_id' => 'required',
                 'starttime' => 'required',
                 'endtime' => 'required',
                 'imgurl' => 'required',
                 'imgsrc' => 'required',
                 'pid' => 'required',
+                'price' =>'required'
             ],
             [
                 'name.required' => '广告名称不能为空',
-                'width.required' => '图片宽度不能为空',
-                'height.required' => '图片高度不能为空',
+                'ad_size_id.required' => '广告图片尺寸id不能为空',
                 'starttime.required' => '广告开始时间不能为空',
                 'endtime.required' => '广告结束时间不能为空',
                 'imgurl.required' => '图片广告链接不能为空',
                 'imgsrc.required' => '图片广告地址不能为空',
                 'pid.required' => '广告位id不能为空',
-
+                'price.required' => '价格不能为空'
             ]
         );
 
@@ -202,9 +209,6 @@ class OrderController extends AbstractController
             return Result::error($errorMessage);
         }
         $requireData['user_id'] = Context::get("UserId");
-        $commaSeparatedString = $requireData['pid'];
-        $array = explode(",", $commaSeparatedString);
-        $requireData['pid'] = $array;
         $result = $this->orderServiceClient->addAD($requireData);
         // return $requireData;
         return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
@@ -326,7 +330,7 @@ class OrderController extends AbstractController
     /**
      * 删除订单
      */
-    public function delOrderAD()
+    public function delOrderAdmin()
     {
         $requireData = $this->request->all();
         $validator = $this->validationFactory->make(
@@ -337,12 +341,7 @@ class OrderController extends AbstractController
 
             ],
             [
-                'id.required' => 'id不能为空',
-
-                'order_id' => 'required',
-            ],
-            [
-                'name.required' => '订单id不能为空',
+                'id.required' => '订单id不能为空',
 
             ]
         );
@@ -351,7 +350,7 @@ class OrderController extends AbstractController
             return Result::error($errorMessage);
         }
 
-        $result = $this->orderServiceClient->getOrderDetailAdmin($requireData);
+        $result = $this->orderServiceClient->delOrderAdmin($requireData);
         return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
     }
     //审核订单状态
@@ -443,7 +442,10 @@ class OrderController extends AbstractController
         $result = $this->orderServiceClient->endOrderAdmin($requireData);
         return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
     }
-    public function delOrderAdmin()
+    /**
+     * 用户删除自己已失效的订单
+     */
+    public function delOrderAD()
     {
         $requireData = $this->request->all();
         $validator = $this->validationFactory->make(
@@ -453,7 +455,7 @@ class OrderController extends AbstractController
 
             ],
             [
-                'id.required' => 'id不能为空',
+                'id.required' => '订单id不能为空',
 
             ]
         );
@@ -461,7 +463,7 @@ class OrderController extends AbstractController
             $errorMessage = $validator->errors()->first();
             return Result::error($errorMessage);
         }
-        $result = $this->orderServiceClient->delOrderAdmin($requireData);
+        $result = $this->orderServiceClient->delOrderAD($requireData);
         return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
     }
 }

+ 61 - 12
app/Controller/PublicController.php

@@ -68,6 +68,7 @@ class PublicController extends AbstractController
             if ($file == null) {
                 return Result::error("未找到上传文件");
             }
+ 
             $data = CommonService::uploadFile($file, ['txt','png', 'jpg', 'png', 'jpeg', 'gif', 'xls', 'xlsx', 'pdf', 'xls', 'xlsx', 'doc', 'docx', 'ppt', 'zip', 'pptx', 'mp4', 'flv'], 'image');
             var_dump($data);
             if (isset($data['code'])&&$data['code'] != 200) {
@@ -177,22 +178,18 @@ class PublicController extends AbstractController
             [
                 'title' => 'required',
                 'nature' => 'required',
-                'nature_level' => 'required',
-                'type' => 'required',
+                'nature_level0' => 'required',
                 'name' => 'required',
                 'mobile' => 'required',
                 'describe' => 'required',
-                'type_level' => 'required',
             ],
             [
                 'title.required' => '标题不能为空',
-                'nature.required' => '性质不能为空',
-                'nature_level.required' => '进度不能为空',
-                'type.required' => '类型不能为空',
+                'nature.required' => '类型不能为空',
+                'nature_level0.required' => '类型进度不能为空',
                 'name.required' => '姓名不能为空',
                 'mobile.required' => '手机号码不能为空',
                 'describe.required' => '详细说明不能为空',
-                'type_level.required' => '类型进度不能为空',
             ]
         );
         if ($validator->fails()) {
@@ -246,11 +243,15 @@ class PublicController extends AbstractController
 
         $requireData = $this->request->all();
         $requireData['user_id'] = Context::get("UserId");
-        var_dump("用户id:", Context::get("UserId"));
         if (isset($requireData['is_admin']) && !empty($requireData['is_admin'])) {
             unset($requireData['user_id']);
         }
         $result = $this->publicServiceClient->getLetterOfComplaint($requireData);
+        if($result['code']==200){
+            foreach ($result['data']['rows']as $key=>$val){
+                $result['data']['rows'][$key]['created_at'] = date("Y-m-d",strtotime($val['created_at']));
+            }
+        }
         return $result ? Result::success($result['data']) : Result::error($result['message']);
     }
 
@@ -289,7 +290,6 @@ class PublicController extends AbstractController
         $result = $this->publicServiceClient->delLetterOfComplaint($requireData);
         return $result ? Result::success($result['data']) : Result::error($result['message']);
     }
-
     /**
      * 获取投诉分类信息
      * @return array
@@ -297,11 +297,49 @@ class PublicController extends AbstractController
     public function getLetterType()
     {
         $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'type' => 'required',
+            ],
+            [
+                'type.required' => '类型不能为空',
+            ]
+        );
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
         $result = $this->publicServiceClient->getLetterType($requireData);
         $rep = PublicData::buildMenuTree($result['data']);
         return $rep ? Result::success($rep) : Result::error("查询失败");
     }
 
+    /**
+     * @return array
+     */
+    public function getLetterTypeChildren()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'type' => 'required',
+                'pid' => 'required',
+            ],
+            [
+                'type.required' => '类型不能为空',
+                'pid.required' => 'PID不能为空',
+            ]
+        );
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $result = $this->publicServiceClient->getLetterType($requireData);
+        return $result['code']==200 ? Result::success($result['data']) : Result::error("查询失败");
+    }
+
     public function downloadFile(RequestInterface $request, ResponseInterface $response)
     {
         //验证是否有传参数
@@ -354,7 +392,6 @@ class PublicController extends AbstractController
             return Result::error('无法创建zip文件');
         }
     }
-
     /**
      * 检测是否被处理
      * @return array
@@ -379,7 +416,6 @@ class PublicController extends AbstractController
         $result = $this->publicServiceClient->checkMeasure($requireData);
         return $result['code'] == 200 ? Result::success() : Result::error("已经处理了");
     }
-
     /**
      * 获取职能部门
      * @return void
@@ -405,6 +441,7 @@ class PublicController extends AbstractController
         return $result['code'] == 200 ? Result::success($result['data']) : Result::error("查询失败");
     }
 
+
     /**
      * 获取职能部门
      * @return array
@@ -584,7 +621,19 @@ class PublicController extends AbstractController
             return Result::error($errorMessage);
         }
         $requireData['user_id'] = Context::get("UserId");
-        $result = $this->publicServiceClient->upZhinengbumen($requireData);
+        $result = $this->publicServiceClient->modZhinengbumen($requireData);
         return $result['code'] == 200 ? Result::success() : Result::error("修改失败");
     }
+
+    /**
+     * 获取所有的职能部门
+     * @return array
+     */
+    public function getAllDepartment()
+    {
+        $result = $this->publicServiceClient->getDepartment([]);
+        $result['data'] = PublicData::buildMenuTree($result['data']);
+        return $result['code'] == 200 ? Result::success($result['data']) : Result::error("查询失败");
+    }
 }
+

+ 66 - 0
app/Controller/SseController.php

@@ -0,0 +1,66 @@
+<?php
+declare(strict_types=1);
+
+namespace App\Controller;
+
+use Hyperf\HttpServer\Contract\RequestInterface;
+use Hyperf\HttpServer\Contract\ResponseInterface;
+use Psr\Http\Message\ServerRequestInterface;
+
+class SseController extends AbstractController
+{
+    public function stream(RequestInterface $request, ResponseInterface $response)
+    {
+          $params = [
+              "model"=>"glm-4",
+              "messages"=>[
+                  [
+                      "role"=>"system",
+                      "content"=>"你是一个乐于解答各种问题的助手,你的任务是为用户提供专业、准确、有见地的建议。"//$requireData['message']
+                  ],
+                  [
+                      "role"=>"user",
+                      "content"=>"我是一个初级程序员,如何快速的提升自己"//$requireData['message']
+                  ]
+              ],
+              "stream"=>true
+          ];
+         $apiUrl = "https://open.bigmodel.cn/api/paas/v4/chat/completions";
+         $result= $this->callApi($apiUrl, 'POST', $params, ['Authorization: Bearer be1856920c54ac537b530d69bc2eda73.gOO2BMq9NXavzEMq']);
+          $arr =  preg_split('/\n\s*\n/', $result);
+        // 开始流式传输
+        $this->container->get(\Swoole\Http\Response::class)->status(200);
+        foreach ($arr as $val){
+            $response->write("$val\n\n");
+            usleep(1000000); // 暂停1秒
+        }
+        return $response;
+    }
+
+
+    function callApi($url, $method = 'GET', $data = null, $headers = [])
+    {
+        $ch = curl_init();
+
+        // 配置 CURL
+        curl_setopt($ch, CURLOPT_URL, $url);
+        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
+        // 如果是 POST/PUT 请求,附加数据
+        if ($data && ($method === 'POST' || $method === 'PUT')) {
+            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
+            $headers[] = 'Content-Type: application/json';
+        }
+        // 附加头部信息
+        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
+        // 执行请求
+        $response = curl_exec($ch);
+        // 错误处理
+        if (curl_errno($ch)) {
+            $response = json_encode(['error' => curl_error($ch)]);
+        }
+        curl_close($ch);
+        return $response;
+    }
+
+}

+ 47 - 13
app/Controller/UserController.php

@@ -37,18 +37,20 @@ class UserController extends AbstractController
                 'password' => 'required|min:6',//密码
                 'confirm_password' => 'required',
                 'real_name' => 'required',
-                'mobile' =>'required'
+                'role_id' => 'required',
+//                'mobile' =>'required'
             ],
             [
                 'user_name.required' => '用户名不能为空',
                 'password.required' => '密码不能为空',
 //                'email.email' => '请填写一个有效的邮箱',
-                'mobile.required' => '手机号码必填',
+//                'mobile.required' => '手机号码必填',
 //                'mobile.telephone_number' => '请填写一个有效的手机号',
                 'confirm_password.required' =>"确认密码不能为空",
                 'type_id.required' =>"用户类型不能为空",
                 'real_name.required' =>"姓名不能为空",
                 'password.min' =>"密码长度不能低于6位数",
+                'role_id.required' =>"所属角色不能为空",
             ]
         );
         if ($validator->fails()){
@@ -65,22 +67,48 @@ class UserController extends AbstractController
         $requireData['admin_id'] = Context::get("UserId");
 
         $requireData['administrative_unit_id'] = isset($requireData['administrative_unit_arr_id']) && count($requireData['administrative_unit_arr_id'])>0 ?end($requireData['administrative_unit_arr_id']):0;
-        $requireData['administrative_unit_arr_id'] = isset($requireData['administrative_unit_arr_id']) && count($requireData['administrative_unit_arr_id'])>0?json_encode($requireData['administrative_unit_arr_id']):'';
+        $requireData['administrative_unit_arr_id'] = isset($requireData['administrative_unit_arr_id']) && count($requireData['administrative_unit_arr_id'])>0?json_encode($requireData['administrative_unit_arr_id']):json_encode([]);
 
         $requireData['address_id'] = isset($requireData['address_arr_id']) && count($requireData['address_arr_id'])>0?end($requireData['address_arr_id']):0;
-        $requireData['address_arr_id'] = isset($requireData['address_arr_id']) && count($requireData['address_arr_id'])>0 ?json_encode($requireData['address_arr_id']):'';
+        $requireData['address_arr_id'] = isset($requireData['address_arr_id']) && count($requireData['address_arr_id'])>0 ?json_encode($requireData['address_arr_id']):json_encode([]);
 
         $requireData['native_place_id'] = isset($requireData['native_place_arr_id']) && count($requireData['native_place_arr_id'])>0?end($requireData['native_place_arr_id']):0;
-        $requireData['native_place_arr_id'] = isset($requireData['native_place_arr_id']) && count($requireData['native_place_arr_id'])>0?json_encode($requireData['native_place_arr_id']):'';
+        $requireData['native_place_arr_id'] = isset($requireData['native_place_arr_id']) && count($requireData['native_place_arr_id'])>0?json_encode($requireData['native_place_arr_id']):json_encode([]);
 
         $requireData['city_id'] = isset($requireData['city_arr_id']) && count($requireData['city_arr_id'])>0?end($requireData['city_arr_id']):0;
-        $requireData['city_arr_id'] = isset($requireData['city_arr_id']) && count($requireData['city_arr_id'])>0?json_encode($requireData['city_arr_id']):'';
+        $requireData['city_arr_id'] = isset($requireData['city_arr_id']) && count($requireData['city_arr_id'])>0?json_encode($requireData['city_arr_id']):json_encode([]);
 
         $requireData['other'] = isset($requireData['other'])?json_encode($requireData['other']):'';
         $result =  $this->userServiceClient->createUser($requireData);
         return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
     }
 
+    /**
+     * @return array|void
+     */
+    public function resetPassword()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'id'=>'required',
+                'password'=>'required',
+            ],
+            [
+                'id.required' =>"id不能为空",
+                'password.required' =>"密码不能为空",
+            ]
+        );
+        if ($validator->fails()){
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $salt = rand(1, 999999);
+        $requireData['salt'] = $salt;
+        $result =  $this->userServiceClient->resetPassword($requireData);
+        return $result?Result::success($result['data']):Result::error($result['message']);
+    }
     /**
      * 更新用户
      * @return array
@@ -94,35 +122,38 @@ class UserController extends AbstractController
                 'user_name' => 'required',//登陆账号
                 'type_id'=> 'required',//用户类型
                 'real_name' => 'required',
-                'mobile' =>'required',
-                'id'=>'required'
+//                'mobile' =>'required',
+                'id'=>'required',
+                'role_id' => 'required',
             ],
             [
                 'user_name.required' => '用户名不能为空',
-                'mobile.required' => '手机号码必填',
+//                'mobile.required' => '手机号码必填',
                 'type_id.required' =>"用户类型不能为空",
                 'real_name.required' =>"姓名不能为空",
                 'id.required' =>"id不能为空",
+                'role_id.required' =>"所属角色不能为空",
             ]
         );
         if ($validator->fails()){
             $errorMessage = $validator->errors()->first();
             return Result::error($errorMessage);
         }
+
         $loginIp = $this->request->getHeader('x-forwarded-for')[0] ?? $this->request->getHeader('x-real-ip')[0] ?? $this->request->getServerParams()['remote_addr'] ?? '0.0.0.0';
         $requireData['last_login_ip'] = $loginIp;
 
         $requireData['administrative_unit_id'] = isset($requireData['administrative_unit_arr_id']) && count($requireData['administrative_unit_arr_id'])>0 ?end($requireData['administrative_unit_arr_id']):0;
-        $requireData['administrative_unit_arr_id'] = isset($requireData['administrative_unit_arr_id']) && count($requireData['administrative_unit_arr_id'])>0?json_encode($requireData['administrative_unit_arr_id']):'';
+        $requireData['administrative_unit_arr_id'] = isset($requireData['administrative_unit_arr_id']) && count($requireData['administrative_unit_arr_id'])>0?json_encode($requireData['administrative_unit_arr_id']):json_encode([]);
 
         $requireData['address_id'] = isset($requireData['address_arr_id']) && count($requireData['address_arr_id'])>0?end($requireData['address_arr_id']):0;
-        $requireData['address_arr_id'] = isset($requireData['address_arr_id']) && count($requireData['address_arr_id'])>0 ?json_encode($requireData['address_arr_id']):'';
+        $requireData['address_arr_id'] = isset($requireData['address_arr_id']) && count($requireData['address_arr_id'])>0 ?json_encode($requireData['address_arr_id']):json_encode([]);
 
         $requireData['native_place_id'] = isset($requireData['native_place_arr_id']) && count($requireData['native_place_arr_id'])>0?end($requireData['native_place_arr_id']):0;
-        $requireData['native_place_arr_id'] = isset($requireData['native_place_arr_id']) && count($requireData['native_place_arr_id'])>0?json_encode($requireData['native_place_arr_id']):'';
+        $requireData['native_place_arr_id'] = isset($requireData['native_place_arr_id']) && count($requireData['native_place_arr_id'])>0?json_encode($requireData['native_place_arr_id']):json_encode([]);
 
         $requireData['city_id'] = isset($requireData['city_arr_id']) && count($requireData['city_arr_id'])>0?end($requireData['city_arr_id']):0;
-        $requireData['city_arr_id'] = isset($requireData['city_arr_id']) && count($requireData['city_arr_id'])>0?json_encode($requireData['city_arr_id']):'';
+        $requireData['city_arr_id'] = isset($requireData['city_arr_id']) && count($requireData['city_arr_id'])>0?json_encode($requireData['city_arr_id']):json_encode([]);
 
         $requireData['other'] = isset($requireData['other'])?json_encode($requireData['other']):'';
         $requireData['admin_id'] = Context::get("UserId");
@@ -262,6 +293,7 @@ class UserController extends AbstractController
     public function  verifyUserInfo()
     {
         $requireData = $this->request->all();
+        var_dump($requireData);
         $result =  $this->userServiceClient->verifyUserInfo($requireData);
         if ($result['code'] != ErrorCode::SUCCESS) {
             return Result::error($result['message'],0,[]);
@@ -300,11 +332,13 @@ class UserController extends AbstractController
                 'role_name' => 'required',
                 'rule' => 'required',
                 'remark' => 'required',
+                'sort'=>'integer'
             ],
             [
                 'role_name.required' => '角色名称不能为空',
                 'rule.required' => '权限不能为空',
                 'remark.required' => '职能描述不能为空',
+                'sort.integer' => '排序必须是整数',
             ]
         );
         if ($validator->fails()){

+ 435 - 7
app/Controller/WebController.php

@@ -6,20 +6,23 @@ use App\JsonRpc\NewsServiceInterface;
 use App\JsonRpc\WebsiteServiceInterface;
 use App\Tools\PublicData;
 use Hyperf\Di\Annotation\Inject;
-use Hyperf\HttpServer\Annotation\AutoController;
 use App\Tools\Result;
 use Hyperf\Validation\Contract\ValidatorFactoryInterface;
 use App\Constants\ErrorCode;
+use App\Controller\PublicController;
 use Hyperf\Context\Context;
+use Hyperf\HttpServer\Contract\RequestInterface;
+use Hyperf\HttpServer\Contract\ResponseInterface;
 /**
  * Class WebController
  * @package App\Controller
  */
 class WebController extends AbstractController
 {
+
     #[Inject]
     protected ValidatorFactoryInterface $validationFactory;
-
+    private $publicServiceClient;
     /**
      * @var NewsServiceInterface
      */
@@ -31,18 +34,42 @@ class WebController extends AbstractController
      */
     #[Inject]
     private $websiteServiceClient;
- 
+
+
+    private $PublicController;
+
+    public function __construct(PublicController $PublicController)
+    {
+        $this->PublicController = $PublicController;
+    }
+
     /**
      * 获取栏目导航
      * @return array
      */
     public function getWebsiteCategory()
     {
- 
+
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'pageSize' => 'required'
+            ],
+            [
+                'pageSize.required' => '显示条数不能为空'
+            ]
+        );
+        if ($validator->fails()){
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+
         $data = [
-            'website_id'=>Context::get("SiteId")
+            'website_id'=>Context::get("SiteId"),
+            'pageSize'=>$requireData['pageSize']
         ];
-        var_dump("网站id:",Context::get("SiteId"));
+        // var_dump("网站id:",Context::get("SiteId"));
         $result = $this->websiteServiceClient->getWebsiteCategory($data);
         if ($result['code'] != ErrorCode::SUCCESS) {
             return Result::error($result['message'],0,[]);
@@ -50,6 +77,407 @@ class WebController extends AbstractController
         return Result::success($result['data']);
     }
 
- 
+    /**
+     * 获取各省名称
+     */
+    public function getWebsiteDistrit()
+    {
+        $data= [
+            'pid' => 0,
+            'website_id'=>Context::get("SiteId")
+        ];
+        $result=$this->PublicController->getDistrictList($data);
+        
+        if ($result['code'] != ErrorCode::SUCCESS) {
+            return Result::error($result['message'],0,[]);
+        }
+        // var_dump($result['data']);
+        return Result::success($result['data']);
+        
+    }
+
+     /**
+     * 获取广告1
+     * @return array
+     */
+    public function getWebsiteAdvertisement()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'adPlace' => 'required'
+            ],
+            [
+                'adPlace.required' => '广告位置编号不能为空'
+            ]
+        );
+        if ($validator->fails()){
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $data = [
+            'website_id'=>Context::get("SiteId"),
+            'ad_placeid'=>$requireData['adPlace']
+        ]; 
+        
+        $result = $this->websiteServiceClient->getWebsiteAdvertisement($data);
+
+        if ($result['code'] != ErrorCode::SUCCESS) {
+            return Result::error($result['message'],0,[]);
+        }
+        return Result::success($result['data']);
+    }
+
+    /**
+     * 搜索并获取职能部门
+     */
+    public function selectWebsiteDepartment(){
+        $requireData = $this->request->all();
+        $data = [
+            
+            'website_id'=>Context::get("SiteId")
+        ]; 
+       
+        if(!empty($requireData)){
+            $data = [
+                'keyword'=>$requireData['keyword'],
+                'website_id'=>Context::get("SiteId")
+            ]; 
+        }
+   
+        $result = $this->websiteServiceClient->selectWebsiteDepartment($data);
+        if ($result['code'] != ErrorCode::SUCCESS) {
+            return Result::error($result['message'],0,[]);
+        }
+        return Result::success($result['data']);
+    }
+
 
+    /**
+     *各省市查询 
+     */
+    public function selectWebsiteArea()
+    {
+        $requireData = $this->request->all();
+       
+        $data=[];
+        if(!empty($requireData)){
+            $validator = $this->validationFactory->make(
+                $requireData,
+                [
+                    'province' => 'required'
+                ],
+                [
+                    'province.required' => '请先选择省份'
+                ]
+            );
+            if ($validator->fails()){
+                $errorMessage = $validator->errors()->first();
+                return Result::error($errorMessage);
+            }
+            $data=[
+                'province' => $requireData['province']
+            ];
+            if(isset($requireData['city'])){
+                
+                $data=[
+                    'city' => $requireData['city'],
+                    'province' => $requireData['province']
+                    
+                ];
+                
+                if(isset($requireData['region'])){
+                    $data=[
+                        'province' => $requireData['province'],
+                        'city' => $requireData['city'],
+                        'region' => $requireData['region']
+                    ];
+                }
+            }
+        }
+        $result = $this->websiteServiceClient->selectWebsiteArea($data);
+        if ($result['code'] != ErrorCode::SUCCESS) {
+            return Result::error($result['message'],0,[]);
+        }
+        return Result::success($result['data']);
+    }
+    
+    /**
+     * 获取新闻
+     */
+    public function getWebsiteArticlett()
+    {
+       
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'level' => 'required',
+                'pageSize' => 'required',
+            ],
+            [
+                'level.required' => '新闻类型不能为空',
+                'pageSize.required' => '显示条数不能为空',
+
+            ]
+        );
+        if ($validator->fails()){
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        if(isset($requireData['placeid']) && !empty($requireData['placeid'])){
+            $data =[
+            'website_id'=>Context::get("SiteId"),
+            'level'=>$requireData['level'],
+            'pageSize'=>$requireData['pageSize'],
+            'placeid' => $requireData['placeid']
+            ];
+            
+        }else{
+            $data = [
+                'website_id'=>Context::get("SiteId"),
+                'level'=>$requireData['level'],
+                'pageSize'=>$requireData['pageSize']
+            ]; 
+        }
+        $result = $this->newsServiceClient->getWebsiteArticlett($data);
+        // var_dump($result);
+        if ($result['code'] != ErrorCode::SUCCESS) {
+            return Result::error($result['message'],0,[]);
+        }
+        return Result::success($result['data']);
+        
+    }
+
+     /**
+     * 获取模块新闻
+     */
+    public function getWebsiteModelArticles()
+    {
+        $requireData = $this->request->all();     
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'catid' => 'required',
+                'level' => 'required',
+                'pagesize' => 'required'
+            ],
+            [
+                'catid.required' => '栏目id不能为空',
+                'level.required' => '新闻类型不能为空',
+                'pagesize.required' => '新闻条数不能为空'
+            ]
+        );
+        if ($validator->fails()){
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+
+        if(isset($requireData['placeid']) && !empty($requireData['placeid'])){
+            $data =[
+                'website_id'=>Context::get("SiteId"),
+                'catid' => $requireData['catid'],
+                'level' => $requireData['level'],
+                'pagesize' => $requireData['pagesize'],
+                'placeid' => $requireData['placeid']
+            ];
+        }else{
+            $data = [
+                'website_id'=>Context::get("SiteId"),
+                'catid' => $requireData['catid'],
+                'level' => $requireData['level'],
+                'pagesize' => $requireData['pagesize']
+            ];   
+        }      
+        $result = $this->newsServiceClient->getWebsiteModelArticles($data);
+        // var_dump($result);
+        if ($result['code'] != ErrorCode::SUCCESS) {
+            return Result::error($result['message'],0,[]);
+        }
+        return Result::success($result['data']);
+    }
+
+    /**
+     * 获取模块栏目
+     */
+    public function getWebsiteModelCategory()
+    {
+        $requireData = $this->request->all();     
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'placeid' => 'required',
+                'pid' => 'required',
+                'num' => 'required'
+            ],
+            [
+                'placeid.required' => '栏目位置不能为空',
+                'pid' => '栏目类型不能为空',
+                'num' => '父级栏目数量'
+            ]
+        );
+        
+        if ($validator->fails()){
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $data = [
+            'website_id'=>Context::get("SiteId"),
+            'placeid' => $requireData['placeid'],
+            'pid' => $requireData['pid'],
+            'num' => $requireData['num']
+        ];    
+        $result=$this->websiteServiceClient->getWebsiteModelCategory($data);
+        
+        if ($result['code'] != ErrorCode::SUCCESS) {
+            return Result::error($result['message'],0,[]);
+        }
+        // var_dump($result['data']);
+        return Result::success($result['data']);
+        
+    }
+
+     /**
+     * 获取友情链接
+     * @return array
+     */
+    public function selectWebsiteLinks()
+    {
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'type' => 'required',
+                'num' => 'required'
+            ],
+            [
+                'type.required' => '友情链接类型不能为空',
+                'num.required' => '友情链接数量不能为空'
+            ]
+        );
+        if ($validator->fails()){
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $data = [
+            'website_id'=>Context::get("SiteId"),
+            'type'=>$requireData['type'],
+            'num' =>$requireData['num']
+        ];
+        $result = $this->websiteServiceClient->selectWebsiteLinks($data);
+        if ($result['code'] != ErrorCode::SUCCESS) {
+            return Result::error($result['message'],0,[]);
+        }
+        return Result::success($result['data']);
+    }
+
+    /**
+     * 获取文章列表
+     */
+    public function getWebsiteArticlesList()
+    {
+       
+        $requireData = $this->request->all();
+        if(isset($requireData['catid'])){
+            $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'catid' => 'required'
+            ],
+            [
+                'catid.required' => '栏目id不能为空'
+
+            ]
+            );
+            $data['catid'] =  $requireData['catid']; 
+        }elseif(isset($requireData['keyword'])){
+            $validator = $this->validationFactory->make(
+                $requireData,
+                [
+                    'keyword' => 'required'
+                ],
+                [
+                    'keyword.required' => '搜索词不能为空'
+    
+                ]
+            );
+            $data['keyword'] =  $requireData['keyword']; 
+        }else{
+            $validator = $this->validationFactory->make(
+                $requireData,
+                [
+                    'catid' => 'required',
+                    'keyword' => 'required'
+                ],
+                [
+                    'catid.required' => '栏目id不能为空',
+                    'keyword.required' => '搜索词不能为空'
+    
+                ]
+            );
+            $data['catid'] =  $requireData['catid']; 
+            $data['keyword'] =  $requireData['keyword']; 
+        }
+        $validator = $this->validationFactory->make(
+                $requireData,
+                [
+                    'page' => 'required',
+                    'pageSize' => 'required'
+                ],
+                [
+                    'page.required' => '分页不能为空',
+                    'pageSize.required' => '显示条数不能为空'
+    
+                ]
+            );
+            if ($validator->fails()){
+                $errorMessage = $validator->errors()->first();
+                return Result::error($errorMessage);
+            }
+            $data['website_id'] = Context::get("SiteId");
+            $data['pageSize'] = $requireData['pageSize']; 
+            $data['page'] = $requireData['page']; 
+        $result = $this->newsServiceClient->getArticleList($data);
+        // var_dump($result);
+        if ($result['code'] != ErrorCode::SUCCESS) {
+            return Result::error($result['message'],0,[]);
+        }
+        // $result = $data; 
+        return Result::success($result['data']);
+        
+    }
+    
+     /**
+     * 获取文章详情
+     */
+    public function selectWebsiteArticleInfo()
+    {
+       
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'articleid' => 'required'
+            ],
+            [
+                'articleid.required' => '新闻id不能为空'
+            ]
+        );
+        if ($validator->fails()){
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $data = [
+            'website_id'=>Context::get("SiteId"),
+            'id'=>$requireData['articleid'],
+        ]; 
+        $result = $this->newsServiceClient->getArticleInfo($data);
+        // var_dump($result);
+        if ($result['code'] != ErrorCode::SUCCESS) {
+            return Result::error($result['message'],0,[]);
+        }
+        return Result::success($result['data']);
+        
+    }
 }

+ 4 - 4
app/Controller/WebsiteController.php

@@ -57,8 +57,8 @@ class WebsiteController extends AbstractController
             return Result::error($errorMessage);
         }
         $requireData['website_url'] = json_encode($requireData['website_url']);
-        $requireData['city_id'] = isset($requireData['city_arr_id'])?end($requireData['city_arr_id']):'';
-        $requireData['city_arr_id'] = isset($requireData['city_arr_id'])?json_encode($requireData['city_arr_id']):'';
+        $requireData['city_id'] = isset($requireData['city_arr_id'])?end($requireData['city_arr_id']):0;
+        $requireData['city_arr_id'] = isset($requireData['city_arr_id'])?json_encode($requireData['city_arr_id']):[0];
         $requireData['website_column_id'] = isset($requireData['website_column_arr_id'])?end($requireData['website_column_arr_id']):'';
         $requireData['website_column_arr_id'] = isset($requireData['website_column_arr_id'])?json_encode($requireData['website_column_arr_id']):'';
         var_dump($requireData);
@@ -127,8 +127,8 @@ class WebsiteController extends AbstractController
             return Result::error($errorMessage);
         }
         $requireData['website_url'] = json_encode($requireData['website_url']);
-        $requireData['city_id'] = isset($requireData['city_arr_id'])?end($requireData['city_arr_id']):'';
-        $requireData['city_arr_id'] = isset($requireData['city_arr_id'])?json_encode($requireData['city_arr_id']):'';
+        $requireData['city_id'] = isset($requireData['city_arr_id'])?end($requireData['city_arr_id']):0;
+        $requireData['city_arr_id'] = isset($requireData['city_arr_id'])?json_encode($requireData['city_arr_id']):[0];
         $requireData['website_column_id'] = isset($requireData['website_column_arr_id'])?end($requireData['website_column_arr_id']):'';
         $requireData['website_column_arr_id'] = isset($requireData['website_column_arr_id'])?json_encode($requireData['website_column_arr_id']):'';
         $result = $this->websiteServiceClient->updateWebsite((int)$requireData['id'],$requireData);

+ 150 - 0
app/JsonRpc/CollectorService.php

@@ -0,0 +1,150 @@
+<?php
+
+namespace App\JsonRpc;
+
+use Hyperf\RpcClient\AbstractServiceClient;
+
+class CollectorService extends AbstractServiceClient implements CollectorServiceInterface
+{
+    /**
+     * 定义对应服务提供者的服务名称
+     * @var string
+     */
+    protected string $serviceName = 'CollectorService';
+    /**
+     * 定义对应服务提供者的服务协议
+     * @var string
+     */
+    protected string $protocol = 'jsonrpc-http';
+
+    /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function addWeb(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+     /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function getWeb(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function upWeb(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+     /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function delWeb(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+     /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function addRule(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+     /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function getRule(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function getOneRule(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+     /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function upRule(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+     /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function delRule(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+
+     /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function sendCrawler(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+
+     /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function getInfo(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function getOneInfo(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function upInfo(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function delInfo(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function addCatid(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function addArt(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+}

+ 86 - 0
app/JsonRpc/CollectorServiceInterface.php

@@ -0,0 +1,86 @@
+<?php
+
+namespace App\JsonRpc;
+
+interface CollectorServiceInterface
+{
+    /**
+     * @param array $data
+     */
+    public function addWeb(array $data);
+
+    /**
+     * @param array $data
+     */
+    public function getWeb(array $data);
+    /**
+     * @param array $data
+     */
+    public function upWeb(array $data);
+    /**
+     * @param array $data
+     */
+    public function delWeb(array $data);
+     /**
+     * @param array $data
+     * @return mixed
+     */
+    public function addRule(array $data);
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getRule(array $data);
+     /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getOneRule(array $data);
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function upRule(array $data);
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function delRule(array $data);
+
+     /**
+     * @param array $data
+     * @return mixed
+     */
+    public function sendCrawler(array $data);
+
+     /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getInfo(array $data);
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getOneInfo(array $data);
+     /**
+     * @param array $data
+     * @return mixed
+     */
+    public function upInfo(array $data);
+     /**
+     * @param array $data
+     * @return mixed
+     */
+    public function delInfo(array $data);
+     /**
+     * @param array $data
+     * @return mixed
+     */
+    public function addCatid(array $data);
+     /**
+     * @param array $data
+     * @return mixed
+     */
+    public function addArt(array $data);
+}

+ 20 - 2
app/JsonRpc/NewsService.php

@@ -98,7 +98,6 @@ class NewsService extends AbstractServiceClient implements NewsServiceInterface
     {
         return $this->__request(__FUNCTION__, $data);
     }
-
     /**
      * @param array $data
      * @return array
@@ -107,7 +106,6 @@ class NewsService extends AbstractServiceClient implements NewsServiceInterface
     {
         return $this->__request(__FUNCTION__, $data);
     }
-
     /**
      * @param array $data
      * @return array|mixed
@@ -117,6 +115,7 @@ class NewsService extends AbstractServiceClient implements NewsServiceInterface
         return $this->__request(__FUNCTION__, $data);
     }
 
+
     /**
      * 更新资讯状态
      * @param array $data
@@ -126,4 +125,23 @@ class NewsService extends AbstractServiceClient implements NewsServiceInterface
     {
         return $this->__request(__FUNCTION__, $data);
     }
+
+    /**
+     * @param array $data
+     * @return array
+     */
+    public function getWebsiteArticlett(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    /**
+     * @param array $data
+     * @return array
+     */
+    public function getWebsiteModelArticles(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    
+
 }

+ 9 - 3
app/JsonRpc/NewsServiceInterface.php

@@ -42,22 +42,28 @@ interface NewsServiceInterface
      * @param array $data
      */
     public function delArticle(array $data);
-
     /**
      * @param array $data
      */
     public function updateArticle(array $data);
-
     /**
      * @param array $data
      */
     public function getArticleInfo(array $data);
-
     /**
      * @param array $data
      * @return mixed
      */
     public function getCategoryInfo(array $data);
+    /**
+     * @param array $data
+     *
+     */
+    public function getWebsiteArticlett(array $data);
+    /**
+     * @param array $data
+     */
+    public function getWebsiteModelArticles(array $data);
 
     /**
      * @param array $data

+ 10 - 1
app/JsonRpc/OrderService.php

@@ -16,7 +16,7 @@ class OrderService extends AbstractServiceClient implements OrderServiceInterfac
      * @var string
      */
     protected string $protocol = 'jsonrpc-http';
-
+   
     /**
      * @param array $data
      * @return mixed
@@ -66,6 +66,15 @@ class OrderService extends AbstractServiceClient implements OrderServiceInterfac
         return $this->__request(__FUNCTION__, $data);
     }
 
+     /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getPrice(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    
     /**
      * @param array $data
      * @return mixed

+ 6 - 0
app/JsonRpc/OrderServiceInterface.php

@@ -4,6 +4,7 @@ namespace App\JsonRpc;
 
 interface OrderServiceInterface
 {
+   
     /**
      * @param array $data
      */
@@ -41,6 +42,11 @@ interface OrderServiceInterface
      */
     public function delOrderAdmin(array $data);
 
+    /**
+     * @param array $data
+     */
+    public function getPrice(array $data);
+    
     /**
      * @param array $data
      */

+ 27 - 3
app/JsonRpc/PublicRpcService.php

@@ -143,7 +143,6 @@ class PublicRpcService extends AbstractServiceClient implements PublicRpcService
     {
         return $this->__request(__FUNCTION__, $data);
     }
-
     /**
      * @param array $data
      * @return array|mixed
@@ -152,7 +151,6 @@ class PublicRpcService extends AbstractServiceClient implements PublicRpcService
     {
         return $this->__request(__FUNCTION__, $data);
     }
-
     /**
      * @param array $data
      * @return array|mixed
@@ -161,7 +159,6 @@ class PublicRpcService extends AbstractServiceClient implements PublicRpcService
     {
         return $this->__request(__FUNCTION__, $data);
     }
-
     /**
      * @param array $data
      * @return array|mixed
@@ -211,4 +208,31 @@ class PublicRpcService extends AbstractServiceClient implements PublicRpcService
     {
         return $this->__request(__FUNCTION__, $data);
     }
+    /**
+     * @param array $data
+     * @return array|mixed
+     */
+
+    public function modZhinengbumen(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+
+    /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function getBuckets(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+
+    /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function uploadFile(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
 }

+ 16 - 4
app/JsonRpc/PublicRpcServiceInterface.php

@@ -80,19 +80,16 @@ interface PublicRpcServiceInterface
      * @return mixed
      */
     public function addLetterType(array $data);
-
     /**
      * @param array $data
      * @return mixed
      */
     public function delLetterType(array $data);
-
     /**
      * @param array $data
      * @return mixed
      */
     public function checkMeasure(array $data);
-
     /**
      * @param array $data
      * @return mixed
@@ -127,6 +124,21 @@ interface PublicRpcServiceInterface
      * @param array $data
      * @return mixed
      */
-    public function delZhinengbumen(array $data);
+    public function delZhinengbumen(array $data); 
+    /**
+     * 
+     */
+    public function modZhinengbumen(array $data);
+
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getBuckets(array $data);
 
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function uploadFile(array $data);
 }

+ 9 - 0
app/JsonRpc/UserService.php

@@ -157,4 +157,13 @@ class UserService extends AbstractServiceClient implements UserServiceInterface
 
         return $this->__request(__FUNCTION__, $data);
     }
+
+    /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function resetPassword(array $data){
+
+        return $this->__request(__FUNCTION__, $data);
+    }
 }

+ 6 - 0
app/JsonRpc/UserServiceInterface.php

@@ -108,4 +108,10 @@ interface UserServiceInterface
 
     public function upUserStatus(array $data);
 
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function resetPassword(array $data);
+
 }

+ 60 - 9
app/JsonRpc/WebsiteService.php

@@ -45,7 +45,7 @@ class WebsiteService extends AbstractServiceClient implements WebsiteServiceInte
      */
     public function updateWebsite(int $id, array $data)
     {
-        return $this->__request(__FUNCTION__,$id, $data);
+        return $this->__request(__FUNCTION__,compact('id', 'data'));
     }
 
     /**
@@ -54,7 +54,7 @@ class WebsiteService extends AbstractServiceClient implements WebsiteServiceInte
      */
     public function delWebsite(int $id)
     {
-        return $this->__request(__FUNCTION__,$id);
+        return $this->__request(__FUNCTION__,compact('id'));
     }
 
     /**
@@ -63,7 +63,7 @@ class WebsiteService extends AbstractServiceClient implements WebsiteServiceInte
      */
     public function getWebsiteInfo(int $id)
     {
-        return $this->__request(__FUNCTION__,$id);
+        return $this->__request(__FUNCTION__,compact('id'));
     }
 
     /**
@@ -104,7 +104,7 @@ class WebsiteService extends AbstractServiceClient implements WebsiteServiceInte
      */
     public function updateWebsiteColumn(int $id, array $data)
     {
-        return $this->__request(__FUNCTION__,$id, $data);
+        return $this->__request(__FUNCTION__,compact('id', 'data'));
     }
 
     /**
@@ -113,7 +113,7 @@ class WebsiteService extends AbstractServiceClient implements WebsiteServiceInte
      */
     public function delWebsiteColumn(int $id)
     {
-        return $this->__request(__FUNCTION__,$id);
+        return $this->__request(__FUNCTION__,compact('id'));
     }
 
     /**
@@ -142,7 +142,7 @@ class WebsiteService extends AbstractServiceClient implements WebsiteServiceInte
      */
     public function updateWebsiteRole(int $id, array $data)
     {
-        return $this->__request(__FUNCTION__,$id, $data);
+        return $this->__request(__FUNCTION__,compact('id', 'data'));
     }
 
     /**
@@ -151,7 +151,7 @@ class WebsiteService extends AbstractServiceClient implements WebsiteServiceInte
      */
     public function delWebsiteRole(int $id)
     {
-        return $this->__request(__FUNCTION__,$id);
+        return $this->__request(__FUNCTION__,compact('id'));
     }
     /**
      * @param string $keyword
@@ -180,7 +180,7 @@ class WebsiteService extends AbstractServiceClient implements WebsiteServiceInte
      */
     public function updateWebsiteRoleUser(int $id, array $data)
     {
-        return $this->__request(__FUNCTION__,$id, $data);
+        return $this->__request(__FUNCTION__,compact('id', 'data'));
     }
 
     /**
@@ -189,7 +189,7 @@ class WebsiteService extends AbstractServiceClient implements WebsiteServiceInte
      */
     public function delWebsiteRoleUser(int $id)
     {
-        return $this->__request(__FUNCTION__,$id);
+        return $this->__request(__FUNCTION__,compact('id'));
     }
 
     /**
@@ -206,10 +206,59 @@ class WebsiteService extends AbstractServiceClient implements WebsiteServiceInte
      * @return array|mixed
      */
     public function getWebsiteCategory(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function getWebsiteAdvertisement(array $data)
     {
         return $this->__request(__FUNCTION__, $data);
     }
 
+     /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function selectWebsiteDepartment(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function selectWebsiteArea(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getWebsiteModelCategory(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function selectWebsiteLinks(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+
+
+
+
+
+
+
+
     /**
      * @param array $data
      * @return array|mixed
@@ -291,6 +340,7 @@ class WebsiteService extends AbstractServiceClient implements WebsiteServiceInte
         return $this->__request(__FUNCTION__, $data);
     }
 
+
     /**
      * @param array $data
      * @return array|mixed
@@ -398,4 +448,5 @@ class WebsiteService extends AbstractServiceClient implements WebsiteServiceInte
     {
         return $this->__request(__FUNCTION__, $data);
     }
+
 }

+ 49 - 0
app/JsonRpc/WebsiteServiceInterface.php

@@ -130,6 +130,55 @@ interface WebsiteServiceInterface
      *
      */
     public function getWebsiteCategory(array $data);
+     
+
+
+
+
+    /**
+     * @param array $data
+     * @return mixed
+     *
+     */
+    public function getWebsiteAdvertisement(array $data);
+
+    /**
+     * @param array $data
+     * @return mixed
+     *
+     */
+    public function selectWebsiteDepartment(array $data);
+    /**
+     * @param array $data
+     * @return mixed
+     *
+     */
+    public function selectWebsiteArea(array $data);
+    /**
+     * @param array $data
+     * @return mixed
+     *
+     */
+    public function getWebsiteModelCategory(array $data);
+
+    /**
+     * @param array $data
+     * @return mixed
+     *
+     */
+    public function selectWebsiteLinks(array $data);
+
+
+
+
+
+
+
+
+
+
+
+
 
     /**
      * @param array $data

+ 3 - 2
app/Middleware/Auth/FooMiddleware.php

@@ -37,7 +37,8 @@ class FooMiddleware implements MiddlewareInterface
 
         $header = $request->getHeaders();
         try {
-            if($header &&  isset($header['token']) && $header['token'][0]!='null' && isset($header['token'][0])){
+            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]);
                 if($tokenTime==0){
@@ -66,7 +67,7 @@ class FooMiddleware implements MiddlewareInterface
             }
 
         }catch (\Exception $e){
-            var_dump("错误消息:",$e->getMessage(),$e->getCode());
+            var_dump("错误消息1:",$e->getMessage(),$e->getCode());
             return $this->response->json(
                 [
                     'code' => $e->getCode(),

+ 4 - 1
app/Middleware/Auth/WebMiddleware.php

@@ -42,13 +42,16 @@ class WebMiddleware implements MiddlewareInterface
 
         $header = $request->getHeaders();
         try {
+          
             if($header &&  isset($header['origin']) && $header['origin'][0]!='null' && isset($header['origin'][0])){
                 $origin = $header['origin'][0];
                 $logindevice = explode("//", $origin);
                 $data = [
                     'website_url'=>$logindevice[1]
                 ];
+                // var_dump("222:",$data);
                 $result = $this->websiteServiceClient->getWebsiteId($data);
+                // var_dump("3333333:",$result);
                 if(!isset($result['data']['id']) || !$result['data']['id']){
                     return $this->response->json(
                         [
@@ -58,7 +61,7 @@ class WebMiddleware implements MiddlewareInterface
                         ]
                     );
                 }
-                var_dump("获取站点id:",$result);
+                // var_dump("获取站点id:",$result);
                 Context::set("SiteId",$result['data']['id']);
                 if ($result) {
                     return $handler->handle($request);

+ 2 - 1
app/Middleware/CorsMiddleware.php

@@ -15,7 +15,8 @@ class CorsMiddleware implements MiddlewareInterface
     public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
     {
         $response = Context::get(ResponseInterface::class);
-        $response = $response->withHeader('Access-Control-Allow-Origin', '*')
+        $response = $response
+            ->withHeader('Access-Control-Allow-Origin', '*')
             ->withHeader('Access-Control-Allow-Credentials', 'true')
             // Headers 可以根据实际情况进行改写。
             ->withHeader('Access-Control-Allow-Headers', '*');

+ 14 - 0
app/Process/AsyncQueueConsumer.php

@@ -0,0 +1,14 @@
+<?php
+
+declare(strict_types=1);
+
+namespace App\Process;
+
+use Hyperf\AsyncQueue\Process\ConsumerProcess;
+use Hyperf\Process\Annotation\Process;
+#[Process]
+class AsyncQueueConsumer extends ConsumerProcess
+{
+    protected string $queue = 'import';
+
+}

+ 34 - 0
app/Service/GatherQueueService.php

@@ -0,0 +1,34 @@
+<?php
+
+declare(strict_types=1);
+
+namespace App\Service;
+
+use App\Job\GatherExampleJob;
+use Hyperf\AsyncQueue\Driver\DriverFactory;
+use Hyperf\AsyncQueue\Driver\DriverInterface;
+/**
+ * @Job(name="default")
+ */
+class GatherQueueService
+{
+    protected DriverInterface $driver;
+
+    public function __construct(DriverFactory $driverFactory)
+    {
+        $this->driver = $driverFactory->get('default');
+    }
+
+    /**
+     * 生产消息.
+     * @param $params 数据
+     * @param int $delay 延时时间 单位秒
+     */
+    public function push($params, int $delay = 0): bool
+    {
+        // 这里的 `ExampleJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
+        // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
+        // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
+        return $this->driver->push(new GatherExampleJob($params), $delay);
+    }
+}

+ 32 - 0
app/Service/ImportQueueService.php

@@ -0,0 +1,32 @@
+<?php
+
+declare(strict_types=1);
+
+namespace App\Service;
+
+use App\Job\ImportExampleJob;
+use Hyperf\AsyncQueue\Driver\DriverFactory;
+use Hyperf\AsyncQueue\Driver\DriverInterface;
+
+class ImportQueueService
+{
+    protected DriverInterface $driver;
+
+    public function __construct(DriverFactory $driverFactory)
+    {
+        $this->driver = $driverFactory->get('import');
+    }
+
+    /**
+     * 生产消息.
+     * @param $params 数据
+     * @param int $delay 延时时间 单位秒
+     */
+    public function push($params, int $delay = 0): bool
+    {
+        // 这里的 `ExampleJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
+        // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
+        // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
+        return $this->driver->push(new ImportExampleJob($params), $delay);
+    }
+}

+ 41 - 0
app/Service/Server/StreamServer.php

@@ -0,0 +1,41 @@
+<?php
+
+
+namespace App\Service\Server;
+
+
+use Hyperf\Dispatcher\HttpDispatcher;
+use Hyperf\ExceptionHandler\ExceptionHandlerDispatcher;
+use Hyperf\HttpServer\ResponseEmitter;
+use Hyperf\HttpServer\Server;
+use Psr\Container\ContainerInterface;
+use Swoole\Http\Request;
+use Swoole\Http\Response;
+
+class StreamServer extends Server
+{
+    const STREAM_URL = [
+        '/chat/stream'
+    ];
+    public function __construct(ContainerInterface $container, HttpDispatcher $dispatcher, ExceptionHandlerDispatcher $exceptionHandlerDispatcher, ResponseEmitter $responseEmitter)
+    {
+        parent::__construct($container, $dispatcher, $exceptionHandlerDispatcher, $responseEmitter);
+    }
+
+    /**
+     * @param Request $request
+     * @param Response $response
+     */
+    public function onRequest($request, $response): void
+    {
+        $pathInfo = $request->server['path_info'];
+        if (in_array($pathInfo, self::STREAM_URL)) {
+            $response->header('Content-Type', 'text/event-stream');
+            $response->header('Access-Control-Allow-Origin', '*');
+            $response->header('Access-Control-Allow-Methods', 'GET');
+            $response->header('Cache-Control', 'no-cache');
+            $response->header('Connection', 'keep-alive');
+        }
+        parent::onRequest($request, $response);
+    }
+}

+ 62 - 0
app/Tools/PublicData.php

@@ -127,4 +127,66 @@ class PublicData
         }
     }
 
+    /**
+     * POST 请求
+     * @param string $url
+     * @param array $param
+     * @param boolean $post_file 是否文件上传
+     * @return string content
+     */
+    public static function http_post_zp($url, $data, $options = [])
+    {
+
+        // 初始化CURL会话
+        $ch = curl_init($url);
+        var_dump("参数:",$data);
+        // 设置CURL选项
+        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
+        curl_setopt($ch, CURLOPT_HEADER, false); // 将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
+        curl_setopt($ch, CURLOPT_POST, true); // 发送一个常规的POST请求。
+        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); // 要传递的POST数据,这里使用http_build_query将数组转换为URL编码的查询字符串。
+        $headers = [
+            'Authorization: Bearer be1856920c54ac537b530d69bc2eda73.gOO2BMq9NXavzEMq',
+            'Content-Type: application/json',
+//            'Custom-Header: customHeaderValue'
+        ];
+        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
+        // 如果有额外的CURL选项,则合并它们
+        if (!empty($options)) {
+            curl_setopt_array($ch, $options);
+        }
+
+        // 执行CURL会话并获取响应
+        $response = curl_exec($ch);
+        // 检查是否有CURL错误
+        if (curl_errno($ch)) {
+            $error_msg = curl_error($ch);
+            curl_close($ch);
+            throw new Exception("CURL Error: $error_msg");
+        }
+
+        // 获取HTTP状态码
+        $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
+
+        // 关闭CURL会话
+        curl_close($ch);
+
+        // 返回一个包含响应和HTTP状态码的数组
+        $responseBody = $response;
+        $headerEnd = strpos($response, "\r\n\r\n");
+
+        if ($headerEnd !== false) {
+            // 去除响应头,只保留响应体
+            $responseBody = substr($response, $headerEnd + 4); // +4 是因为 "\r\n\r\n" 有4个字符
+//            echo $responseBody; // 输出:This is the response body.
+        } else {
+            // 如果没有找到空行,可能响应格式不正确或没有响应头
+//            echo "No headers found in response.";
+        }
+        return [
+            'response' => $responseBody,
+            'http_code' => $http_code
+        ];
+    }
+
 }

+ 28 - 28
app/Tools/Result.php

@@ -1,29 +1,29 @@
-<?php
-namespace App\Tools;
-use App\Constants\ErrorCode;
-class Result
-{
-    protected Request $request;
-    public static function success($data = [])
-    {
-        return static::result(ErrorCode::SUCCESS, ErrorCode::getMessage(ErrorCode::SUCCESS), $data);
-    }
-    public static function error($message = '', $code = ErrorCode::ERROR, $data = [])
-    {
-        if (empty($message)) {
-            return static::result($code, ErrorCode::getMessage($code), $data);
-        } else {
-            return static::result($code, $message, $data);
-        }
-    }
-    protected static function result($code, $message, $data)
-    {
-        return [
-            'code' => $code,
-            'message' => $message,
-            'data' => $data,
-        ];
-    }
-
-
+<?php
+namespace App\Tools;
+use App\Constants\ErrorCode;
+class Result
+{
+//    protected Request $request;
+    public static function success($data = [])
+    {
+        return static::result(ErrorCode::SUCCESS, ErrorCode::getMessage(ErrorCode::SUCCESS), $data);
+    }
+    public static function error($message = '', $code = ErrorCode::ERROR, $data = [])
+    {
+        if (empty($message)) {
+            return static::result($code, ErrorCode::getMessage($code), $data);
+        } else {
+            return static::result($code, $message, $data);
+        }
+    }
+    protected static function result($code, $message, $data)
+    {
+        return [
+            'code' => $code,
+            'message' => $message,
+            'data' => $data,
+        ];
+    }
+
+
 }

+ 9 - 3
composer.json

@@ -13,10 +13,13 @@
     "license": "Apache-2.0",
     "require": {
         "php": ">=8.1",
+        "aws/aws-sdk-php": "^3.336",
         "death_satan/hyperf-validate": "^3.71",
         "doctrine/annotations": "^2.0",
         "easyswoole/verifycode": "3.x",
+        "friendsofhyperf/openai-client": "^3.1",
         "hyperf/amqp": "^3.1",
+        "hyperf/async-queue": "^3.1",
         "hyperf/cache": "~3.1.0",
         "hyperf/command": "^3.1",
         "hyperf/config": "~3.1.0",
@@ -34,7 +37,7 @@
         "hyperf/memory": "~3.1.0",
         "hyperf/nacos": "^3.1",
         "hyperf/process": "~3.1.0",
-        "hyperf/redis": "~3.1.0",
+        "hyperf/redis": "^3.1",
         "hyperf/rpc-client": "^3.1",
         "hyperf/rpc-server": "*",
         "hyperf/service-governance": "^3.1",
@@ -42,9 +45,9 @@
         "hyperf/service-governance-nacos": "^3.1",
         "hyperf/snowflake": "^3.1",
         "hyperf/translation": "^3.1",
-        "hyperf/utils": "^3.1",
         "hyperf/validation": "^3.1",
         "hyperf/websocket-server": "^3.1",
+        "openai-php/client": "^0.10.3",
         "phper666/jwt-auth": "^4.0"
     },
     "require-dev": {
@@ -79,7 +82,10 @@
     "prefer-stable": true,
     "config": {
         "optimize-autoloader": true,
-        "sort-packages": true
+        "sort-packages": true,
+        "allow-plugins": {
+            "php-http/discovery": true
+        }
     },
     "extra": [],
     "scripts": {

File diff suppressed because it is too large
+ 426 - 138
composer.lock


+ 56 - 0
config/api/collector.php

@@ -0,0 +1,56 @@
+<?php
+
+declare(strict_types=1);
+
+
+use App\Middleware\Auth\FooMiddleware;
+use Hyperf\HttpServer\Router\Router;
+use App\Controller\CollectorController;
+//智普测试接口
+Router::addGroup('/chat', function () {
+    Router::get('/stream', 'App\Controller\SseController@stream');
+});
+Router::addGroup(
+    '/collector', function () {
+        Router::get('/index', [CollectorController::class, 'index']);
+
+        //添加网站
+        Router::post('/addWeb', [CollectorController::class, 'addWeb']);
+        //修改网站
+        Router::post('/upWeb', [CollectorController::class, 'upWeb']);
+        //查看并搜索网站
+        Router::post('/getWeb', [CollectorController::class, 'getWeb']);
+        //删除网站
+        Router::get('/delWeb', [CollectorController::class, 'delWeb']);
+
+        //查看并搜索任务
+        Router::post('/getRule', [CollectorController::class, 'getRule']);
+        //添加规则型任务
+        Router::post('/addRule', [CollectorController::class, 'addRule']);
+        //获取某个规则
+        Router::get('/getOneRule', [CollectorController::class, 'getOneRule']);
+        //修改规则
+        Router::post('/upRule', [CollectorController::class, 'upRule']);
+        //删除规则
+        Router::get('/delRule', [CollectorController::class, 'delRule']);
+
+        //开始采集
+        Router::post('/sendCrawler', [CollectorController::class, 'sendCrawler']);
+
+        //获取并搜索资讯
+        Router::post('/getInfo', [CollectorController::class, 'getInfo']);
+        //获取某个资讯
+        Router::get('/getOneInfo', [CollectorController::class, 'getOneInfo']);
+        //修改资讯
+        Router::post('/upInfo', [CollectorController::class, 'upInfo']);
+        //删除资讯
+        Router::get('/delInfo', [CollectorController::class, 'delInfo']);
+
+        //关联导航
+        Router::post('/addCatid', [CollectorController::class, 'addCatid']);
+        //导入数据
+        Router::get('/addArt', [CollectorController::class, 'addArt']);
+
+    },
+    ['middleware' => [FooMiddleware::class]]
+);

+ 10 - 9
config/api/order.php

@@ -7,26 +7,27 @@ use Hyperf\HttpServer\Router\Router;
 
 Router::addGroup(
     '/order', function () {
-        //测试
-        Router::get('/index', [OrderController::class, 'index']);
-
         //订单状态对应
-        Router::post('/getStauts', [OrderController::class, 'getStauts']);
+        Router::get('/getStatus', [OrderController::class, 'getStatus']);
         //查询广告
         Router::post('/getAD', [OrderController::class, 'getAD']);
         //根据网站搜索广告
         Router::post('/getWebsiteAd', [OrderController::class, 'getWebsiteAd']);
-        //添加订单
 
+        //获取订单金额
+        Router::post('/getPrice', [OrderController::class, 'getPrice']);
+
+        //添加订单
         Router::post('/addAD', [OrderController::class, 'addAD']);
+
         //获取订单列表
-        Router::post('/getOrderList', [OrderController::class, 'getOrderList']);
+        Router::get('/getOrderList', [OrderController::class, 'getOrderList']);
         //获取订单详情
-        Router::post('/getOrderDetail', [OrderController::class, 'getOrderDetail']);
+        Router::get('/getOrderDetail', [OrderController::class, 'getOrderDetail']);
         //撤回订单
-        Router::post('/cancelOrder', [OrderController::class, 'cancelOrder']);
+        Router::get('/cancelOrder', [OrderController::class, 'cancelOrder']);
         //删除广告
-        Router::post('/delOrderAD', [OrderController::class, 'delOrderAD']);
+        Router::get('/delOrderAD', [OrderController::class, 'delOrderAD']);
 
         //后台管理
         //获取订单列表

+ 18 - 2
config/api/public.php

@@ -4,6 +4,7 @@ declare (strict_types = 1);
 use App\Controller\PublicController;
 use App\Middleware\Auth\FooMiddleware;
 use Hyperf\HttpServer\Router\Router;
+use App\Controller\MinioController;
 
 Router::addRoute(['GET', 'POST'], '/verifyCode', 'App\Controller\IndexController@verifyCode');
 
@@ -29,8 +30,7 @@ Router::addGroup(
         //删除投诉举报信息
 
         Router::post('/delLetterOfComplaint', [PublicController::class, 'delLetterOfComplaint']);
-        //获取类型
-        Router::get('/getLetterType', [PublicController::class, 'getLetterType']);
+
         //下载文件
         Router::addRoute(['GET', 'POST'],'/downloadFile', [PublicController::class, 'downloadFile']);
         //检测是否已经被审核
@@ -38,6 +38,7 @@ Router::addGroup(
         //获取职能部门
         Router::get('/getDepartment', [PublicController::class, 'getDepartment']);
 
+
         Router::post('/getZhinengbumenList', [PublicController::class, 'getZhinengbumenList']);
         Router::post('/addZhinengbumen', [PublicController::class, 'addZhinengbumen']);
         Router::post('/delZhinengbumen', [PublicController::class, 'delZhinengbumen']);
@@ -48,3 +49,18 @@ Router::addGroup(
     },
     ['middleware' => [FooMiddleware::class]]
 );
+
+Router::addGroup(
+    '/public', function () {
+        //获取所有的职能部门
+        Router::get('/getAllDepartment', [PublicController::class, 'getAllDepartment']);
+        //获取类型
+        Router::get('/getLetterType', [PublicController::class, 'getLetterType']);
+        //获取子类型
+        Router::get('/getLetterTypeChildren', [PublicController::class, 'getLetterTypeChildren']);
+
+        Router::post('/buckets', [MinioController::class, 'listBuckets']);
+
+        Router::post('/uploadFiles', [MinioController::class, 'uploadFiles']);
+    }
+);

+ 2 - 0
config/api/user.php

@@ -30,6 +30,8 @@ Router::addGroup(
         Router::post('/changePassword', [UserController::class, 'changePassword']);
         //修改用户状态
         Router::post('/upUserStatus', [UserController::class, 'upUserStatus']);
+        //重置密码
+        Router::post('/resetPassword', [UserController::class, 'resetPassword']);
         Router::post('/getToken', [UserController::class, 'getToken']);
 
     },

+ 11 - 1
config/api/web.php

@@ -7,8 +7,18 @@ use Hyperf\HttpServer\Router\Router;
 use App\Middleware\Auth\WebMiddleware;
 Router::addGroup(
     '/web', function () {
-                Router::get('/getWebsiteId', [WebController::class, 'getWebsiteId']);
                 Router::get('/getWebsiteCategory', [WebController::class, 'getWebsiteCategory']);
+                Router::get('/getWebsiteDistrit', [WebController::class, 'getWebsiteDistrit']);
+                Router::get('/getWebsiteAdvertisement', [WebController::class, 'getWebsiteAdvertisement']);
+                Router::get('/selectWebsiteDepartment', [WebController::class, 'selectWebsiteDepartment']);
+                Router::get('/selectWebsiteArea', [WebController::class, 'selectWebsiteArea']);
+                Router::get('/getWebsiteArticlett', [WebController::class, 'getWebsiteArticlett']);
+                Router::get('/getWebsiteModelArticles', [WebController::class, 'getWebsiteModelArticles']);
+                Router::get('/getWebsiteModelCategory', [WebController::class, 'getWebsiteModelCategory']);
+                Router::get('/getWebsiteArticlesList', [WebController::class, 'getWebsiteArticlesList']);
+                Router::get('/selectWebsiteArticleInfo', [WebController::class, 'selectWebsiteArticleInfo']);
+
+                Router::get('/selectWebsiteLinks', [WebController::class, 'selectWebsiteLinks']);
             },
     ['middleware' => [WebMiddleware::class]]
 );

+ 44 - 0
config/autoload/async_queue.php

@@ -0,0 +1,44 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+use Hyperf\AsyncQueue\Driver\RedisDriver;
+
+return [
+    'default' => [
+        'driver' => RedisDriver::class,
+        'redis' => [
+            'pool' => 'default',
+        ],
+        'channel' => '{gatherList}',
+        'timeout' => 2,
+        'retry_seconds' => 5,
+        'handle_timeout' => 10,
+        'processes' => 1,
+        'concurrent' => [
+            'limit' => 10,
+        ],
+        'max_messages' => 0,
+    ],
+    'import' => [
+        'driver' => RedisDriver::class,
+        'redis' => [
+            'pool' => 'default'
+        ],
+        'channel' => '{importList}',
+        'timeout' => 2,
+        'retry_seconds' => 5,
+        'handle_timeout' => 10,
+        'processes' => 1,
+        'concurrent' => [
+            'limit' => 5,
+        ],
+    ],
+];

+ 1 - 0
config/autoload/processes.php

@@ -10,4 +10,5 @@ declare(strict_types=1);
  * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
  */
 return [
+    Hyperf\AsyncQueue\Process\ConsumerProcess::class, //异步消费进程
 ];

+ 32 - 4
config/autoload/redis.php

@@ -19,11 +19,39 @@ return [
         'db' => (int) env('REDIS_DB', 0),
         'pool' => [
             'min_connections' => 1,
-            'max_connections' => 10,
-            'connect_timeout' => 10.0,
-            'wait_timeout' => 3.0,
+            'max_connections' => 100,
+            'connect_timeout' => 100000000.0,
+            'wait_timeout' => 30000000.0,
             'heartbeat' => -1,
-            'max_idle_time' => (float) env('REDIS_MAX_IDLE_TIME', 60),
+            'max_idle_time' => (float) env('REDIS_MAX_IDLE_TIME', 6000000000),
         ],
+        'driver' => Hyperf\AsyncQueue\Driver\RedisDriver::class,
+        'redis' => [
+            'pool' => 'default'
+        ],
+        'channel' => '{queue:import}',
+        'timeout' => 20,
+        'retry_seconds' => 5,
+        'handle_timeout' => 10,
+        'processes' => 100,
+        'concurrent' => [
+            'limit' => 10000,
+        ],
+        'max_messages' => 0,
+    ],
+    'import' => [
+        'driver' => Hyperf\AsyncQueue\Driver\RedisDriver::class,
+        'redis' => [
+            'pool' => 'default'
+        ],
+        'channel' => '{queue:import}',
+        'timeout' => 20,
+        'retry_seconds' => 5,
+        'handle_timeout' => 10,
+        'processes' => 100,
+        'concurrent' => [
+            'limit' => 10000,
+        ],
+        'max_messages' => 0,
     ],
 ];

+ 9 - 7
config/autoload/server.php

@@ -23,7 +23,8 @@ return [
             'port' => 9501,
             'sock_type' => SWOOLE_SOCK_TCP,
             'callbacks' => [
-                Event::ON_REQUEST => [Hyperf\HttpServer\Server::class, 'onRequest'],
+                Event::ON_REQUEST => [App\Service\Server\StreamServer::class, 'onRequest'],
+//                Event::ON_REQUEST => [Hyperf\HttpServer\Server::class, 'onRequest'],
             ],
         ],
         [
@@ -40,17 +41,18 @@ return [
         ],
     ],
     'settings' => [
+        'document_root' => BASE_PATH . '/public',
+        'enable_static_handler' => true,
         Constant::OPTION_ENABLE_COROUTINE => true,
         Constant::OPTION_WORKER_NUM => swoole_cpu_num(),
         Constant::OPTION_PID_FILE => BASE_PATH . '/runtime/hyperf.pid',
         Constant::OPTION_OPEN_TCP_NODELAY => true,
-        Constant::OPTION_MAX_COROUTINE => 100000,
+        Constant::OPTION_MAX_COROUTINE => 10 * 1024 * 1024,
         Constant::OPTION_OPEN_HTTP2_PROTOCOL => true,
-        Constant::OPTION_MAX_REQUEST => 100000,
-        Constant::OPTION_SOCKET_BUFFER_SIZE => 2 * 1024 * 1024,
-        Constant::OPTION_BUFFER_OUTPUT_SIZE => 2 * 1024 * 1024,
-        'document_root' => BASE_PATH . '/public',
-        'enable_static_handler' => true,
+        Constant::OPTION_MAX_REQUEST => 10 * 1024 * 1024,
+        Constant::OPTION_SOCKET_BUFFER_SIZE => 10 * 1024 * 1024,
+        Constant::OPTION_BUFFER_OUTPUT_SIZE => 10 * 1024 * 1024,
+        Constant::OPTION_UPLOAD_MAX_FILESIZE => 10 * 1024 * 1024,
     ],
     'callbacks' => [
         Event::ON_WORKER_START => [Hyperf\Framework\Bootstrap\WorkerStartCallback::class, 'onWorkerStart'],

+ 31 - 0
config/autoload/services.php

@@ -46,6 +46,27 @@ return [
             'nodes' => [
                 ['host' => '127.0.0.1', 'port' => 9502],
             ],
+            'settings' => [
+                'open_length_check' => true,
+                'package_max_length' => 1024 * 1024, // 最大包长度
+                'package_length_type' => 'N',
+                'package_body_offset' => 8,
+                'package_length_offset' => 4,
+                'package_length_field' => 'length',
+            ],
+            'options' => [
+                'connect_timeout' => 50.0, // 连接超时时间,单位为秒
+                'read_timeout' => 100.0,   // 读取超时时间,单位为秒
+                'write_timeout' => 100.0,  // 写入超时时间,单位为秒
+            ],
+            'pool' => [
+                'min_connections' => 1,
+                'max_connections' => 30,
+                'connect_timeout' => 100.0, // 连接池连接超时时间,单位为秒
+                'wait_timeout' => 30.0,     // 等待连接池可用连接的超时时间,单位为秒
+                'heartbeat' => -1,         // 心跳检测间隔,-1 表示禁用心跳检测
+                'max_idle_time' => 60.0,   // 连接的最大空闲时间,单位为秒
+            ],
         ],
         [
             //资讯-新闻
@@ -83,5 +104,15 @@ return [
                 ['host' => '127.0.0.1', 'port' => 9508],
             ],
         ],
+        [
+            //采集服务
+            'name' => 'CollectorService',
+            'service' => \App\JsonRpc\CollectorServiceInterface::class,
+
+            // 直接对指定的节点进行消费,通过下面的 nodes 参数来配置服务提供者的节点信息
+            'nodes' => [
+                ['host' => '127.0.0.1', 'port' => 9509],
+            ],
+        ],
     ],
 ];

+ 2 - 0
config/routes.php

@@ -35,3 +35,5 @@ require __DIR__ . '/api/news.php';
 require __DIR__ . '/api/website.php';
 require __DIR__ . '/api/web.php';
 require __DIR__ . '/api/order.php';
+require __DIR__ . '/api/collector.php';
+

File diff suppressed because it is too large
+ 0 - 0
runtime/container/classes.cache


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

@@ -1,169 +0,0 @@
-<?php
-
-declare (strict_types=1);
-namespace App\Controller;
-
-use App\JsonRpc\AdServiceInterface;
-use App\Tools\PublicData;
-use Hyperf\Di\Annotation\Inject;
-use Hyperf\HttpServer\Annotation\AutoController;
-use App\Tools\Result;
-use App\Constants\ErrorCode;
-use Hyperf\Logger;
-use Hyperf\Validation\Contract\ValidatorFactoryInterface;
-use Hyperf\Context\Context;
-/**
- * Class AdController
- * @package App\Controller
- */
-//#[AutoController]
-class AdController extends AbstractController
-{
-    use \Hyperf\Di\Aop\ProxyTrait;
-    use \Hyperf\Di\Aop\PropertyHandlerTrait;
-    function __construct()
-    {
-        if (method_exists(parent::class, '__construct')) {
-            parent::__construct(...func_get_args());
-        }
-        $this->__handlePropertyHandler(__CLASS__);
-    }
-    #[Inject]
-    protected ValidatorFactoryInterface $validationFactory;
-    /**
-     * @var AdServiceInterface
-     */
-    #[Inject]
-    private $adServiceClient;
-    public function createAd()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['name' => 'required', 'website_id' => 'required', 'price' => 'required'], ['name.required' => '名称不能为空', 'website_id.required' => '站点不能为空', 'price.required' => '价格不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->adServiceClient->createAd($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * @return array|void
-     */
-    public function getAdInfo()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $id = (int) $requireData['id'];
-        $result = $this->adServiceClient->getAdInfo($id);
-        if ($result['code'] != ErrorCode::SUCCESS) {
-            return Result::error($result['message'], 0);
-        }
-        return Result::success($result['data']);
-    }
-    public function getAdList()
-    {
-        $requireData = $this->request->all();
-        $nowTime = date("Y-m-d H:i:s");
-        $result = $this->adServiceClient->getAdList($requireData);
-        if ($result['data']) {
-            $typeList = ['1' => '文字', '2' => '图文'];
-            $statusName = ['1' => '通过', '2' => '待审'];
-            foreach ($result['data']['rows'] as $k => $v) {
-                $result['data']['rows'][$k]['type_name'] = $typeList[$v['typeid']];
-                $result['data']['rows'][$k]['status_name'] = $statusName[$v['status']];
-                $result['data']['rows'][$k]['day'] = PublicData::residueDay(date("Y-m-d H:i:s"), $v['totime']);
-                if ($nowTime < $v['fromtime']) {
-                    $result['data']['rows'][$k]['runing_name'] = '未开始';
-                } else {
-                    if ($nowTime > $v['totime']) {
-                        $result['data']['rows'][$k]['runing_name'] = '已过期';
-                    } else {
-                        $result['data']['rows'][$k]['runing_name'] = '投放中';
-                    }
-                }
-            }
-        }
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    public function updateAd()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['name' => 'required', 'status' => 'required'], ['name.required' => '名称不能为空', 'status.required' => '状态不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData = $this->request->all();
-        $result = $this->adServiceClient->updateAd($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    public function delAd()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->adServiceClient->delAd($requireData);
-        var_dump($result);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取广告位列表
-     * @return array
-     */
-    public function getAdPlaceList()
-    {
-        $requireData = $this->request->all();
-        var_dump($requireData);
-        $result = $this->adServiceClient->getAdPlaceList($requireData);
-        if ($result['data']) {
-            $typeList = ['1' => '文字', '2' => '图文'];
-            $statusName = ['1' => '通过', '2' => '待审'];
-            foreach ($result['data']['rows'] as $k => $v) {
-                $result['data']['rows'][$k]['type_name'] = $typeList[$v['typeid']];
-                $result['data']['rows'][$k]['status_name'] = $statusName[$v['status']];
-            }
-        }
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    public function createAdPlace()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['name' => 'required', 'website_id' => 'required', 'price' => 'required'], ['name.required' => '名称不能为空', 'website_id.required' => '站点不能为空', 'price.required' => '价格不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->adServiceClient->createAdPlace($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    public function updateAdPlace()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required', 'name' => 'required', 'website_id' => 'required', 'price' => 'required'], ['id.required' => 'id不能为空', 'name.required' => '名称不能为空', 'website_id.required' => '站点不能为空', 'price.required' => '价格不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->adServiceClient->updateAdPlace($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    public function delAdPlace()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->adServiceClient->delAdPlace($requireData);
-        var_dump($result);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-}

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

@@ -1,139 +0,0 @@
-<?php
-
-declare (strict_types=1);
-namespace App\Controller;
-
-use App\JsonRpc\AuthorityServiceInterface;
-use App\Tools\PublicData;
-use Hyperf\Di\Annotation\Inject;
-use Hyperf\HttpServer\Annotation\AutoController;
-use App\Tools\Result;
-use App\Constants\ErrorCode;
-use Hyperf\Validation\Contract\ValidatorFactoryInterface;
-use Hyperf\Context\Context;
-/**
- * Class AuthorityController
- * @package App\Controller
- */
-//#[AutoController]
-class AuthorityController extends AbstractController
-{
-    use \Hyperf\Di\Aop\ProxyTrait;
-    use \Hyperf\Di\Aop\PropertyHandlerTrait;
-    function __construct()
-    {
-        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()
-    {
-        $result = $this->authorityServiceClient->getMenuList([]);
-        $result = PublicData::buildMenuTree($result['data']);
-        return $result ? Result::success($result) : Result::error('查询失败');
-    }
-    /**
-     * 删除菜单
-     * @return array
-     */
-    public function delMenu()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => '菜单id不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $getData = ['id' => $requireData['id']];
-        $result = $this->authorityServiceClient->getMenuList($getData);
-        //        var_dump("菜单返回数据:",$result);
-        if (count($result['data']) > 0) {
-            return Result::error("有子菜单不能删除");
-        }
-        $data = ['id' => $requireData['id']];
-        return $this->authorityServiceClient->delMenu($data);
-    }
-    /**
-     * 添加菜单
-     * @return array|void
-     */
-    public function addMenu()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['label' => 'required'], ['label.required' => '菜单名称不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['pid'] = isset($requireData['pid_arr']) ? end($requireData['pid_arr']) : '';
-        $requireData['pid_arr'] = isset($requireData['pid_arr']) ? json_encode($requireData['pid_arr']) : '';
-        $result = $this->authorityServiceClient->addMenu($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 查看菜单信息
-     * @return array
-     */
-    public function getMenuInfo()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->authorityServiceClient->getMenuInfo($requireData);
-        $result['data']['pid_arr'] = isset($result['data']['pid_arr']) && $result['data']['pid_arr'] ? json_decode($result['data']['pid_arr']) : [];
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 修改菜单
-     * @return array|void
-     */
-    public function updateMenu()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required', 'label' => 'required'], ['id.required' => 'id不能为空', 'label.required' => '菜单名称不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['pid'] = isset($requireData['pid_arr']) ? end($requireData['pid_arr']) : '';
-        $requireData['pid_arr'] = isset($requireData['pid_arr']) ? json_encode($requireData['pid_arr']) : '';
-        $result = $this->authorityServiceClient->updateMenu($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 菜单递归查询处理
-     * @return void
-     */
-    public function getRecursionMenu()
-    {
-        $reqData = ['user_id' => Context::get("UserId")];
-        $result = $this->authorityServiceClient->getRecursionMenu($reqData);
-        $rep = PublicData::buildMenuTree($result['data']);
-        return $rep ? Result::success($rep) : Result::error("查询失败");
-    }
-    /**
-     * 查询所有的菜单
-     * @return array
-     */
-    public function getAllMenuList()
-    {
-        $result = $this->authorityServiceClient->getAllMenuList([]);
-        $rep = PublicData::buildMenuTree($result['data']);
-        return $rep ? Result::success($rep) : Result::error("查询失败");
-    }
-}

+ 0 - 672
runtime/container/proxy/App_Controller_ChatController.proxy.php

@@ -1,672 +0,0 @@
-<?php
-
-declare (strict_types=1);
-namespace App\Controller;
-
-use App\JsonRpc\ChatServiceInterface;
-use App\JsonRpc\UserServiceInterface;
-use App\Service\RedisService;
-use App\Tools\PublicData;
-use App\Tools\Result;
-use function Hyperf\Support\env;
-use Hyperf\Context\Context;
-use Hyperf\Di\Annotation\Inject;
-use Hyperf\Validation\Contract\ValidatorFactoryInterface;
-/**
- *
- * Class ChatController
- * @package App\Controller
- */
-//#[AutoController]
-class ChatController extends AbstractController
-{
-    use \Hyperf\Di\Aop\ProxyTrait;
-    use \Hyperf\Di\Aop\PropertyHandlerTrait;
-    function __construct()
-    {
-        if (method_exists(parent::class, '__construct')) {
-            parent::__construct(...func_get_args());
-        }
-        $this->__handlePropertyHandler(__CLASS__);
-    }
-    #[Inject]
-    protected ValidatorFactoryInterface $validationFactory;
-    /**
-     * @var ChatServiceInterface
-     */
-    #[Inject]
-    private $chatServiceClient;
-    #[Inject]
-    private UserServiceInterface $userServiceClient;
-    /**
-     * 申请添加好友
-     * @return array
-     */
-    public function addFriend()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['friend_id' => 'required'], ['friend_id.required' => '好友ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        //判断UserId是否是friend_id
-        $userId = $requireData['user_id'];
-        $friendId = $requireData['friend_id'];
-        if ($userId == $friendId) {
-            return Result::error('不能添加自己为好友');
-        }
-        //判断friend_id是否可用
-        $friendInfo = $this->userServiceClient->getUserInfo((int) $friendId);
-        if ($friendInfo['code'] == 0) {
-            return Result::error('好友ID不存在');
-        }
-        $result = $this->chatServiceClient->addFriend($requireData);
-        //redis 添加好友
-        if ($result && $result['code'] != 0) {
-            $redisClient = new RedisService();
-            $myFriends = $this->chatServiceClient->getFriendsList(['user_id' => $userId, 'status' => 2]);
-            $redisClient->setUserFriends($userId, $myFriends['data']);
-        }
-        return $result ? Result::success($result['message']) : Result::error($result['message']);
-    }
-    /**
-     * 话题分类
-     * @return array
-     */
-    public function topicType()
-    {
-        $type = array('1' => '课题', '2' => '维权', '3' => '讨论');
-        $result = array();
-        foreach ($type as $k => $v) {
-            $result[] = ['value' => $k, 'label' => $v];
-        }
-        return Result::success($result);
-    }
-    /**
-     * 获取话题列表
-     * @return array
-     */
-    public function topicStatus()
-    {
-        $status = array('1' => '未审核', '2' => '已通过', '3' => '已拒绝');
-        $result = array();
-        foreach ($status as $k => $v) {
-            $result[] = ['value' => $k, 'label' => $v];
-        }
-        return Result::success($result);
-    }
-    /**
-     * 搜索好友列表
-     * @return array
-     */
-    public function searchFriend()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['keyword' => 'required'], ['keyword.required' => '搜索关键字不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        // return Result::success($requireData);
-        $result = $this->chatServiceClient->searchFriend($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取好友详情
-     * @return array
-     */
-    public function getFriendInfo()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['friend_id' => 'required'], ['friend_id.required' => '好友ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->getFriendInfo($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取我的好友列表
-     * @return array
-     */
-    public function getFriendsList()
-    {
-        $requireData = [];
-        $requireData['user_id'] = Context::get("UserId");
-        $requireData['status'] = 2;
-        $result = $this->chatServiceClient->getFriendsList($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取好友申请列表
-     * @return array
-     */
-    public function getFriendsApplyList()
-    {
-        $requireData = [];
-        $requireData['friend_id'] = Context::get("UserId");
-        $requireData['status'] = 1;
-        $result = $this->chatServiceClient->getFriendsApplyList($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 好友申请审核通过或拒绝
-     * @return array
-     */
-    public function applyFriend()
-    {
-        $requireData = $this->request->all();
-        // 定义验证规则
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required|integer', 'status' => 'required|in:2,4'], ['friend_id.required' => 'ID不能为空', 'status.required' => '状态不能为空', 'status.in' => '状态错误']);
-        // 验证请求数据
-        if ($validator->fails()) {
-            var_dump($validator->errors()->all());
-            return Result::error(implode(', ', $validator->errors()->all()), 0);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->applyFriend($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 删除好友
-     * @return array
-     */
-    public function delFriend()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['friend_id' => 'required'], ['friend_id.required' => '好友ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->delFriend($requireData);
-        //redis 删除好友
-        if ($result && $result['code'] != 0) {
-            $redisClient = new RedisService();
-            $myFriends = $this->chatServiceClient->getFriendsList(['user_id' => $requireData['user_id'], 'status' => 2]);
-            $redisClient->setUserFriends($requireData['user_id'], $myFriends['data']);
-        }
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 是否好友
-     * @return array
-     */
-    public function isFriend()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['friend_id' => 'required'], ['friend_id.required' => '好友ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->isFriend($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 更新好友备注
-     * @return array
-     */
-    public function updateFriend()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['friend_id' => 'required', 'remark' => 'required'], ['friend_id.required' => '好友ID不能为空', 'remark.required' => '备注不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->updateFriend($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 会话
-     * @return array
-     */
-    public function getConversation()
-    {
-        $requireData = $this->request->all();
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->getConversation($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取聊天记录
-     * @return array
-     */
-    public function getChatRecords()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['friend_id' => 'required'], ['friend_id.required' => '好友ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->getChatRecords($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取群聊天
-     * @return array
-     */
-    public function getGroupChatRecords()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['group_id' => 'required'], ['group_id.required' => '群ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->getGroupChatRecords($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取群成员列表
-     * @return array
-     */
-    public function getGroupMembers()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['group_id' => 'required'], ['group_id.required' => '群ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->getGroupMembers($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取群信息
-     * @return array
-     */
-    public function getGroupInfo()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['group_id' => 'required'], ['group_id.required' => '群ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->getGroupInfo($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取群列表
-     * @return array
-     */
-    public function getGroupList()
-    {
-        $requireData = $this->request->all();
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->getGroupList($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 新建群
-     * @return array
-     */
-    public function addGroup()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['group_name' => 'required', 'group_desc' => 'required'], ['group_name.required' => '群名称不能为空', 'group_desc.required' => '群描述不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $requireData['group_member'] = explode(',', $requireData['group_member']);
-        $result = $this->chatServiceClient->addGroup($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 退出群
-     * @return array
-     */
-    public function quitGroup()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['group_id' => 'required'], ['group_id.required' => '群ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->quitGroup($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 删除群
-     * @return array
-     */
-    public function delGroup()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['group_id' => 'required'], ['group_id.required' => '群ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->delGroup($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 删除群成员
-     * @return array
-     */
-    public function delGroupMembers()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['group_id' => 'required', 'group_member' => 'required'], ['group_id.required' => '群ID不能为空', 'group_member.required' => '群成员不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $requireData['group_member'] = explode(',', $requireData['group_member']);
-        $result = $this->chatServiceClient->delGroupMembers($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 添加群成员
-     * @return array
-     */
-    public function updateGroupMembers()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['group_id' => 'required', 'group_member' => 'required'], ['group_id.required' => '群ID不能为空', 'group_member.required' => '群成员不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $requireData['group_member'] = explode(',', $requireData['group_member']);
-        $result = $this->chatServiceClient->updateGroupMembers($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 删除群成员
-     * @return array
-     */
-    public function deleteGroupMember()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['group_id' => 'required', 'group_member' => 'required'], ['group_id.required' => '群ID不能为空', 'group_member.required' => '群成员不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $requireData['group_member'] = explode(',', $requireData['group_member']);
-        $result = $this->chatServiceClient->deleteGroupMember($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 加入群
-     * @return array
-     */
-    public function joinGroup()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['group_id' => 'required'], ['group_id.required' => '群ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->joinGroup($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 更新群信息
-     * @return array
-     */
-    public function updateGroup()
-    {
-        $requireData = $this->request->all();
-        // 只接受指定的四个字段
-        $validatedData = $this->validationFactory->make($requireData, ['group_id' => 'required|string', 'group_name' => 'nullable|string', 'profile' => 'nullable|string', 'avatar' => 'nullable|string'], ['group_id.required' => '群ID不能为空']);
-        if ($validatedData->fails()) {
-            $errorMessage = $validatedData->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->updateGroup($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取商圈
-     * @return array
-     */
-    public function getTopicsList()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['page' => 'required|integer', 'page_size' => 'required|integer'], ['page.required' => '页码不能为空', 'page_size.required' => '每页数量不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->getTopicsList($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 新增话题商圈
-     * @return array
-     */
-    public function addTopic()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['title' => 'required|string', 'type' => 'required|string', 'content' => 'required|string'], ['title.required' => '商圈名称不能为空', 'type.required' => '商圈类型不能为空', 'content.required' => '商圈内容不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->addTopic($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 更新话题商圈
-     * @return array
-     */
-    public function updateTopic()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required|string'], ['topic_id.required' => '商圈ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->updateTopic($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 删除话题商圈
-     * @return array
-     */
-    public function delTopic()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required|string'], ['id.required' => '商圈ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->delTopic($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取商圈详情
-     * @return array
-     */
-    public function getTopicInfo()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required|string'], ['id.required' => '商圈ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->getTopicInfo($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取商圈回复
-     * @return array
-     */
-    public function addReply()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required|string', 'content' => 'required|string'], ['id.required' => '商圈ID不能为空', 'content.required' => '回复内容不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->addReply($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取商圈评论
-     * @return array
-     */
-    public function getTopicReply()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required|string', 'page' => 'required|integer', 'page_size' => 'required|integer'], ['id.required' => '商圈ID不能为空', 'page.required' => '页码不能为空', 'page_size.required' => '每页数量不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->getTopicReply($requireData);
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**-=-------------------------------------------------------
-     * 获取好友列表
-     * @return array
-     */
-    public function getContactList()
-    {
-        $requireData = $this->request->all();
-        $requireData['user_id'] = Context::get("UserId");
-        $requireData['keyWord'] = $this->request->input('keyWord', '');
-        $result = $this->chatServiceClient->getContactList($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取会话列表
-     * @return array
-     */
-    public function getTalkSessionList()
-    {
-        $requireData = $this->request->all();
-        $requireData['user_id'] = Context::get("UserId");
-        var_dump("会话列表:", $requireData);
-        $result = $this->chatServiceClient->getTalkSessionList($requireData);
-        var_dump($result);
-        if ($result['data']['row']) {
-            foreach ($result['data']['row'] as $k => $v) {
-                $result['data']['row'][$k]['messages'] = [];
-            }
-        }
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 创建用户群
-     * @return array
-     */
-    public function addTalkGroup()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['group_name' => 'required', 'user_id_arr' => 'required'], ['group_name.required' => '群名称不能为空', 'user_id_arr.required' => '好友ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $requireData['user_id_arr'] = $requireData['user_id_arr'];
-        var_dump($requireData);
-        $result = $this->chatServiceClient->addTalkGroup($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 会话详情
-     * @return void
-     */
-    public function getTalkRecordsList()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['session_id' => 'required', 'talk_type' => 'required'], ['session_id.required' => '会话ID不能为空', 'talk_type.required' => '会话类型不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['page'] = $requireData['page'] ?? 1;
-        $requireData['pageSize'] = $requireData['pageSize'] ?? 30;
-        $result = $this->chatServiceClient->getTalkRecordsList($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 添加聊天
-     * @return void
-     */
-    public function addTalkRecords()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['type' => 'required', 'content' => 'required', 'receiver' => 'required'], ['type.required' => '消息类型不能为空', 'content.required' => '内容不能为空', 'receiver.required' => '会话信息不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->chatServiceClient->addTalkRecords($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取openId
-     * @return array|void
-     */
-    public function wechatOpenInfo()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['code' => 'required'], ['code.required' => 'code不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $url = env("WECHAT") . "sns/jscode2session?appid=" . env("APPID") . "&secret=" . env("APP_SECRET") . "&js_code=" . $requireData['code'] . "&grant_type=authorization_code";
-        $result = PublicData::http_get($url);
-        $resultData = json_decode($result, true);
-        if (isset($resultData['errcode'])) {
-            return Result::error($resultData['errmsg']);
-        }
-        return Result::success($resultData);
-    }
-    /**
-     * 获取 access_token
-     * @return array
-     */
-    public function getAccessToken()
-    {
-        $url = env("WECHAT") . "cgi-bin/token?appid=" . env("APPID") . "&secret=" . env("APP_SECRET") . "&grant_type=client_credential";
-        $result = PublicData::http_get($url);
-        $resultData = json_decode($result, true);
-        var_dump($url, $resultData);
-        if (isset($resultData['errcode'])) {
-            return Result::error($resultData['errmsg']);
-        }
-        return Result::success($resultData);
-    }
-}

+ 0 - 58
runtime/container/proxy/App_Controller_IndexController.proxy.php

@@ -1,58 +0,0 @@
-<?php
-
-declare (strict_types=1);
-namespace App\Controller;
-
-use App\Tools\CommonService;
-use App\Tools\PublicData;
-use Hyperf\Di\Annotation\Inject;
-use Hyperf\HttpServer\Contract\RequestInterface;
-use Hyperf\Validation\Contract\ValidatorFactoryInterface;
-use App\Request\FooRequest;
-use App\Request\SceneRequest;
-use App\Tools\Result;
-use ZipArchive;
-class IndexController extends AbstractController
-{
-    use \Hyperf\Di\Aop\ProxyTrait;
-    use \Hyperf\Di\Aop\PropertyHandlerTrait;
-    function __construct()
-    {
-        if (method_exists(parent::class, '__construct')) {
-            parent::__construct(...func_get_args());
-        }
-        $this->__handlePropertyHandler(__CLASS__);
-    }
-    #[Inject]
-    protected ValidatorFactoryInterface $validationFactory;
-    public function index(RequestInterface $request)
-    {
-        $validator = $this->validationFactory->make($request->all(), ['foo' => 'required', 'bar' => 'required'], ['foo.required' => 'foo必填', 'bar.required' => 'bar必填']);
-        if ($validator->fails()) {
-            // Handle exception
-            $errorMessage = $validator->errors()->first();
-            var_dump($errorMessage);
-        }
-    }
-    public function verifyCode()
-    {
-        $comm = new CommonService();
-        $ip = $comm->userIp();
-        $redis = $this->container->get(\Hyperf\Redis\Redis::class);
-        $config = new \EasySwoole\VerifyCode\Config();
-        $code = new \EasySwoole\VerifyCode\VerifyCode($config);
-        $img_code = '';
-        $characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
-        $charLength = strlen($characters);
-        for ($i = 0; $i < 4; $i++) {
-            $img_code .= $characters[rand(0, $charLength - 1)];
-        }
-        //重写验证码
-        $result = $code->DrawCode((string) $img_code);
-        $img_code = $result->getImageCode();
-        //写入缓存 用于其他方法验证 并且设置过期时间
-        $redis->set('code' . $ip, $img_code, 60000);
-        return $result ? Result::success($result->getImageBase64()) : Result::error('失败');
-        //        return $result->getImageBase64();
-    }
-}

+ 0 - 93
runtime/container/proxy/App_Controller_LinkController.proxy.php

@@ -1,93 +0,0 @@
-<?php
-
-declare (strict_types=1);
-namespace App\Controller;
-
-use App\JsonRpc\LinkServiceInterface;
-use Hyperf\Di\Annotation\Inject;
-use Hyperf\HttpServer\Annotation\AutoController;
-use App\Tools\Result;
-use Hyperf\Context\Context;
-use Hyperf\Logger;
-use Hyperf\Validation\Contract\ValidatorFactoryInterface;
-/**
- * Class LinkController
- * @package App\Controller
- */
-//#[AutoController]
-class LinkController extends AbstractController
-{
-    use \Hyperf\Di\Aop\ProxyTrait;
-    use \Hyperf\Di\Aop\PropertyHandlerTrait;
-    function __construct()
-    {
-        if (method_exists(parent::class, '__construct')) {
-            parent::__construct(...func_get_args());
-        }
-        $this->__handlePropertyHandler(__CLASS__);
-    }
-    #[Inject]
-    protected ValidatorFactoryInterface $validationFactory;
-    /**
-     * @var LinkServiceInterface
-     */
-    #[Inject]
-    private $linkServiceClient;
-    /**
-     * 友情链接列表
-     * @return array
-     */
-    public function getLinkList()
-    {
-        $requireData = $this->request->all();
-        $result = $this->linkServiceClient->getLinkList($requireData);
-        if ($result['data']) {
-            $statusList = ['1' => "通过", '2' => "待审"];
-            foreach ($result['data']['rows'] as $k => $v) {
-                $result['data']['rows'][$k]['status_name'] = $statusList[$v['status']];
-            }
-        }
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 创建友情链接
-     * @return array
-     */
-    public function createLink()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['title' => 'required'], ['title.required' => '名称不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->linkServiceClient->createLink($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 更新友情链接
-     * @return array
-     */
-    public function updateLink()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required', 'title' => 'required', 'url' => 'required'], ['id.required' => 'id不能为空', 'title.required' => '名称不能为空', 'url.required' => 'url不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData = $this->request->all();
-        $result = $this->linkServiceClient->updateLink($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 删除友情链接
-     * @return array
-     */
-    public function delLink()
-    {
-        $requireData = $this->request->all();
-        $result = $this->linkServiceClient->delLink($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-}

+ 0 - 217
runtime/container/proxy/App_Controller_LoginController.proxy.php

@@ -1,217 +0,0 @@
-<?php
-
-declare (strict_types=1);
-namespace App\Controller;
-
-use App\JsonRpc\UserServiceInterface;
-use App\Tools\CommonService;
-use App\Tools\PublicData;
-use App\Tools\Result;
-use function Hyperf\Support\env;
-use Hyperf\Di\Annotation\Inject;
-use Hyperf\HttpServer\Annotation\AutoController;
-use Hyperf\Validation\Contract\ValidatorFactoryInterface;
-use Phper666\JWTAuth\JWT;
-/**
- * @AutoController()
- */
-class LoginController extends AbstractController
-{
-    use \Hyperf\Di\Aop\ProxyTrait;
-    use \Hyperf\Di\Aop\PropertyHandlerTrait;
-    function __construct()
-    {
-        if (method_exists(parent::class, '__construct')) {
-            parent::__construct(...func_get_args());
-        }
-        $this->__handlePropertyHandler(__CLASS__);
-    }
-    #[Inject]
-    protected ValidatorFactoryInterface $validationFactory;
-    /**
-     * @var UserServiceInterface
-     */
-    #[Inject]
-    private $userServiceClient;
-    public function login(Jwt $jwt)
-    {
-        //        $this->logger->info("验证之前");
-        $reqData = $this->request->all();
-        $validator = $this->validationFactory->make($reqData, ['username' => 'required', 'password' => 'required', 'type' => 'required'], ['username.required' => '用户名不能为空', 'password.required' => '密码不能为空', 'type.required' => '登录方式必填']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $comm = new CommonService();
-        $ip = $comm->userIp();
-        $redis = $this->container->get(\Hyperf\Redis\Redis::class);
-        $code = $redis->get('code' . $ip);
-        if (empty($code)) {
-            return Result::error("验证码已过期");
-        }
-        var_dump("验证码:", $code);
-        var_dump(strtolower($code) . strtolower($reqData['captcha']));
-        if (strtolower($code) != strtolower($reqData['captcha'])) {
-            // return Result::error("验证码错误");
-        }
-        //$reqData
-        $where = [];
-        if ($reqData['type'] == 1) {
-            //密码登录
-            $where = ['user_name' => $reqData['username']];
-        }
-        //        $this->logger->info("验证之前");
-        $userInfos = $this->userServiceClient->verifyUserInfo($where);
-        if ($userInfos['code'] == 0) {
-            return Result::error("用户名或密码错误");
-        }
-        var_dump("用户信息:", $userInfos);
-        //        $this->logger->info("验证用户返回值:", $userInfos);
-        if (md5(md5($reqData['password']) . $userInfos['data']['salt']) != $userInfos['data']['password']) {
-            return Result::error("用户名或密码错误");
-        }
-        $userData = [
-            'uid' => $userInfos['data']['id'],
-            // 如果使用单点登录,必须存在配置文件中的sso_key的值,一般设置为用户的id
-            'user_name' => $userInfos['data']['user_name'],
-            'mobile' => $userInfos['data']['mobile'],
-            'email' => $userInfos['data']['email'],
-            // 'rong_token' => $userInfos['data']['rong_token'],
-            'level_id' => $userInfos['data']['level_id'],
-            'type_id' => $userInfos['data']['type_id'],
-        ];
-        var_dump($userData);
-        // 使用默认场景登录
-        $token = $jwt->getToken('default', $userData);
-        $data = ['token' => $token->toString(), 'exp' => $jwt->getTTL($token->toString())];
-        return Result::success($data);
-    }
-    /**
-     * @return void
-     */
-    public function checkVerifyCode(Jwt $jwt)
-    {
-        //其它信息暂时不管 先以openid
-        $reqData = $this->request->all();
-        $validator = $this->validationFactory->make($reqData, ['token' => 'required'], ['token.required' => 'token不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $userInfo = $jwt->getClaimsByToken($reqData['token']);
-        if ($userInfo) {
-            return Result::success(['token' => $reqData['token']]);
-        } else {
-            return Result::error("token无效");
-        }
-    }
-    /**
-     * 注册或登陆
-     * @return void
-     */
-    public function registerOrLogin(Jwt $jwt)
-    {
-        //获取access_token
-        $reqData = $this->request->all();
-        $validator = $this->validationFactory->make($reqData, ['code' => 'required'], ['code.required' => 'code不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $url = env("WECHAT") . "cgi-bin/token?appid=" . env("APPID") . "&secret=" . env("APP_SECRET") . "&grant_type=client_credential";
-        $result = PublicData::http_get($url);
-        $accessTokenData = json_decode($result, true);
-        //获取openid
-        $url = env("WECHAT") . "sns/jscode2session?appid=" . env("APPID") . "&secret=" . env("APP_SECRET") . "&js_code=" . $reqData['loginCode'] . "&grant_type=authorization_code";
-        $result = PublicData::http_get($url);
-        $openInfoData = json_decode($result, true);
-        if (isset($openInfoData['errcode']) && in_array($openInfoData['errcode'], [40163, 40029])) {
-            return Result::error($openInfoData['errmsg']);
-        }
-        $data = ['code' => $reqData['code'], 'openid' => $openInfoData['openid']];
-        // 将数组转换为JSON字符串
-        $jsonData = json_encode($data);
-        // 初始化cURL会话
-        $ch = curl_init(env("WECHAT") . "wxa/business/getuserphonenumber?access_token=" . $accessTokenData['access_token']);
-        // 设置cURL选项 Todo 这里有一万个wc 封装成post方法就报错,后期再研究
-        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
-        curl_setopt($ch, CURLOPT_POST, true);
-        curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
-        curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json', 'Content-Length: ' . strlen($jsonData)]);
-        // 执行cURL会话
-        $response = curl_exec($ch);
-        // 检查是否有错误发生
-        if (curl_errno($ch)) {
-            return Result::error("获取手机号失败");
-        }
-        // 关闭cURL会话
-        curl_close($ch);
-        $response = json_decode($response, true);
-        if ($response['errcode'] == '40029') {
-            return Result::error($openInfoData['errmsg']);
-        }
-        // 打印响应内容
-        var_dump($openInfoData, $response);
-        //根据openid 获取token
-        $checkUserInfo = $this->userServiceClient->verifyUserInfo(['user_name' => $response['phone_info']['purePhoneNumber']]);
-        if ($checkUserInfo['code'] == 0) {
-            $salt = rand(1, 999999);
-            $createUserData = ['user_name' => $response['phone_info']['purePhoneNumber'], 'salt' => $salt, 'password' => $openInfoData['openid']];
-            $checkUserInfo = $this->userServiceClient->createUser($createUserData);
-        }
-        //根据openid和手机号判断是否注册,未注册直接注册
-        $wechatReqData = ['openid' => $openInfoData['openid'], 'purePhoneNumber' => $response['phone_info']['purePhoneNumber']];
-        $wechatInfo = $this->userServiceClient->getWechatInfo($wechatReqData);
-        if ($wechatInfo['code'] == 0) {
-            $wechatData = ['openid' => $openInfoData['openid'], 'phoneNumber' => $response['phone_info']['phoneNumber'], 'purePhoneNumber' => $response['phone_info']['purePhoneNumber'], 'countryCode' => $response['phone_info']['countryCode'], 'watermark' => json_encode($response['phone_info']['watermark']), 'user_id' => $checkUserInfo['data']['id']];
-            $this->userServiceClient->addWechatInfo($wechatData);
-        }
-        var_dump($checkUserInfo);
-        $userData = [
-            'uid' => $checkUserInfo['data']['id'],
-            // 如果使用单点登录,必须存在配置文件中的sso_key的值,一般设置为用户的id
-            'user_name' => $response['phone_info']['phoneNumber'],
-            'mobile' => $checkUserInfo['data']['mobile'] ?? '',
-            'email' => $checkUserInfo['data']['email'],
-            //            'rong_token' => $userInfos['data']['rong_token'],
-            'level_id' => $checkUserInfo['data']['level_id'],
-            'type_id' => $checkUserInfo['data']['type_id'],
-        ];
-        // 使用默认场景登录
-        $token = $jwt->getToken('default', $userData);
-        $data = ['token' => $token->toString(), 'exp' => $jwt->getTTL($token->toString())];
-        return Result::success($data);
-    }
-    public function getToken(JWT $jwt)
-    {
-        $reqData = $this->request->all();
-        $userInfos = $this->userServiceClient->getUserInfo((int) $reqData['id']);
-        $userData = [
-            'uid' => $userInfos['data']['id'],
-            // 如果使用单点登录,必须存在配置文件中的sso_key的值,一般设置为用户的id
-            'user_name' => $userInfos['data']['user_name'],
-            'mobile' => $userInfos['data']['mobile'],
-            'email' => $userInfos['data']['email'],
-            'level_id' => $userInfos['data']['level_id'],
-            'type_id' => $userInfos['data']['type_id'],
-        ];
-        var_dump($userInfos);
-        // 使用默认场景登录
-        $token = $jwt->getToken('default', $userData);
-        return Result::success($token->toString());
-    }
-    public function httpPost()
-    {
-    }
-    # http头部必须携带token才能访问的路由
-    public function getData(Jwt $jwt)
-    {
-        //        var_dump($this->UserId);
-        $h = $this->request->getHeaders();
-        //        var_dump($this->request->getHeaders());
-        //        $a= 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwaHBlcjY2Ni9qd3QiLCJ1aWQiOjMyLCJ1c2VyX25hbWUiOiIxIiwicm9sZV9pZCI6MSwibW9iaWxlIjoiMTU4MDEyNDU3NTUiLCJlbWFpbCI6IjVAcXEuY29tIiwicm9uZ190b2tlbiI6IiIsImxldmVsX2lkIjo4LCJqd3Rfc2NlbmUiOiJkZWZhdWx0IiwianRpIjoiZGVmYXVsdF82Njc1MjJkZDQ3YWYxMi41MTE5MjI5MiIsImlhdCI6MTcxODk1MjY2OSwibmJmIjoxNzE4OTUyNjY5LCJleHAiOjE3MjE1NDQ2Njl9.e0JW8fgNrwBdFgmQ8GNtES2ME1SbcbIih5MsQWzT6sk';
-        $arr = $jwt->getClaimsByToken($h['token'][0]);
-        var_dump($h['token'][0], "+++++++++++", $arr, "===####");
-        return $this->response->json(['code' => 0, 'msg' => 'success', 'data' => ['a' => 1]]);
-    }
-}

+ 0 - 248
runtime/container/proxy/App_Controller_NewsController.proxy.php

@@ -1,248 +0,0 @@
-<?php
-
-declare (strict_types=1);
-namespace App\Controller;
-
-use App\JsonRpc\NewsServiceInterface;
-use App\Tools\PublicData;
-use Hyperf\Di\Annotation\Inject;
-use Hyperf\HttpServer\Annotation\AutoController;
-use App\Tools\Result;
-use Hyperf\Validation\Contract\ValidatorFactoryInterface;
-use Hyperf\Context\Context;
-/**
- * Class NewsController
- * @package App\Controller
- */
-//#[AutoController]
-class NewsController extends AbstractController
-{
-    use \Hyperf\Di\Aop\ProxyTrait;
-    use \Hyperf\Di\Aop\PropertyHandlerTrait;
-    function __construct()
-    {
-        if (method_exists(parent::class, '__construct')) {
-            parent::__construct(...func_get_args());
-        }
-        $this->__handlePropertyHandler(__CLASS__);
-    }
-    #[Inject]
-    protected ValidatorFactoryInterface $validationFactory;
-    /**
-     * @var NewsServiceInterface
-     */
-    #[Inject]
-    private $newsServiceClient;
-    /**
-     * 导航池列表
-     * @return void
-     */
-    public function getCategoryList()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['page' => 'required', 'pageSize' => 'required'], ['page.required' => '第几页不能为空', 'pageSize.required' => '每页显示条数不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->newsServiceClient->getCategoryList($requireData);
-        if ($result['data']) {
-            foreach ($result['data']['rows'] as $k => $v) {
-                $result['data']['rows'][$k]['pid_arr'] = $v['pid_arr'] ? json_decode($v['pid_arr']) : [0];
-            }
-        }
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 站点下的导航池
-     * @return void
-     */
-    public function categoryList()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['pid' => 'required'], ['pid.required' => '父级ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        //        $requireData['website_id'] = Context::get("SiteId");
-        $result = $this->newsServiceClient->categoryList($requireData);
-        $rep = PublicData::buildMenuTree($result['data']);
-        return $result ? Result::success($rep) : Result::error($result['message']);
-    }
-    /**
-     * 添加导航
-     * @return array|void
-     */
-    public function addCategory()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['name' => 'required', 'seo_title' => 'required', 'seo_keywords' => 'required', 'seo_description' => 'required'], ['name.required' => '导航池名称不能为空', 'seo_title.required' => 'seo标题名称不能为空', 'seo_keywords.required' => 'seo关键词不能为空', 'seo_description.required' => 'seo描述不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['pid'] = isset($requireData['pid_arr']) ? end($requireData['pid_arr']) : '';
-        $requireData['pid_arr'] = isset($requireData['pid_arr']) ? json_encode($requireData['pid_arr']) : '';
-        $requireData['city_id'] = isset($requireData['city_arr_id']) ? end($requireData['city_arr_id']) : '';
-        $requireData['city_arr_id'] = isset($requireData['city_arr_id']) ? json_encode($requireData['city_arr_id']) : '';
-        $requireData['department_id'] = isset($requireData['department_arr_id']) ? end($requireData['department_arr_id']) : '';
-        $requireData['department_arr_id'] = isset($requireData['department_arr_id']) ? json_encode($requireData['department_arr_id']) : '';
-        $result = $this->newsServiceClient->addCategory($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 更新导航池
-     * @return array
-     */
-    public function updateCategory()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required', 'name' => 'required', 'seo_title' => 'required', 'seo_keywords' => 'required', 'seo_description' => 'required'], ['id.required' => 'ID不能为空', 'name.required' => '栏目池名称不能为空', 'seo_title.required' => 'seo标题名称不能为空', 'seo_keywords.required' => 'seo关键词不能为空', 'seo_description.required' => 'seo描述不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['pid'] = isset($requireData['pid_arr']) ? end($requireData['pid_arr']) : '';
-        $requireData['pid_arr'] = isset($requireData['pid_arr']) ? json_encode($requireData['pid_arr']) : '';
-        $requireData['city_id'] = isset($requireData['city_arr_id']) ? end($requireData['city_arr_id']) : '';
-        $requireData['city_arr_id'] = isset($requireData['city_arr_id']) ? json_encode($requireData['city_arr_id']) : '';
-        $requireData['department_id'] = isset($requireData['department_arr_id']) ? end($requireData['department_arr_id']) : '';
-        $requireData['department_arr_id'] = isset($requireData['department_arr_id']) ? json_encode($requireData['department_arr_id']) : '';
-        $result = $this->newsServiceClient->updateCategory($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 删除分类
-     * @return array
-     */
-    public function delCategory()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->newsServiceClient->delCategory($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 资讯列表
-     * @return void
-     */
-    public function getArticleList()
-    {
-        $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->getArticleList($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取导航池信息
-     * @return void
-     */
-    public function getCategoryInfo()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->newsServiceClient->getCategoryInfo($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 添加分类
-     * @return array|void
-     */
-    public function addArticle()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['title' => 'required', 'cat_arr_id' => 'required', 'author' => 'required'], ['title.required' => '标题不能为空', 'cat_arr_id.required' => '导航池ID不能为空', 'author.required' => '作者不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['catid'] = isset($requireData['cat_arr_id']) ? end($requireData['cat_arr_id']) : '';
-        $requireData['cat_arr_id'] = isset($requireData['cat_arr_id']) ? json_encode($requireData['cat_arr_id']) : '';
-        $loginIp = $this->request->getHeader('x-forwarded-for')[0] ?? $this->request->getHeader('x-real-ip')[0] ?? $this->request->getServerParams()['remote_addr'] ?? '0.0.0.0';
-        $requireData['ip'] = $loginIp;
-        $requireData['admin_user_id'] = Context::get("UserId");
-        $requireData['level'] = isset($requireData['level']) && $requireData['level'] ? $requireData['level'] : 0;
-        $requireData['hits'] = isset($requireData['hits']) && $requireData['hits'] ? $requireData['hits'] : 0;
-        $requireData['is_original'] = isset($requireData['is_original']) && $requireData['is_original'] ? $requireData['is_original'] : 0;
-        $requireData['status'] = isset($requireData['status']) && $requireData['status'] ? $requireData['status'] : 0;
-        //        var_dump("入参:",$requireData);
-        $result = $this->newsServiceClient->addArticle($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 更新资讯
-     * @return array
-     */
-    public function updateArticle()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required', 'title' => 'required', 'cat_arr_id' => 'required', 'author' => 'required'], ['title.required' => '标题不能为空', 'cat_arr_id.required' => '导航池ID不能为空', 'author.required' => '作者不能为空', 'id.required' => 'ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['catid'] = isset($requireData['cat_arr_id']) ? end($requireData['cat_arr_id']) : '';
-        $requireData['cat_arr_id'] = isset($requireData['cat_arr_id']) ? json_encode($requireData['cat_arr_id']) : '';
-        $result = $this->newsServiceClient->updateArticle($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 更新资讯状态
-     * @return array
-     */
-    public function upArticleStatus()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required', 'status' => 'required'], ['id.required' => 'id不能为空', 'status.required' => '状态不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->newsServiceClient->upArticleStatus($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 删除分类
-     * @return array
-     */
-    public function delArticle()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->newsServiceClient->delArticle($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取资讯信息
-     * @return array
-     */
-    public function getArticleInfo()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->newsServiceClient->getArticleInfo($requireData);
-        $result['data']['cat_arr_id'] = $result['data']['cat_arr_id'] ? json_decode($result['data']['cat_arr_id']) : [];
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-}

+ 0 - 417
runtime/container/proxy/App_Controller_PublicController.proxy.php

@@ -1,417 +0,0 @@
-<?php
-
-declare (strict_types=1);
-namespace App\Controller;
-
-use App\JsonRpc\PublicRpcServiceInterface;
-use App\Tools\CommonService;
-use App\Tools\PublicData;
-use App\Tools\Result;
-use function Hyperf\Support\env;
-use Hyperf\Context\Context;
-use Hyperf\Di\Annotation\Inject;
-use Hyperf\HttpServer\Contract\RequestInterface;
-use Hyperf\HttpServer\Contract\ResponseInterface;
-use Hyperf\Validation\Contract\ValidatorFactoryInterface;
-use ZipArchive;
-/**
- * Class PublicController
- * @package App\Controller
- */
-//#[AutoController]
-class PublicController extends AbstractController
-{
-    use \Hyperf\Di\Aop\ProxyTrait;
-    use \Hyperf\Di\Aop\PropertyHandlerTrait;
-    function __construct()
-    {
-        if (method_exists(parent::class, '__construct')) {
-            parent::__construct(...func_get_args());
-        }
-        $this->__handlePropertyHandler(__CLASS__);
-    }
-    #[Inject]
-    protected ValidatorFactoryInterface $validationFactory;
-    /**
-     * @var PublicRpcServiceInterface
-     */
-    #[Inject]
-    private $publicServiceClient;
-    /**
-     * 地区
-     * @return array
-     */
-    public function getDistrictList()
-    {
-        $pid = $this->request->input("pid", 0);
-        $data = ['pid' => $pid];
-        $result = $this->publicServiceClient->getDistrictList($data);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取用户等级
-     * @return array
-     */
-    public function getUserLevelList()
-    {
-        $requireData = $this->request->all();
-        $result = $this->publicServiceClient->getUserLevelList($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 上传图片
-     * @return array
-     */
-    public function uploadFile()
-    {
-        $urlN = new CommonService();
-        $file = $this->request->file('file');
-        $fileName = $file->getClientFilename();
-        try {
-            if ($file == null) {
-                return Result::error("未找到上传文件");
-            }
-            $data = CommonService::uploadFile($file, ['png', 'jpg', 'png', 'jpeg', 'gif', 'xls', 'xlsx', 'pdf', 'xls', 'xlsx', 'doc', 'docx', 'ppt', 'zip', 'pptx', 'mp4', 'flv'], 'image');
-            $data['imgUrl'] = $urlN->imgUrl($data['src']);
-            $data['oldFileName'] = $fileName;
-            return Result::success($data, '上传成功');
-        } catch (\Exception $e) {
-            return Result::error($e->getMessage());
-        }
-    }
-    /**
-     * 添加用户等级
-     * @return array
-     */
-    public function addUserLevel()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['name' => 'required'], ['name.required' => '等级名不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->publicServiceClient->addUserLevel($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 删除用户等级
-     * @return array
-     */
-    public function delUserLevel()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->publicServiceClient->delUserLevel($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 更新用户等级
-     * @return array
-     */
-    public function updateUserLevel()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['name' => 'required', 'id' => 'required'], ['id.required' => 'ID不能为空', 'name.required' => '名称不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->publicServiceClient->updateUserLevel($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 城市列表
-     * @return array
-     */
-    public function getCityList()
-    {
-        $requireData = $this->request->all();
-        var_dump($requireData);
-        $result = $this->publicServiceClient->getDistrictList($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 投诉举报
-     * @return void
-     */
-    public function addComplaint()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['title' => 'required', 'nature' => 'required', 'nature_level' => 'required', 'type' => 'required', 'name' => 'required', 'mobile' => 'required', 'describe' => 'required', 'type_level' => 'required'], ['title.required' => '标题不能为空', 'nature.required' => '性质不能为空', 'nature_level.required' => '进度不能为空', 'type.required' => '类型不能为空', 'name.required' => '姓名不能为空', 'mobile.required' => '手机号码不能为空', 'describe.required' => '详细说明不能为空', 'type_level.required' => '类型进度不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData = $this->request->all();
-        $requireData['user_id'] = Context::get("UserId");
-        if ($requireData['id']) {
-            $result = $this->publicServiceClient->userUpLetterOfComplaint($requireData);
-        } else {
-            $result = $this->publicServiceClient->addLetterOfComplaint($requireData);
-        }
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 更新投诉举报信息
-     * @return array
-     */
-    public function upComplaint()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        var_dump($requireData);
-        if (isset($requireData['is_admin']) && !empty($requireData['is_admin'])) {
-            $requireData['admin_id'] = Context::get("UserId");
-        }
-        $result = $this->publicServiceClient->upLetterOfComplaint($requireData);
-        return $result ? Result::success([]) : Result::error($result['message']);
-    }
-    /**
-     * 获取投诉列表
-     * @return array
-     */
-    public function getComplaint()
-    {
-        $requireData = $this->request->all();
-        $requireData['user_id'] = Context::get("UserId");
-        var_dump("用户id:", Context::get("UserId"));
-        if (isset($requireData['is_admin']) && !empty($requireData['is_admin'])) {
-            unset($requireData['user_id']);
-        }
-        $result = $this->publicServiceClient->getLetterOfComplaint($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取投诉举报信息
-     * @return array
-     */
-    public function getLetterOfComplaintInfo()
-    {
-        $requireData = $this->request->all();
-        $requireData['user_id'] = Context::get("UserId");
-        if (isset($requireData['is_admin']) && !empty($requireData['is_admin'])) {
-            unset($requireData['user_id']);
-        }
-        $result = $this->publicServiceClient->getLetterOfComplaintInfo($requireData);
-        if ($result) {
-            $result['data']['judgment'] = $result['data']['judgment'] ? json_decode($result['data']['judgment']) : '';
-            $result['data']['audio_and_video'] = $result['data']['audio_and_video'] ? json_decode($result['data']['audio_and_video']) : '';
-            $result['data']['contract'] = $result['data']['contract'] ? json_decode($result['data']['contract']) : '';
-            $result['data']['qualifications'] = $result['data']['qualifications'] ? json_decode($result['data']['qualifications']) : '';
-        }
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 删除投诉举报信息
-     * @return array
-     */
-    public function delLetterOfComplaint()
-    {
-        $requireData = $this->request->all();
-        $requireData['user_id'] = Context::get("UserId");
-        if (isset($requireData['is_admin']) && !empty($requireData['is_admin'])) {
-            unset($requireData['user_id']);
-        }
-        $result = $this->publicServiceClient->delLetterOfComplaint($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取投诉分类信息
-     * @return array
-     */
-    public function getLetterType()
-    {
-        $requireData = $this->request->all();
-        $result = $this->publicServiceClient->getLetterType($requireData);
-        $rep = PublicData::buildMenuTree($result['data']);
-        return $rep ? Result::success($rep) : Result::error("查询失败");
-    }
-    public function downloadFile(RequestInterface $request, ResponseInterface $response)
-    {
-        //验证是否有传参数
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['files' => 'required'], ['files.required' => '文件不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['fileName'] = $requireData['fileName'] ?? '政讯通';
-        //打包文件
-        $zip = new ZipArchive();
-        $fileType = 'zip';
-        $date = date('Ymd');
-        $filePath = $fileType . DIRECTORY_SEPARATOR . $date;
-        $allDir = 'public' . DIRECTORY_SEPARATOR . $filePath;
-        if (!is_dir($allDir)) {
-            if (!mkdir($allDir, 0755, true)) {
-                return Result::error('创建文件夹失败');
-            }
-        }
-        $fileName = $requireData['fileName'] . time() . mt_rand(1, 1000000) . '.zip';
-        $zipFileName = $allDir . DIRECTORY_SEPARATOR . $requireData['fileName'] . time() . mt_rand(1, 1000000) . '.zip';
-        //        $zipFileName = 'public/zip/files.zip';
-        if ($zip->open($zipFileName, ZipArchive::CREATE) === true) {
-            // 将要下载的文件逐个添加到zip文件中
-            //            $string = trim($requireData['files'], "[]'"); // 去掉最外层的方括号和单引号(注意:这里假设了单引号,如果是双引号则替换为 ")
-            //            $string = str_replace("'", '', $string); // 去掉所有剩余的单引号(如果原字符串中使用的是双引号,则替换为双引号)
-            //            $filePaths = explode(',', $string);
-            foreach ($requireData['files'] as $filePathu) {
-                $attachmentItem = 'public/' . $filePathu;
-                $zip->addFile($attachmentItem, pathinfo($attachmentItem, PATHINFO_BASENAME));
-            }
-            // 关闭zip文件
-            $zip->close();
-            // 将zip文件提供给用户进行下载
-            //            readfile($zipFileName);
-            $fileUrlName = explode("public", $zipFileName);
-            return Result::success(['fileUrl' => env('HOST') . $fileUrlName[1]]);
-        } else {
-            return Result::error('无法创建zip文件');
-        }
-    }
-    /**
-     * 检测是否被处理
-     * @return array
-     */
-    public function checkMeasure()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->publicServiceClient->checkMeasure($requireData);
-        return $result['code'] == 200 ? Result::success() : Result::error("已经处理了");
-    }
-    /**
-     * 获取职能部门
-     * @return void
-     */
-    public function getDepartment()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['pid' => 'required'], ['pid.required' => 'id不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->publicServiceClient->getDepartment($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error("查询失败");
-    }
-    /**
-     * 获取职能部门
-     * @return array
-     */
-    public function getZhinengbumenList()
-    {
-        // 获取请求参数
-        $requireData = $this->request->all();
-        // 参数验证
-        $validator = $this->validationFactory->make($requireData, ['page' => 'integer|min:1', 'pagesize' => 'integer|min:1', 'search' => 'string|nullable'], ['page.integer' => 'page 必须是整数', 'page.min' => 'page 必须大于等于 1', 'pagesize.integer' => 'pagesize 必须是整数', 'pagesize.min' => 'pagesize 必须大于等于 1', 'search.string' => 'search 必须是字符串']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        // 添加用户 ID
-        $requireData['user_id'] = Context::get("UserId");
-        // 调用服务客户端方法获取分页数据
-        $result = $this->publicServiceClient->getZhinengbumenList($requireData);
-        // 处理结果
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error("查询失败");
-    }
-    /**
-     * 添加职能部门
-     * @return array
-     */
-    public function addZhinengbumen()
-    {
-        // 获取请求参数
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['name' => 'required|string|regex:/^[\\x{4e00}-\\x{9fa5}]+$/u', 'pid' => 'required|integer'], ['name.required' => 'name 不能为空', 'name.string' => 'name 必须是字符串', 'name.regex' => 'name 必须是汉字', 'pid.required' => 'pid 不能为空', 'pid.integer' => 'pid 必须是整数']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        // $requireData['user_id'] = Context::get("UserId");
-        $result = $this->publicServiceClient->addZhinengbumen($requireData);
-        return $result['code'] == 200 ? Result::success() : Result::error("添加失败");
-    }
-    /**
-     * 删除职能部门
-     * @return array
-     */
-    public function delZhinengbumen()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required|integer'], ['id.required' => 'id 不能为空', 'id.integer' => 'id 必须是整数']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->publicServiceClient->delZhinengbumen($requireData);
-        return $result['code'] == 200 ? Result::success() : Result::error("删除失败");
-    }
-    /**
-     * 职能部门详情
-     * @return array
-     */
-    public function getZhinengbumen()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required|integer'], ['id.required' => 'id 不能为空', 'id.integer' => 'id 必须是整数']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->publicServiceClient->getZhinengbumen($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error("查询失败");
-    }
-    /**
-     * 获取职能部门某pid的所有子级,默认0级
-     * @return array
-     */
-    public function getPidZhinengbumen()
-    {
-        // 获取请求参数
-        $requireData = $this->request->all();
-        // 参数验证
-        $validator = $this->validationFactory->make($requireData, ['pid' => 'integer|min:0'], ['pid.integer' => 'pid 必须是整数', 'pid.min' => 'pid 必须大于等于 0']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->publicServiceClient->getPidZhinengbumen($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error("查询失败");
-    }
-    /**
-     * 修改职能部门名称
-     * @return array
-     */
-    public function modZhinengbumen()
-    {
-        $requireData = $this->request->all();
-        // 参数验证
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required|integer', 'name' => 'required|string|regex:/^[\\x{4e00}-\\x{9fa5}]+$/u'], ['id.required' => 'id 不能为空', 'id.integer' => 'id 必须是整数', 'name.required' => 'name 不能为空', 'name.string' => 'name 必须是字符串', 'name.regex' => 'name 必须是汉字']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->publicServiceClient->upZhinengbumen($requireData);
-        return $result['code'] == 200 ? Result::success() : Result::error("修改失败");
-    }
-}

+ 0 - 336
runtime/container/proxy/App_Controller_UserController.proxy.php

@@ -1,336 +0,0 @@
-<?php
-
-declare (strict_types=1);
-namespace App\Controller;
-
-use App\JsonRpc\UserServiceInterface;
-use Hyperf\Di\Annotation\Inject;
-use Hyperf\HttpServer\Annotation\AutoController;
-use App\Tools\Result;
-use App\Constants\ErrorCode;
-use Hyperf\Validation\Contract\ValidatorFactoryInterface;
-use Hyperf\Context\Context;
-/**
- * Class UserController
- * @package App\Controller
- */
-//#[AutoController]
-class UserController extends AbstractController
-{
-    use \Hyperf\Di\Aop\ProxyTrait;
-    use \Hyperf\Di\Aop\PropertyHandlerTrait;
-    function __construct()
-    {
-        if (method_exists(parent::class, '__construct')) {
-            parent::__construct(...func_get_args());
-        }
-        $this->__handlePropertyHandler(__CLASS__);
-    }
-    #[Inject]
-    protected ValidatorFactoryInterface $validationFactory;
-    /**
-     * @var UserServiceInterface
-     */
-    #[Inject]
-    private $userServiceClient;
-    public function createUser()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, [
-            'user_name' => 'required',
-            //登陆账号
-            'type_id' => 'required',
-            //用户类型
-            'password' => 'required|min:6',
-            //密码
-            'confirm_password' => 'required',
-            'real_name' => 'required',
-            'mobile' => 'required',
-        ], [
-            'user_name.required' => '用户名不能为空',
-            'password.required' => '密码不能为空',
-            //                'email.email' => '请填写一个有效的邮箱',
-            'mobile.required' => '手机号码必填',
-            //                'mobile.telephone_number' => '请填写一个有效的手机号',
-            'confirm_password.required' => "确认密码不能为空",
-            'type_id.required' => "用户类型不能为空",
-            'real_name.required' => "姓名不能为空",
-            'password.min' => "密码长度不能低于6位数",
-        ]);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        if ($requireData['password'] != $requireData['confirm_password']) {
-            return Result::error("两次密码不一致");
-        }
-        $salt = rand(1, 999999);
-        $requireData['salt'] = $salt;
-        $loginIp = $this->request->getHeader('x-forwarded-for')[0] ?? $this->request->getHeader('x-real-ip')[0] ?? $this->request->getServerParams()['remote_addr'] ?? '0.0.0.0';
-        $requireData['last_login_ip'] = $loginIp;
-        $requireData['admin_id'] = Context::get("UserId");
-        $requireData['administrative_unit_id'] = isset($requireData['administrative_unit_arr_id']) && count($requireData['administrative_unit_arr_id']) > 0 ? end($requireData['administrative_unit_arr_id']) : 0;
-        $requireData['administrative_unit_arr_id'] = isset($requireData['administrative_unit_arr_id']) && count($requireData['administrative_unit_arr_id']) > 0 ? json_encode($requireData['administrative_unit_arr_id']) : '';
-        $requireData['address_id'] = isset($requireData['address_arr_id']) && count($requireData['address_arr_id']) > 0 ? end($requireData['address_arr_id']) : 0;
-        $requireData['address_arr_id'] = isset($requireData['address_arr_id']) && count($requireData['address_arr_id']) > 0 ? json_encode($requireData['address_arr_id']) : '';
-        $requireData['native_place_id'] = isset($requireData['native_place_arr_id']) && count($requireData['native_place_arr_id']) > 0 ? end($requireData['native_place_arr_id']) : 0;
-        $requireData['native_place_arr_id'] = isset($requireData['native_place_arr_id']) && count($requireData['native_place_arr_id']) > 0 ? json_encode($requireData['native_place_arr_id']) : '';
-        $requireData['city_id'] = isset($requireData['city_arr_id']) && count($requireData['city_arr_id']) > 0 ? end($requireData['city_arr_id']) : 0;
-        $requireData['city_arr_id'] = isset($requireData['city_arr_id']) && count($requireData['city_arr_id']) > 0 ? json_encode($requireData['city_arr_id']) : '';
-        $requireData['other'] = isset($requireData['other']) ? json_encode($requireData['other']) : '';
-        $result = $this->userServiceClient->createUser($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 更新用户
-     * @return array
-     */
-    public function updateUser()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, [
-            'user_name' => 'required',
-            //登陆账号
-            'type_id' => 'required',
-            //用户类型
-            'real_name' => 'required',
-            'mobile' => 'required',
-            'id' => 'required',
-        ], ['user_name.required' => '用户名不能为空', 'mobile.required' => '手机号码必填', 'type_id.required' => "用户类型不能为空", 'real_name.required' => "姓名不能为空", 'id.required' => "id不能为空"]);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $loginIp = $this->request->getHeader('x-forwarded-for')[0] ?? $this->request->getHeader('x-real-ip')[0] ?? $this->request->getServerParams()['remote_addr'] ?? '0.0.0.0';
-        $requireData['last_login_ip'] = $loginIp;
-        $requireData['administrative_unit_id'] = isset($requireData['administrative_unit_arr_id']) && count($requireData['administrative_unit_arr_id']) > 0 ? end($requireData['administrative_unit_arr_id']) : 0;
-        $requireData['administrative_unit_arr_id'] = isset($requireData['administrative_unit_arr_id']) && count($requireData['administrative_unit_arr_id']) > 0 ? json_encode($requireData['administrative_unit_arr_id']) : '';
-        $requireData['address_id'] = isset($requireData['address_arr_id']) && count($requireData['address_arr_id']) > 0 ? end($requireData['address_arr_id']) : 0;
-        $requireData['address_arr_id'] = isset($requireData['address_arr_id']) && count($requireData['address_arr_id']) > 0 ? json_encode($requireData['address_arr_id']) : '';
-        $requireData['native_place_id'] = isset($requireData['native_place_arr_id']) && count($requireData['native_place_arr_id']) > 0 ? end($requireData['native_place_arr_id']) : 0;
-        $requireData['native_place_arr_id'] = isset($requireData['native_place_arr_id']) && count($requireData['native_place_arr_id']) > 0 ? json_encode($requireData['native_place_arr_id']) : '';
-        $requireData['city_id'] = isset($requireData['city_arr_id']) && count($requireData['city_arr_id']) > 0 ? end($requireData['city_arr_id']) : 0;
-        $requireData['city_arr_id'] = isset($requireData['city_arr_id']) && count($requireData['city_arr_id']) > 0 ? json_encode($requireData['city_arr_id']) : '';
-        $requireData['other'] = isset($requireData['other']) ? json_encode($requireData['other']) : '';
-        $requireData['admin_id'] = Context::get("UserId");
-        $result = $this->userServiceClient->updateUser($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取用户信息内容
-     * @return void
-     */
-    public function getUser()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => "id不能为空"]);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->userServiceClient->getUserInfo((int) $requireData['id']);
-        if ($result['code'] != ErrorCode::SUCCESS) {
-            return Result::error($result['message'], 0, []);
-        }
-        return Result::success($result['data']);
-    }
-    /**
-     * 获取用户信息
-     * @return array|void
-     */
-    public function getUserInfo()
-    {
-        $result = $this->userServiceClient->getUserInfo((int) Context::get("UserId"));
-        if ($result['code'] != ErrorCode::SUCCESS) {
-            return Result::error($result['message'], 0, []);
-        }
-        return Result::success($result['data']);
-    }
-    /**
-     * 获取用户列表
-     * @return array
-     */
-    public function getUserList()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['page' => 'required', 'pageSize' => 'required'], ['page.required' => '页码不能为空', 'pageSize.required' => '每页显示条数不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->userServiceClient->getUserList($requireData);
-        if ($result['code'] != ErrorCode::SUCCESS) {
-            return Result::error($result['message'], 0, []);
-        }
-        return Result::success($result['data']);
-    }
-    /**
-     * 删除用户
-     * @return array
-     */
-    //    public function delUser()
-    //    {
-    //        $requireData = $this->request->all();
-    //        $validator = $this->validationFactory->make(
-    //            $requireData,
-    //            [
-    //                'id' => 'required'
-    //            ],
-    //            [
-    //                'id.required' => '用户ID不能为空'
-    //            ]
-    //        );
-    //        if ($validator->fails()){
-    //            $errorMessage = $validator->errors()->first();
-    //            return Result::error($errorMessage);
-    //        }
-    //
-    //        $result =  $this->userServiceClient->delUser($requireData['id']);
-    //        if ($result['code'] != ErrorCode::SUCCESS) {
-    //            return Result::error($result['message'],0,[]);
-    //        }
-    //        return Result::success($result['data']);
-    //    }
-    /**
-     * 查看角色信息
-     * @return array
-     */
-    public function roleInfo()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => '角色ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->userServiceClient->roleInfo($requireData);
-        if ($result['code'] != ErrorCode::SUCCESS) {
-            return Result::error($result['message'], 0, []);
-        }
-        $result['data']['rule'] = isset($result['data']['rule']) ? json_decode($result['data']['rule']) : [];
-        return Result::success($result['data']);
-    }
-    /**
-     * 验证用户是否存在
-     * @return void
-     */
-    public function verifyUserInfo()
-    {
-        $requireData = $this->request->all();
-        $result = $this->userServiceClient->verifyUserInfo($requireData);
-        if ($result['code'] != ErrorCode::SUCCESS) {
-            return Result::error($result['message'], 0, []);
-        }
-        return Result::success($result['data']);
-    }
-    /**
-     * 角色列表
-     * @return array|void
-     */
-    public function roleList()
-    {
-        $requireData = $this->request->all();
-        $result = $this->userServiceClient->roleList($requireData);
-        if ($result['data']) {
-            foreach ($result['data']['rows'] as $k => $v) {
-                $result['data']['rows'][$k]['rule'] = $v['rule'] ? json_decode($v['rule']) : [];
-            }
-        }
-        if ($result['code'] != ErrorCode::SUCCESS) {
-            return Result::error($result['message'], 0, []);
-        }
-        return Result::success($result['data']);
-    }
-    /**
-     * 添加角色
-     * @return array
-     */
-    public function addRole()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['role_name' => 'required', 'rule' => 'required', 'remark' => 'required'], ['role_name.required' => '角色名称不能为空', 'rule.required' => '权限不能为空', 'remark.required' => '职能描述不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $requireData['rule'] = isset($requireData['rule']) && $requireData['rule'] ? json_encode($requireData['rule']) : [];
-        $result = $this->userServiceClient->addRole($requireData);
-        if ($result['code'] != ErrorCode::SUCCESS) {
-            return Result::error($result['message'], 0, []);
-        }
-        return Result::success($result['data']);
-    }
-    /**
-     * 删除角色
-     * @return array
-     */
-    public function delRole()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => '角色ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->userServiceClient->delRole($requireData);
-        if ($result['code'] != ErrorCode::SUCCESS) {
-            return Result::error($result['message'], 0, []);
-        }
-        return Result::success($result['data']);
-    }
-    /**
-     * 更新角色
-     * @return array
-     */
-    public function updateRole()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['role_name' => 'required', 'rule' => 'required', 'remark' => 'required', 'id' => 'required'], ['id.required' => '角色ID不能为空', 'role_name.required' => '角色名称不能为空', 'rule.required' => '权限不能为空', 'remark.required' => '职能描述不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $requireData['rule'] = isset($requireData['rule']) && $requireData['rule'] ? json_encode($requireData['rule']) : [];
-        $result = $this->userServiceClient->updateRole($requireData);
-        if ($result['code'] != ErrorCode::SUCCESS) {
-            return Result::error($result['message'], 0, []);
-        }
-        return Result::success($result['data']);
-    }
-    /**
-     * 修改密码
-     * @return array
-     */
-    public function changePassword()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['password' => 'required', 'new_password' => 'required|min:6', 'new_password1' => 'required|same:new_password'], ['password.required' => '密码不能为空', 'new_password1.required' => '确认密码不能为空', 'new_password1.same' => '新密码和确认密码不一致', 'new_password.min' => "密码长度不能低于6位数"]);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['user_id'] = Context::get("UserId");
-        $result = $this->userServiceClient->changePassword($requireData);
-        if ($result['code'] != ErrorCode::SUCCESS) {
-            return Result::error($result['message'], 0, []);
-        }
-        return Result::success($result['data']);
-    }
-    public function upUserStatus()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['status' => 'required', 'id' => 'required'], ['id.required' => 'ID不能为空', 'status.required' => '状态不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->userServiceClient->upUserStatus($requireData);
-        if ($result['code'] != ErrorCode::SUCCESS) {
-            return Result::error($result['message'], 0, []);
-        }
-        return Result::success($result['data']);
-    }
-}

+ 0 - 701
runtime/container/proxy/App_Controller_WebsiteController.proxy.php

@@ -1,701 +0,0 @@
-<?php
-
-declare (strict_types=1);
-namespace App\Controller;
-
-use App\JsonRpc\WebsiteServiceInterface;
-use App\Tools\PublicData;
-use Hyperf\Di\Annotation\Inject;
-use Hyperf\HttpServer\Annotation\AutoController;
-use App\Tools\Result;
-use Hyperf\Validation\Contract\ValidatorFactoryInterface;
-use Hyperf\Context\Context;
-use Phper666\JWTAuth\JWT;
-use DateTime;
-/**
- * Class WebsiteController
- * @package App\Controller
- */
-//#[AutoController]
-class WebsiteController extends AbstractController
-{
-    use \Hyperf\Di\Aop\ProxyTrait;
-    use \Hyperf\Di\Aop\PropertyHandlerTrait;
-    #[Inject]
-    protected ValidatorFactoryInterface $validationFactory;
-    /**
-     * @var WebsiteServiceInterface
-     */
-    #[Inject]
-    private $websiteServiceClient;
-    protected JWT $JWT;
-    public function __construct(Jwt $JWT)
-    {
-        $this->__handlePropertyHandler(__CLASS__);
-        $this->JWT = $JWT;
-    }
-    /**
-     * 创建站点
-     * @return array
-     */
-    public function addWebsite()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['website_column_arr_id' => 'required', 'website_name' => 'required', 'website_url' => 'required'], ['website_column_id.required' => '上级网系id不能为空', 'website_name.required' => '站点名称不能为空', 'website_url.required' => '网站地址不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['website_url'] = json_encode($requireData['website_url']);
-        $requireData['city_id'] = isset($requireData['city_arr_id']) ? end($requireData['city_arr_id']) : '';
-        $requireData['city_arr_id'] = isset($requireData['city_arr_id']) ? json_encode($requireData['city_arr_id']) : '';
-        $requireData['website_column_id'] = isset($requireData['website_column_arr_id']) ? end($requireData['website_column_arr_id']) : '';
-        $requireData['website_column_arr_id'] = isset($requireData['website_column_arr_id']) ? json_encode($requireData['website_column_arr_id']) : '';
-        var_dump($requireData);
-        $result = $this->websiteServiceClient->createWebsite($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取站点列表
-     * @return void
-     */
-    public function getWebsiteList()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['page' => 'required', 'pageSize' => 'required'], ['page.required' => '页码不能为空', 'pageSize.required' => '每页显示条数不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->websiteServiceClient->getWebsitetList($requireData);
-        if ($result['data']) {
-            foreach ($result['data']['rows'] as $k => $v) {
-                $result['data']['rows'][$k]['city_arr_id'] = $v['city_arr_id'] ? json_decode($v['city_arr_id']) : '';
-                $result['data']['rows'][$k]['website_url'] = $v['website_url'] ? json_decode($v['website_url']) : [];
-            }
-        }
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 更新站点
-     * @return array
-     */
-    public function updateWebsite()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required', 'website_column_arr_id' => 'required', 'website_name' => 'required', 'website_url' => 'required'], ['id.required' => 'id不能为空', 'website_column_id.required' => '网系id不能为空', 'website_name.required' => '站点名称不能为空', 'website_url.required' => '网站地址不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['website_url'] = json_encode($requireData['website_url']);
-        $requireData['city_id'] = isset($requireData['city_arr_id']) ? end($requireData['city_arr_id']) : '';
-        $requireData['city_arr_id'] = isset($requireData['city_arr_id']) ? json_encode($requireData['city_arr_id']) : '';
-        $requireData['website_column_id'] = isset($requireData['website_column_arr_id']) ? end($requireData['website_column_arr_id']) : '';
-        $requireData['website_column_arr_id'] = isset($requireData['website_column_arr_id']) ? json_encode($requireData['website_column_arr_id']) : '';
-        $result = $this->websiteServiceClient->updateWebsite((int) $requireData['id'], $requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 删除站点
-     * @return array
-     */
-    public function delWebsite()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $id = (int) $requireData['id'];
-        $result = $this->websiteServiceClient->delWebsite($id);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取站点信息
-     * @return array
-     */
-    public function getWebsiteInfo()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $id = (int) $requireData['id'];
-        $result = $this->websiteServiceClient->getWebsiteInfo($id);
-        if ($result['code'] == 200) {
-            $result['data']['website_url'] = isset($result['data']['website_url']) && $result['data']['website_url'] ? json_decode($result['data']['website_url']) : '';
-            $result['data']['website_column_arr_id'] = isset($result['data']['website_column_arr_id']) && $result['data']['website_column_arr_id'] ? json_decode($result['data']['website_column_arr_id']) : '';
-            $result['data']['city_arr_id'] = isset($result['data']['city_arr_id']) && $result['data']['city_arr_id'] ? json_decode($result['data']['city_arr_id']) : '';
-            return Result::success($result['data']);
-        } else {
-            return Result::error($result['message']);
-        }
-    }
-    /**
-     * 添加的时候 选择上级网系
-     * @return array
-     */
-    public function getWebsiteColumn()
-    {
-        $result = $this->websiteServiceClient->getWebsiteColumn([]);
-        $rep = PublicData::buildMenuTree($result['data']);
-        return $rep ? Result::success($rep) : Result::error("查询失败");
-    }
-    /**
-     * 获取网系列表
-     * @return void
-     */
-    public function getWebsiteColumnList()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['page' => 'required', 'pageSize' => 'required'], ['page.required' => '页码不能为空', 'pageSize.required' => '每页显示条数不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->websiteServiceClient->getWebsiteColumnList($requireData);
-        if ($result['data']) {
-            foreach ($result['data']['rows'] as $k => $v) {
-                $result['data']['rows'][$k]['column_arr_id'] = $v['column_arr_id'] ? json_decode($v['column_arr_id']) : [0];
-            }
-        }
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 创建网系
-     * @return array
-     */
-    public function addWebsiteColumn()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['column_name' => 'required'], ['column_name.required' => '网系名称不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['pid'] = isset($requireData['column_arr_id']) ? end($requireData['column_arr_id']) : '';
-        $requireData['column_arr_id'] = isset($requireData['column_arr_id']) ? json_encode($requireData['column_arr_id']) : '';
-        $result = $this->websiteServiceClient->createWebsiteColumn($requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 更新网系
-     * @return array
-     */
-    public function updateWebsiteColumn()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['column_name' => 'required'], ['column_name.required' => '栏目名称不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['pid'] = isset($requireData['column_arr_id']) ? end($requireData['column_arr_id']) : '';
-        $requireData['column_arr_id'] = isset($requireData['column_arr_id']) ? json_encode($requireData['column_arr_id']) : '';
-        $result = $this->websiteServiceClient->updateWebsiteColumn($requireData['id'], $requireData);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 删除网系
-     * @return array
-     */
-    public function delWebsiteColumn()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => '网系ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->websiteServiceClient->delWebsiteColumn(intval($requireData['id']));
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取站点角色列表
-     * @return void
-     */
-    public function getWebsiteRoleList()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => '站点ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $keyword = $this->request->input("keyword", '');
-        $page = (int) $this->request->input("page", 1);
-        $pageSize = (int) $this->request->input("pageSize", 10);
-        $websiteId = (int) $this->request->input("id", '');
-        $result = $this->websiteServiceClient->getWebsiteRoleList($keyword, $page, $pageSize, $websiteId);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 创建站点角色
-     * @return array
-     */
-    public function createWebsiteRole()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['type' => 'required', 'role_id' => 'required', 'website_id' => 'required'], ['type.required' => '类型不能为空', 'type_id.required' => 'ID不能为空', 'website_id.required' => '站点ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['admin_user_id'] = Context::get("UserId");
-        $result = $this->websiteServiceClient->createWebsiteRole($requireData);
-        return $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 删除站点角色
-     * @return array
-     */
-    public function delWebsiteRole()
-    {
-        $id = (int) $this->request->input("id", '');
-        $result = $this->websiteServiceClient->delWebsiteRole($id);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取站点角色用户列表
-     * @return void
-     */
-    public function getWebsiteRoleUserList()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['website_id' => 'required', 'role_id' => 'required'], ['website_id.required' => '站点ID不能为空', 'role_id.required' => '角色ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $keyword = $this->request->input("keyword", '');
-        $page = (int) $this->request->input("page", 1);
-        $pageSize = (int) $this->request->input("pageSize", 10);
-        $roleId = (int) $this->request->input("role_id", '');
-        $websiteId = (int) $this->request->input("website_id", '');
-        $result = $this->websiteServiceClient->getWebsiteRoleUserList($keyword, $page, $pageSize, $websiteId, $roleId);
-        return $result ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 创建站点角色用户
-     * @return array
-     */
-    public function createWebsiteRoleUser()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['type' => 'required', 'role_id' => 'required', 'website_id' => 'required', 'user_id' => 'required'], ['type.required' => '类型不能为空', 'website_id.required' => '站点ID不能为空', 'role_id.required' => '角色ID不能为空', 'user_id.required' => '用户ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $requireData['admin_user_id'] = Context::get("UserId");
-        $requireData['role_id'] = (int) $requireData['role_id'];
-        $requireData['type'] = (int) $requireData['type'];
-        $requireData['website_id'] = (int) $requireData['website_id'];
-        $requireData['user_id'] = (int) $requireData['user_id'];
-        $result = $this->websiteServiceClient->createWebsiteRoleUser($requireData);
-        return $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 删除站点角色用户
-     * @return array
-     */
-    public function delWebsiteRoleUser()
-    {
-        $id = (int) $this->request->input("id", '');
-        $result = $this->websiteServiceClient->delWebsiteRoleUser($id);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 网站栏目映射
-     * @return void
-     */
-    public function addWebsiteCategory()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['website_id' => 'required', 'category_arr_id' => 'required'], ['website_id.required' => '网站ID不能为空', 'category_arr_id.required' => '网站导航ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->websiteServiceClient->addWebsiteCategory($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 删除网站导航
-     * @return void
-     */
-    public function delWebsiteCategory()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['website_id' => 'required', 'category_id' => 'required'], ['website_id.required' => '网站ID不能为空', 'category_id.required' => '网站导航ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->websiteServiceClient->delWebsiteCategory($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取网站导航
-     * @return void
-     */
-    public function getAdminWebsiteCategory()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['website_id' => 'required'], ['website_id.required' => '网站ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->websiteServiceClient->getAdminWebsiteCategory($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 更新网站导航
-     * @return void
-     */
-    public function upWebsiteCategory()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['website_id' => 'required'], ['website_id.required' => '网站ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->websiteServiceClient->upWebsiteCategory($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取网站与导航
-     * @return array
-     */
-    public function getWebsiteCategoryList()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['page' => 'required', 'pageSize' => 'required'], ['page.required' => '当前页码数不能为空', 'pageSize.required' => '每页显示条数不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->websiteServiceClient->getWebsiteCategoryList($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 删除网站下面的所有导航
-     * @return void
-     */
-    public function delWebsiteAllCategory()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['website_id' => 'required'], ['website_id.required' => '网站ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->websiteServiceClient->delWebsiteAllCategory($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 查看指定的导航
-     * @return array
-     */
-    public function getWebsiteCategoryOnes()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['website_id' => 'required', 'category_id' => 'required'], ['website_id.required' => '网站ID不能为空', 'category_id.required' => '网站导航ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->websiteServiceClient->getWebsiteCategoryOnes($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 更新指定的某一个导航
-     * @return array
-     */
-    public function upWebsiteCategoryones()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['website_id' => 'required', 'category_id' => 'required', 'alias' => 'required', 'seo_title' => 'required', 'seo_keywords' => 'required', 'seo_description' => 'required'], ['website_id.required' => '网站ID不能为空', 'category_id.required' => '导航ID不能为空', 'alias.required' => '名称不能为空', 'seo_title.required' => 'seo标题不能为空', 'seo_keywords.required' => '关键词不能为空', 'seo_description.required' => '网站描述不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->websiteServiceClient->upWebsiteCategoryones($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 站下的所有导航包含子导航
-     * @return array
-     */
-    public function getWebsiteAllCategory()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['website_id' => 'required'], ['website_id.required' => '网站ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->websiteServiceClient->getWebsiteAllCategory($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 管理后台首页统计
-     * @return array
-     */
-    public function getAdminIndex()
-    {
-        //        $token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwaHBlcjY2Ni9qd3QiLCJ1aWQiOjMyLCJ1c2VyX25hbWUiOiIxIiwibW9iaWxlIjoiMTU4MDEyNDU3NTUiLCJlbWFpbCI6IjVAcXEuY29tIiwicm9uZ190b2tlbiI6IiIsImxldmVsX2lkIjoxLCJ0eXBlX2lkIjoxLCJqd3Rfc2NlbmUiOiJkZWZhdWx0IiwianRpIjoiZGVmYXVsdF82NzFiNDc3MDcwODI2OC4wOTk4ODA3NyIsImlhdCI6MTcyOTg0MTAwOCwibmJmIjoxNzI5ODQxMDA4LCJleHAiOjE3Mjk4NDQwMDh9.4X-Q-vwPxddX75q6CKtOXqWgtnFAikRwX308T0iDxYE";
-        //        $time =  $this->JWT->getTokenDynamicCacheTime($token);
-        //        var_dump("有效时间:",$time);
-        $typeId = intval(Context::get("TypeId"));
-        var_dump("用户类型:", $typeId);
-        switch ($typeId) {
-            case 4:
-                $dates = [];
-                $startDate = (new DateTime())->modify('-29 day');
-                // 从 29 天前开始(因为我们要 30 天,包括今天的前一天)
-                for ($i = 0; $i < 30; $i++) {
-                    $dates[] = $startDate->format('Y-m-d');
-                    $startDate->modify('+1 day');
-                    // 每天递增一天
-                }
-                $result = $this->websiteServiceClient->getAdminIndex(['type_id' => $typeId]);
-                $list = [];
-                if ($result['data']) {
-                    $list = PublicData::arrayColumnAsKey($result['data'], 'date');
-                    var_dump($list);
-                }
-                $newResult = [];
-                if ($dates) {
-                    foreach ($dates as $key => $val) {
-                        $newResult[$key]['date'] = $val;
-                        $newResult[$key]['total_count'] = $list[$val]['total_count'] ?? 0;
-                    }
-                }
-                //投诉举报列表
-                $res['letterOfComplaintList'] = $newResult;
-                return $result['code'] == 200 ? Result::success($res) : Result::error($result['message']);
-                break;
-            case 10000:
-                $result = $this->websiteServiceClient->getAdminIndex(['type_id' => $typeId]);
-                if ($result) {
-                    $dates = [];
-                    $startDate = (new DateTime())->modify('-29 day');
-                    // 从 29 天前开始(因为我们要 30 天,包括今天的前一天)
-                    for ($i = 0; $i < 30; $i++) {
-                        $dates[] = $startDate->format('Y-m-d');
-                        $startDate->modify('+1 day');
-                        // 每天递增一天
-                    }
-                    $list = [];
-                    if ($result['data']['monthArticle']) {
-                        $list = PublicData::arrayColumnAsKey($result['data']['monthArticle'], 'date');
-                    }
-                    $newResult = [];
-                    if ($dates) {
-                        foreach ($dates as $key => $val) {
-                            $newResult[$key]['date'] = $val;
-                            $newResult[$key]['total_count'] = $list[$val]['total_count'] ?? 0;
-                        }
-                    }
-                    //1:个人会员 2:政务会员 3:企业会员 4:调研员 10000:管理员
-                    $userType = ['1' => '个人会员', '2' => '政务会员', '3' => '企业会员', '4' => '调研员', '10000' => '管理员', '20000' => '游客'];
-                    if ($result['data']['userType']) {
-                        foreach ($result['data']['userType'] as $k => $v) {
-                            $result['data']['userType'][$k]['typeName'] = $userType[$v['type_id']];
-                        }
-                    }
-                    $result['data']['monthArticle'] = $newResult;
-                    return Result::success($result['data']);
-                } else {
-                    return Result::error($result['message']);
-                }
-                return Result::success($result);
-                break;
-        }
-    }
-    /**
-     * 获取模板皮肤分类
-     * @return void
-     */
-    public function getTemplateClass()
-    {
-        $requireData = $this->request->all();
-        $result = $this->websiteServiceClient->getTemplateClass($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 添加模板分类
-     * @return void
-     */
-    public function addTemplateClass()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['name' => 'required'], ['name.required' => '模板类型不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $data = ['name' => $requireData['name'], 'sort' => $requireData['sort'] ?? 0];
-        $result = $this->websiteServiceClient->addTemplateClass($data);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 更新模板分类
-     * @return array
-     */
-    public function upTemplateClass()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['name' => 'required', 'id' => 'required'], ['name.required' => '模板类型不能为空', 'name.id' => '模板类型ID不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $data = ['id' => $requireData['id'], 'name' => $requireData['name'], 'sort' => $requireData['sort'] ?? 0];
-        $result = $this->websiteServiceClient->upTemplateClass($data);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 删除模板分类
-     * @return array
-     */
-    public function delTemplateClass()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['name.required' => '类型id不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $data = ['id' => $requireData['id']];
-        $result = $this->websiteServiceClient->delTemplateClass($data);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 获取分类下的模板
-     * @return array
-     */
-    public function getTemplate()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, [
-            //                'template_class_id' => 'required',
-            'page' => 'required',
-            'pageSize' => 'required',
-        ], [
-            //                'template_class_id.required' => '类型template_class_id不能为空',
-            'page.required' => 'page不能为空',
-            'pageSize.required' => '每页显示条数不能为空',
-        ]);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $data = ['template_class_id' => $requireData['template_class_id'], 'page' => $requireData['page'], 'pageSize' => $requireData['pageSize']];
-        $result = $this->websiteServiceClient->getTemplate($data);
-        var_dump("模板列表:", $result['data']['rows']);
-        if ($result['data']['rows']) {
-            foreach ($result['data']['rows'] as $key => $val) {
-                $result['data']['rows'][$key]['template_img'] = json_decode($val['template_img'], true);
-            }
-        }
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 创建皮肤模板
-     * @return array
-     */
-    public function addTemplate()
-    {
-        $requireData = $this->request->all();
-        //        var_dump("FCK:",$requireData);
-        $validator = $this->validationFactory->make($requireData, ['template_name' => 'required', 'template_class_id' => 'required', 'template_img' => 'required'], ['template_name.required' => '模板名称不能为空', 'template_class_id.required' => '模板类型id不能为空', 'template_img.required' => '模板图片不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        //        var_dump($requireData);
-        $data = ['template_name' => $requireData['template_name'], 'template_class_id' => $requireData['template_class_id'], 'template_img' => $requireData['template_img']];
-        $result = $this->websiteServiceClient->addTemplate($data);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 更新模板
-     * @return array
-     */
-    public function upTemplate()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['template_name' => 'required', 'template_class_id' => 'required', 'template_img' => 'required', 'id' => 'required'], ['template_name.required' => '模板名称不能为空', 'template_class_id.required' => '模板类型id不能为空', 'template_img.required' => '模板图片不能为空', 'id.required' => '模板id不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $data = ['id' => $requireData['id'], 'template_name' => $requireData['template_name'], 'template_img' => $requireData['template_img'], 'template_class_id' => $requireData['template_class_id']];
-        $result = $this->websiteServiceClient->upTemplate($data);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 删除模板
-     * @return array
-     */
-    public function delTemplate()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['name.required' => '模板id不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $data = ['id' => $requireData['id']];
-        $result = $this->websiteServiceClient->delTemplate($data);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 搜索网站
-     * @return array
-     */
-    public function websiteList()
-    {
-        $requireData = $this->request->all();
-        $result = $this->websiteServiceClient->websiteList($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 检测网站名称是否存在
-     * @return array
-     */
-    public function checkWebsiteName()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['website_name' => 'required'], ['website_name.required' => '网站名称不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->websiteServiceClient->checkWebsiteName($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-    /**
-     * 检测网站网址是否存在
-     * @return array
-     */
-    public function checkWebsiteUrl()
-    {
-        $requireData = $this->request->all();
-        $validator = $this->validationFactory->make($requireData, ['website_url' => 'required'], ['website_url.required' => '网站网址不能为空']);
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
-        $result = $this->websiteServiceClient->checkWebsiteUrl($requireData);
-        return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
-    }
-}

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

@@ -1,69 +0,0 @@
-<?php
-
-namespace App\JsonRpc;
-
-class AuthorityServiceInterface_938f151b2d38b882e7131c7b756b34e5 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());
-    }
-    /**
-     * 查询菜单
-     * @param array $data
-     * @return array
-     */
-    public function getRecursionMenu(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function getAllMenuList(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-}

+ 0 - 93
runtime/container/proxy/App_JsonRpc_NewsServiceInterface.rpc-client.proxy.php

@@ -1,93 +0,0 @@
-<?php
-
-namespace App\JsonRpc;
-
-class NewsServiceInterface_1dc952f30391d3623e254f507249f1da extends \Hyperf\RpcClient\Proxy\AbstractProxyService implements NewsServiceInterface
-{
-    /**
-     * @param array $data
-     */
-    public function getCategoryList(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     */
-    public function categoryList(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     */
-    public function addCategory(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     */
-    public function delCategory(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     */
-    public function updateCategory(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     */
-    public function getArticleList(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     */
-    public function addArticle(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     */
-    public function delArticle(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     */
-    public function updateArticle(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     */
-    public function getArticleInfo(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function getCategoryInfo(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function upArticleStatus(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-}

+ 0 - 145
runtime/container/proxy/App_JsonRpc_UserServiceInterface.rpc-client.proxy.php

@@ -1,145 +0,0 @@
-<?php
-
-namespace App\JsonRpc;
-
-class UserServiceInterface_827489eb255e9718d6c8addba453dcd3 extends \Hyperf\RpcClient\Proxy\AbstractProxyService implements UserServiceInterface
-{
-    /**
-     * @param array $data
-     */
-    public function createUser(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param int $id
-     */
-    public function getUserInfo(int $id)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     */
-    public function getUserList(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return array
-     */
-    public function verifyUserInfo(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @remark 创建登录日志信息
-     * @param array $data
-     * @return array
-     */
-    public function createUserLogin(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * 更新用户信息
-     * @param array $data
-     * @return array
-     */
-    public function updateUser(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * 更新用户
-     * @param array $data
-     * @return array
-     */
-    public function updateUserInfo(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * 删除用户
-     * @param int $id
-     * @return array
-     */
-    public function delUser(int $id)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * 添加角色
-     * @param array $data
-     * @return array
-     */
-    public function addRole(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * 删除角色
-     * @param array $data
-     * @return array
-     */
-    public function delRole(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * 更新角色
-     * @param array $data
-     * @return array
-     */
-    public function updateRole(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * 角色列表
-     * @param array $data
-     * @return array
-     */
-    public function roleList(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * 角色信息
-     * @param array $data
-     * @return array
-     */
-    public function roleInfo(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function getWechatInfo(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function addWechatInfo(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function changePassword(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    public function upUserStatus(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-}

+ 0 - 345
runtime/container/proxy/App_JsonRpc_WebsiteServiceInterface.rpc-client.proxy.php

@@ -1,345 +0,0 @@
-<?php
-
-namespace App\JsonRpc;
-
-class WebsiteServiceInterface_62dc58b55414b1e3772feedb1ff0f561 extends \Hyperf\RpcClient\Proxy\AbstractProxyService implements WebsiteServiceInterface
-{
-    /**
-     * @param string $keyword
-     * @param int $page
-     * @param int $pageSize
-     */
-    public function getWebsitetList(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return array
-     */
-    public function createWebsite(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param int $id
-     * @param array $data
-     * @return array
-     */
-    public function updateWebsite(int $id, array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param int $id
-     * @return array
-     */
-    public function delWebsite(int $id)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * 查询网站信息
-     * @param int $id
-     * @return array
-     */
-    public function getWebsiteInfo(int $id)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function getWebsiteColumn(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param string $keyword
-     * @param int $page
-     * @param int $pageSize
-     */
-    public function getWebsiteColumnList(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return array
-     */
-    public function createWebsiteColumn(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param int $id
-     * @param array $data
-     * @return array
-     */
-    public function updateWebsiteColumn(int $id, array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param int $id
-     * @return array
-     */
-    public function delWebsiteColumn(int $id)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param string $keyword
-     * @param int $page
-     * @param int $pageSize
-     */
-    public function getWebsiteRoleList(string $keyword, int $page, int $pageSize, int $websiteId)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return array
-     */
-    public function createWebsiteRole(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param int $id
-     * @param array $data
-     * @return array
-     */
-    public function updateWebsiteRole(int $id, array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param int $id
-     * @return array
-     */
-    public function delWebsiteRole(int $id)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param string $keyword
-     * @param int $page
-     * @param int $pageSize
-     */
-    public function getWebsiteRoleUserList(string $keyword, int $page, int $pageSize, int $websiteId, int $roleId)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return array
-     */
-    public function createWebsiteRoleUser(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param int $id
-     * @param array $data
-     * @return array
-     */
-    public function updateWebsiteRoleUser(int $id, array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param int $id
-     * @return array
-     */
-    public function delWebsiteRoleUser(int $id)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function getWebsiteId(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     *
-     */
-    public function getWebsiteCategory(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function getAdminIndex(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function getTemplateClass(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function addTemplateClass(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function upTemplateClass(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function delTemplateClass(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function getTemplate(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function addTemplate(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function upTemplate(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function delTemplate(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function websiteList(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function addWebsiteCategory(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function delWebsiteCategory(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function getAdminWebsiteCategory(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function upWebsiteCategory(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function getWebsiteCategoryList(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function delWebsiteAllCategory(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function getWebsiteCategoryOnes(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function upWebsiteCategoryones(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function getWebsiteAllCategory(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function checkWebsiteName(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-    /**
-     * @param array $data
-     * @return mixed
-     */
-    public function checkWebsiteUrl(array $data)
-    {
-        return $this->client->__call(__FUNCTION__, func_get_args());
-    }
-}

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

@@ -1,92 +0,0 @@
-<?php
-
-namespace App\Tools;
-
-use App\Constants\ErrorCode;
-use Hyperf\Di\Annotation\Inject;
-use Hyperf\HttpMessage\Upload\UploadedFile;
-use App\Tools\Result;
-use ZX\Tools\File\MimeTypes;
-use function Hyperf\Support\env;
-use Hyperf\HttpServer\Contract\RequestInterface;
-class CommonService
-{
-    use \Hyperf\Di\Aop\ProxyTrait;
-    use \Hyperf\Di\Aop\PropertyHandlerTrait;
-    function __construct()
-    {
-        $this->__handlePropertyHandler(__CLASS__);
-    }
-    #[Inject]
-    protected RequestInterface $request;
-    public static function uploadFile(UploadedFile $uploadedFile, array $acceptExt, string $fileType = 'image')
-    {
-        $ext = $uploadedFile->getExtension();
-        if (!in_array($ext, $acceptExt)) {
-            return Result::error('文件名后缀不允许');
-        }
-        //图片检测安全
-        if ($fileType == 'image') {
-            $res = self::checkMimeType($uploadedFile, $ext);
-            if ($res == false) {
-                return Result::error('文件安全检测未通过');
-            }
-        }
-        $date = date('Ymd');
-        $filePath = $fileType . DIRECTORY_SEPARATOR . $date;
-        $allDir = 'public' . DIRECTORY_SEPARATOR . $filePath;
-        if (!is_dir($allDir)) {
-            if (!mkdir($allDir, 0755, true)) {
-                return Result::error('创建文件夹失败');
-            }
-        }
-        $fileName = time() . mt_rand(1, 1000000) . '.' . $ext;
-        $finalPath = BASE_PATH . DIRECTORY_SEPARATOR . $allDir . DIRECTORY_SEPARATOR . $fileName;
-        $showPath = $filePath . DIRECTORY_SEPARATOR . $fileName;
-        $uploadedFile->moveTo($finalPath);
-        return ['id' => uniqid(), 'src' => $showPath, 'fileName' => $fileName, 'fileType' => $ext];
-    }
-    //检测文件是否合法
-    public static function checkMimeType(UploadedFile $uploadedFile, string $ext = '')
-    {
-        try {
-            $filePath = $uploadedFile->getRealPath();
-            $fileMimeType = mime_content_type($filePath);
-            $mimeTypes = MimeTypes::getImage();
-            $isExist = array_key_exists($fileMimeType, $mimeTypes);
-            if (!$isExist) {
-                return Result::error('非允许mime types类型');
-            }
-            list($width, $height, $type, $attr) = getimagesize($filePath, $ext);
-            if ($width <= 0 || $height <= 0) {
-                return false;
-            } else {
-                return true;
-            }
-        } catch (\Exception $e) {
-            return false;
-        }
-    }
-    public function imgUrl(string $str)
-    {
-        $scheme = $this->request->getUri()->getScheme() ?? 'http';
-        $host = $this->request->getUri()->getHost() ?? '127.0.0.1';
-        $port = $this->request->getUri()->getPort() ?? '';
-        $url = '';
-        if ($port == 80 || $port == 443 || empty($port)) {
-            $url = "{$scheme}://{$host}/{$str}";
-        } else {
-            $url = "{$scheme}://{$host}:{$port}/{$str}";
-        }
-        return $url;
-    }
-    /**
-     * 获取用户IP
-     * @return mixed|string
-     */
-    public function userIp()
-    {
-        $Ip = $this->request->getHeader('x-forwarded-for')[0] ?? $this->request->getHeader('x-real-ip')[0] ?? $this->request->getServerParams()['remote_addr'] ?? '0.0.0.0';
-        return $Ip;
-    }
-}

File diff suppressed because it is too large
+ 0 - 0
runtime/container/scan.cache


Some files were not shown because too many files changed in this diff