wangzhibo
2026-07-16 bac4362a0b7726d38a23d38f0d7913f2c2bab262
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import {
  CoolController,
  BaseController,
  CoolTag,
  CoolUrlTag,
  TagTypes,
} from '@cool-midway/core';
import { PluginInfoEntity } from '../../entity/info';
import { Body, Fields, Files, Inject, Post } from '@midwayjs/core';
import { PluginService } from '../../service/info';
 
/**
 * 插件信息
 */
@CoolUrlTag({
  key: TagTypes.IGNORE_TOKEN,
  value: [],
})
@CoolController({
  api: ['add', 'delete', 'update', 'info', 'list', 'page'],
  entity: PluginInfoEntity,
  service: PluginService,
  pageQueryOp: {
    select: [
      'a.id',
      'a.name',
      'a.keyName',
      'a.hook',
      'a.version',
      'a.status',
      'a.readme',
      'a.author',
      'a.logo',
      'a.description',
      'a.pluginJson',
      'a.config',
      'a.createTime',
      'a.updateTime',
    ],
    addOrderBy: {
      id: 'DESC',
    },
  },
})
export class AdminPluginInfoController extends BaseController {
  @Inject()
  pluginService: PluginService;
 
  @CoolTag(TagTypes.IGNORE_TOKEN)
  @Post('/install', { summary: '安装插件' })
  async install(@Files() files, @Fields() fields) {
    return this.ok(
      await this.pluginService.install(files[0].data, fields.force)
    );
  }
}