Files
jurong_circle_chat_black/src/service/message.service.ts

42 lines
1.3 KiB
TypeScript
Raw Normal View History

import {Injectable} from "@nestjs/common";
2025-10-09 09:18:20 +08:00
import {ProgramGroupMessageEntity, ReadDto} from "../entity";
import {RedisService} from "./redis.service";
import {ResultData} from "../const/result";
2025-10-09 09:18:20 +08:00
import {InjectRepository} from "@nestjs/typeorm";
import {Repository} from "typeorm";
@Injectable()
export class MessageService {
2025-10-09 09:18:20 +08:00
constructor(
private readonly redisService: RedisService,
@InjectRepository(ProgramGroupMessageEntity) private readonly messageRepository: Repository<ProgramGroupMessageEntity>,
) {
}
// 获取未读消息
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()
}
2025-10-09 09:18:20 +08:00
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
})
}
}