feat: Phase 1-3 全部完成 — 沙盒增强、学情分析、学习路径
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
import { Controller, Get, Param, Query } from '@nestjs/common';
|
||||
import { ApiTags } from '@nestjs/swagger';
|
||||
import { ModelsService } from './models.service';
|
||||
|
||||
@ApiTags('AI 模型')
|
||||
@Controller('models')
|
||||
export class ModelsController {
|
||||
constructor(private modelsService: ModelsService) {}
|
||||
|
||||
@Get()
|
||||
async findAll(@Query('featured') featured?: string) {
|
||||
return this.modelsService.findAll({ featured: featured === 'true' });
|
||||
}
|
||||
|
||||
@Get(':id')
|
||||
async findById(@Param('id') id: string) {
|
||||
return this.modelsService.findById(parseInt(id, 10));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { ModelsController } from './models.controller';
|
||||
import { ModelsService } from './models.service';
|
||||
|
||||
@Module({
|
||||
controllers: [ModelsController],
|
||||
providers: [ModelsService],
|
||||
})
|
||||
export class ModelsModule {}
|
||||
@@ -0,0 +1,21 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { PrismaService } from '../../prisma/prisma.service';
|
||||
|
||||
@Injectable()
|
||||
export class ModelsService {
|
||||
constructor(private prisma: PrismaService) {}
|
||||
|
||||
async findAll(params: { featured?: boolean }) {
|
||||
const where: any = { status: 'ACTIVE' };
|
||||
if (params.featured) where.isFeatured = true;
|
||||
|
||||
return this.prisma.aiModel.findMany({
|
||||
where,
|
||||
orderBy: { sortOrder: 'asc' },
|
||||
});
|
||||
}
|
||||
|
||||
async findById(id: number) {
|
||||
return this.prisma.aiModel.findUnique({ where: { id } });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user