feat(product): 实现产品需求管理模块(后端 + 前端)
后端:Product Module(CRUD)、Requirement Module(CRUD + 状态机流转)、PrismaService 前端:产品列表页、产品详情页(含需求池 Tab)、Zustand Store、API 封装 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
import { Controller, Get, Post, Patch, Delete, Param, Body, Query } from '@nestjs/common';
|
||||
import { RequirementService } from './requirement.service';
|
||||
import { CreateRequirementDto } from './dto/create-requirement.dto';
|
||||
import { UpdateRequirementDto } from './dto/update-requirement.dto';
|
||||
import { UpdateRequirementStatusDto } from './dto/update-requirement-status.dto';
|
||||
|
||||
@Controller('products/:productId/requirements')
|
||||
export class RequirementController {
|
||||
constructor(private readonly requirementService: RequirementService) {}
|
||||
|
||||
@Post()
|
||||
create(
|
||||
@Param('productId') productId: string,
|
||||
@Body() dto: CreateRequirementDto,
|
||||
) {
|
||||
return this.requirementService.create(productId, dto);
|
||||
}
|
||||
|
||||
@Get()
|
||||
findAll(
|
||||
@Param('productId') productId: string,
|
||||
@Query('status') status?: string,
|
||||
) {
|
||||
return this.requirementService.findAll(productId, status);
|
||||
}
|
||||
|
||||
@Get(':id')
|
||||
findOne(
|
||||
@Param('productId') productId: string,
|
||||
@Param('id') id: string,
|
||||
) {
|
||||
return this.requirementService.findOne(productId, id);
|
||||
}
|
||||
|
||||
@Patch(':id')
|
||||
update(
|
||||
@Param('productId') productId: string,
|
||||
@Param('id') id: string,
|
||||
@Body() dto: UpdateRequirementDto,
|
||||
) {
|
||||
return this.requirementService.update(productId, id, dto);
|
||||
}
|
||||
|
||||
@Patch(':id/status')
|
||||
updateStatus(
|
||||
@Param('productId') productId: string,
|
||||
@Param('id') id: string,
|
||||
@Body() dto: UpdateRequirementStatusDto,
|
||||
) {
|
||||
return this.requirementService.updateStatus(productId, id, dto.status);
|
||||
}
|
||||
|
||||
@Delete(':id')
|
||||
remove(
|
||||
@Param('productId') productId: string,
|
||||
@Param('id') id: string,
|
||||
) {
|
||||
return this.requirementService.remove(productId, id);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user