diff --git a/src/controller/order.controller.ts b/src/controller/order.controller.ts index de1b010..d87082b 100644 --- a/src/controller/order.controller.ts +++ b/src/controller/order.controller.ts @@ -68,11 +68,12 @@ export class OrderController { @Get('/getOrders') async getOrders( @Query() - param: QueryOrderDTO + param: QueryOrderDTO, + @User() user ) { try { const count = await this.orderService.getOrderStatus(param); - const data = await this.orderService.getOrders(param); + const data = await this.orderService.getOrders(param, user); return successResponse({ ...data, count, diff --git a/src/service/order.service.ts b/src/service/order.service.ts index 34bfc1d..1f40fcf 100644 --- a/src/service/order.service.ts +++ b/src/service/order.service.ts @@ -546,7 +546,7 @@ export class OrderService { current, pageSize, customer_email, - }) { + }, user = undefined) { const parameters: any[] = []; // 基础查询 @@ -629,6 +629,13 @@ export class OrderService { totalQuery += ` AND o.date_created <= ?`; parameters.push(endDate); } + if (!user.isSuper) { + sqlQuery += ` AND o.date_created >= ?`; + totalQuery += ` AND o.date_created >= ?`; + const tenDaysAgo = new Date(); + tenDaysAgo.setDate(tenDaysAgo.getDate() - 10); + parameters.push(new Date(tenDaysAgo).toISOString().substring(0, 10)); + } // 处理 status 参数 if (status) { diff --git a/src/service/user.service.ts b/src/service/user.service.ts index 4943e9a..dede862 100644 --- a/src/service/user.service.ts +++ b/src/service/user.service.ts @@ -70,6 +70,7 @@ export class UserService { id: user.id, deviceId, username: user.username, + isSuper: user.isSuper, }); return { diff --git a/src/utils/object-transform.util.ts b/src/utils/object-transform.util.ts new file mode 100644 index 0000000..cc84cb3 --- /dev/null +++ b/src/utils/object-transform.util.ts @@ -0,0 +1,36 @@ +function camelToSnake(str: string): string { + return str.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`); +} + +function snakeToCamel(str: string): string { + return str.replace(/(_[\w])/g, (match) => + match[1].toUpperCase() + ); +} + +export function convertKeysFromSnakeToCamel(obj: T): T { + if (Array.isArray(obj)) { + return obj.map(convertKeysFromSnakeToCamel) as unknown as T; + } else if (obj !== null && typeof obj === 'object') { + return Object.keys(obj).reduce((acc, key) => { + const newKey = snakeToCamel(key); + acc[newKey] = convertKeysFromSnakeToCamel((obj as any)[key]); + return acc; + }, {} as any); + } + return obj; +} + + +export function convertKeysFromCamelToSnake(obj: T): T { + if (Array.isArray(obj)) { + return obj.map(convertKeysFromCamelToSnake) as unknown as T; + } else if (obj !== null && typeof obj === 'object') { + return Object.keys(obj).reduce((acc, key) => { + const newKey = camelToSnake(key); + acc[newKey] = convertKeysFromCamelToSnake((obj as any)[key]); + return acc; + }, {} as any); + } + return obj; +}