x1ongzhu 1 year ago
parent
commit
e7260b5101

+ 22 - 0
src/paper/entities/paper-order-attachment.entity.ts

@@ -0,0 +1,22 @@
+import { Column, CreateDateColumn, Entity, PrimaryGeneratedColumn } from 'typeorm'
+
+@Entity()
+export class PaperOrderAttachment {
+    @PrimaryGeneratedColumn()
+    id: number
+
+    @CreateDateColumn()
+    createdAt: Date
+
+    @Column()
+    orderId: number
+
+    @Column()
+    name: string
+
+    @Column()
+    url: string
+
+    @Column()
+    desc: string
+}

+ 1 - 1
src/paper/paper-gen/flow.ts

@@ -21,7 +21,7 @@ async function genFlowNames(tools: LLMTools, title, desc) {
 我的毕业设计项目是${title}
 这个项目包含以下功能:
 ${desc}
-现在我们分析一下论文中需要用到的流程图,我们需要绘制以下五个主要流程图:`)
+现在我们分析一下论文中需要用到的流程图,我们需要绘制以下五个主要流程图:`) 
     ])
     return await scheme.parse(content)
 }

+ 17 - 1
src/paper/paper.controller.ts

@@ -1,10 +1,11 @@
-import { Body, Controller, Get, Param, Patch, Post, Put, Query, Req } from '@nestjs/common'
+import { Body, Controller, Delete, Get, Param, Patch, Post, Put, Query, Req } from '@nestjs/common'
 import { PaperService } from './paper.service'
 import { PageRequest } from '../common/dto/page-request'
 import { PaperOrder } from './entities/paper-order.entity'
 import { PaperGenResult } from './entities/paper-gen-result.entity'
 import { CreatePaperOrderDto } from './dto/create-order.dto'
 import { HasAnyRoles } from 'src/auth/roles.decorator'
+import { PaperOrderAttachment } from './entities/paper-order-attachment.entity'
 
 @Controller('paper')
 @HasAnyRoles('paperOrder', 'paperGen')
@@ -46,4 +47,19 @@ export class PaperController {
     async genChapters(@Body() body) {
         return await this.paperService.genChapters(body.id, body.description)
     }
+
+    @Post('/attachments')
+    async attachments(@Body() page: PageRequest<PaperOrderAttachment>) {
+        return await this.paperService.attachments(page)
+    }
+
+    @Put('/attachments')
+    async createAttachment(@Body() dto: PaperOrderAttachment) {
+        return await this.paperService.createAttachment(dto)
+    }
+
+    @Delete('/attachments/:id')
+    async deleteAttachment(@Param('id') id: string) {
+        return await this.paperService.deleteAttachment(Number(id))
+    }
 }

+ 5 - 1
src/paper/paper.module.ts

@@ -7,9 +7,13 @@ import { PaperGenResult } from './entities/paper-gen-result.entity'
 import { RefSearchRecord } from './entities/ref-search-record.entity'
 import { MembershipModule } from 'src/membership/membership.module'
 import { RefController } from './ref.controller'
+import { PaperOrderAttachment } from './entities/paper-order-attachment.entity'
 
 @Module({
-    imports: [TypeOrmModule.forFeature([PaperOrder, PaperGenResult, RefSearchRecord]), MembershipModule],
+    imports: [
+        TypeOrmModule.forFeature([PaperOrder, PaperGenResult, RefSearchRecord, PaperOrderAttachment]),
+        MembershipModule
+    ],
     controllers: [PaperController, RefController],
     providers: [PaperService]
 })

+ 16 - 1
src/paper/paper.service.ts

@@ -19,6 +19,7 @@ import { RefSearchRecord } from './entities/ref-search-record.entity'
 import { MembershipService } from 'src/membership/membership.service'
 import { startOfDay, endOfDay } from 'date-fns'
 import { MemberType } from 'src/membership/entities/membership.entity'
+import { PaperOrderAttachment } from './entities/paper-order-attachment.entity'
 
 @Injectable()
 export class PaperService implements OnModuleInit {
@@ -29,7 +30,9 @@ export class PaperService implements OnModuleInit {
         private readonly paperGenResultRepository: Repository<PaperGenResult>,
         @InjectRepository(RefSearchRecord)
         private readonly refSearchRecordRepository: Repository<RefSearchRecord>,
-        private readonly membershipService: MembershipService
+        private readonly membershipService: MembershipService,
+        @InjectRepository(PaperOrderAttachment)
+        private readonly paperOrderAttachmentRepository: Repository<PaperOrderAttachment>
     ) {}
 
     async onModuleInit() {
@@ -270,4 +273,16 @@ export class PaperService implements OnModuleInit {
         })
         return res
     }
+
+    async attachments(req: PageRequest<PaperOrderAttachment>) {
+        return await paginate<PaperOrderAttachment>(this.paperOrderAttachmentRepository, req.page, req.search)
+    }
+
+    async createAttachment(dto: PaperOrderAttachment) {
+        return await this.paperOrderAttachmentRepository.save(dto)
+    }
+
+    async deleteAttachment(id: number) {
+        return await this.paperOrderAttachmentRepository.delete(id)
+    }
 }