Преглед изворни кода

♻️ refactor(routes): 重构创建订单路由结构

- 将create-order.mt.ts移动到user目录下
- 使用createRoute API重构路由定义方式
- 调整订单路由的导出路径为user/create-order.mt.ts
- 在user/orders.mt.ts中整合创建订单路由
yourname пре 1 месец
родитељ
комит
966bc85c93

+ 0 - 63
packages/orders-module-mt/src/routes/create-order.mt.ts

@@ -1,63 +0,0 @@
-import { OpenAPIHono } from '@hono/zod-openapi';
-import { authMiddleware } from '@d8d/auth-module-mt';
-import { AppDataSource } from '@d8d/shared-utils';
-import { AuthContext } from '@d8d/shared-types';
-import { OrderMtService } from '../services';
-import { CreateOrderRequestDto, CreateOrderResponseDto } from '../schemas/create-order.schema';
-
-const createOrderRoutes = new OpenAPIHono<AuthContext>();
-
-// 应用认证中间件
-createOrderRoutes.use('*', authMiddleware);
-
-// 创建订单路由
-createOrderRoutes.openapi(
-  {
-    method: 'post',
-    path: '/',
-    request: {
-      body: {
-        content: {
-          'application/json': {
-            schema: CreateOrderRequestDto
-          }
-        }
-      }
-    },
-    responses: {
-      200: {
-        description: '订单创建成功',
-        content: {
-          'application/json': {
-            schema: CreateOrderResponseDto
-          }
-        }
-      },
-      400: {
-        description: '请求参数错误'
-      },
-      500: {
-        description: '服务器内部错误'
-      }
-    }
-  },
-  async (c) => {
-    const data = c.req.valid('json');
-    const user = c.get('user');
-
-    try {
-      const orderService = new OrderMtService(AppDataSource);
-      const result = await orderService.createOrder(data, user.id, user.tenantId);
-
-      return c.json(result, 201);
-    } catch (error) {
-      console.error('创建订单失败:', error);
-      return c.json(
-        { error: error instanceof Error ? error.message : '创建订单失败' },
-        500
-      );
-    }
-  }
-);
-
-export default createOrderRoutes;

+ 1 - 1
packages/orders-module-mt/src/routes/index.ts

@@ -7,4 +7,4 @@ export { default as userOrderRoutes } from './user/orders.mt';
 export { default as userOrderItemsRoutes } from './user/order-items.mt';
 export { default as userRefundsRoutes } from './user/refunds.mt';
 
-export { default as createOrderRoutes } from './create-order.mt';
+export { default as createOrderRoutes } from './user/create-order.mt';

+ 60 - 0
packages/orders-module-mt/src/routes/user/create-order.mt.ts

@@ -0,0 +1,60 @@
+import { createRoute, OpenAPIHono } from '@hono/zod-openapi';
+import { authMiddleware } from '@d8d/auth-module-mt';
+import { AppDataSource } from '@d8d/shared-utils';
+import { AuthContext } from '@d8d/shared-types';
+import { OrderMtService } from '../../services';
+import { CreateOrderRequestDto, CreateOrderResponseDto } from '../../schemas/create-order.schema';
+
+const createOrderRoute = createRoute({
+  method: 'post',
+  path: '/create-order',
+  middleware: [authMiddleware],
+  request: {
+    body: {
+      content: {
+        'application/json': {
+          schema: CreateOrderRequestDto
+        }
+      }
+    }
+  },
+  responses: {
+    200: {
+      description: '订单创建成功',
+      content: {
+        'application/json': {
+          schema: CreateOrderResponseDto
+        }
+      }
+    },
+    400: {
+      description: '请求参数错误'
+    },
+    500: {
+      description: '服务器内部错误'
+    }
+  }
+})
+
+const createOrderRoutes = new OpenAPIHono<AuthContext>()
+  // 创建订单路由
+  .openapi( createOrderRoute, async (c) => {
+      const data = c.req.valid('json');
+      const user = c.get('user');
+
+      try {
+        const orderService = new OrderMtService(AppDataSource);
+        const result = await orderService.createOrder(data, user.id, user.tenantId);
+
+        return c.json(result, 201);
+      } catch (error) {
+        console.error('创建订单失败:', error);
+        return c.json(
+          { error: error instanceof Error ? error.message : '创建订单失败' },
+          500
+        );
+      }
+    }
+  );
+
+export default createOrderRoutes;

+ 7 - 2
packages/orders-module-mt/src/routes/user/orders.mt.ts

@@ -3,9 +3,11 @@ import { OrderMt } from '../../entities/order.mt.entity';
 import { OrderSchema, OrderListSchema } from '../../schemas/order.mt.schema';
 import { UserCreateOrderDto, UserUpdateOrderDto } from '../../schemas/user-order.mt.schema';
 import { authMiddleware } from '@d8d/auth-module-mt';
+import { OpenAPIHono } from '@hono/zod-openapi';
+import createOrderRoutes from './create-order.mt';
 
 // 多租户用户订单路由 - 有数据权限限制,只能访问自己的订单
-const userOrderRoutes = createCrudRoutes({
+const userOrderCrudRoutes = createCrudRoutes({
   entity: OrderMt,
   createSchema: UserCreateOrderDto,
   updateSchema: UserUpdateOrderDto,
@@ -27,5 +29,8 @@ const userOrderRoutes = createCrudRoutes({
     tenantIdField: 'tenantId'
   }
 });
-
+const userOrderRoutes = new OpenAPIHono()
+  .route('/', createOrderRoutes)
+  .route('/', userOrderCrudRoutes)
+  
 export default userOrderRoutes;