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 || '更新失败'); } } }