feat: 初始化项目结构并添加核心功能模块
- 新增文档模板和导航结构 - 实现服务器基础API路由和控制器 - 添加扩展插件配置和前端框架 - 引入多租户和权限管理模块 - 集成日志和数据库配置 - 添加核心业务模型和类型定义
This commit is contained in:
63
server/src/api/controllers/PublishController.ts
Normal file
63
server/src/api/controllers/PublishController.ts
Normal file
@@ -0,0 +1,63 @@
|
||||
import { NextFunction, Request, Response } from 'express';
|
||||
import { z } from 'zod';
|
||||
import { PublishService } from '../../services/PublishService';
|
||||
import { logger } from '../../utils/logger';
|
||||
|
||||
export class PublishController {
|
||||
/**
|
||||
* [CORE_INT_03] 提交商品发布请求
|
||||
*/
|
||||
static async publish(req: Request, res: Response, next: NextFunction) {
|
||||
try {
|
||||
const schema = z.object({
|
||||
productId: z.string(),
|
||||
shopId: z.string(),
|
||||
platform: z.string(),
|
||||
productData: z.object({
|
||||
externalId: z.string(),
|
||||
title: z.string(),
|
||||
description: z.string(),
|
||||
price: z.number(),
|
||||
currency: z.string(),
|
||||
images: z.array(z.string()),
|
||||
skus: z.array(z.any())
|
||||
})
|
||||
});
|
||||
|
||||
const { productId, shopId, platform, productData } = schema.parse(req.body);
|
||||
const { tenantId, traceId } = (req as any).traceContext;
|
||||
|
||||
const taskId = await PublishService.submitPublishTask({
|
||||
tenantId,
|
||||
shopId,
|
||||
productId,
|
||||
platform,
|
||||
productData,
|
||||
traceId
|
||||
});
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
data: { taskId }
|
||||
});
|
||||
} catch (err: any) {
|
||||
if (err instanceof z.ZodError) {
|
||||
return res.status(400).json({ success: false, error: err.issues[0].message });
|
||||
}
|
||||
next(err);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* [CORE_NODE_03] 接收 Node Agent 的执行回执
|
||||
*/
|
||||
static async reportReceipt(req: Request, res: Response, next: NextFunction) {
|
||||
try {
|
||||
const receipt = req.body;
|
||||
await PublishService.handleNodeReceipt(receipt);
|
||||
res.json({ success: true });
|
||||
} catch (err: any) {
|
||||
next(err);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user