Browse Source

全部已读

zs 8 months ago
parent
commit
f87509eaa2

+ 7 - 0
src/controller/system/message.controller.ts

@@ -103,4 +103,11 @@ export class RegionController implements BaseController {
     const result = await this.service.query(qobj, { selects: ['id'] });
     return get(result, 'total');
   }
+
+  @Get('/read/:id')
+  @ApiTags('全部已读')
+  async read(@Param('id') id: number) {
+    const data = await this.service.read({ id });
+    return data;
+  }
 }

+ 4 - 4
src/frame/BaseServiceV2.ts

@@ -279,10 +279,10 @@ export abstract class BaseServiceV2 {
     // 没有查出数据,也是有问题
     if (!createData) return;
     try {
-     // 处理标签
-    await this.dealTags(createData);
-    // 添加,没有原数据,只有新数据
-    await this.dealLog(null, createData);
+      // 处理标签
+      await this.dealTags(createData);
+      // 添加,没有原数据,只有新数据
+      await this.dealLog(null, createData);
     } catch (error) {
       console.error('log error');
       console.error(createData);

+ 15 - 0
src/service/system/message.service.ts

@@ -16,6 +16,21 @@ export class MessageService extends BaseServiceV2 {
   getQueryColumnsOpera() {
     return { 'to.user': this.Opera.JsonArrayObject, 'to.is_read': this.Opera.JsonArrayObject };
   }
+
+  // 全部已读
+  async read({ id }) {
+    const list = await this.model
+      .createQueryBuilder()
+      .where('"to" @> :member', { member: JSON.stringify([{ user: parseInt(id) }]) })
+      .getMany();
+    for (const tag of list) {
+      const to = get(tag, 'to', []);
+      for (const val of to) {
+        if (val.user === parseInt(id)) val.is_read = '1';
+      }
+      await this.model.update({ id: tag.id }, { to: to });
+    }
+  }
   /**
    * 发送mq消息
    * @param target mq接收人

+ 0 - 2
src/service/system/tags.service.ts

@@ -7,6 +7,4 @@ import { BaseServiceV2 } from '../../frame/BaseServiceV2';
 export class TagsService extends BaseServiceV2 {
   @InjectEntityModel(Tags)
   model: Repository<Tags>;
-
-  
 }

+ 1 - 1
src/service/system/user.service.ts

@@ -22,7 +22,7 @@ export class UserService extends BaseServiceV2 {
   async checkPhone(data) {
     const phone = get(data, 'phone');
     if (!phone) return;
-    const num = await this.model.createQueryBuilder().where(`"phone" =:value`, { value: phone }).getCount();
+    const num = await this.model.createQueryBuilder().where('"phone" =:value', { value: phone }).getCount();
     if (num <= 0) return;
     // 手机号存在
     throw new ServiceError(ErrorCode.PHONE_IS_EXISTS);

+ 5 - 8
src/service/system/userMenus.service.ts

@@ -1,9 +1,8 @@
-import { Provide } from "@midwayjs/core";
-import { BaseServiceV2 } from "../../frame/BaseServiceV2";
-import { UserMenus } from "../../entity/system/userMenus.entity";
-import { InjectEntityModel } from "@midwayjs/typeorm";
-import { Repository } from "typeorm";
-
+import { Provide } from '@midwayjs/core';
+import { BaseServiceV2 } from '../../frame/BaseServiceV2';
+import { UserMenus } from '../../entity/system/userMenus.entity';
+import { InjectEntityModel } from '@midwayjs/typeorm';
+import { Repository } from 'typeorm';
 
 /**
  * 角色用户菜单,不存在层级,只需要到时候查出来分配给的菜单就行
@@ -12,6 +11,4 @@ import { Repository } from "typeorm";
 export class UserMenusService extends BaseServiceV2 {
   @InjectEntityModel(UserMenus)
   model: Repository<UserMenus>;
-  
 }
-