feat(M08-C): 补管理员验券与经营统计

This commit is contained in:
Codex
2026-08-10 11:08:55 +08:00
parent 3bfccb8513
commit ce52f07588
18 changed files with 1141 additions and 22 deletions
+37
View File
@@ -7,6 +7,7 @@ const read = (path) => readFileSync(join(root, path), 'utf8');
const appJson = JSON.parse(read('miniapp/app.json'));
assert.ok(appJson.pages.includes('pages/manager/dashboard'));
assert.ok(appJson.pages.includes('pages/manager/business'));
assert.ok(appJson.pages.includes('pages/manager/operations'));
assert.ok(appJson.pages.includes('pages/manager/people'));
assert.ok(appJson.pages.includes('pages/manager/order-create'));
@@ -42,6 +43,7 @@ for (const pattern of [
'canReadOperations',
'openPeople',
'openOperations',
'openBusiness',
'changeRoomStatus',
'toggleRoomConfiguration',
'activeOrders',
@@ -157,6 +159,41 @@ for (const pattern of [
}
assert.match(read('backend/src/devices/device-control-service.ts'), /DEVICE_COMMAND_REQUESTED/);
const business = read('miniapp/pages/manager/business.js')
+ read('miniapp/pages/manager/business.wxml')
+ read('miniapp/pages/manager/business.wxss');
for (const pattern of [
'/management/statistics?storeId=${storeId}',
'/management/group-vouchers/redeem',
'/management/group-vouchers/redeem-manual',
'/management/third-party/records?storeId=${storeId}',
'wx.scanCode',
'clientRequestId',
'近 {{item}} 天',
'在线验券',
'人工确认核销',
'券码仅保存哈希与脱敏值'
]) {
assert.match(business, new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')));
}
const businessRoutes = read('backend/src/routes/third-party.ts')
+ read('backend/src/third-party/third-party-service.ts')
+ read('backend/src/routes/business-statistics.ts')
+ read('backend/src/operations/business-statistics-repository.ts');
for (const pattern of [
'/app-api/management/group-vouchers/redeem',
'/app-api/management/group-vouchers/redeem-manual',
'/app-api/management/third-party/records',
'/app-api/management/statistics',
'redeemVoucherAsManager',
'qipai_group_redemptions',
'qipai_payments',
'BUSINESS_STATISTICS_FORBIDDEN'
]) {
assert.match(businessRoutes, new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')));
}
const routes = read('backend/src/routes/store-room-management.ts');
for (const pattern of [
'/app-api/management/stores',