From 1ba65b8c89cc3b803d20eb80fd901439bd66c06b Mon Sep 17 00:00:00 2001 From: Rao <1227431568@qq.com> Date: Wed, 12 Mar 2025 08:25:08 +0800 Subject: [PATCH] rht --- .../daily-train/dailyTrain.controller.ts | 9 +++++ .../models/daily-train/dailyTrain.module.ts | 15 +++++++ .../models/daily-train/dailyTrain.router.ts | 16 ++++++++ .../models/daily-train/dailyTrain.service.ts | 40 +++++++++++++++++++ .../models/position/dailyTrain.controller.ts | 9 +++++ .../src/models/position/dailyTrain.module.ts | 15 +++++++ .../src/models/position/dailyTrain.router.ts | 16 ++++++++ .../src/models/position/dailyTrain.service.ts | 40 +++++++++++++++++++ .../train-content/trainContent.service.ts | 30 +++++++++++++- .../train-situation/trainSituation.service.ts | 5 ++- apps/server/src/trpc/trpc.module.ts | 5 ++- apps/server/src/trpc/trpc.router.ts | 5 ++- .../client/src/api/hooks/useTrainSituation.ts | 10 ++++- packages/common/prisma/schema.prisma | 17 ++++---- packages/common/src/enum.ts | 3 +- 15 files changed, 220 insertions(+), 15 deletions(-) create mode 100644 apps/server/src/models/daily-train/dailyTrain.controller.ts create mode 100644 apps/server/src/models/daily-train/dailyTrain.module.ts create mode 100644 apps/server/src/models/daily-train/dailyTrain.router.ts create mode 100644 apps/server/src/models/daily-train/dailyTrain.service.ts create mode 100644 apps/server/src/models/position/dailyTrain.controller.ts create mode 100644 apps/server/src/models/position/dailyTrain.module.ts create mode 100644 apps/server/src/models/position/dailyTrain.router.ts create mode 100644 apps/server/src/models/position/dailyTrain.service.ts diff --git a/apps/server/src/models/daily-train/dailyTrain.controller.ts b/apps/server/src/models/daily-train/dailyTrain.controller.ts new file mode 100644 index 0000000..c091dba --- /dev/null +++ b/apps/server/src/models/daily-train/dailyTrain.controller.ts @@ -0,0 +1,9 @@ +import { Controller, UseGuards } from "@nestjs/common"; +import { AuthGuard } from '@server/auth/auth.guard'; +import { DailyTrainService } from "./dailyTrain.service"; + +@Controller('train-content') +export class DailyTrainController { + constructor(private readonly dailyTrainService: DailyTrainService) {} + //@UseGuards(AuthGuard) +} \ No newline at end of file diff --git a/apps/server/src/models/daily-train/dailyTrain.module.ts b/apps/server/src/models/daily-train/dailyTrain.module.ts new file mode 100644 index 0000000..702ed7d --- /dev/null +++ b/apps/server/src/models/daily-train/dailyTrain.module.ts @@ -0,0 +1,15 @@ +import { Module } from '@nestjs/common'; +import { StaffModule } from '../staff/staff.module'; +import { TrpcService } from '@server/trpc/trpc.service'; +import { DailyTrainController } from './dailyTrain.controller'; +import { DailyTrainService } from './dailyTrain.service'; +import { DailyTrainRouter } from './dailyTrain.router'; + + +@Module({ + imports: [StaffModule], + controllers: [DailyTrainController], + providers: [DailyTrainService,DailyTrainRouter,TrpcService], + exports: [DailyTrainService,DailyTrainRouter], +}) +export class DailyTrainModule {} \ No newline at end of file diff --git a/apps/server/src/models/daily-train/dailyTrain.router.ts b/apps/server/src/models/daily-train/dailyTrain.router.ts new file mode 100644 index 0000000..d3e9d18 --- /dev/null +++ b/apps/server/src/models/daily-train/dailyTrain.router.ts @@ -0,0 +1,16 @@ +import { Injectable } from "@nestjs/common"; +import { TrpcService } from "@server/trpc/trpc.service"; +import { DailyTrainService } from "./dailyTrain.service"; + +@Injectable() +export class DailyTrainRouter { + constructor( + private readonly trpc: TrpcService, + private readonly dailyTrainService: DailyTrainService, + ) { } + + router = this.trpc.router({ + + }) + +} \ No newline at end of file diff --git a/apps/server/src/models/daily-train/dailyTrain.service.ts b/apps/server/src/models/daily-train/dailyTrain.service.ts new file mode 100644 index 0000000..1b5a182 --- /dev/null +++ b/apps/server/src/models/daily-train/dailyTrain.service.ts @@ -0,0 +1,40 @@ +import { Injectable } from "@nestjs/common"; +import { BaseService } from "../base/base.service"; +import { db, ObjectType, Prisma, UserProfile } from "@nice/common"; +import { DefaultArgs } from "@prisma/client/runtime/library"; +import EventBus, { CrudOperation } from "@server/utils/event-bus"; + + +@Injectable() +export class DailyTrainService extends BaseService { + constructor() { + super(db,ObjectType.DAILY_TRAIN,true); + } + async create(args: Prisma.DailyTrainTimeCreateArgs) { + console.log(args) + const result = await super.create(args) + this.emitDataChanged(CrudOperation.CREATED,result) + return result + } + + async update(args:Prisma.DailyTrainTimeUpdateArgs){ + const result = await super.update(args) + this.emitDataChanged(CrudOperation.UPDATED,result) + return result + } + + + async findMany(args: Prisma.DailyTrainTimeFindManyArgs) { + const result = await super.findMany(args); + return result; + } + + + private emitDataChanged(operation: CrudOperation, data: any) { + EventBus.emit('dataChanged', { + type:ObjectType.DAILY_TRAIN, + operation, + data, + }); + } +} \ No newline at end of file diff --git a/apps/server/src/models/position/dailyTrain.controller.ts b/apps/server/src/models/position/dailyTrain.controller.ts new file mode 100644 index 0000000..c091dba --- /dev/null +++ b/apps/server/src/models/position/dailyTrain.controller.ts @@ -0,0 +1,9 @@ +import { Controller, UseGuards } from "@nestjs/common"; +import { AuthGuard } from '@server/auth/auth.guard'; +import { DailyTrainService } from "./dailyTrain.service"; + +@Controller('train-content') +export class DailyTrainController { + constructor(private readonly dailyTrainService: DailyTrainService) {} + //@UseGuards(AuthGuard) +} \ No newline at end of file diff --git a/apps/server/src/models/position/dailyTrain.module.ts b/apps/server/src/models/position/dailyTrain.module.ts new file mode 100644 index 0000000..702ed7d --- /dev/null +++ b/apps/server/src/models/position/dailyTrain.module.ts @@ -0,0 +1,15 @@ +import { Module } from '@nestjs/common'; +import { StaffModule } from '../staff/staff.module'; +import { TrpcService } from '@server/trpc/trpc.service'; +import { DailyTrainController } from './dailyTrain.controller'; +import { DailyTrainService } from './dailyTrain.service'; +import { DailyTrainRouter } from './dailyTrain.router'; + + +@Module({ + imports: [StaffModule], + controllers: [DailyTrainController], + providers: [DailyTrainService,DailyTrainRouter,TrpcService], + exports: [DailyTrainService,DailyTrainRouter], +}) +export class DailyTrainModule {} \ No newline at end of file diff --git a/apps/server/src/models/position/dailyTrain.router.ts b/apps/server/src/models/position/dailyTrain.router.ts new file mode 100644 index 0000000..d3e9d18 --- /dev/null +++ b/apps/server/src/models/position/dailyTrain.router.ts @@ -0,0 +1,16 @@ +import { Injectable } from "@nestjs/common"; +import { TrpcService } from "@server/trpc/trpc.service"; +import { DailyTrainService } from "./dailyTrain.service"; + +@Injectable() +export class DailyTrainRouter { + constructor( + private readonly trpc: TrpcService, + private readonly dailyTrainService: DailyTrainService, + ) { } + + router = this.trpc.router({ + + }) + +} \ No newline at end of file diff --git a/apps/server/src/models/position/dailyTrain.service.ts b/apps/server/src/models/position/dailyTrain.service.ts new file mode 100644 index 0000000..1b5a182 --- /dev/null +++ b/apps/server/src/models/position/dailyTrain.service.ts @@ -0,0 +1,40 @@ +import { Injectable } from "@nestjs/common"; +import { BaseService } from "../base/base.service"; +import { db, ObjectType, Prisma, UserProfile } from "@nice/common"; +import { DefaultArgs } from "@prisma/client/runtime/library"; +import EventBus, { CrudOperation } from "@server/utils/event-bus"; + + +@Injectable() +export class DailyTrainService extends BaseService { + constructor() { + super(db,ObjectType.DAILY_TRAIN,true); + } + async create(args: Prisma.DailyTrainTimeCreateArgs) { + console.log(args) + const result = await super.create(args) + this.emitDataChanged(CrudOperation.CREATED,result) + return result + } + + async update(args:Prisma.DailyTrainTimeUpdateArgs){ + const result = await super.update(args) + this.emitDataChanged(CrudOperation.UPDATED,result) + return result + } + + + async findMany(args: Prisma.DailyTrainTimeFindManyArgs) { + const result = await super.findMany(args); + return result; + } + + + private emitDataChanged(operation: CrudOperation, data: any) { + EventBus.emit('dataChanged', { + type:ObjectType.DAILY_TRAIN, + operation, + data, + }); + } +} \ No newline at end of file diff --git a/apps/server/src/models/train-content/trainContent.service.ts b/apps/server/src/models/train-content/trainContent.service.ts index 8015cf2..6f57562 100644 --- a/apps/server/src/models/train-content/trainContent.service.ts +++ b/apps/server/src/models/train-content/trainContent.service.ts @@ -1,6 +1,8 @@ import { Injectable } from "@nestjs/common"; import { BaseService } from "../base/base.service"; import { db, ObjectType, Prisma, UserProfile } from "@nice/common"; +import { DefaultArgs } from "@prisma/client/runtime/library"; +import EventBus, { CrudOperation } from "@server/utils/event-bus"; @Injectable() @@ -8,5 +10,31 @@ export class TrainContentService extends BaseService{ + queryClient.invalidateQueries({queryKey}); + emitDataChange(ObjectType.TRAIN_SITUATION,res,CrudOperation.UPDATED) + } + }) return { - create + create, + update } } \ No newline at end of file diff --git a/packages/common/prisma/schema.prisma b/packages/common/prisma/schema.prisma index 0061f80..8d8a97e 100755 --- a/packages/common/prisma/schema.prisma +++ b/packages/common/prisma/schema.prisma @@ -359,21 +359,24 @@ model TrainSituation { trainContentId String @map("train_content_id") trainContent TrainContent @relation(fields: [trainContentId], references: [id]) - score Float @default(0.0) @map("score") - mustTrainTime Float @map("must_train_time") - alreadyTrainTime Float @map("already_train_time") + score Float @default(0.0) @map("score") + mustTrainTime Float @map("must_train_time") + alreadyTrainTime Float @map("already_train_time") + dailyTrainTime DailyTrainTime[] @relation("DailyTrainSituation") @@map("train_situation") } model DailyTrainTime { - id String @id @default(cuid()) - trainTime Float @default(0.0)@map("trainTime") - createdAt DateTime @default(now()) @map("created_at") + id String @id @default(cuid()) + trainSituationId String @map("train_situatio_id") + trainSituation TrainSituation @relation("DailyTrainSituation", fields: [trainSituationId], references: [id]) + trainTime Float @default(0.0) @map("trainTime") + createdAt DateTime @default(now()) @map("created_at") + @@map("daily_train_situation") } - model Position { id String @id @default(cuid()) @map("id") type String @map("type") diff --git a/packages/common/src/enum.ts b/packages/common/src/enum.ts index 9028b44..4fc900a 100755 --- a/packages/common/src/enum.ts +++ b/packages/common/src/enum.ts @@ -60,7 +60,8 @@ export enum ObjectType { ENROLLMENT = "enrollment", RESOURCE = "resource", TRAIN_CONTENT = "trainContent", - TRAIN_SITUATION = "trainSituation" + TRAIN_SITUATION = "trainSituation", + DAILY_TRAIN = "dailyTrainTime" } export enum RolePerms { // Create Permissions 创建权限