zs vor 2 Jahren
Ursprung
Commit
d984a9c2dd
41 geänderte Dateien mit 225 neuen und 0 gelöschten Zeilen
  1. 0 0
      ecosystem.config.js
  2. 0 0
      src/controller/applyflair.controller.ts
  3. 0 0
      src/controller/contactoffice.controller.ts
  4. 89 0
      src/controller/message.controller.ts
  5. 0 0
      src/controller/notice.controller.ts
  6. 0 0
      src/controller/relevantdownload.controller.ts
  7. 0 0
      src/controller/scientistsettle.controller.ts
  8. 0 0
      src/controller/studio.controller.ts
  9. 0 0
      src/controller/techoldemand.controller.ts
  10. 0 0
      src/controller/techolsupport.controller.ts
  11. 0 0
      src/controller/yearreport.controller.ts
  12. 0 0
      src/entity/applyflair.entity.ts
  13. 0 0
      src/entity/contactoffice.entity.ts
  14. 26 0
      src/entity/message.entity.ts
  15. 0 0
      src/entity/notice.entity.ts
  16. 0 0
      src/entity/relevantdownload.entity.ts
  17. 0 0
      src/entity/scientistsettle.entity.ts
  18. 0 0
      src/entity/studio.entity.ts
  19. 0 0
      src/entity/techoldemand.entity.ts
  20. 0 0
      src/entity/techolsupport.entity.ts
  21. 0 0
      src/entity/yearreport.entity.ts
  22. 0 0
      src/interface/applyflair.interface.ts
  23. 0 0
      src/interface/contactoffice.interface.ts
  24. 99 0
      src/interface/message.interface.ts
  25. 0 0
      src/interface/notice.interface.ts
  26. 0 0
      src/interface/relevantdownload.interface.ts
  27. 0 0
      src/interface/scientistsettle.interface.ts
  28. 0 0
      src/interface/studio.interface.ts
  29. 0 0
      src/interface/techoldemand.interface.ts
  30. 0 0
      src/interface/techolsupport.interface.ts
  31. 0 0
      src/interface/yearreport.interface.ts
  32. 0 0
      src/service/applyflair.service.ts
  33. 0 0
      src/service/contactoffice.service.ts
  34. 11 0
      src/service/message.service.ts
  35. 0 0
      src/service/notice.service.ts
  36. 0 0
      src/service/relevantdownload.service.ts
  37. 0 0
      src/service/scientistsettle.service.ts
  38. 0 0
      src/service/studio.service.ts
  39. 0 0
      src/service/techoldemand.service.ts
  40. 0 0
      src/service/techolsupport.service.ts
  41. 0 0
      src/service/yearreport.service.ts

src/ecosystem.config.js → ecosystem.config.js


+ 0 - 0
src/controller/applyflair.controller.ts


+ 0 - 0
src/controller/contactoffice.controller.ts


+ 89 - 0
src/controller/message.controller.ts

@@ -0,0 +1,89 @@
+import {
+  Body,
+  Controller,
+  Del,
+  Get,
+  Inject,
+  Param,
+  Post,
+  Query,
+} from '@midwayjs/decorator';
+import { BaseController } from 'free-midway-component';
+import { MessageService } from '../service/message.service';
+import {
+  CDTO_message,
+  CVO_message,
+  FVO_message,
+  QDTO_message,
+  QVO_message,
+  UDTO_message,
+  UVAO_message,
+} from '../interface/message.interface';
+import { ApiResponse, ApiTags, ApiQuery } from '@midwayjs/swagger';
+import { Validate } from '@midwayjs/validate';
+@ApiTags(['系统消息'])
+@Controller('/message')
+export class MessageController extends BaseController {
+  @Inject()
+  service: MessageService;
+
+  @Post('/')
+  @Validate()
+  @ApiResponse({ type: CVO_message })
+  async create(@Body() data: CDTO_message) {
+    const dbData = await this.service.create(data);
+    const result = new CVO_message(dbData);
+    return result;
+  }
+  @Get('/')
+  @ApiQuery({ name: 'query' })
+  @ApiResponse({ type: QVO_message })
+  async query(
+    @Query() filter: QDTO_message,
+    @Query('skip') skip: number,
+    @Query('limit') limit: number
+  ) {
+    const list = await this.service.query(filter, { skip, limit });
+    const data = [];
+    for (const i of list) {
+      const newData = new QVO_message(i);
+      data.push(newData);
+    }
+    const total = await this.service.count(filter);
+    return { data, total };
+  }
+
+  @Get('/:id')
+  @ApiResponse({ type: FVO_message })
+  async fetch(@Param('id') id: string) {
+    const data = await this.service.fetch(id);
+    const result = new FVO_message(data);
+    return result;
+  }
+
+  @Post('/:id')
+  @Validate()
+  @ApiResponse({ type: UVAO_message })
+  async update(@Param('id') id: string, @Body() body: UDTO_message) {
+    const result = await this.service.updateOne(id, body);
+    return result;
+  }
+
+  @Del('/:id')
+  @Validate()
+  async delete(@Param('id') id: string) {
+    await this.service.delete(id);
+    return 'ok';
+  }
+  async createMany(...args: any[]) {
+    throw new Error('Method not implemented.');
+  }
+
+  async updateMany(...args: any[]) {
+    throw new Error('Method not implemented.');
+  }
+
+  async deleteMany(...args: any[]) {
+    throw new Error('Method not implemented.');
+  }
+}

