user.controller.ts 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import {
  2. Body,
  3. Controller,
  4. Del,
  5. Inject,
  6. Param,
  7. Post,
  8. Query,
  9. } from '@midwayjs/decorator';
  10. import { BaseController } from 'free-midway-component';
  11. import { UserService } from '../service/user.service';
  12. import {
  13. CDTO_user,
  14. CVO_user,
  15. FVO_user,
  16. QDTO_user,
  17. QVO_user,
  18. UDTO_user,
  19. UVAO_user,
  20. } from '../interface/user.interface';
  21. import { ApiResponse, ApiTags, ApiQuery } from '@midwayjs/swagger';
  22. import { Validate } from '@midwayjs/validate';
  23. @ApiTags(['用户'])
  24. @Controller('/user')
  25. export class UserController extends BaseController {
  26. @Inject()
  27. service: UserService;
  28. @Post('/')
  29. @Validate()
  30. @ApiResponse({ type: CVO_user })
  31. async create(@Body() data: CDTO_user) {
  32. await this.service.findOrCreate(data.openid);
  33. return 'ok';
  34. }
  35. @ApiQuery({ name: 'query' })
  36. @ApiResponse({ type: QVO_user })
  37. async query(
  38. @Query() filter: QDTO_user,
  39. @Query('skip') skip: number,
  40. @Query('limit') limit: number
  41. ) {
  42. const list = await this.service.query(filter, { skip, limit });
  43. const data = [];
  44. for (const i of list) {
  45. const newData = new QVO_user(i);
  46. data.push(newData);
  47. }
  48. const total = await this.service.count(filter);
  49. return { data, total };
  50. }
  51. @ApiResponse({ type: FVO_user })
  52. async fetch(@Param('id') id: string) {
  53. const data = await this.service.fetch(id);
  54. const result = new FVO_user(data);
  55. return result;
  56. }
  57. @Validate()
  58. @ApiResponse({ type: UVAO_user })
  59. async update(@Param('id') id: string, @Body() body: UDTO_user) {
  60. const result = await this.service.updateOne(id, body);
  61. return result;
  62. }
  63. @Del('/:id')
  64. @Validate()
  65. async delete(@Param('id') id: string) {
  66. await this.service.delete(id);
  67. return 'ok';
  68. }
  69. async createMany(...args: any[]) {
  70. throw new Error('Method not implemented.');
  71. }
  72. async updateMany(...args: any[]) {
  73. throw new Error('Method not implemented.');
  74. }
  75. async deleteMany(...args: any[]) {
  76. throw new Error('Method not implemented.');
  77. }
  78. }