user.controller.ts 2.0 KB

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