diff --git a/apps/server/src/models/base/base.service.ts b/apps/server/src/models/base/base.service.ts
index d1b8b16..ae45e06 100755
--- a/apps/server/src/models/base/base.service.ts
+++ b/apps/server/src/models/base/base.service.ts
@@ -8,6 +8,7 @@ import {
DelegateFuncs,
UpdateOrderArgs,
TransactionType,
+ OrderByArgs,
SelectArgs,
} from './base.type';
import {
@@ -450,9 +451,10 @@ export class BaseService<
page?: number;
pageSize?: number;
where?: WhereArgs;
+ orderBy?: OrderByArgs;
select?: SelectArgs;
}): Promise<{ items: R['findMany']; totalPages: number }> {
- const { page = 1, pageSize = 10, where, select } = args;
+ const { page = 1, pageSize = 10, where, select, orderBy } = args;
try {
// 获取总记录数
@@ -461,6 +463,7 @@ export class BaseService<
const items = (await this.getModel().findMany({
where,
select,
+ orderBy,
skip: (page - 1) * pageSize,
take: pageSize,
} as any)) as R['findMany'];
diff --git a/apps/server/src/models/post/post.service.ts b/apps/server/src/models/post/post.service.ts
index 03d89de..57b2962 100755
--- a/apps/server/src/models/post/post.service.ts
+++ b/apps/server/src/models/post/post.service.ts
@@ -21,6 +21,7 @@ import { BaseTreeService } from '../base/base.tree.service';
import { z } from 'zod';
import { DefaultArgs } from '@prisma/client/runtime/library';
import dayjs from 'dayjs';
+import { OrderByArgs } from '../base/base.type';
@Injectable()
export class PostService extends BaseTreeService {
@@ -181,6 +182,7 @@ export class PostService extends BaseTreeService {
page?: number;
pageSize?: number;
where?: Prisma.PostWhereInput;
+ orderBy?: OrderByArgs<(typeof db.post)['findMany']>;
select?: Prisma.PostSelect;
}): Promise<{
items: {
@@ -197,6 +199,7 @@ export class PostService extends BaseTreeService {
duration: number | null;
rating: number | null;
createdAt: Date;
+ views: number;
publishedAt: Date | null;
updatedAt: Date;
deletedAt: Date | null;
diff --git a/packages/common/prisma/schema.prisma b/packages/common/prisma/schema.prisma
index 2715faf..6bcd44b 100755
--- a/packages/common/prisma/schema.prisma
+++ b/packages/common/prisma/schema.prisma
@@ -206,6 +206,7 @@ model Post {
rating Int? @default(0)
students Staff[] @relation("post_student")
depts Department[] @relation("post_dept")
+ views Int @default(0) @map("views")
// 索引
// 日期时间类型字段
createdAt DateTime @default(now()) @map("created_at")
@@ -238,6 +239,7 @@ model Post {
@@index([type, publishedAt])
@@index([state])
@@index([level])
+ @@index([views])
@@index([important])
@@map("post")
}