@freedom_sky/feige-lib 5.22.0 → 5.23.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/.eslintignore +2 -2
- package/.eslintrc.js +15 -15
- package/.prettierrc.js +6 -6
- package/AGENTS.md +75 -75
- package/CHANGE.md +38 -34
- package/azure-pipelines-release.yml +56 -0
- package/dist/announcement/enum/announcement.enum.d.ts +11 -11
- package/dist/announcement/enum/announcement.enum.js +15 -15
- package/dist/buffet/index.d.ts +46 -46
- package/dist/buffet/index.js +95 -95
- package/dist/const/const.d.ts +372 -370
- package/dist/const/const.js +2387 -2374
- package/dist/enum/ai-token.enum.d.ts +10 -10
- package/dist/enum/ai-token.enum.js +14 -14
- package/dist/enum/checkout.enum.d.ts +13 -13
- package/dist/enum/checkout.enum.js +17 -17
- package/dist/enum/common.enum.d.ts +18 -14
- package/dist/enum/common.enum.js +23 -18
- package/dist/enum/continent.enum.d.ts +8 -8
- package/dist/enum/continent.enum.js +11 -11
- package/dist/enum/dish.enum.d.ts +4 -4
- package/dist/enum/dish.enum.js +7 -7
- package/dist/enum/from.enum.d.ts +14 -14
- package/dist/enum/from.enum.js +17 -17
- package/dist/enum/member.enum.d.ts +16 -16
- package/dist/enum/member.enum.js +21 -21
- package/dist/enum/menu-io.enum.d.ts +4 -4
- package/dist/enum/menu-io.enum.js +7 -7
- package/dist/enum/order.enum.d.ts +7 -7
- package/dist/enum/order.enum.js +10 -10
- package/dist/enum/pay-company.enum.d.ts +4 -4
- package/dist/enum/pay-company.enum.js +7 -7
- package/dist/enum/printer.enum.d.ts +36 -36
- package/dist/enum/printer.enum.js +45 -45
- package/dist/enum/receptionist.enum.d.ts +8 -8
- package/dist/enum/receptionist.enum.js +11 -11
- package/dist/enum/reservation.enum.d.ts +5 -5
- package/dist/enum/reservation.enum.js +8 -8
- package/dist/enum/role.enum.d.ts +7 -7
- package/dist/enum/role.enum.js +10 -10
- package/dist/enum/sms.enum.d.ts +14 -14
- package/dist/enum/sms.enum.js +18 -18
- package/dist/enum/tax.enum.d.ts +4 -4
- package/dist/enum/tax.enum.js +7 -7
- package/dist/enum/time-menu.enum.d.ts +4 -4
- package/dist/enum/time-menu.enum.js +7 -7
- package/dist/enum/timezone.emum.d.ts +33 -33
- package/dist/enum/timezone.emum.js +36 -36
- package/dist/enum/user-status.enum.d.ts +9 -9
- package/dist/enum/user-status.enum.js +12 -12
- package/dist/enum/visit-task.enum.d.ts +13 -13
- package/dist/enum/visit-task.enum.js +17 -17
- package/dist/enum/yeepay.enum.d.ts +22 -22
- package/dist/enum/yeepay.enum.js +30 -30
- package/dist/index.d.ts +203 -202
- package/dist/index.js +564 -562
- package/dist/interfaces/common/language.interface.d.ts +13 -13
- package/dist/interfaces/common/language.interface.js +2 -2
- package/dist/interfaces/member/member-transaction.interface.d.ts +27 -27
- package/dist/interfaces/member/member-transaction.interface.js +2 -2
- package/dist/interfaces/member/member.interface.d.ts +16 -16
- package/dist/interfaces/member/member.interface.js +2 -2
- package/dist/interfaces/order/baseOrder.interface.d.ts +84 -84
- package/dist/interfaces/order/baseOrder.interface.js +2 -2
- package/dist/interfaces/order/buffetOrder.interface.d.ts +13 -13
- package/dist/interfaces/order/buffetOrder.interface.js +2 -2
- package/dist/interfaces/order/deliveryOrder.interface.d.ts +9 -9
- package/dist/interfaces/order/deliveryOrder.interface.js +2 -2
- package/dist/interfaces/order/index.d.ts +7 -7
- package/dist/interfaces/order/index.js +6 -6
- package/dist/interfaces/order/order.interface.d.ts +75 -75
- package/dist/interfaces/order/order.interface.js +17 -17
- package/dist/interfaces/order/pickupOrder.interface.d.ts +8 -8
- package/dist/interfaces/order/pickupOrder.interface.js +2 -2
- package/dist/interfaces/order/serialOrder.interface.d.ts +4 -4
- package/dist/interfaces/order/serialOrder.interface.js +2 -2
- package/dist/interfaces/order/tableOrder.interface.d.ts +7 -7
- package/dist/interfaces/order/tableOrder.interface.js +2 -2
- package/dist/interfaces/reservation/reservation.interface.d.ts +46 -46
- package/dist/interfaces/reservation/reservation.interface.js +2 -2
- package/dist/interfaces/store/classification.interface.d.ts +7 -7
- package/dist/interfaces/store/classification.interface.js +2 -2
- package/dist/interfaces/store/dish.interface.d.ts +18 -18
- package/dist/interfaces/store/dish.interface.js +2 -2
- package/dist/interfaces/store/dishSnapshot.interface.d.ts +11 -11
- package/dist/interfaces/store/dishSnapshot.interface.js +2 -2
- package/dist/interfaces/store/member.interface.d.ts +8 -8
- package/dist/interfaces/store/member.interface.js +2 -2
- package/dist/interfaces/store/menu-export.interface.d.ts +12 -12
- package/dist/interfaces/store/menu-export.interface.js +2 -2
- package/dist/interfaces/store/specification.interface.d.ts +17 -17
- package/dist/interfaces/store/specification.interface.js +2 -2
- package/dist/interfaces/store/store.interface.d.ts +300 -300
- package/dist/interfaces/store/store.interface.js +2 -2
- package/dist/interfaces/store/subscription.interface.d.ts +43 -43
- package/dist/interfaces/store/subscription.interface.js +2 -2
- package/dist/interfaces/user/user.interface.d.ts +139 -139
- package/dist/interfaces/user/user.interface.js +2 -2
- package/dist/interfaces/visit-task/visit-task.interface.d.ts +17 -17
- package/dist/interfaces/visit-task/visit-task.interface.js +2 -2
- package/dist/order/index.d.ts +22 -22
- package/dist/order/index.js +58 -58
- package/jest.config.js +189 -189
- package/josn-hub/orders/tax-have-price-bind-order.ts +381 -381
- package/josn-hub/orders/tax-order.ts +371 -371
- package/josn-hub/orders//346/225/264/345/215/225/344/273/267/346/240/274/351/203/275/346/230/257/350/264/237/346/225/260/347/232/204/346/203/205/345/206/265.ts +321 -321
- package/josn-hub/orders//346/234/211/344/270/200/344/270/252/350/217/234/347/232/204/344/273/267/346/240/274/346/230/257/350/264/237/346/225/260/347/232/204/346/203/205/345/206/265.ts +348 -348
- package/josn-hub/orders//347/202/271/344/272/206/344/270/215/345/212/240/344/273/267/345/222/214/345/233/272/345/256/232/345/212/240/345/207/217/344/273/267/350/247/204/346/240/274/347/232/204/350/256/242/345/215/225.ts +350 -350
- package/josn-hub/orders//347/202/271/344/272/206/345/233/272/345/256/232/345/212/240/344/273/267-/347/231/276/345/210/206/346/257/224/345/212/240/344/273/267/350/247/204/346/240/274/347/232/204/350/256/242/345/215/225.ts +301 -301
- package/josn-hub/orders//347/202/271/344/272/206/346/234/252/345/212/240/344/273/267/350/247/204/346/240/274/347/232/204/350/256/242/345/215/225.ts +321 -321
- package/josn-hub/orders//347/202/271/344/272/206/346/234/252/345/212/240/344/273/267/350/247/204/346/240/274/347/232/204/350/256/242/345/215/225/345/271/266/346/234/211/351/205/215/351/200/201/350/264/271.ts +159 -159
- package/josn-hub/orders//350/207/252/345/212/251/351/244/220/347/232/204/346/203/205/345/206/265.ts +665 -665
- package/josn-hub/orders//351/203/250/345/210/206/351/200/200/350/217/234/347/232/204/346/203/205/345/206/265.ts +73 -73
- package/package.json +59 -59
- package/src/announcement/enum/announcement.enum.ts +12 -12
- package/src/buffet/index.ts +123 -123
- package/src/const/const.ts +2407 -2394
- package/src/enum/ai-token.enum.ts +10 -10
- package/src/enum/checkout.enum.ts +14 -14
- package/src/enum/common.enum.ts +20 -15
- package/src/enum/continent.enum.ts +8 -8
- package/src/enum/dish.enum.ts +4 -4
- package/src/enum/from.enum.ts +14 -14
- package/src/enum/member.enum.ts +16 -16
- package/src/enum/menu-io.enum.ts +4 -4
- package/src/enum/order.enum.ts +7 -7
- package/src/enum/pay-company.enum.ts +4 -4
- package/src/enum/printer.enum.ts +40 -40
- package/src/enum/receptionist.enum.ts +8 -8
- package/src/enum/reservation.enum.ts +5 -5
- package/src/enum/role.enum.ts +7 -7
- package/src/enum/sms.enum.ts +14 -14
- package/src/enum/tax.enum.ts +4 -4
- package/src/enum/time-menu.enum.ts +4 -4
- package/src/enum/timezone.emum.ts +33 -33
- package/src/enum/user-status.enum.ts +9 -9
- package/src/enum/visit-task.enum.ts +14 -14
- package/src/enum/yeepay.enum.ts +27 -27
- package/src/index.spec.ts +1082 -1082
- package/src/index.ts +616 -614
- package/src/interfaces/common/language.interface.ts +13 -13
- package/src/interfaces/member/member-transaction.interface.ts +32 -32
- package/src/interfaces/member/member.interface.ts +16 -16
- package/src/interfaces/order/baseOrder.interface.ts +89 -89
- package/src/interfaces/order/buffetOrder.interface.ts +14 -14
- package/src/interfaces/order/deliveryOrder.interface.ts +10 -10
- package/src/interfaces/order/index.ts +7 -7
- package/src/interfaces/order/order.interface.ts +84 -84
- package/src/interfaces/order/pickupOrder.interface.ts +9 -9
- package/src/interfaces/order/serialOrder.interface.ts +5 -5
- package/src/interfaces/order/tableOrder.interface.ts +8 -8
- package/src/interfaces/reservation/reservation.interface.ts +48 -48
- package/src/interfaces/store/classification.interface.ts +7 -7
- package/src/interfaces/store/dish.interface.ts +18 -18
- package/src/interfaces/store/dishSnapshot.interface.ts +12 -12
- package/src/interfaces/store/member.interface.ts +9 -9
- package/src/interfaces/store/menu-export.interface.ts +13 -13
- package/src/interfaces/store/specification.interface.ts +17 -17
- package/src/interfaces/store/store.interface.ts +316 -316
- package/src/interfaces/store/subscription.interface.ts +43 -43
- package/src/interfaces/user/user.interface.ts +139 -139
- package/src/interfaces/visit-task/visit-task.interface.ts +17 -17
- package/src/order/currency-settlement.spec.ts +72 -0
- package/src/order/index.ts +91 -91
- package/tsconfig.json +12 -12
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
// 总价应该是23.2
|
|
2
|
-
export const order: any = {
|
|
3
|
-
_id: '658e5ff5fca6bd001ad1f284',
|
|
4
|
-
buffet: {
|
|
5
|
-
taxes: [],
|
|
6
|
-
},
|
|
7
|
-
checkoutFirst: false,
|
|
8
|
-
printed: [],
|
|
9
|
-
printerPrinted: [],
|
|
10
|
-
kdsPrinted: [],
|
|
11
|
-
printStatus: 'NotPrinted',
|
|
12
|
-
operatorId: null,
|
|
13
|
-
salesmanId: null,
|
|
14
|
-
status: 'processing',
|
|
15
|
-
payed: false,
|
|
16
|
-
noTax: false,
|
|
17
|
-
reserveTime: null,
|
|
18
|
-
selfPickUp: false,
|
|
19
|
-
pack: false,
|
|
20
|
-
storeId: '5fdf7149f973ec00135fa626',
|
|
21
|
-
tableNum: '20AAA',
|
|
22
|
-
content: [
|
|
23
|
-
{
|
|
24
|
-
delivering: 3,
|
|
25
|
-
finished: 0,
|
|
26
|
-
retreated: 1,
|
|
27
|
-
_id: '658e5ff5fca6bd001ad1f285',
|
|
28
|
-
dishSnapshot: {
|
|
29
|
-
names: {
|
|
30
|
-
vi: '可乐Coca',
|
|
31
|
-
},
|
|
32
|
-
descriptions: {
|
|
33
|
-
vi: '',
|
|
34
|
-
},
|
|
35
|
-
units: {
|
|
36
|
-
vi: null,
|
|
37
|
-
},
|
|
38
|
-
type: 'Normal',
|
|
39
|
-
description: '',
|
|
40
|
-
soldOut: false,
|
|
41
|
-
required: false,
|
|
42
|
-
specifications: [],
|
|
43
|
-
salesType: ['dine', 'takeout'],
|
|
44
|
-
takeoutPrice: null,
|
|
45
|
-
__v: 1,
|
|
46
|
-
date: '2022-04-22T00:02:00.894Z',
|
|
47
|
-
_id: '6261f078a108d8001a088f36',
|
|
48
|
-
name: '可乐Coca',
|
|
49
|
-
price: 20000,
|
|
50
|
-
img: 'https://feige-img-hub.oss-cn-hangzhou.aliyuncs.com/898393196/1650585714021-eabHK2a3aA.jpg',
|
|
51
|
-
chef: null,
|
|
52
|
-
selectedSpecifications: [],
|
|
53
|
-
noFullOrderDiscount: false,
|
|
54
|
-
taxes: [],
|
|
55
|
-
},
|
|
56
|
-
count: 3,
|
|
57
|
-
date: '2023-12-29T05:58:13.238Z',
|
|
58
|
-
retreatReason: null,
|
|
59
|
-
},
|
|
60
|
-
],
|
|
61
|
-
clientId: '432427e0-a60e-11ee-b732-cf7d64356d46',
|
|
62
|
-
type: 'table',
|
|
63
|
-
tasks: [],
|
|
64
|
-
priceHaveTaxBindOrderTaxes: [],
|
|
65
|
-
serialOrderId: '20231229-12',
|
|
66
|
-
checkout: [],
|
|
67
|
-
process: [],
|
|
68
|
-
taxes: [],
|
|
69
|
-
date: '2023-12-29T05:58:13.240Z',
|
|
70
|
-
__v: 9,
|
|
71
|
-
autoCleanTime: '2023-12-29T05:58:13.264Z',
|
|
72
|
-
};
|
|
73
|
-
export const expectPrice = 60000;
|
|
1
|
+
// 总价应该是23.2
|
|
2
|
+
export const order: any = {
|
|
3
|
+
_id: '658e5ff5fca6bd001ad1f284',
|
|
4
|
+
buffet: {
|
|
5
|
+
taxes: [],
|
|
6
|
+
},
|
|
7
|
+
checkoutFirst: false,
|
|
8
|
+
printed: [],
|
|
9
|
+
printerPrinted: [],
|
|
10
|
+
kdsPrinted: [],
|
|
11
|
+
printStatus: 'NotPrinted',
|
|
12
|
+
operatorId: null,
|
|
13
|
+
salesmanId: null,
|
|
14
|
+
status: 'processing',
|
|
15
|
+
payed: false,
|
|
16
|
+
noTax: false,
|
|
17
|
+
reserveTime: null,
|
|
18
|
+
selfPickUp: false,
|
|
19
|
+
pack: false,
|
|
20
|
+
storeId: '5fdf7149f973ec00135fa626',
|
|
21
|
+
tableNum: '20AAA',
|
|
22
|
+
content: [
|
|
23
|
+
{
|
|
24
|
+
delivering: 3,
|
|
25
|
+
finished: 0,
|
|
26
|
+
retreated: 1,
|
|
27
|
+
_id: '658e5ff5fca6bd001ad1f285',
|
|
28
|
+
dishSnapshot: {
|
|
29
|
+
names: {
|
|
30
|
+
vi: '可乐Coca',
|
|
31
|
+
},
|
|
32
|
+
descriptions: {
|
|
33
|
+
vi: '',
|
|
34
|
+
},
|
|
35
|
+
units: {
|
|
36
|
+
vi: null,
|
|
37
|
+
},
|
|
38
|
+
type: 'Normal',
|
|
39
|
+
description: '',
|
|
40
|
+
soldOut: false,
|
|
41
|
+
required: false,
|
|
42
|
+
specifications: [],
|
|
43
|
+
salesType: ['dine', 'takeout'],
|
|
44
|
+
takeoutPrice: null,
|
|
45
|
+
__v: 1,
|
|
46
|
+
date: '2022-04-22T00:02:00.894Z',
|
|
47
|
+
_id: '6261f078a108d8001a088f36',
|
|
48
|
+
name: '可乐Coca',
|
|
49
|
+
price: 20000,
|
|
50
|
+
img: 'https://feige-img-hub.oss-cn-hangzhou.aliyuncs.com/898393196/1650585714021-eabHK2a3aA.jpg',
|
|
51
|
+
chef: null,
|
|
52
|
+
selectedSpecifications: [],
|
|
53
|
+
noFullOrderDiscount: false,
|
|
54
|
+
taxes: [],
|
|
55
|
+
},
|
|
56
|
+
count: 3,
|
|
57
|
+
date: '2023-12-29T05:58:13.238Z',
|
|
58
|
+
retreatReason: null,
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
clientId: '432427e0-a60e-11ee-b732-cf7d64356d46',
|
|
62
|
+
type: 'table',
|
|
63
|
+
tasks: [],
|
|
64
|
+
priceHaveTaxBindOrderTaxes: [],
|
|
65
|
+
serialOrderId: '20231229-12',
|
|
66
|
+
checkout: [],
|
|
67
|
+
process: [],
|
|
68
|
+
taxes: [],
|
|
69
|
+
date: '2023-12-29T05:58:13.240Z',
|
|
70
|
+
__v: 9,
|
|
71
|
+
autoCleanTime: '2023-12-29T05:58:13.264Z',
|
|
72
|
+
};
|
|
73
|
+
export const expectPrice = 60000;
|
package/package.json
CHANGED
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@freedom_sky/feige-lib",
|
|
3
|
-
"version": "5.
|
|
4
|
-
"description": "",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"dev": "tsc -w",
|
|
8
|
-
"build": "npm run test && tsc",
|
|
9
|
-
"lint": "tsc --noEmit && eslint 'src/**/*.{js,ts}' --quiet --fix",
|
|
10
|
-
"test": "jest",
|
|
11
|
-
"prepublishOnly": "npm run build",
|
|
12
|
-
"release": "npm publish"
|
|
13
|
-
},
|
|
14
|
-
"husky": {
|
|
15
|
-
"hooks": {
|
|
16
|
-
"pre-commit": "npm run test && tsc --noEmit && lint-staged"
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
|
-
"lint-staged": {
|
|
20
|
-
"*.{js,ts}": [
|
|
21
|
-
"eslint --fix"
|
|
22
|
-
]
|
|
23
|
-
},
|
|
24
|
-
"repository": {
|
|
25
|
-
"type": "git",
|
|
26
|
-
"url": "git+https://github.com/freedom-git/feige-lib.git"
|
|
27
|
-
},
|
|
28
|
-
"author": "",
|
|
29
|
-
"license": "ISC",
|
|
30
|
-
"bugs": {
|
|
31
|
-
"url": "https://github.com/freedom-git/feige-lib/issues"
|
|
32
|
-
},
|
|
33
|
-
"homepage": "https://github.com/freedom-git/feige-lib#readme",
|
|
34
|
-
"publishConfig": {
|
|
35
|
-
"access": "public"
|
|
36
|
-
},
|
|
37
|
-
"devDependencies": {
|
|
38
|
-
"@types/big.js": "^6.1.2",
|
|
39
|
-
"@types/jest": "^25.2.1",
|
|
40
|
-
"@types/node": "^13.13.2",
|
|
41
|
-
"@typescript-eslint/eslint-plugin": "^2.29.0",
|
|
42
|
-
"@typescript-eslint/parser": "^2.29.0",
|
|
43
|
-
"eslint": "^6.8.0",
|
|
44
|
-
"eslint-config-google": "^0.14.0",
|
|
45
|
-
"eslint-config-prettier": "^6.11.0",
|
|
46
|
-
"eslint-plugin-jsdoc": "^24.0.0",
|
|
47
|
-
"eslint-plugin-prettier": "^3.1.3",
|
|
48
|
-
"husky": "^4.2.5",
|
|
49
|
-
"jest": "^25.5.4",
|
|
50
|
-
"lint-staged": "^10.1.7",
|
|
51
|
-
"prettier": "^2.0.5",
|
|
52
|
-
"ts-jest": "^25.4.0",
|
|
53
|
-
"typescript": "^3.8.3"
|
|
54
|
-
},
|
|
55
|
-
"dependencies": {
|
|
56
|
-
"big.js": "^6.1.1",
|
|
57
|
-
"moment": "^2.29.1"
|
|
58
|
-
}
|
|
59
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@freedom_sky/feige-lib",
|
|
3
|
+
"version": "5.23.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "tsc -w",
|
|
8
|
+
"build": "npm run test && tsc",
|
|
9
|
+
"lint": "tsc --noEmit && eslint 'src/**/*.{js,ts}' --quiet --fix",
|
|
10
|
+
"test": "jest",
|
|
11
|
+
"prepublishOnly": "npm run build",
|
|
12
|
+
"release": "npm publish"
|
|
13
|
+
},
|
|
14
|
+
"husky": {
|
|
15
|
+
"hooks": {
|
|
16
|
+
"pre-commit": "npm run test && tsc --noEmit && lint-staged"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"lint-staged": {
|
|
20
|
+
"*.{js,ts}": [
|
|
21
|
+
"eslint --fix"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
"repository": {
|
|
25
|
+
"type": "git",
|
|
26
|
+
"url": "git+https://github.com/freedom-git/feige-lib.git"
|
|
27
|
+
},
|
|
28
|
+
"author": "",
|
|
29
|
+
"license": "ISC",
|
|
30
|
+
"bugs": {
|
|
31
|
+
"url": "https://github.com/freedom-git/feige-lib/issues"
|
|
32
|
+
},
|
|
33
|
+
"homepage": "https://github.com/freedom-git/feige-lib#readme",
|
|
34
|
+
"publishConfig": {
|
|
35
|
+
"access": "public"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@types/big.js": "^6.1.2",
|
|
39
|
+
"@types/jest": "^25.2.1",
|
|
40
|
+
"@types/node": "^13.13.2",
|
|
41
|
+
"@typescript-eslint/eslint-plugin": "^2.29.0",
|
|
42
|
+
"@typescript-eslint/parser": "^2.29.0",
|
|
43
|
+
"eslint": "^6.8.0",
|
|
44
|
+
"eslint-config-google": "^0.14.0",
|
|
45
|
+
"eslint-config-prettier": "^6.11.0",
|
|
46
|
+
"eslint-plugin-jsdoc": "^24.0.0",
|
|
47
|
+
"eslint-plugin-prettier": "^3.1.3",
|
|
48
|
+
"husky": "^4.2.5",
|
|
49
|
+
"jest": "^25.5.4",
|
|
50
|
+
"lint-staged": "^10.1.7",
|
|
51
|
+
"prettier": "^2.0.5",
|
|
52
|
+
"ts-jest": "^25.4.0",
|
|
53
|
+
"typescript": "^3.8.3"
|
|
54
|
+
},
|
|
55
|
+
"dependencies": {
|
|
56
|
+
"big.js": "^6.1.1",
|
|
57
|
+
"moment": "^2.29.1"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export enum AnnouncementTypeEnum {
|
|
2
|
-
Text = 'text',
|
|
3
|
-
Image = 'image',
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
export enum AnnouncementTargetEnum {
|
|
7
|
-
Table = 'table',
|
|
8
|
-
Buffet = 'buffet',
|
|
9
|
-
Serial = 'serial',
|
|
10
|
-
PickUp = 'pickup',
|
|
11
|
-
Delivery = 'delivery',
|
|
12
|
-
}
|
|
1
|
+
export enum AnnouncementTypeEnum {
|
|
2
|
+
Text = 'text',
|
|
3
|
+
Image = 'image',
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export enum AnnouncementTargetEnum {
|
|
7
|
+
Table = 'table',
|
|
8
|
+
Buffet = 'buffet',
|
|
9
|
+
Serial = 'serial',
|
|
10
|
+
PickUp = 'pickup',
|
|
11
|
+
Delivery = 'delivery',
|
|
12
|
+
}
|
package/src/buffet/index.ts
CHANGED
|
@@ -1,123 +1,123 @@
|
|
|
1
|
-
import { BuffetCombosItems, BuffetDishItem, Order, CONST, OrderTypeEnum } from '../index';
|
|
2
|
-
/**
|
|
3
|
-
* 计算自助餐总价
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
*
|
|
8
|
-
*/
|
|
9
|
-
export function getDishItemInBuffet({
|
|
10
|
-
dishId,
|
|
11
|
-
buffet,
|
|
12
|
-
}: {
|
|
13
|
-
dishId: string;
|
|
14
|
-
buffet?: BuffetCombosItems;
|
|
15
|
-
}): BuffetDishItem | undefined {
|
|
16
|
-
return buffet?.dishes.find((item) => String(item.dishId) === String(dishId));
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
*
|
|
21
|
-
*/
|
|
22
|
-
export function getMaxBuffetDishUpperLimit({
|
|
23
|
-
buffetDishItem,
|
|
24
|
-
adultNum,
|
|
25
|
-
childNum,
|
|
26
|
-
}: {
|
|
27
|
-
buffetDishItem: BuffetDishItem;
|
|
28
|
-
adultNum: number;
|
|
29
|
-
childNum: number;
|
|
30
|
-
}): number {
|
|
31
|
-
if (!buffetDishItem) throw 'No buffet dish item';
|
|
32
|
-
if (!buffetDishItem.upperLimit.enable) return Infinity;
|
|
33
|
-
return Math.ceil(buffetDishItem.upperLimit.adult * adultNum + buffetDishItem.upperLimit.child * childNum);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* @param buffetCombosItem
|
|
38
|
-
* @param adultNum
|
|
39
|
-
* @param childNum
|
|
40
|
-
*/
|
|
41
|
-
export function calcBuffetTotalPrice(buffetCombosItem: BuffetCombosItems, adultNum: number, childNum: number): number {
|
|
42
|
-
return buffetCombosItem.price.adult * adultNum + buffetCombosItem.price.child * childNum;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
*
|
|
47
|
-
*/
|
|
48
|
-
export function dishShowPriceWithBuffet({
|
|
49
|
-
dishPrice,
|
|
50
|
-
dishId,
|
|
51
|
-
buffet,
|
|
52
|
-
orderedCound,
|
|
53
|
-
adultNum,
|
|
54
|
-
childNum,
|
|
55
|
-
}: {
|
|
56
|
-
dishPrice: number;
|
|
57
|
-
dishId: string;
|
|
58
|
-
buffet?: BuffetCombosItems;
|
|
59
|
-
orderedCound: number;
|
|
60
|
-
adultNum: number;
|
|
61
|
-
childNum: number;
|
|
62
|
-
}) {
|
|
63
|
-
const buffetDishItem = getDishItemInBuffet({ dishId, buffet });
|
|
64
|
-
if (buffetDishItem) {
|
|
65
|
-
if (orderedCound < getMaxBuffetDishUpperLimit({ buffetDishItem, adultNum, childNum })) {
|
|
66
|
-
return 0;
|
|
67
|
-
} else {
|
|
68
|
-
return dishPrice;
|
|
69
|
-
}
|
|
70
|
-
} else {
|
|
71
|
-
return dishPrice;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
*
|
|
77
|
-
*/
|
|
78
|
-
export function getRoundCoundAndSecondsToNextTurn({
|
|
79
|
-
order,
|
|
80
|
-
}: {
|
|
81
|
-
order: Order;
|
|
82
|
-
}): {
|
|
83
|
-
roundCount?: number;
|
|
84
|
-
maxRounds?: number;
|
|
85
|
-
secondsToNextTurn: number;
|
|
86
|
-
} {
|
|
87
|
-
let secondsToNextTurn = 0;
|
|
88
|
-
const buffetCombosItems = order.buffet?.snapshot;
|
|
89
|
-
if (!buffetCombosItems.orderingByTurns?.enable) {
|
|
90
|
-
throw 'Buffet ordering by turns is not enabled';
|
|
91
|
-
}
|
|
92
|
-
const { interval, maxRounds } = buffetCombosItems.orderingByTurns;
|
|
93
|
-
const previousBuffetSubmitTasks = order.tasks.filter(
|
|
94
|
-
(task) =>
|
|
95
|
-
(task.type === CONST.TASK_TYPE.CHECK || task.type === CONST.TASK_TYPE.APPEND) &&
|
|
96
|
-
_haveAtLeastOneSameItem(
|
|
97
|
-
task.content.map((content) => String(content.dishSnapshot._id)),
|
|
98
|
-
buffetCombosItems.dishes.map((dish) => String(dish.dishId)),
|
|
99
|
-
),
|
|
100
|
-
);
|
|
101
|
-
if (previousBuffetSubmitTasks.length === 0) {
|
|
102
|
-
secondsToNextTurn = 0;
|
|
103
|
-
} else if (previousBuffetSubmitTasks.length >= maxRounds) {
|
|
104
|
-
secondsToNextTurn = Infinity;
|
|
105
|
-
} else {
|
|
106
|
-
const lastBuffetSubmitTime = previousBuffetSubmitTasks[previousBuffetSubmitTasks.length - 1].date;
|
|
107
|
-
secondsToNextTurn = interval * 60 - Math.floor((Date.now() - new Date(lastBuffetSubmitTime).getTime()) / 1000);
|
|
108
|
-
}
|
|
109
|
-
return {
|
|
110
|
-
roundCount: previousBuffetSubmitTasks.length,
|
|
111
|
-
secondsToNextTurn,
|
|
112
|
-
maxRounds,
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* @param arr1
|
|
118
|
-
* @param arr2
|
|
119
|
-
*/
|
|
120
|
-
function _haveAtLeastOneSameItem<T>(arr1: T[], arr2: T[]): boolean {
|
|
121
|
-
const set1 = new Set(arr1);
|
|
122
|
-
return arr2.some((item) => set1.has(item));
|
|
123
|
-
}
|
|
1
|
+
import { BuffetCombosItems, BuffetDishItem, Order, CONST, OrderTypeEnum } from '../index';
|
|
2
|
+
/**
|
|
3
|
+
* 计算自助餐总价
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
9
|
+
export function getDishItemInBuffet({
|
|
10
|
+
dishId,
|
|
11
|
+
buffet,
|
|
12
|
+
}: {
|
|
13
|
+
dishId: string;
|
|
14
|
+
buffet?: BuffetCombosItems;
|
|
15
|
+
}): BuffetDishItem | undefined {
|
|
16
|
+
return buffet?.dishes.find((item) => String(item.dishId) === String(dishId));
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
22
|
+
export function getMaxBuffetDishUpperLimit({
|
|
23
|
+
buffetDishItem,
|
|
24
|
+
adultNum,
|
|
25
|
+
childNum,
|
|
26
|
+
}: {
|
|
27
|
+
buffetDishItem: BuffetDishItem;
|
|
28
|
+
adultNum: number;
|
|
29
|
+
childNum: number;
|
|
30
|
+
}): number {
|
|
31
|
+
if (!buffetDishItem) throw 'No buffet dish item';
|
|
32
|
+
if (!buffetDishItem.upperLimit.enable) return Infinity;
|
|
33
|
+
return Math.ceil(buffetDishItem.upperLimit.adult * adultNum + buffetDishItem.upperLimit.child * childNum);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @param buffetCombosItem
|
|
38
|
+
* @param adultNum
|
|
39
|
+
* @param childNum
|
|
40
|
+
*/
|
|
41
|
+
export function calcBuffetTotalPrice(buffetCombosItem: BuffetCombosItems, adultNum: number, childNum: number): number {
|
|
42
|
+
return buffetCombosItem.price.adult * adultNum + buffetCombosItem.price.child * childNum;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
*
|
|
47
|
+
*/
|
|
48
|
+
export function dishShowPriceWithBuffet({
|
|
49
|
+
dishPrice,
|
|
50
|
+
dishId,
|
|
51
|
+
buffet,
|
|
52
|
+
orderedCound,
|
|
53
|
+
adultNum,
|
|
54
|
+
childNum,
|
|
55
|
+
}: {
|
|
56
|
+
dishPrice: number;
|
|
57
|
+
dishId: string;
|
|
58
|
+
buffet?: BuffetCombosItems;
|
|
59
|
+
orderedCound: number;
|
|
60
|
+
adultNum: number;
|
|
61
|
+
childNum: number;
|
|
62
|
+
}) {
|
|
63
|
+
const buffetDishItem = getDishItemInBuffet({ dishId, buffet });
|
|
64
|
+
if (buffetDishItem) {
|
|
65
|
+
if (orderedCound < getMaxBuffetDishUpperLimit({ buffetDishItem, adultNum, childNum })) {
|
|
66
|
+
return 0;
|
|
67
|
+
} else {
|
|
68
|
+
return dishPrice;
|
|
69
|
+
}
|
|
70
|
+
} else {
|
|
71
|
+
return dishPrice;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
*
|
|
77
|
+
*/
|
|
78
|
+
export function getRoundCoundAndSecondsToNextTurn({
|
|
79
|
+
order,
|
|
80
|
+
}: {
|
|
81
|
+
order: Order;
|
|
82
|
+
}): {
|
|
83
|
+
roundCount?: number;
|
|
84
|
+
maxRounds?: number;
|
|
85
|
+
secondsToNextTurn: number;
|
|
86
|
+
} {
|
|
87
|
+
let secondsToNextTurn = 0;
|
|
88
|
+
const buffetCombosItems = order.buffet?.snapshot;
|
|
89
|
+
if (!buffetCombosItems.orderingByTurns?.enable) {
|
|
90
|
+
throw 'Buffet ordering by turns is not enabled';
|
|
91
|
+
}
|
|
92
|
+
const { interval, maxRounds } = buffetCombosItems.orderingByTurns;
|
|
93
|
+
const previousBuffetSubmitTasks = order.tasks.filter(
|
|
94
|
+
(task) =>
|
|
95
|
+
(task.type === CONST.TASK_TYPE.CHECK || task.type === CONST.TASK_TYPE.APPEND) &&
|
|
96
|
+
_haveAtLeastOneSameItem(
|
|
97
|
+
task.content.map((content) => String(content.dishSnapshot._id)),
|
|
98
|
+
buffetCombosItems.dishes.map((dish) => String(dish.dishId)),
|
|
99
|
+
),
|
|
100
|
+
);
|
|
101
|
+
if (previousBuffetSubmitTasks.length === 0) {
|
|
102
|
+
secondsToNextTurn = 0;
|
|
103
|
+
} else if (previousBuffetSubmitTasks.length >= maxRounds) {
|
|
104
|
+
secondsToNextTurn = Infinity;
|
|
105
|
+
} else {
|
|
106
|
+
const lastBuffetSubmitTime = previousBuffetSubmitTasks[previousBuffetSubmitTasks.length - 1].date;
|
|
107
|
+
secondsToNextTurn = interval * 60 - Math.floor((Date.now() - new Date(lastBuffetSubmitTime).getTime()) / 1000);
|
|
108
|
+
}
|
|
109
|
+
return {
|
|
110
|
+
roundCount: previousBuffetSubmitTasks.length,
|
|
111
|
+
secondsToNextTurn,
|
|
112
|
+
maxRounds,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* @param arr1
|
|
118
|
+
* @param arr2
|
|
119
|
+
*/
|
|
120
|
+
function _haveAtLeastOneSameItem<T>(arr1: T[], arr2: T[]): boolean {
|
|
121
|
+
const set1 = new Set(arr1);
|
|
122
|
+
return arr2.some((item) => set1.has(item));
|
|
123
|
+
}
|