瀏覽代碼

修改提示信息

zs 1 年之前
父節點
當前提交
14288514ca

+ 1 - 0
src/controller/core/course.controller.ts

@@ -14,6 +14,7 @@ export class CourseController extends BaseController {
   @Validate()
   @ApiResponse({ type: CVO_course })
   async create(@Body() data: CDTO_course) {
+    await this.service.createBefore(data);
     const dbData = await this.service.create(data);
     const result = new CVO_course(dbData);
     return result;

+ 2 - 0
src/error/frame.error.ts

@@ -12,5 +12,7 @@ export enum ErrorCode {
   USER_IS_DISABLED = '401-6',
   ROLE_IS_DISABLED = '401-7',
   SERVICE_REPEAT = '401-8',
+  TEACHER_STATUS = '401-9',
+  TEACHER_SHOW = '401-10',
 }
 export const FrameErrorEnum = registerErrorCode('FrameError', ErrorCode);

+ 2 - 0
src/locales/en_us/errors.ts

@@ -23,6 +23,8 @@ const codes = {
   '401-5': 'This account has been logged in elsewhere, please log in again!',
   '401-6': 'The user has been disabled',
   '401-7': 'Users in the current role are unable to use',
+  '401-9': 'The teacher is unable to create a new course during the review process',
+  '401-10': 'The teacher personal information is not publicly available and cannot create a new course',
 };
 const errCodes = {};
 const prefix = 'FRAMEERROR_';

+ 2 - 0
src/locales/zh_cn/errors.ts

@@ -24,6 +24,8 @@ const codes = {
   '401-6': '该用户已被禁用',
   '401-7': '当前角色下的用户无法使用',
   '401-8': '该用户已有账号请勿注册!',
+  '401-9': '该教师审核中无法新建课程!',
+  '401-10': '该教师未公开个人信息无法新建课程!',
 };
 const errCodes = {};
 const prefix = 'FRAMEERROR_';

+ 17 - 2
src/service/core/course.service.ts

@@ -1,19 +1,34 @@
-import { Provide } from '@midwayjs/decorator';
+import { Provide, Inject } from '@midwayjs/decorator';
 import { InjectEntityModel } from '@midwayjs/typegoose';
 import { ReturnModelType } from '@typegoose/typegoose';
-import { BaseService } from 'free-midway-component';
+import { BaseService, ServiceError } from 'free-midway-component';
 import { Course } from '../../entity/core/course.entity';
 import { get } from 'lodash';
 import { Teacher } from '../../entity/core/teacher.entity';
+import { I18nService } from '../i18n.service';
+import { FrameErrorEnum } from '../../error/frame.error';
 type modelType = ReturnModelType<typeof Course>;
 @Provide()
 export class CourseService extends BaseService<modelType> {
   @InjectEntityModel(Course)
   model: modelType;
 
+  @Inject()
+  i18n: I18nService;
+
   @InjectEntityModel(Teacher)
   tModel: ReturnModelType<typeof Teacher>;
 
+  // 创建前判断改教师是否审核成功
+  async createBefore(data) {
+    const { teacher } = data;
+    const teacherInfo = await this.tModel.findById(teacher).lean();
+    if (teacherInfo && teacherInfo._id) {
+      if (teacherInfo.status === '0') throw new ServiceError(this.i18n.translateError(FrameErrorEnum.TEACHER_STATUS), FrameErrorEnum.TEACHER_STATUS);
+      if (teacherInfo.is_show === '1') throw new ServiceError(this.i18n.translateError(FrameErrorEnum.TEACHER_SHOW), FrameErrorEnum.TEACHER_SHOW);
+    } else throw new ServiceError(this.i18n.translateError(FrameErrorEnum.USER_NOT_FOUND), FrameErrorEnum.USER_NOT_FOUND);
+  }
+
   // 列表
   async list(query) {
     const { skip = 0, limit = 0, ...info } = query;