77 lines
2.3 KiB
TypeScript
77 lines
2.3 KiB
TypeScript
import { Body, Controller, Get, Inject, Param, Put, Post, Query } from '@midwayjs/core';
|
|
import { ApiOkResponse } from '@midwayjs/swagger';
|
|
import { SitesResponse } from '../dto/reponse.dto';
|
|
import { errorResponse, successResponse } from '../utils/response.util';
|
|
import { SiteService } from '../service/site.service';
|
|
import { CreateSiteDTO, DisableSiteDTO, QuerySiteDTO, UpdateSiteDTO } from '../dto/site.dto';
|
|
|
|
@Controller('/site')
|
|
export class SiteController {
|
|
@Inject()
|
|
siteService: SiteService;
|
|
|
|
@ApiOkResponse({ description: '关联网站', type: SitesResponse })
|
|
@Get('/all')
|
|
async all() {
|
|
try {
|
|
const { items } = await this.siteService.list({ current: 1, pageSize: 1000, isDisabled: false });
|
|
// 返回完整的站点对象,包括 skuPrefix 等字段
|
|
return successResponse(items);
|
|
} catch (error) {
|
|
return errorResponse(error?.message || '获取失败');
|
|
}
|
|
}
|
|
|
|
@Post('/create')
|
|
async create(@Body() body: CreateSiteDTO) {
|
|
try {
|
|
await this.siteService.create(body);
|
|
return successResponse(true);
|
|
} catch (error) {
|
|
return errorResponse(error?.message || '创建失败');
|
|
}
|
|
}
|
|
|
|
@Put('/update/:id')
|
|
async update(@Param('id') id: string, @Body() body: UpdateSiteDTO) {
|
|
try {
|
|
await this.siteService.update(Number(id), body);
|
|
return successResponse(true);
|
|
} catch (error) {
|
|
return errorResponse(error?.message || '更新失败');
|
|
}
|
|
}
|
|
|
|
@Get('/get/:id')
|
|
async get(@Param('id') id: string) {
|
|
try {
|
|
const data = await this.siteService.get(Number(id), false);
|
|
return successResponse(data);
|
|
} catch (error) {
|
|
return errorResponse(error?.message || '获取失败');
|
|
}
|
|
}
|
|
|
|
@Get('/list')
|
|
async list(@Query() query: QuerySiteDTO) {
|
|
try {
|
|
const data = await this.siteService.list(query, false);
|
|
return successResponse(data);
|
|
} catch (error) {
|
|
return errorResponse(error?.message || '获取失败');
|
|
}
|
|
}
|
|
|
|
// 批量查询改为使用 /site/list?ids=1,2,3
|
|
|
|
@Put('/disable/:id')
|
|
async disable(@Param('id') id: string, @Body() body: DisableSiteDTO) {
|
|
try {
|
|
await this.siteService.disable(Number(id), body.disabled);
|
|
return successResponse(true);
|
|
} catch (error) {
|
|
return errorResponse(error?.message || '更新失败');
|
|
}
|
|
}
|
|
}
|