+ 0 - 0
src/controller/notice.controller.ts


+ 0 - 0
src/controller/relevantdownload.controller.ts


+ 0 - 0
src/controller/scientistsettle.controller.ts


+ 0 - 0
src/controller/studio.controller.ts


+ 0 - 0
src/controller/techoldemand.controller.ts


+ 0 - 0
src/controller/techolsupport.controller.ts


+ 0 - 0
src/controller/yearreport.controller.ts


+ 0 - 0
src/entity/applyflair.entity.ts


+ 0 - 0
src/entity/contactoffice.entity.ts


+ 26 - 0
src/entity/message.entity.ts

@@ -0,0 +1,26 @@
+import { modelOptions, prop } from '@typegoose/typegoose';
+import { BaseModel } from 'free-midway-component';
+@modelOptions({
+  schemaOptions: { collection: 'message' },
+})
+export class Message extends BaseModel {
+  @prop({ required: false, index: true, zh: '绑定用户' })
+  user_id: string;
+  @prop({ required: false, index: true, zh: '标题' })
+  title: string;
+  @prop({ required: false, index: true, zh: '发送时间' })
+  send_time: string;
+  @prop({
+    required: false,
+    index: true,
+    zh: '接收人类型',
+    remark: '字典表:message_type',
+  })
+  type: string;
+  @prop({ required: false, index: false, zh: '接收人' })
+  user: Array<any>;
+  @prop({ required: false, index: false, zh: '信息文件' })
+  file: Array<any>;
+  @prop({ required: false, index: false, zh: '信息内容' })
+  content: string;
+}

+ 0 - 0
src/entity/notice.entity.ts


+ 0 - 0
src/entity/relevantdownload.entity.ts


+ 0 - 0
src/entity/scientistsettle.entity.ts


+ 0 - 0
src/entity/studio.entity.ts


+ 0 - 0
src/entity/techoldemand.entity.ts


+ 0 - 0
src/entity/techolsupport.entity.ts


+ 0 - 0
src/entity/yearreport.entity.ts


+ 0 - 0
src/interface/applyflair.interface.ts


+ 0 - 0
src/interface/contactoffice.interface.ts


+ 99 - 0
src/interface/message.interface.ts

