import {Injectable} from "@nestjs/common"; import {ProgramGroupMessageEntity, ReadDto} from "../entity"; import {RedisService} from "./redis.service"; import {ResultData} from "../const/result"; import {InjectRepository} from "@nestjs/typeorm"; import {Repository} from "typeorm"; @Injectable() export class MessageService { constructor( private readonly redisService: RedisService, @InjectRepository(ProgramGroupMessageEntity) private readonly messageRepository: Repository, ) { } // 获取未读消息 async getUnread(readDto: ReadDto) { let data = await this.redisService.getValue(`${readDto.groupId}_${readDto.userId}`) data = data == null ? [] : JSON.parse(data) return ResultData.success(data) } // 未读 -> 已读 async read(readDto: ReadDto) { this.redisService.delValue(`${readDto.groupId}_${readDto.userId}`) return ResultData.success() } async getList(message: ProgramGroupMessageEntity) { let queryBuilder = this.messageRepository.createQueryBuilder("message") queryBuilder.leftJoinAndMapOne("message.userInfo", "users", "user", "message.create_id = user.id") let [item, total] = await queryBuilder.getManyAndCount() return ResultData.success({ list: item, total }) } }