lrf 9 mesiacov pred
rodič
commit
1383ba6660

+ 10 - 3
package-lock.json

@@ -16,12 +16,14 @@
         "@midwayjs/logger": "^3.1.0",
         "@midwayjs/validate": "^3.12.0",
         "amqp-connection-manager": "^4.1.14",
-        "amqplib": "^0.10.4"
+        "amqplib": "^0.10.4",
+        "lodash": "^4.17.21"
       },
       "devDependencies": {
         "@midwayjs/mock": "^3.12.0",
         "@types/amqplib": "^0.10.5",
         "@types/jest": "^29.2.0",
+        "@types/lodash": "^4.17.7",
         "@types/node": "14",
         "cross-env": "^6.0.0",
         "jest": "^29.2.2",
@@ -1723,6 +1725,12 @@
         "@types/koa": "*"
       }
     },
+    "node_modules/@types/lodash": {
+      "version": "4.17.7",
+      "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.7.tgz",
+      "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==",
+      "dev": true
+    },
     "node_modules/@types/mime": {
       "version": "1.3.5",
       "resolved": "https://registry.npmmirror.com/@types/mime/-/mime-1.3.5.tgz",
@@ -5817,8 +5825,7 @@
     "node_modules/lodash": {
       "version": "4.17.21",
       "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
-      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
-      "dev": true
+      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
     },
     "node_modules/lodash.memoize": {
       "version": "4.1.2",

+ 4 - 1
package.json

@@ -11,12 +11,14 @@
     "@midwayjs/logger": "^3.1.0",
     "@midwayjs/validate": "^3.12.0",
     "amqp-connection-manager": "^4.1.14",
-    "amqplib": "^0.10.4"
+    "amqplib": "^0.10.4",
+    "lodash": "^4.17.21"
   },
   "devDependencies": {
     "@midwayjs/mock": "^3.12.0",
     "@types/amqplib": "^0.10.5",
     "@types/jest": "^29.2.0",
+    "@types/lodash": "^4.17.7",
     "@types/node": "14",
     "cross-env": "^6.0.0",
     "jest": "^29.2.2",
@@ -31,6 +33,7 @@
   "scripts": {
     "start": "NODE_ENV=production node ./bootstrap.js",
     "dev": "cross-env NODE_ENV=local mwtsc --watch --run @midwayjs/mock/app.js",
+    "self": "cross-env NODE_ENV=self mwtsc --watch --run @midwayjs/mock/app.js",
     "test": "cross-env NODE_ENV=unittest jest",
     "cov": "jest --coverage",
     "lint": "mwts check",

+ 8 - 0
src/config/config.local.ts

@@ -0,0 +1,8 @@
+import { MidwayConfig } from '@midwayjs/core';
+/**mq设置*/
+const mqSetting = {
+  url: 'amqp://huaxin:1234qwerasdf@10.120.114.6/hxmsg',
+};
+export default {
+  rabbitmq: mqSetting,
+} as MidwayConfig;

+ 8 - 0
src/config/config.prod.ts

@@ -0,0 +1,8 @@
+import { MidwayConfig } from '@midwayjs/core';
+/**mq设置*/
+const mqSetting = {
+  url: 'amqp://huaxin:1234qwerasdf@10.120.114.6/hxmsg',
+};
+export default {
+  rabbitmq: mqSetting,
+} as MidwayConfig;

+ 8 - 0
src/config/config.self.ts

@@ -0,0 +1,8 @@
+import { MidwayConfig } from '@midwayjs/core';
+/**mq设置*/
+const mqSetting = {
+  url: 'amqp://huaxin:1234qwerasdf@127.0.0.1/hxmsg',
+};
+export default {
+  rabbitmq: mqSetting,
+} as MidwayConfig;

+ 23 - 0
src/controller/send.controller.ts

@@ -0,0 +1,23 @@
+import { Body, Controller, Inject, Post } from '@midwayjs/core';
+import { MqService } from '../service/mq.service';
+import { get } from 'lodash';
+import { MessageUserType } from '../public/var';
+
+@Controller('/send')
+export class SendController {
+  @Inject()
+  mqService: MqService;
+  @Post('/')
+  async sendMsg(@Body() body: object) {
+    const target = get(body, 'target');
+    const userType = get(body, 'userType');
+    const data_id = get(body, 'data_id');
+    let ex;
+    if (userType === MessageUserType.ADMIN) {
+      ex = this.mqService.system.ex;
+    } else if (userType === MessageUserType.USER) {
+      ex = this.mqService.user.ex;
+    }
+    return this.mqService.publish(ex, target, data_id);
+  }
+}

+ 4 - 0
src/public/var.ts

@@ -0,0 +1,4 @@
+export enum MessageUserType {
+  ADMIN = 'ADMIN',
+  USER = 'USER',
+}

+ 8 - 0
src/service/mq.service.ts

@@ -63,6 +63,14 @@ export class MqService {
     // const res = await this.sendToQueue(this.system.queue, { test: 'test' });
     console.log(res);
   }
+  async publish(ex: string, queue: string, data: any) {
+    try {
+      const res = await this.channelWrapper.publish(ex, `${queue}`, data);
+      return res;
+    } catch (error) {
+      console.error(error);
+    }
+  }
 
   // 发送消息
   public async sendToQueue(queueName: string, data: any) {