154 lines
4.2 KiB
TypeScript
154 lines
4.2 KiB
TypeScript
|
|
import { Controller, Get, Post, Body, UseGuards, Req } from '@nestjs/common';
|
||
|
|
import { ApiTags, ApiOperation, ApiResponse } from '@nestjs/swagger';
|
||
|
|
import type { Request } from 'express';
|
||
|
|
import { JwtAuthGuard } from '../../../auth/guards/JwtAuthGuard';
|
||
|
|
import { RolesGuard } from '../../../auth/guards/RolesGuard';
|
||
|
|
import { Roles } from '../../../auth/decorators/RolesDecorator';
|
||
|
|
import { ConfigService } from '../../services/admin/ConfigService';
|
||
|
|
import {
|
||
|
|
CopyrightDto,
|
||
|
|
WebSiteDto,
|
||
|
|
SceneDomainDto,
|
||
|
|
ServiceDto,
|
||
|
|
} from '../../dto/ConfigDto';
|
||
|
|
|
||
|
|
interface AuthenticatedRequest extends Request {
|
||
|
|
user?: {
|
||
|
|
uid: number;
|
||
|
|
username: string;
|
||
|
|
siteId: number;
|
||
|
|
userType: string;
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 系统配置控制器 - 管理端
|
||
|
|
* 路由前缀: /adminapi/sys/config
|
||
|
|
*/
|
||
|
|
@ApiTags('系统配置管理')
|
||
|
|
@Controller('adminapi/sys/config')
|
||
|
|
@UseGuards(JwtAuthGuard, RolesGuard)
|
||
|
|
@Roles('admin')
|
||
|
|
export class ConfigController {
|
||
|
|
constructor(private readonly configService: ConfigService) {}
|
||
|
|
|
||
|
|
@Get('copyright')
|
||
|
|
@ApiOperation({ summary: '获取版权信息' })
|
||
|
|
@ApiResponse({ status: 200, description: '获取成功' })
|
||
|
|
async getCopyright(@Req() req: AuthenticatedRequest) {
|
||
|
|
const siteId = req.user?.siteId || 0;
|
||
|
|
const data = await this.configService.getCopyright(siteId);
|
||
|
|
return {
|
||
|
|
code: 200,
|
||
|
|
message: '获取成功',
|
||
|
|
data,
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
@Post('copyright')
|
||
|
|
@ApiOperation({ summary: '设置版权信息' })
|
||
|
|
@ApiResponse({ status: 200, description: '设置成功' })
|
||
|
|
async setCopyright(
|
||
|
|
@Body() copyrightDto: CopyrightDto,
|
||
|
|
@Req() req: AuthenticatedRequest,
|
||
|
|
) {
|
||
|
|
const siteId = req.user?.siteId || 0;
|
||
|
|
const result = await this.configService.setCopyright(siteId, copyrightDto);
|
||
|
|
return {
|
||
|
|
code: 200,
|
||
|
|
message: '设置成功',
|
||
|
|
data: result,
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
@Get('website')
|
||
|
|
@ApiOperation({ summary: '获取网站信息' })
|
||
|
|
@ApiResponse({ status: 200, description: '获取成功' })
|
||
|
|
async getWebSite(@Req() req: AuthenticatedRequest) {
|
||
|
|
const siteId = req.user?.siteId || 0;
|
||
|
|
const data = await this.configService.getWebSite(siteId);
|
||
|
|
return {
|
||
|
|
code: 200,
|
||
|
|
message: '获取成功',
|
||
|
|
data,
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
@Post('website')
|
||
|
|
@ApiOperation({ summary: '设置网站信息' })
|
||
|
|
@ApiResponse({ status: 200, description: '设置成功' })
|
||
|
|
async setWebSite(
|
||
|
|
@Body() websiteDto: WebSiteDto,
|
||
|
|
@Req() req: AuthenticatedRequest,
|
||
|
|
) {
|
||
|
|
const siteId = req.user?.siteId || 0;
|
||
|
|
const result = await this.configService.setWebSite(siteId, websiteDto);
|
||
|
|
return {
|
||
|
|
code: 200,
|
||
|
|
message: '设置成功',
|
||
|
|
data: result,
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
@Get('scene-domain')
|
||
|
|
@ApiOperation({ summary: '获取场景域名配置' })
|
||
|
|
@ApiResponse({ status: 200, description: '获取成功' })
|
||
|
|
async getSceneDomain(@Req() req: AuthenticatedRequest) {
|
||
|
|
const siteId = req.user?.siteId || 0;
|
||
|
|
const data = await this.configService.getSceneDomain(siteId);
|
||
|
|
return {
|
||
|
|
code: 200,
|
||
|
|
message: '获取成功',
|
||
|
|
data,
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
@Post('scene-domain')
|
||
|
|
@ApiOperation({ summary: '设置场景域名配置' })
|
||
|
|
@ApiResponse({ status: 200, description: '设置成功' })
|
||
|
|
async setSceneDomain(
|
||
|
|
@Body() sceneDomainDto: SceneDomainDto,
|
||
|
|
@Req() req: AuthenticatedRequest,
|
||
|
|
) {
|
||
|
|
const siteId = req.user?.siteId || 0;
|
||
|
|
const result = await this.configService.setSceneDomain(
|
||
|
|
siteId,
|
||
|
|
sceneDomainDto,
|
||
|
|
);
|
||
|
|
return {
|
||
|
|
code: 200,
|
||
|
|
message: '设置成功',
|
||
|
|
data: result,
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
@Get('service')
|
||
|
|
@ApiOperation({ summary: '获取服务配置' })
|
||
|
|
@ApiResponse({ status: 200, description: '获取成功' })
|
||
|
|
async getService(@Req() req: AuthenticatedRequest) {
|
||
|
|
const siteId = req.user?.siteId || 0;
|
||
|
|
const data = await this.configService.getService(siteId);
|
||
|
|
return {
|
||
|
|
code: 200,
|
||
|
|
message: '获取成功',
|
||
|
|
data,
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
@Post('service')
|
||
|
|
@ApiOperation({ summary: '设置服务配置' })
|
||
|
|
@ApiResponse({ status: 200, description: '设置成功' })
|
||
|
|
async setService(
|
||
|
|
@Body() serviceDto: ServiceDto,
|
||
|
|
@Req() req: AuthenticatedRequest,
|
||
|
|
) {
|
||
|
|
const siteId = req.user?.siteId || 0;
|
||
|
|
const result = await this.configService.setService(siteId, serviceDto);
|
||
|
|
return {
|
||
|
|
code: 200,
|
||
|
|
message: '设置成功',
|
||
|
|
data: result,
|
||
|
|
};
|
||
|
|
}
|
||
|
|
}
|