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") }