2025-09-30

消息记录查询
This commit is contained in:
2025-10-09 15:15:09 +08:00
parent 86e5596aed
commit d9bbd0d922
5 changed files with 74 additions and 9 deletions

View File

@@ -21,9 +21,15 @@ export class ProgramGroupController {
return await this.programGroupService.getList(programGroup);
}
// 继续聊
/** 根据项目和用户获取群 */
@Get("one")
async getOne(@Param() programGroup: ProgramGroupEntity) {
return await this.programGroupService.getOne(programGroup);
}
@Get(":groupId")
getGroup(@Param("groupId") groupId: number){
return this.programGroupService.getGroup(groupId)
}
}

View File

@@ -26,7 +26,7 @@ export class ProgramGroupEntity {
createTime: Date;
// 虚拟字段
program: ProgramEntity;
program: ProgramEntity | null;
page: number = 1;
size: number = 10;

View File

@@ -1,5 +1,6 @@
import {Column, Entity, PrimaryGeneratedColumn} from "typeorm";
import {UsersEntity} from "./users.entity";
import {format} from "date-fns";
@Entity("program_group_message", {schema: "test"})
export class ProgramGroupMessageEntity {
@@ -31,6 +32,10 @@ export class ProgramGroupMessageEntity {
name: "create_time",
comment: "发送时间",
default: () => "CURRENT_TIMESTAMP",
transformer: {
to: (value: Date) => value,
from: (value: string) => value ? format(value, "yyyy-MM-dd HH:mm:ss") : null
}
})
createTime: Date;
@@ -38,4 +43,8 @@ export class ProgramGroupMessageEntity {
height?: number;
userInfo: UsersEntity | null;
sort: "create_desc" | "create_asc";
page: number;
size: number;
}

View File

@@ -1,5 +1,5 @@
import {Injectable} from "@nestjs/common";
import {ProgramGroupMessageEntity, ReadDto} from "../entity";
import {ProgramGroupMessageEntity, ReadDto, UsersEntity} from "../entity";
import {RedisService} from "./redis.service";
import {ResultData} from "../const/result";
import {InjectRepository} from "@nestjs/typeorm";
@@ -27,16 +27,39 @@ export class MessageService {
}
async getList(message: ProgramGroupMessageEntity) {
let queryBuilder = this.messageRepository.createQueryBuilder("message")
try {
message.page = message.page || 1;
message.size = message.size || 10;
const offset = (message.page - 1) * message.size;
queryBuilder.leftJoinAndMapOne("message.userInfo", "users", "user", "message.create_id = user.id")
let queryBuilder = this.messageRepository.createQueryBuilder("message")
let [item, total] = await queryBuilder.getManyAndCount()
queryBuilder.leftJoinAndMapOne(
"message.userInfo",
UsersEntity,
"user",
"message.create_id = user.id"
).where("message.group_id = :groupId", {groupId: message.groupId})
return ResultData.success({
list: item,
total
})
queryBuilder
.orderBy('message.createTime', 'DESC')
.take(message.size || 10)
.skip(offset || 0);
let [items, total] = await queryBuilder.getManyAndCount()
let data = {
list: items,
total,
page: message.page || 1,
size: message.size || 10,
pages: Math.ceil(total / (message.size || 10))
}
return ResultData.success(data);
} catch (err) {
return ResultData.fail(500, err.message)
}
}
}

View File

@@ -172,4 +172,31 @@ export class ProgramGroupService {
}
return list
}
async getGroup(groupId: number) {
try {
let result = await this.programGroupRepository.findOne({
where: {
groupId
}
})
if (result != null){
result.program = await this.programRepository.createQueryBuilder("program")
.leftJoinAndMapOne(
"program.linkman",
UsersEntity,
"linkman",
"program.linkman_id = linkman.id"
).where("program.id = :id", {id: result.programId})
.getOne()
return ResultData.success(result)
}else {
throw "未找到群组信息"
}
} catch (err) {
return ResultData.fail(500, err);
}
}
}