@@ -0,0 +1,99 @@
+import { Rule, RuleType } from '@midwayjs/validate';
+import { ApiProperty } from '@midwayjs/swagger';
+import { SearchBase } from 'free-midway-component';
+import get = require('lodash/get');
+const dealVO = (cla, data) => {
+  for (const key in cla) {
+    const val = get(data, key);
+    if (val || val === 0) cla[key] = val;
+  }
+};
+export class FVO_message {
+  constructor(data: object) {
+    dealVO(this, data);
+  }
+  @ApiProperty({ description: '数据id' })
+  _id: string = undefined;
+  @ApiProperty({ description: '绑定用户' })
+  'user_id': string = undefined;
+  @ApiProperty({ description: '标题' })
+  'title': string = undefined;
+  @ApiProperty({ description: '发送时间' })
+  'send_time': string = undefined;
+  @ApiProperty({ description: '接收人类型' })
+  'type': string = undefined;
+  @ApiProperty({ description: '接收人' })
+  'user': Array<any> = undefined;
+  @ApiProperty({ description: '信息文件' })
+  'file': Array<any> = undefined;
+  @ApiProperty({ description: '信息内容' })
+  'content': string = undefined;
+}
+
+export class QDTO_message extends SearchBase {
+  constructor() {
+    const like_prop = [];
+    const props = ['user_id', 'title', 'send_time', 'type'];
+    const mapping = [];
+    super({ like_prop, props, mapping });
+  }
+  @ApiProperty({ description: '绑定用户' })
+  'user_id': string = undefined;
+  @ApiProperty({ description: '标题' })
+  'title': string = undefined;
+  @ApiProperty({ description: '发送时间' })
+  'send_time': string = undefined;
+  @ApiProperty({ description: '接收人类型' })
+  'type': string = undefined;
+}
+
+export class QVO_message extends FVO_message {
+  constructor(data: object) {
+    super(data);
+    dealVO(this, data);
+  }
+}
+
+export class CDTO_message {
+  @ApiProperty({ description: '绑定用户' })
+  @Rule(RuleType['string']().empty(''))
+  'user_id': string = undefined;
+  @ApiProperty({ description: '标题' })
+  @Rule(RuleType['string']().empty(''))
+  'title': string = undefined;
+  @ApiProperty({ description: '发送时间' })
+  @Rule(RuleType['string']().empty(''))
+  'send_time': string = undefined;
+  @ApiProperty({ description: '接收人类型' })
+  @Rule(RuleType['string']().empty(''))
+  'type': string = undefined;
+  @ApiProperty({ description: '接收人' })
+  @Rule(RuleType['array']().empty(''))
+  'user': Array<any> = undefined;
+  @ApiProperty({ description: '信息文件' })
+  @Rule(RuleType['array']().empty(''))
+  'file': Array<any> = undefined;
+  @ApiProperty({ description: '信息内容' })
+  @Rule(RuleType['string']().empty(''))
+  'content': string = undefined;
+}
+
+export class CVO_message extends FVO_message {
+  constructor(data: object) {
+    super(data);
+    dealVO(this, data);
+  }
+}
+
+export class UDTO_message extends CDTO_message {
+  @ApiProperty({ description: '数据id' })
+  @Rule(RuleType['string']().empty(''))
+  _id: string = undefined;
+}
+
+export class UVAO_message extends FVO_message {
+  constructor(data: object) {
+    super(data);
+    dealVO(this, data);
+  }
+}

+ 0 - 0
src/interface/notice.interface.ts


+ 0 - 0
src/interface/relevantdownload.interface.ts


+ 0 - 0
src/interface/scientistsettle.interface.ts


+ 0 - 0
src/interface/studio.interface.ts


+ 0 - 0
src/interface/techoldemand.interface.ts


+ 0 - 0
src/interface/techolsupport.interface.ts


+ 0 - 0
src/interface/yearreport.interface.ts


+ 0 - 0
src/service/applyflair.service.ts


+ 0 - 0
src/service/contactoffice.service.ts


+ 11 - 0
src/service/message.service.ts

@@ -0,0 +1,11 @@
+import { Provide } from '@midwayjs/decorator';
+import { InjectEntityModel } from '@midwayjs/typegoose';
+import { ReturnModelType } from '@typegoose/typegoose';
+import { BaseService } from 'free-midway-component';
+import { Message } from '../entity/message.entity';
+type modelType = ReturnModelType<typeof Message>;
+@Provide()
+export class MessageService extends BaseService<modelType> {
+  @InjectEntityModel(Message)
+  model: modelType;
+}

+ 0 - 0
src/service/notice.service.ts


+ 0 - 0
src/service/relevantdownload.service.ts


+ 0 - 0
src/service/scientistsettle.service.ts


+ 0 - 0
src/service/studio.service.ts


+ 0 - 0
src/service/techoldemand.service.ts


+ 0 - 0
src/service/techolsupport.service.ts


+ 0 - 0
src/service/yearreport.service.ts