localsbnb-mcp-server 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -0
- package/dist/auth/apiKeyManager.d.ts +61 -0
- package/dist/auth/apiKeyManager.d.ts.map +1 -0
- package/dist/auth/apiKeyManager.js +121 -0
- package/dist/auth/apiKeyManager.js.map +1 -0
- package/dist/auth/index.d.ts +3 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +3 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/permissionChecker.d.ts +10 -0
- package/dist/auth/permissionChecker.d.ts.map +1 -0
- package/dist/auth/permissionChecker.js +45 -0
- package/dist/auth/permissionChecker.js.map +1 -0
- package/dist/client/cacheManager.d.ts +24 -0
- package/dist/client/cacheManager.d.ts.map +1 -0
- package/dist/client/cacheManager.js +64 -0
- package/dist/client/cacheManager.js.map +1 -0
- package/dist/client/httpClient.d.ts +12 -0
- package/dist/client/httpClient.d.ts.map +1 -0
- package/dist/client/httpClient.js +121 -0
- package/dist/client/httpClient.js.map +1 -0
- package/dist/client/index.d.ts +4 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +4 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/retryHandler.d.ts +18 -0
- package/dist/client/retryHandler.d.ts.map +1 -0
- package/dist/client/retryHandler.js +68 -0
- package/dist/client/retryHandler.js.map +1 -0
- package/dist/config/index.d.ts +24 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +39 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/tools.d.ts +7 -0
- package/dist/config/tools.d.ts.map +1 -0
- package/dist/config/tools.js +159 -0
- package/dist/config/tools.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/logs/combined.log +30 -0
- package/dist/logs/error.log +0 -0
- package/dist/package.json +64 -0
- package/dist/run.cjs +19 -0
- package/dist/run.sh +3 -0
- package/dist/server.d.ts +26 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +129 -0
- package/dist/server.js.map +1 -0
- package/dist/start.mjs +34 -0
- package/dist/tools/channels/getChannelDetails.d.ts +3 -0
- package/dist/tools/channels/getChannelDetails.d.ts.map +1 -0
- package/dist/tools/channels/getChannelDetails.js +30 -0
- package/dist/tools/channels/getChannelDetails.js.map +1 -0
- package/dist/tools/channels/index.d.ts +1 -0
- package/dist/tools/channels/index.d.ts.map +1 -0
- package/dist/tools/channels/index.js +6 -0
- package/dist/tools/channels/index.js.map +1 -0
- package/dist/tools/channels/listChannels.d.ts +3 -0
- package/dist/tools/channels/listChannels.d.ts.map +1 -0
- package/dist/tools/channels/listChannels.js +29 -0
- package/dist/tools/channels/listChannels.js.map +1 -0
- package/dist/tools/finance/analyzeRevenue.d.ts +3 -0
- package/dist/tools/finance/analyzeRevenue.d.ts.map +1 -0
- package/dist/tools/finance/analyzeRevenue.js +30 -0
- package/dist/tools/finance/analyzeRevenue.js.map +1 -0
- package/dist/tools/finance/index.d.ts +2 -0
- package/dist/tools/finance/index.d.ts.map +1 -0
- package/dist/tools/finance/index.js +8 -0
- package/dist/tools/finance/index.js.map +1 -0
- package/dist/tools/finance/queryFinancialData.d.ts +3 -0
- package/dist/tools/finance/queryFinancialData.d.ts.map +1 -0
- package/dist/tools/finance/queryFinancialData.js +30 -0
- package/dist/tools/finance/queryFinancialData.js.map +1 -0
- package/dist/tools/finance/queryOperationalData.d.ts +3 -0
- package/dist/tools/finance/queryOperationalData.d.ts.map +1 -0
- package/dist/tools/finance/queryOperationalData.js +30 -0
- package/dist/tools/finance/queryOperationalData.js.map +1 -0
- package/dist/tools/finance/queryOperationalDataV2.d.ts +3 -0
- package/dist/tools/finance/queryOperationalDataV2.d.ts.map +1 -0
- package/dist/tools/finance/queryOperationalDataV2.js +125 -0
- package/dist/tools/finance/queryOperationalDataV2.js.map +1 -0
- package/dist/tools/orders/cancelOrder.d.ts +3 -0
- package/dist/tools/orders/cancelOrder.d.ts.map +1 -0
- package/dist/tools/orders/cancelOrder.js +27 -0
- package/dist/tools/orders/cancelOrder.js.map +1 -0
- package/dist/tools/orders/getOrderDetails.d.ts +3 -0
- package/dist/tools/orders/getOrderDetails.d.ts.map +1 -0
- package/dist/tools/orders/getOrderDetails.js +23 -0
- package/dist/tools/orders/getOrderDetails.js.map +1 -0
- package/dist/tools/orders/getOrderDetailsV2.d.ts +3 -0
- package/dist/tools/orders/getOrderDetailsV2.d.ts.map +1 -0
- package/dist/tools/orders/getOrderDetailsV2.js +48 -0
- package/dist/tools/orders/getOrderDetailsV2.js.map +1 -0
- package/dist/tools/orders/index.d.ts +3 -0
- package/dist/tools/orders/index.d.ts.map +1 -0
- package/dist/tools/orders/index.js +12 -0
- package/dist/tools/orders/index.js.map +1 -0
- package/dist/tools/orders/queryOrders.d.ts +3 -0
- package/dist/tools/orders/queryOrders.d.ts.map +1 -0
- package/dist/tools/orders/queryOrders.js +37 -0
- package/dist/tools/orders/queryOrders.js.map +1 -0
- package/dist/tools/orders/queryTodayOrders.d.ts +3 -0
- package/dist/tools/orders/queryTodayOrders.d.ts.map +1 -0
- package/dist/tools/orders/queryTodayOrders.js +159 -0
- package/dist/tools/orders/queryTodayOrders.js.map +1 -0
- package/dist/tools/rooms/batchUpdatePrices.d.ts +3 -0
- package/dist/tools/rooms/batchUpdatePrices.d.ts.map +1 -0
- package/dist/tools/rooms/batchUpdatePrices.js +40 -0
- package/dist/tools/rooms/batchUpdatePrices.js.map +1 -0
- package/dist/tools/rooms/index.d.ts +6 -0
- package/dist/tools/rooms/index.d.ts.map +1 -0
- package/dist/tools/rooms/index.js +7 -0
- package/dist/tools/rooms/index.js.map +1 -0
- package/dist/tools/rooms/queryRoomPrices.d.ts +3 -0
- package/dist/tools/rooms/queryRoomPrices.d.ts.map +1 -0
- package/dist/tools/rooms/queryRoomPrices.js +66 -0
- package/dist/tools/rooms/queryRoomPrices.js.map +1 -0
- package/dist/tools/rooms/queryRoomStatusNew.d.ts +28 -0
- package/dist/tools/rooms/queryRoomStatusNew.d.ts.map +1 -0
- package/dist/tools/rooms/queryRoomStatusNew.js +66 -0
- package/dist/tools/rooms/queryRoomStatusNew.js.map +1 -0
- package/dist/tools/rooms/queryTodayRoomStatus.d.ts +3 -0
- package/dist/tools/rooms/queryTodayRoomStatus.d.ts.map +1 -0
- package/dist/tools/rooms/queryTodayRoomStatus.js +72 -0
- package/dist/tools/rooms/queryTodayRoomStatus.js.map +1 -0
- package/dist/tools/rooms/updateRoomPrice.d.ts +3 -0
- package/dist/tools/rooms/updateRoomPrice.d.ts.map +1 -0
- package/dist/tools/rooms/updateRoomPrice.js +39 -0
- package/dist/tools/rooms/updateRoomPrice.js.map +1 -0
- package/dist/types/api.d.ts +122 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +3 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/mcp.d.ts +41 -0
- package/dist/types/mcp.d.ts.map +1 -0
- package/dist/types/mcp.js +2 -0
- package/dist/types/mcp.js.map +1 -0
- package/dist/types/tools.d.ts +93 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/types/tools.js +2 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/utils/desensitize.d.ts +32 -0
- package/dist/utils/desensitize.d.ts.map +1 -0
- package/dist/utils/desensitize.js +100 -0
- package/dist/utils/desensitize.js.map +1 -0
- package/dist/utils/errorHandler.d.ts +21 -0
- package/dist/utils/errorHandler.d.ts.map +1 -0
- package/dist/utils/errorHandler.js +137 -0
- package/dist/utils/errorHandler.js.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +5 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +4 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +37 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/validator.d.ts +273 -0
- package/dist/utils/validator.d.ts.map +1 -0
- package/dist/utils/validator.js +153 -0
- package/dist/utils/validator.js.map +1 -0
- package/mcp.sample.json +12 -0
- package/package.json +64 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { validateGetOrderDetailsParams } from '../../utils/validator.js';
|
|
2
|
+
import { handleError, createSuccessResult } from '../../utils/errorHandler.js';
|
|
3
|
+
export const getOrderDetailsHandler = async (args, context) => {
|
|
4
|
+
try {
|
|
5
|
+
const { apiClient, logger, permissionChecker } = context;
|
|
6
|
+
// 权限检查
|
|
7
|
+
permissionChecker.checkPermission('get_order_details', ['orders:read']);
|
|
8
|
+
// 参数验证
|
|
9
|
+
const params = validateGetOrderDetailsParams(args);
|
|
10
|
+
logger.info('Getting order details', { orderId: params.orderId });
|
|
11
|
+
// 调用API
|
|
12
|
+
const response = await apiClient.request({
|
|
13
|
+
method: 'GET',
|
|
14
|
+
url: `/api/v1/orders/${params.orderId}`,
|
|
15
|
+
});
|
|
16
|
+
logger.info('Order details retrieved', { orderId: params.orderId });
|
|
17
|
+
return createSuccessResult(response.data);
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
return handleError(error);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=getOrderDetails.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getOrderDetails.js","sourceRoot":"","sources":["../../../src/tools/orders/getOrderDetails.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAG/E,MAAM,CAAC,MAAM,sBAAsB,GAAgB,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IACzE,IAAI,CAAC;QACH,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;QAEzD,OAAO;QACP,iBAAiB,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;QAExE,OAAO;QACP,MAAM,MAAM,GAAG,6BAA6B,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAElE,QAAQ;QACR,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,CAA6B;YACnE,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,kBAAkB,MAAM,CAAC,OAAO,EAAE;SACxC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAEpE,OAAO,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getOrderDetailsV2.d.ts","sourceRoot":"","sources":["../../../src/tools/orders/getOrderDetailsV2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA0JtD,eAAO,MAAM,wBAAwB,EAAE,WA8CtC,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { handleError, createSuccessResult } from '../../utils/errorHandler.js';
|
|
2
|
+
import { desensitizeOrderDetail } from '../../utils/desensitize.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
// 参数验证Schema
|
|
5
|
+
const getOrderDetailsV2Schema = z.object({
|
|
6
|
+
orderId: z.union([z.string(), z.number()]).transform((val) => String(val)),
|
|
7
|
+
});
|
|
8
|
+
export const getOrderDetailsV2Handler = async (args, context) => {
|
|
9
|
+
try {
|
|
10
|
+
const { apiClient, logger, permissionChecker } = context;
|
|
11
|
+
// 权限检查
|
|
12
|
+
permissionChecker.checkPermission('get_order_details_v2', ['orders:read']);
|
|
13
|
+
// 参数验证
|
|
14
|
+
const validatedParams = getOrderDetailsV2Schema.parse(args);
|
|
15
|
+
logger.info('Getting order details (v2)', { orderId: validatedParams.orderId });
|
|
16
|
+
// 从context中获取campId
|
|
17
|
+
const campId = context.campId;
|
|
18
|
+
if (!campId) {
|
|
19
|
+
throw new Error('APP_ID not configured. Please set APP_ID environment variable.');
|
|
20
|
+
}
|
|
21
|
+
// 调用API
|
|
22
|
+
const response = await apiClient.request({
|
|
23
|
+
method: 'POST',
|
|
24
|
+
url: '/order/get',
|
|
25
|
+
headers: {
|
|
26
|
+
'Content-Type': 'application/json',
|
|
27
|
+
},
|
|
28
|
+
data: {
|
|
29
|
+
campId: String(campId),
|
|
30
|
+
orderId: validatedParams.orderId,
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
// 检查API响应
|
|
34
|
+
if (!response.success) {
|
|
35
|
+
throw new Error(response.errorMsg || response.errorCode || '订单详情接口请求失败');
|
|
36
|
+
}
|
|
37
|
+
logger.info('Order details retrieved successfully (v2)', {
|
|
38
|
+
orderId: validatedParams.orderId,
|
|
39
|
+
});
|
|
40
|
+
const data = response.data;
|
|
41
|
+
const safeData = data ? desensitizeOrderDetail(data) : data;
|
|
42
|
+
return createSuccessResult(safeData);
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
return handleError(error);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=getOrderDetailsV2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getOrderDetailsV2.js","sourceRoot":"","sources":["../../../src/tools/orders/getOrderDetailsV2.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,aAAa;AACb,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;CAC3E,CAAC,CAAC;AAkJH,MAAM,CAAC,MAAM,wBAAwB,GAAgB,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IAC3E,IAAI,CAAC;QACH,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;QAEzD,OAAO;QACP,iBAAiB,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;QAE3E,OAAO;QACP,MAAM,eAAe,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE5D,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAEhF,oBAAoB;QACpB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACpF,CAAC;QAED,QAAQ;QACR,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,CAA4B;YAClE,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,YAAY;YACjB,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE;gBACJ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;gBACtB,OAAO,EAAE,eAAe,CAAC,OAAO;aACjC;SACF,CAAC,CAAC;QAEH,UAAU;QACV,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,IAAI,YAAY,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE;YACvD,OAAO,EAAE,eAAe,CAAC,OAAO;SACjC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAA2C,CAAC;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5D,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/orders/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// 暂时只导出已实现的工具
|
|
2
|
+
// TODO: 实现其他订单工具
|
|
3
|
+
// export { queryOrdersHandler } from './queryOrders.js';
|
|
4
|
+
// export { getOrderDetailsHandler } from './getOrderDetails.js';
|
|
5
|
+
// export { createOrderHandler } from './createOrder.js';
|
|
6
|
+
// export { checkInOrderHandler } from './checkIn.js';
|
|
7
|
+
// export { checkOutOrderHandler } from './checkOut.js';
|
|
8
|
+
// export { cancelOrderHandler } from './cancelOrder.js';
|
|
9
|
+
// 今日订单和订单详情工具
|
|
10
|
+
export { queryTodayOrdersHandler } from './queryTodayOrders.js';
|
|
11
|
+
export { getOrderDetailsV2Handler } from './getOrderDetailsV2.js';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/orders/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,iBAAiB;AACjB,yDAAyD;AACzD,iEAAiE;AACjE,yDAAyD;AACzD,sDAAsD;AACtD,wDAAwD;AACxD,yDAAyD;AAEzD,cAAc;AACd,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryOrders.d.ts","sourceRoot":"","sources":["../../../src/tools/orders/queryOrders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,oBAAoB,CAAC;AAKnE,eAAO,MAAM,kBAAkB,EAAE,WAqChC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { validateQueryOrdersParams } from '../../utils/validator.js';
|
|
2
|
+
import { handleError, createSuccessResult } from '../../utils/errorHandler.js';
|
|
3
|
+
export const queryOrdersHandler = async (args, context) => {
|
|
4
|
+
try {
|
|
5
|
+
const { apiClient, logger, permissionChecker } = context;
|
|
6
|
+
// 权限检查
|
|
7
|
+
permissionChecker.checkPermission('query_orders', ['orders:read']);
|
|
8
|
+
// 参数验证
|
|
9
|
+
const params = validateQueryOrdersParams(args);
|
|
10
|
+
logger.info('Querying orders', params);
|
|
11
|
+
// 调用API
|
|
12
|
+
const response = await apiClient.request({
|
|
13
|
+
method: 'GET',
|
|
14
|
+
url: '/api/v1/orders',
|
|
15
|
+
params: {
|
|
16
|
+
store_id: params.storeId,
|
|
17
|
+
start_date: params.startDate,
|
|
18
|
+
end_date: params.endDate,
|
|
19
|
+
status: params.status,
|
|
20
|
+
room_type: params.roomType,
|
|
21
|
+
guest_name: params.guestName,
|
|
22
|
+
phone: params.phone,
|
|
23
|
+
page: params.page,
|
|
24
|
+
page_size: params.pageSize,
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
logger.info('Orders queried successfully', {
|
|
28
|
+
total: response.data.total,
|
|
29
|
+
count: response.data.list.length,
|
|
30
|
+
});
|
|
31
|
+
return createSuccessResult(response.data);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
return handleError(error);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=queryOrders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryOrders.js","sourceRoot":"","sources":["../../../src/tools/orders/queryOrders.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAG/E,MAAM,CAAC,MAAM,kBAAkB,GAAgB,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IACrE,IAAI,CAAC;QACH,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;QAEzD,OAAO;QACP,iBAAiB,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;QAEnE,OAAO;QACP,MAAM,MAAM,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAA4C,CAAC,CAAC;QAE7E,QAAQ;QACR,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,CAA8B;YACpE,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,gBAAgB;YACrB,MAAM,EAAE;gBACN,QAAQ,EAAE,MAAM,CAAC,OAAO;gBACxB,UAAU,EAAE,MAAM,CAAC,SAAS;gBAC5B,QAAQ,EAAE,MAAM,CAAC,OAAO;gBACxB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,SAAS,EAAE,MAAM,CAAC,QAAQ;gBAC1B,UAAU,EAAE,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,SAAS,EAAE,MAAM,CAAC,QAAQ;aAC3B;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;YACzC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;YAC1B,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;SACjC,CAAC,CAAC;QAEH,OAAO,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryTodayOrders.d.ts","sourceRoot":"","sources":["../../../src/tools/orders/queryTodayOrders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA8ItD,eAAO,MAAM,uBAAuB,EAAE,WA8IrC,CAAC"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { handleError } from '../../utils/errorHandler.js';
|
|
2
|
+
import { desensitizeOrderItem } from '../../utils/desensitize.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
// 参数验证Schema
|
|
5
|
+
const queryTodayOrdersSchema = z.object({});
|
|
6
|
+
// 订单类型枚举
|
|
7
|
+
const ORDER_TYPE = {
|
|
8
|
+
PRE_ARRIVAL: '11', // 预抵
|
|
9
|
+
IN_HOUSE: '10', // 在住
|
|
10
|
+
PRE_DEPARTURE: '12', // 预离
|
|
11
|
+
};
|
|
12
|
+
function formatPrice(value) {
|
|
13
|
+
if (value == null || Number.isNaN(value))
|
|
14
|
+
return '0';
|
|
15
|
+
return Number(value).toFixed(2);
|
|
16
|
+
}
|
|
17
|
+
function buildOrderLine(order, index) {
|
|
18
|
+
const inOut = `${order.checkInDateStr} ~ ${order.checkOutDateStr}`;
|
|
19
|
+
const totalIncome = formatPrice(order.totalPrice);
|
|
20
|
+
const reduceCommission = formatPrice(order.reduceCommissionRoomPrice);
|
|
21
|
+
const commission = formatPrice(order.invoicePrice);
|
|
22
|
+
return [
|
|
23
|
+
`${index}:订单ID:${order.orderId}`,
|
|
24
|
+
`渠道:${order.channelName || '-'}`,
|
|
25
|
+
`客人名称:${order.guestName || '-'}`,
|
|
26
|
+
`房型:${order.roomCategoryName || '-'}`,
|
|
27
|
+
`房间:${order.roomName || '-'}`,
|
|
28
|
+
`入离时间:${inOut}`,
|
|
29
|
+
`房费减佣:${reduceCommission}(佣金:${commission})`,
|
|
30
|
+
`押金:0(待收取)`,
|
|
31
|
+
`订单总收入:${totalIncome}`,
|
|
32
|
+
].join('\n');
|
|
33
|
+
}
|
|
34
|
+
function buildSection(title, orders, emptyText) {
|
|
35
|
+
const lines = [];
|
|
36
|
+
lines.push(title);
|
|
37
|
+
if (!orders.length) {
|
|
38
|
+
lines.push(emptyText);
|
|
39
|
+
return lines.join('\n');
|
|
40
|
+
}
|
|
41
|
+
orders.forEach((o, idx) => {
|
|
42
|
+
lines.push(buildOrderLine(o, idx + 1));
|
|
43
|
+
});
|
|
44
|
+
return lines.join('\n\n');
|
|
45
|
+
}
|
|
46
|
+
export const queryTodayOrdersHandler = async (args, context) => {
|
|
47
|
+
try {
|
|
48
|
+
const { apiClient, logger, permissionChecker } = context;
|
|
49
|
+
// 权限检查
|
|
50
|
+
permissionChecker.checkPermission('query_today_orders', ['orders:read']);
|
|
51
|
+
// 参数验证
|
|
52
|
+
queryTodayOrdersSchema.parse(args);
|
|
53
|
+
// 获取当天日期
|
|
54
|
+
const today = new Date().toISOString().split('T')[0];
|
|
55
|
+
logger.info('Querying today orders', { date: today });
|
|
56
|
+
// 从context中获取campId
|
|
57
|
+
const campId = context.campId;
|
|
58
|
+
if (!campId) {
|
|
59
|
+
throw new Error('APP_ID not configured. Please set APP_ID environment variable.');
|
|
60
|
+
}
|
|
61
|
+
// 并行调用三次接口,分别获取预抵、在住、预离订单
|
|
62
|
+
const [preArrivalResponse, inHouseResponse, preDepartureResponse] = await Promise.all([
|
|
63
|
+
// 预抵订单 (orderType: "11")
|
|
64
|
+
apiClient.request({
|
|
65
|
+
method: 'POST',
|
|
66
|
+
url: '/orders/get',
|
|
67
|
+
headers: {
|
|
68
|
+
'Content-Type': 'application/json',
|
|
69
|
+
},
|
|
70
|
+
data: {
|
|
71
|
+
campId: String(campId),
|
|
72
|
+
orderType: ORDER_TYPE.PRE_ARRIVAL,
|
|
73
|
+
},
|
|
74
|
+
}),
|
|
75
|
+
// 在住订单 (orderType: "10")
|
|
76
|
+
apiClient.request({
|
|
77
|
+
method: 'POST',
|
|
78
|
+
url: '/orders/get',
|
|
79
|
+
headers: {
|
|
80
|
+
'Content-Type': 'application/json',
|
|
81
|
+
},
|
|
82
|
+
data: {
|
|
83
|
+
campId: String(campId),
|
|
84
|
+
orderType: ORDER_TYPE.IN_HOUSE,
|
|
85
|
+
},
|
|
86
|
+
}),
|
|
87
|
+
// 预离订单 (orderType: "12")
|
|
88
|
+
apiClient.request({
|
|
89
|
+
method: 'POST',
|
|
90
|
+
url: '/orders/get',
|
|
91
|
+
headers: {
|
|
92
|
+
'Content-Type': 'application/json',
|
|
93
|
+
},
|
|
94
|
+
data: {
|
|
95
|
+
campId: String(campId),
|
|
96
|
+
orderType: ORDER_TYPE.PRE_DEPARTURE,
|
|
97
|
+
},
|
|
98
|
+
}),
|
|
99
|
+
]);
|
|
100
|
+
// 检查API响应
|
|
101
|
+
if (!preArrivalResponse.success) {
|
|
102
|
+
throw new Error(preArrivalResponse.errorMsg || preArrivalResponse.errorCode || '预抵订单接口请求失败');
|
|
103
|
+
}
|
|
104
|
+
if (!inHouseResponse.success) {
|
|
105
|
+
throw new Error(inHouseResponse.errorMsg || inHouseResponse.errorCode || '在住订单接口请求失败');
|
|
106
|
+
}
|
|
107
|
+
if (!preDepartureResponse.success) {
|
|
108
|
+
throw new Error(preDepartureResponse.errorMsg || preDepartureResponse.errorCode || '预离订单接口请求失败');
|
|
109
|
+
}
|
|
110
|
+
// 合并数据并脱敏(PRD 5.2)
|
|
111
|
+
const preArrival = (preArrivalResponse.data?.list || []).map(desensitizeOrderItem);
|
|
112
|
+
const inHouse = (inHouseResponse.data?.list || []).map(desensitizeOrderItem);
|
|
113
|
+
const preDeparture = (preDepartureResponse.data?.list || []).map(desensitizeOrderItem);
|
|
114
|
+
const mergedData = {
|
|
115
|
+
preArrival,
|
|
116
|
+
inHouse,
|
|
117
|
+
preDeparture,
|
|
118
|
+
total: {
|
|
119
|
+
preArrival: preArrival.length,
|
|
120
|
+
inHouse: inHouse.length,
|
|
121
|
+
preDeparture: preDeparture.length,
|
|
122
|
+
all: preArrival.length + inHouse.length + preDeparture.length,
|
|
123
|
+
},
|
|
124
|
+
queryDate: today,
|
|
125
|
+
};
|
|
126
|
+
logger.info('Today orders queried successfully', {
|
|
127
|
+
date: today,
|
|
128
|
+
preArrival: preArrival.length,
|
|
129
|
+
inHouse: inHouse.length,
|
|
130
|
+
preDeparture: preDeparture.length,
|
|
131
|
+
});
|
|
132
|
+
const headerLines = [
|
|
133
|
+
`今日酒店订单情况(${today})`,
|
|
134
|
+
'订单概览',
|
|
135
|
+
`预抵订单(今日入住):${mergedData.total.preArrival}个`,
|
|
136
|
+
`在住订单(当前在住):${mergedData.total.inHouse}个`,
|
|
137
|
+
`预离订单(今日退房):${mergedData.total.preDeparture}个`,
|
|
138
|
+
`总计待处理订单:${mergedData.total.all}个`,
|
|
139
|
+
'',
|
|
140
|
+
];
|
|
141
|
+
const sections = [];
|
|
142
|
+
sections.push(buildSection('预抵订单', preArrival, '今天没有预抵的订单'));
|
|
143
|
+
sections.push(buildSection('在住订单', inHouse, '今天没有在住的订单'));
|
|
144
|
+
sections.push(buildSection('预离订单', preDeparture, '今天没有预离的订单'));
|
|
145
|
+
const text = [...headerLines, ...sections].join('\n');
|
|
146
|
+
return {
|
|
147
|
+
content: [
|
|
148
|
+
{
|
|
149
|
+
type: 'text',
|
|
150
|
+
text,
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
return handleError(error);
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
//# sourceMappingURL=queryTodayOrders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryTodayOrders.js","sourceRoot":"","sources":["../../../src/tools/orders/queryTodayOrders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batchUpdatePrices.d.ts","sourceRoot":"","sources":["../../../src/tools/rooms/batchUpdatePrices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKtD,eAAO,MAAM,wBAAwB,EAAE,WAwCtC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { validateBatchUpdatePricesParams } from '../../utils/validator.js';
|
|
2
|
+
import { handleError, createSuccessResult } from '../../utils/errorHandler.js';
|
|
3
|
+
export const batchUpdatePricesHandler = async (args, context) => {
|
|
4
|
+
try {
|
|
5
|
+
const { apiClient, logger, permissionChecker } = context;
|
|
6
|
+
// 权限检查
|
|
7
|
+
permissionChecker.checkPermission('batch_update_prices', ['rooms:write']);
|
|
8
|
+
// 参数验证
|
|
9
|
+
const params = validateBatchUpdatePricesParams(args);
|
|
10
|
+
logger.info('Batch updating prices', {
|
|
11
|
+
storeId: params.storeId,
|
|
12
|
+
updateCount: params.updates.length,
|
|
13
|
+
});
|
|
14
|
+
// 调用API
|
|
15
|
+
const response = await apiClient.request({
|
|
16
|
+
method: 'POST',
|
|
17
|
+
url: '/api/v1/rooms/prices/batch',
|
|
18
|
+
data: {
|
|
19
|
+
store_id: params.storeId,
|
|
20
|
+
updates: params.updates.map((update) => ({
|
|
21
|
+
room_type_id: update.roomTypeId,
|
|
22
|
+
date: update.date,
|
|
23
|
+
price: update.price,
|
|
24
|
+
})),
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
logger.info('Prices batch updated', {
|
|
28
|
+
successCount: response.data.successCount,
|
|
29
|
+
failedCount: response.data.failedCount,
|
|
30
|
+
});
|
|
31
|
+
return createSuccessResult({
|
|
32
|
+
message: '批量更新完成',
|
|
33
|
+
...response.data,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
return handleError(error);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=batchUpdatePrices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batchUpdatePrices.js","sourceRoot":"","sources":["../../../src/tools/rooms/batchUpdatePrices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAG/E,MAAM,CAAC,MAAM,wBAAwB,GAAgB,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IAC3E,IAAI,CAAC;QACH,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;QAEzD,OAAO;QACP,iBAAiB,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;QAE1E,OAAO;QACP,MAAM,MAAM,GAAG,+BAA+B,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;YACnC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;SACnC,CAAC,CAAC;QAEH,QAAQ;QACR,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,CAAqF;YAC3H,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,4BAA4B;YACjC,IAAI,EAAE;gBACJ,QAAQ,EAAE,MAAM,CAAC,OAAO;gBACxB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBACvC,YAAY,EAAE,MAAM,CAAC,UAAU;oBAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB,CAAC,CAAC;aACJ;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAClC,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY;YACxC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW;SACvC,CAAC,CAAC;QAEH,OAAO,mBAAmB,CAAC;YACzB,OAAO,EAAE,QAAQ;YACjB,GAAG,QAAQ,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { updateRoomPriceHandler } from './updateRoomPrice.js';
|
|
2
|
+
export { batchUpdatePricesHandler } from './batchUpdatePrices.js';
|
|
3
|
+
export { queryRoomStatusNewHandler } from './queryRoomStatusNew.js';
|
|
4
|
+
export { queryTodayRoomStatusHandler } from './queryTodayRoomStatus.js';
|
|
5
|
+
export { queryRoomPricesHandler } from './queryRoomPrices.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/rooms/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// 暂时只导出已实现的工具
|
|
2
|
+
export { updateRoomPriceHandler } from './updateRoomPrice.js';
|
|
3
|
+
export { batchUpdatePricesHandler } from './batchUpdatePrices.js';
|
|
4
|
+
export { queryRoomStatusNewHandler } from './queryRoomStatusNew.js';
|
|
5
|
+
export { queryTodayRoomStatusHandler } from './queryTodayRoomStatus.js';
|
|
6
|
+
export { queryRoomPricesHandler } from './queryRoomPrices.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/rooms/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryRoomPrices.d.ts","sourceRoot":"","sources":["../../../src/tools/rooms/queryRoomPrices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAwFtD,eAAO,MAAM,sBAAsB,EAAE,WAiEpC,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { handleError, createSuccessResult } from '../../utils/errorHandler.js';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
// 参数验证Schema
|
|
4
|
+
const queryRoomPricesSchema = z.object({
|
|
5
|
+
date: z.string().regex(/^\d{4}-\d{2}-\d{2}$/, '日期格式必须是 YYYY-MM-DD').optional(),
|
|
6
|
+
days: z.number().int().positive().max(30).default(7),
|
|
7
|
+
});
|
|
8
|
+
export const queryRoomPricesHandler = async (args, context) => {
|
|
9
|
+
try {
|
|
10
|
+
const { apiClient, logger, permissionChecker } = context;
|
|
11
|
+
// 权限检查
|
|
12
|
+
permissionChecker.checkPermission('query_room_prices', ['rooms:read']);
|
|
13
|
+
// 参数验证
|
|
14
|
+
const validatedParams = queryRoomPricesSchema.parse(args);
|
|
15
|
+
// 如果没有提供date,使用当天日期
|
|
16
|
+
const date = validatedParams.date || new Date().toISOString().split('T')[0];
|
|
17
|
+
logger.info('Querying room prices', { date, days: validatedParams.days });
|
|
18
|
+
// 从context中获取campId
|
|
19
|
+
const campId = context.campId;
|
|
20
|
+
if (!campId) {
|
|
21
|
+
throw new Error('APP_ID not configured. Please set APP_ID environment variable.');
|
|
22
|
+
}
|
|
23
|
+
// 调用API
|
|
24
|
+
const response = await apiClient.request({
|
|
25
|
+
method: 'POST',
|
|
26
|
+
url: '/roomCategoryStatuses/roomCategory/channel/get',
|
|
27
|
+
headers: {
|
|
28
|
+
'Content-Type': 'application/json',
|
|
29
|
+
},
|
|
30
|
+
data: {
|
|
31
|
+
campId: String(campId),
|
|
32
|
+
roomCategoryIds: [],
|
|
33
|
+
roomCategoryGroupIds: [],
|
|
34
|
+
channelIds: [],
|
|
35
|
+
poiIds: [],
|
|
36
|
+
roomCategoryProductSaleType: 1, // 1-全日房, 2-钟点房
|
|
37
|
+
date,
|
|
38
|
+
days: validatedParams.days,
|
|
39
|
+
isAvailability: 1, // 1-在线, 0-离线
|
|
40
|
+
searchKey: '',
|
|
41
|
+
accountIds: [],
|
|
42
|
+
channelPoiIds: [],
|
|
43
|
+
isChannelRp: '0',
|
|
44
|
+
channelRoomCategoryIds: [],
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
// 检查API响应
|
|
48
|
+
if (!response.success) {
|
|
49
|
+
throw new Error(response.errorMsg || response.errorCode || '房价接口请求失败');
|
|
50
|
+
}
|
|
51
|
+
logger.info('Room prices queried successfully', {
|
|
52
|
+
date,
|
|
53
|
+
days: validatedParams.days,
|
|
54
|
+
roomCategoryCount: response.data?.roomCategoryInfos.length || 0,
|
|
55
|
+
});
|
|
56
|
+
return createSuccessResult({
|
|
57
|
+
...response.data,
|
|
58
|
+
queryDate: date,
|
|
59
|
+
queryDays: validatedParams.days,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
return handleError(error);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=queryRoomPrices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryRoomPrices.js","sourceRoot":"","sources":["../../../src/tools/rooms/queryRoomPrices.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ToolHandler } from '../../types/mcp.js';
|
|
2
|
+
export interface RoomStatusView {
|
|
3
|
+
roomId: number;
|
|
4
|
+
roomName: string;
|
|
5
|
+
floorName: string;
|
|
6
|
+
isDirty: number;
|
|
7
|
+
isHasNotCheckOutOrder: number;
|
|
8
|
+
roomCategoryId: number;
|
|
9
|
+
roomCategoryName: string;
|
|
10
|
+
statuses: StatusView[];
|
|
11
|
+
}
|
|
12
|
+
export interface StatusView {
|
|
13
|
+
date: string;
|
|
14
|
+
isBlock: number;
|
|
15
|
+
isOccupation: number;
|
|
16
|
+
}
|
|
17
|
+
export interface RoomCategoryStatusesResponse {
|
|
18
|
+
roomStatusViews: RoomStatusView[];
|
|
19
|
+
}
|
|
20
|
+
export interface APIResponse {
|
|
21
|
+
success: boolean;
|
|
22
|
+
errorCode?: string;
|
|
23
|
+
errorMsg?: string;
|
|
24
|
+
errorDetail?: string;
|
|
25
|
+
data?: RoomCategoryStatusesResponse;
|
|
26
|
+
}
|
|
27
|
+
export declare const queryRoomStatusNewHandler: ToolHandler;
|
|
28
|
+
//# sourceMappingURL=queryRoomStatusNew.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryRoomStatusNew.d.ts","sourceRoot":"","sources":["../../../src/tools/rooms/queryRoomStatusNew.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAiBtD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IAC3C,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,4BAA4B,CAAC;CACrC;AAED,eAAO,MAAM,yBAAyB,EAAE,WA2DvC,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { handleError, createSuccessResult } from '../../utils/errorHandler.js';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
// 参数验证Schema
|
|
4
|
+
const queryRoomStatusNewSchema = z.object({
|
|
5
|
+
date: z.string().regex(/^\d{4}-\d{2}-\d{2}$/, '日期格式必须是 YYYY-MM-DD').optional(),
|
|
6
|
+
days: z.number().int().positive().default(30),
|
|
7
|
+
roomCategoryIds: z.array(z.number()).optional(),
|
|
8
|
+
roomCategoryGroupIds: z.array(z.number()).optional(),
|
|
9
|
+
channelIds: z.array(z.number()).optional(),
|
|
10
|
+
searchKey: z.string().optional(),
|
|
11
|
+
pageNum: z.number().int().positive().default(1),
|
|
12
|
+
pageSize: z.number().int().positive().max(100).default(15),
|
|
13
|
+
});
|
|
14
|
+
export const queryRoomStatusNewHandler = async (args, context) => {
|
|
15
|
+
try {
|
|
16
|
+
const { apiClient, logger, permissionChecker } = context;
|
|
17
|
+
// 权限检查
|
|
18
|
+
permissionChecker.checkPermission('query_room_status_new', ['rooms:read']);
|
|
19
|
+
// 参数验证
|
|
20
|
+
const validatedParams = queryRoomStatusNewSchema.parse(args);
|
|
21
|
+
// 如果没有提供date,使用当天日期
|
|
22
|
+
const date = validatedParams.date || new Date().toISOString().split('T')[0];
|
|
23
|
+
logger.info('Querying room status (new API)', {
|
|
24
|
+
date,
|
|
25
|
+
days: validatedParams.days,
|
|
26
|
+
});
|
|
27
|
+
// 从context中获取campId
|
|
28
|
+
const campId = context.campId;
|
|
29
|
+
if (!campId) {
|
|
30
|
+
throw new Error('APP_ID not configured. Please set APP_ID environment variable.');
|
|
31
|
+
}
|
|
32
|
+
// 调用API
|
|
33
|
+
// 注意:hudson-access-token 已在HTTPClient拦截器中自动添加到header
|
|
34
|
+
const response = await apiClient.request({
|
|
35
|
+
method: 'POST',
|
|
36
|
+
url: '/roomCategoryStatuses/central/get',
|
|
37
|
+
headers: {
|
|
38
|
+
'Content-Type': 'application/json',
|
|
39
|
+
},
|
|
40
|
+
data: {
|
|
41
|
+
// campId作为字符串传递
|
|
42
|
+
campId: String(campId),
|
|
43
|
+
date,
|
|
44
|
+
days: validatedParams.days,
|
|
45
|
+
roomCategoryIds: validatedParams.roomCategoryIds || null,
|
|
46
|
+
roomCategoryGroupIds: validatedParams.roomCategoryGroupIds || null,
|
|
47
|
+
channelIds: validatedParams.channelIds || null,
|
|
48
|
+
searchKey: validatedParams.searchKey || '',
|
|
49
|
+
pageNum: validatedParams.pageNum,
|
|
50
|
+
pageSize: validatedParams.pageSize,
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
// 检查API响应格式
|
|
54
|
+
if (!response.success) {
|
|
55
|
+
throw new Error(response.errorMsg || response.errorCode || 'API请求失败');
|
|
56
|
+
}
|
|
57
|
+
logger.info('Room status queried successfully (new API)', {
|
|
58
|
+
roomCount: response.data?.roomStatusViews?.length || 0,
|
|
59
|
+
});
|
|
60
|
+
return createSuccessResult(response.data || { roomStatusViews: [] });
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
return handleError(error);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=queryRoomStatusNew.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryRoomStatusNew.js","sourceRoot":"","sources":["../../../src/tools/rooms/queryRoomStatusNew.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryTodayRoomStatus.d.ts","sourceRoot":"","sources":["../../../src/tools/rooms/queryTodayRoomStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA2FtD,eAAO,MAAM,2BAA2B,EAAE,WAyEzC,CAAC"}
|