浏览代码

工作室

guhongwei 2 年之前
父节点
当前提交
266428c00e
共有 2 个文件被更改,包括 22 次插入5 次删除
  1. 12 4
      src/controller/studio.controller.ts
  2. 10 1
      src/service/studio.service.ts

+ 12 - 4
src/controller/studio.controller.ts

@@ -1,5 +1,5 @@
 import { Body, Controller, Del, Get, Inject, Param, Post, Query } from '@midwayjs/decorator';
-import { BaseController } from 'free-midway-component';
+import { BaseController, FrameworkErrorEnum, ServiceError } from 'free-midway-component';
 import { StudioService } from '../service/studio.service';
 import { CDTO_studio, CVO_studio, FVO_studio, QDTO_studio, QVO_studio, UDTO_studio, UVAO_studio } from '../interface/studio.interface';
 import { ApiResponse, ApiTags, ApiQuery } from '@midwayjs/swagger';
@@ -40,11 +40,19 @@ export class StudioController extends BaseController {
 
   @Post('/:id') @Validate() @ApiResponse({ type: UVAO_studio })
   async update(@Param('id') id: string, @Body() body: UDTO_studio) {
-    const result = await this.service.updateOne(id, body);
-    return result;
+    const data:any = await this.service.findOne({ name: body.name });
+    if (data) {
+      if (data._id === id) {
+        const result = await this.service.updateOne(id, body);
+        return result;
+      }
+      throw new ServiceError('工作室名称已被占用', FrameworkErrorEnum.SERVICE_FAULT);
+    } else {
+      const result = await this.service.updateOne(id, body);
+      return result;
+    }
   }
 
-
   @Del('/:id') @Validate()
   async delete(@Param('id') id: string) {
     await this.service.delete(id);

+ 10 - 1
src/service/studio.service.ts

@@ -1,11 +1,20 @@
 import { Provide } from '@midwayjs/decorator';
 import { InjectEntityModel } from '@midwayjs/typegoose';
 import { ReturnModelType } from '@typegoose/typegoose';
-import { BaseService } from 'free-midway-component';
+import { BaseService, FrameworkErrorEnum, ServiceError } from 'free-midway-component';
 import { Studio } from '../entity/studio.entity';
+// const { ObjectId } = require('mongoose').Types;
 type modelType = ReturnModelType<typeof Studio>;
 @Provide()
 export class StudioService extends BaseService<modelType> {
   @InjectEntityModel(Studio)
   model: modelType;
+  async create(body){
+    const data = await this.model.findOne({ name: body.name });
+    if (!data) {
+      const res = await this.model.create(body);
+      return res;
+    }
+    throw new ServiceError('工作室名称已被占用', FrameworkErrorEnum.SERVICE_FAULT);
+  }
 }