Skip to content

Commit e4066c4

Browse files
author
Xziy
committed
pass isNewUser
1 parent fefa877 commit e4066c4

File tree

4 files changed

+101
-82
lines changed

4 files changed

+101
-82
lines changed

libs/AwaitEmitter.d.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ declare global {
5252
"core:order-after-check-delivery": [OrderRecord];
5353
"core:count-before-delivery-cost": [OrderRecord];
5454
"core:order-after-promotion": [OrderRecord];
55-
"core:order-after-done": [OrderRecord, UserRecord];
55+
"core:order-after-done": [OrderRecord, UserRecord, {
56+
isNewUser: boolean;
57+
}];
5658
"core:count-before-promotion": [OrderRecord];
5759
"core:orderproduct-change-amount": [OrderDishRecord];
5860
"core:order-return-full-order-destroy-orderdish": [DishRecord, OrderRecord];

libs/AwaitEmitter.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ declare global {
6464
"core:order-after-check-delivery": [OrderRecord]
6565
"core:count-before-delivery-cost": [OrderRecord]
6666
"core:order-after-promotion": [OrderRecord]
67-
"core:order-after-done": [OrderRecord, UserRecord]
67+
"core:order-after-done": [OrderRecord, UserRecord, {isNewUser: boolean}]
6868
"core:count-before-promotion": [OrderRecord]
6969
"core:orderproduct-change-amount": [OrderDishRecord]
7070
"core:order-return-full-order-destroy-orderdish": [DishRecord, OrderRecord]

models/Order.js

+12-7
Original file line numberDiff line numberDiff line change
@@ -1431,20 +1431,25 @@ let Model = {
14311431
async doFinalize(criteriaOne, state) {
14321432
let order = await Order.findOne(criteriaOne);
14331433
let user = null;
1434+
let isNewUser = false;
14341435
if (state === "DONE" && !order.user) {
14351436
let loginFiled = await Settings.get("CORE_LOGIN_FIELD") || "phone";
14361437
const phone = order.customer.phone.code + order.customer.phone.number + order.customer.phone.additionalNumber;
14371438
const login = loginFiled === "phone" ? phone.replace(/\D/g, "") : `${phone}@localhost`;
1438-
user = await User.findOrCreate(criteriaOne, {
1439-
firstName: order.customer.name,
1440-
phone: order.customer.phone,
1441-
login,
1442-
verified: true
1443-
});
1439+
user = await User.findOne(criteriaOne);
1440+
if (!user) {
1441+
user = await User.create({
1442+
firstName: order.customer.name,
1443+
phone: order.customer.phone,
1444+
login,
1445+
verified: true
1446+
}).fetch();
1447+
isNewUser = true;
1448+
}
14441449
await Order.update({ id: order.id }, { user: user.id }).fetch();
14451450
}
14461451
await Order.next(criteriaOne, state);
1447-
emitter.emit("core:order-after-done", order, user);
1452+
emitter.emit("core:order-after-done", order, user, { isNewUser });
14481453
},
14491454
async doCart(criteriaOne) {
14501455
let order = await Order.findOne(criteriaOne);

0 commit comments

Comments
 (0)