订单页增加判断,非管理员只显示最近10天数据 #10

Merged
longbot merged 1 commits from longbot/API:Improvement-show-10-days-for-normal-permission into main 2025-08-25 10:19:15 +00:00
4 changed files with 48 additions and 3 deletions

View File

@ -68,11 +68,12 @@ export class OrderController {
@Get('/getOrders') @Get('/getOrders')
async getOrders( async getOrders(
@Query() @Query()
param: QueryOrderDTO param: QueryOrderDTO,
@User() user
) { ) {
try { try {
const count = await this.orderService.getOrderStatus(param); const count = await this.orderService.getOrderStatus(param);
const data = await this.orderService.getOrders(param); const data = await this.orderService.getOrders(param, user);
return successResponse({ return successResponse({
...data, ...data,
count, count,

View File

@ -546,7 +546,7 @@ export class OrderService {
current, current,
pageSize, pageSize,
customer_email, customer_email,
}) { }, user = undefined) {
const parameters: any[] = []; const parameters: any[] = [];
// 基础查询 // 基础查询
@ -629,6 +629,13 @@ export class OrderService {
totalQuery += ` AND o.date_created <= ?`; totalQuery += ` AND o.date_created <= ?`;
parameters.push(endDate); 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 参数 // 处理 status 参数
if (status) { if (status) {

View File

@ -70,6 +70,7 @@ export class UserService {
id: user.id, id: user.id,
deviceId, deviceId,
username: user.username, username: user.username,
isSuper: user.isSuper,
}); });
return { return {

View File

@ -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<T>(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<T>(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;
}