- 修复所有 site_id 默认值 0 的安全漏洞,强制从认证载荷获取 - 统一响应格式,移除手动包装,交由全局拦截器处理 - 为所有管理端控制器添加 @Roles 注解进行权限控制 - 移除 PayTemplate 相关代码,对齐 PHP 数据库结构 - 修复依赖注入和模块导入问题 - 解决路由冲突和编译错误 - 完善实体定义和字段对齐 安全修复: - 修复 412 个文件中的 site_id 默认值问题 - 统一 33 个文件的响应格式 - 添加所有管理端控制器的角色权限控制 技术改进: - 解决 TypeScript 编译错误 - 修复 NestJS 依赖注入问题 - 统一代码规范和最佳实践 - 与 PHP 业务逻辑 100% 对齐
104 lines
2.3 KiB
TypeScript
104 lines
2.3 KiB
TypeScript
import {
|
|
Controller,
|
|
Get,
|
|
Post,
|
|
Put,
|
|
Delete,
|
|
Body,
|
|
Param,
|
|
Query,
|
|
UseGuards,
|
|
} from '@nestjs/common';
|
|
import { JwtAuthGuard } from '../../../auth/guards/JwtAuthGuard';
|
|
import { RolesGuard } from '../../../auth/guards/RolesGuard';
|
|
import { Roles } from '../../../auth/decorators/RolesDecorator';
|
|
import { AddonDevelopService } from '../../services/admin/AddonDevelopService';
|
|
|
|
@Controller('adminapi/addon/develop')
|
|
@UseGuards(JwtAuthGuard, RolesGuard)
|
|
@Roles('admin')
|
|
export class AddonDevelopController {
|
|
constructor(private readonly addonDevelopService: AddonDevelopService) {}
|
|
|
|
/**
|
|
* 开发插件列表
|
|
*/
|
|
@Get('lists')
|
|
async lists(@Query() query: any) {
|
|
return this.addonDevelopService.getPage(query);
|
|
}
|
|
|
|
/**
|
|
* 开发插件信息
|
|
*/
|
|
@Get('info/:addon_id')
|
|
async info(@Param('addon_id') addon_id: string) {
|
|
return this.addonDevelopService.getInfo(parseInt(addon_id));
|
|
}
|
|
|
|
/**
|
|
* 创建开发插件
|
|
*/
|
|
@Post('create')
|
|
async create(@Body() data: {
|
|
addon_name: string;
|
|
addon_key: string;
|
|
addon_desc?: string;
|
|
addon_version?: string;
|
|
addon_author?: string;
|
|
addon_config?: any;
|
|
}) {
|
|
return this.addonDevelopService.create(data);
|
|
}
|
|
|
|
/**
|
|
* 编辑开发插件
|
|
*/
|
|
@Put('edit/:addon_id')
|
|
async edit(
|
|
@Param('addon_id') addon_id: string,
|
|
@Body() data: {
|
|
addon_name?: string;
|
|
addon_key?: string;
|
|
addon_desc?: string;
|
|
addon_version?: string;
|
|
addon_author?: string;
|
|
addon_config?: any;
|
|
},
|
|
) {
|
|
return this.addonDevelopService.edit(parseInt(addon_id), data);
|
|
}
|
|
|
|
/**
|
|
* 删除开发插件
|
|
*/
|
|
@Delete('delete/:addon_id')
|
|
async delete(@Param('addon_id') addon_id: string) {
|
|
return this.addonDevelopService.delete(parseInt(addon_id));
|
|
}
|
|
|
|
/**
|
|
* 构建插件
|
|
*/
|
|
@Post('build/:addon_id')
|
|
async build(@Param('addon_id') addon_id: string) {
|
|
return this.addonDevelopService.build(parseInt(addon_id));
|
|
}
|
|
|
|
/**
|
|
* 下载插件
|
|
*/
|
|
@Get('download/:addon_id')
|
|
async download(@Param('addon_id') addon_id: string) {
|
|
return this.addonDevelopService.download(parseInt(addon_id));
|
|
}
|
|
|
|
/**
|
|
* 获取插件模板
|
|
*/
|
|
@Get('templates')
|
|
async getTemplates() {
|
|
return this.addonDevelopService.getTemplates();
|
|
}
|
|
}
|