2025-09-30
消息记录一半
This commit is contained in:
@@ -20,4 +20,10 @@ export class MessageController {
|
|||||||
return await this.messageService.read(readDto)
|
return await this.messageService.read(readDto)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取消息记录
|
||||||
|
@Get("list")
|
||||||
|
async getList(@Query() message: ProgramGroupMessageEntity) {
|
||||||
|
return await this.messageService.getList(message)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,16 @@
|
|||||||
import {Injectable} from "@nestjs/common";
|
import {Injectable} from "@nestjs/common";
|
||||||
import {ReadDto} from "../entity";
|
import {ProgramGroupMessageEntity, ReadDto} from "../entity";
|
||||||
import {RedisService} from "./redis.service";
|
import {RedisService} from "./redis.service";
|
||||||
import {ResultData} from "../const/result";
|
import {ResultData} from "../const/result";
|
||||||
|
import {InjectRepository} from "@nestjs/typeorm";
|
||||||
|
import {Repository} from "typeorm";
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class MessageService {
|
export class MessageService {
|
||||||
constructor(private readonly redisService: RedisService) {
|
constructor(
|
||||||
|
private readonly redisService: RedisService,
|
||||||
|
@InjectRepository(ProgramGroupMessageEntity) private readonly messageRepository: Repository<ProgramGroupMessageEntity>,
|
||||||
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取未读消息
|
// 获取未读消息
|
||||||
@@ -20,4 +25,18 @@ export class MessageService {
|
|||||||
this.redisService.delValue(`${readDto.groupId}_${readDto.userId}`)
|
this.redisService.delValue(`${readDto.groupId}_${readDto.userId}`)
|
||||||
return ResultData.success()
|
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
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -107,20 +107,6 @@ export class ProgramGroupService {
|
|||||||
"group.user_id = user.id"
|
"group.user_id = user.id"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 查询最新消息
|
|
||||||
// queryBuilder.leftJoinAndMapOne(
|
|
||||||
// "group.latest_message",
|
|
||||||
// ProgramGroupMessageEntity,
|
|
||||||
// "message",
|
|
||||||
// `
|
|
||||||
// message.group_id = group.group_id and
|
|
||||||
// group.group_id = (
|
|
||||||
// select group_id from program_group_message
|
|
||||||
// where program_group_message.group_id = group.group_id
|
|
||||||
// order by create_time desc
|
|
||||||
// limit 1
|
|
||||||
// )
|
|
||||||
// `)
|
|
||||||
queryBuilder.addSelect(subQuery => {
|
queryBuilder.addSelect(subQuery => {
|
||||||
return subQuery
|
return subQuery
|
||||||
.select("max(message.create_time)")
|
.select("max(message.create_time)")
|
||||||
|
|||||||
Reference in New Issue
Block a user