ts-glitter 20.4.8 → 20.5.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/lowcode/Entry.js +1 -1
- package/lowcode/Entry.ts +1 -1
- package/lowcode/cms-plugin/module/data.ts +1 -1
- package/lowcode/cms-plugin/module/order-setting.js +19 -8
- package/lowcode/cms-plugin/module/order-setting.ts +22 -16
- package/lowcode/cms-plugin/shopping-order-manager.js +252 -225
- package/lowcode/cms-plugin/shopping-order-manager.ts +64 -38
- package/lowcode/cms-plugin/stock-history.js +6 -7
- package/lowcode/cms-plugin/stock-history.ts +17 -16
- package/lowcode/glitter-base/route/shopping.ts +1 -1
- package/lowcode/public-components/checkout/index.js +7 -1
- package/lowcode/public-components/checkout/index.ts +6 -1
- package/lowcode/public-components/user-manager/um-class.js +1 -0
- package/lowcode/public-components/user-manager/um-class.ts +1 -0
- package/lowcode/public-components/user-manager/um-order.js +35 -2
- package/lowcode/public-components/user-manager/um-order.ts +40 -4
- package/lowcode/public-models/order-info.js +2 -3
- package/lowcode/public-models/order-info.ts +2 -2
- package/lowcode/src/glitterBundle/Glitter.js +1 -1
- package/lowcode/src/glitterBundle/Glitter.ts +1 -1
- package/lowcode/src/glitterBundle/GlitterInitial.js +1 -1
- package/lowcode/src/glitterBundle/GlitterInitial.ts +1 -1
- package/lowcode/src/glitterBundle/module/Animation.js +13 -7
- package/lowcode/src/glitterBundle/module/Enum.js +6 -2
- package/lowcode/src/glitterBundle/module/Html_generate.js +42 -50
- package/lowcode/src/glitterBundle/module/PageManager.js +30 -23
- package/lowcode/src/glitterBundle/plugins/click-event.js +19 -25
- package/lowcode/src/glitterBundle/plugins/dialog-style-editor.js +16 -13
- package/lowcode/src/glitterBundle/plugins/editor-elem.js +6 -1
- package/lowcode/src/glitterBundle/plugins/editor.js +5 -1
- package/lowcode/src/glitterBundle/plugins/html-render.js +5 -2
- package/lowcode/src/glitterBundle/plugins/plugin-creater.js +22 -28
- package/lowcode/src/glitterBundle/plugins/seo-manager.js +5 -1
- package/lowcode/src/glitterBundle/plugins/style-attr.js +5 -1
- package/lowcode/src/glitterBundle/plugins/style-editor.js +3 -1
- package/package.json +1 -1
- package/src/Language.js.map +1 -1
- package/src/api-public/controllers/ai-points.js.map +1 -1
- package/src/api-public/controllers/chat.js.map +1 -1
- package/src/api-public/controllers/customer-sessions.js.map +1 -1
- package/src/api-public/controllers/fb-message.js.map +1 -1
- package/src/api-public/controllers/fb-service.js.map +1 -1
- package/src/api-public/controllers/invoice.js.map +1 -1
- package/src/api-public/controllers/line-message.js.map +1 -1
- package/src/api-public/controllers/oauth.js.map +1 -1
- package/src/api-public/controllers/recommend.js.map +1 -1
- package/src/api-public/controllers/reconciliation.js.map +1 -1
- package/src/api-public/controllers/shop.js +1 -3
- package/src/api-public/controllers/shop.js.map +1 -1
- package/src/api-public/controllers/shop.ts +12 -6
- package/src/api-public/controllers/shopee.js.map +1 -1
- package/src/api-public/controllers/sms-points.js.map +1 -1
- package/src/api-public/controllers/sms.js.map +1 -1
- package/src/api-public/controllers/smtp.js.map +1 -1
- package/src/api-public/controllers/stock.js.map +1 -1
- package/src/api-public/controllers/track.js.map +1 -1
- package/src/api-public/controllers/voucher.js.map +1 -1
- package/src/api-public/controllers/wallet.js.map +1 -1
- package/src/api-public/services/EcInvoice.js.map +1 -1
- package/src/api-public/services/article.js.map +1 -1
- package/src/api-public/services/ezpay/tool.d.ts +0 -1
- package/src/api-public/services/ezpay/tool.js.map +1 -1
- package/src/api-public/services/filter-protect-data.js.map +1 -1
- package/src/api-public/services/financial-service.js.map +1 -1
- package/src/api-public/services/financial-service.ts +2 -3
- package/src/api-public/services/form-check.js.map +1 -1
- package/src/api-public/services/graph-api.js.map +1 -1
- package/src/api-public/services/mail.js.map +1 -1
- package/src/api-public/services/model/handlePaymentTransaction.d.ts +9 -0
- package/src/api-public/services/model/handlePaymentTransaction.js +54 -0
- package/src/api-public/services/model/handlePaymentTransaction.js.map +1 -0
- package/src/api-public/services/model/handlePaymentTransaction.ts +120 -0
- package/src/api-public/services/product-initial.js.map +1 -1
- package/src/api-public/services/rebate.js +6 -6
- package/src/api-public/services/rebate.js.map +1 -1
- package/src/api-public/services/rebate.ts +6 -6
- package/src/api-public/services/reconciliation.js.map +1 -1
- package/src/api-public/services/shopping.d.ts +6 -4
- package/src/api-public/services/shopping.js +169 -26
- package/src/api-public/services/shopping.js.map +1 -1
- package/src/api-public/services/shopping.ts +261 -50
- package/src/api-public/services/terms-check.js.map +1 -1
- package/src/api-public/services/updated-table-checked.js +22 -0
- package/src/api-public/services/updated-table-checked.js.map +1 -1
- package/src/api-public/services/updated-table-checked.ts +28 -0
- package/src/api-public/services/user-service.d.ts +9 -0
- package/src/api-public/services/user-service.js +9 -0
- package/src/api-public/services/user-service.js.map +1 -0
- package/src/api-public/services/user-service.ts +11 -0
- package/src/api-public/services/user-update.js +10 -6
- package/src/api-public/services/user-update.js.map +1 -1
- package/src/api-public/services/user-update.ts +9 -2
- package/src/api-public/services/user.js +9 -8
- package/src/api-public/services/user.js.map +1 -1
- package/src/api-public/services/user.ts +9 -10
- package/src/api-public/utils/ut-database.js.map +1 -1
- package/src/app-project/serverless/src/controllers/index.js.map +1 -1
- package/src/app-project/serverless/src/controllers/sample.js.map +1 -1
- package/src/app-project/serverless/src/modules/database.d.ts +1 -2
- package/src/app-project/serverless/src/modules/database.js.map +1 -1
- package/src/app-project/serverless/src/modules/exception.js.map +1 -1
- package/src/app-project/serverless/src/modules/hooks.js.map +1 -1
- package/src/app-project/serverless/src/modules/logger.js.map +1 -1
- package/src/app-project/serverless/src/modules/redis.d.ts +1 -1
- package/src/app-project/serverless/src/modules/redis.js.map +1 -1
- package/src/app-project/serverless/src/modules/response.js.map +1 -1
- package/src/app-project/serverless/src/modules/ssh.js.map +1 -1
- package/src/controllers/ai.js.map +1 -1
- package/src/controllers/global-event.js.map +1 -1
- package/src/controllers/page.js.map +1 -1
- package/src/controllers/private_config.js.map +1 -1
- package/src/export/export-test.js.map +1 -1
- package/src/firebase/message.js +1 -2
- package/src/firebase/message.js.map +1 -1
- package/src/helper/app_creater.js +1 -2
- package/src/helper/app_creater.js.map +1 -1
- package/src/helper/glitter-util.d.ts +0 -1
- package/src/helper/glitter-util.js.map +1 -1
- package/src/lambda/interface.d.ts +1 -1
- package/src/lambda/interface.js +2 -2
- package/src/lambda/interface.js.map +1 -1
- package/src/modules/caught-error.js.map +1 -1
- package/src/modules/exception.js.map +1 -1
- package/src/modules/hooks.js.map +1 -1
- package/src/modules/response.js.map +1 -1
- package/src/modules/ssh.js.map +1 -1
- package/src/services/ses.js +1 -2
- package/src/services/ses.js.map +1 -1
- package/src/services/system-schedule.js.map +1 -1
- package/src/update-script.js.map +1 -1
|
@@ -7,7 +7,7 @@ import axios from 'axios';
|
|
|
7
7
|
import app from '../../app';
|
|
8
8
|
import redis from '../../modules/redis.js';
|
|
9
9
|
import Tool from '../../modules/tool.js';
|
|
10
|
-
import FinancialService, {
|
|
10
|
+
import FinancialService, { EcPay, JKO, LinePay, PayNow, PayPal } from './financial-service.js';
|
|
11
11
|
import { Private_config } from '../../services/private_config.js';
|
|
12
12
|
import { User } from './user.js';
|
|
13
13
|
import { Invoice } from './invoice.js';
|
|
@@ -34,6 +34,8 @@ import { CheckoutService } from './checkout.js';
|
|
|
34
34
|
import { ProductInitial } from './product-initial.js';
|
|
35
35
|
import { UtTimer } from '../utils/ut-timer.js';
|
|
36
36
|
import { AutoFcm } from '../../public-config-initial/auto-fcm.js';
|
|
37
|
+
import PaymentTransaction from './model/handlePaymentTransaction.js';
|
|
38
|
+
|
|
37
39
|
type BindItem = {
|
|
38
40
|
id: string;
|
|
39
41
|
spec: string[];
|
|
@@ -371,7 +373,7 @@ export type Cart = {
|
|
|
371
373
|
custom_form_data?: any;
|
|
372
374
|
distribution_id?: number;
|
|
373
375
|
distribution_info?: any;
|
|
374
|
-
orderSource: '' | 'manual' | 'normal' | 'POS' | 'combine' | 'group_buy';
|
|
376
|
+
orderSource: '' | 'manual' | 'normal' | 'POS' | 'combine' | 'group_buy' | 'split';
|
|
375
377
|
temp_cart_id?: string;
|
|
376
378
|
code_array: string[];
|
|
377
379
|
deliveryData?: DeliveryData;
|
|
@@ -385,6 +387,8 @@ export type Cart = {
|
|
|
385
387
|
scheduled_id?: string;
|
|
386
388
|
editRecord: { time: string; record: string }[];
|
|
387
389
|
combineOrderID?: number;
|
|
390
|
+
splitOrders?: string[];
|
|
391
|
+
parentOrder?: string;
|
|
388
392
|
};
|
|
389
393
|
|
|
390
394
|
export type Order = {
|
|
@@ -1327,10 +1331,12 @@ export class Shopping {
|
|
|
1327
1331
|
const orderClause = query.order_by || 'ORDER BY id DESC';
|
|
1328
1332
|
const offset = query.page * query.limit;
|
|
1329
1333
|
|
|
1330
|
-
let sql = `SELECT *
|
|
1334
|
+
let sql = `SELECT *
|
|
1335
|
+
FROM \`${this.app}\`.t_manager_post ${whereClause} ${orderClause}`;
|
|
1331
1336
|
|
|
1332
1337
|
const data = await db.query(
|
|
1333
|
-
`SELECT *
|
|
1338
|
+
`SELECT *
|
|
1339
|
+
FROM (${sql}) AS subquery LIMIT ?, ?
|
|
1334
1340
|
`,
|
|
1335
1341
|
[offset, Number(query.limit)]
|
|
1336
1342
|
);
|
|
@@ -1343,7 +1349,8 @@ export class Shopping {
|
|
|
1343
1349
|
} else {
|
|
1344
1350
|
const total = await db
|
|
1345
1351
|
.query(
|
|
1346
|
-
`SELECT COUNT(*) as count
|
|
1352
|
+
`SELECT COUNT(*) as count
|
|
1353
|
+
FROM \`${this.app}\`.t_manager_post ${whereClause}
|
|
1347
1354
|
`,
|
|
1348
1355
|
[]
|
|
1349
1356
|
)
|
|
@@ -1800,7 +1807,7 @@ export class Shopping {
|
|
|
1800
1807
|
fbp?: string;
|
|
1801
1808
|
temp_cart_id?: string;
|
|
1802
1809
|
},
|
|
1803
|
-
type: 'add' | 'preview' | 'manual' | 'manual-preview' | 'POS' = 'add',
|
|
1810
|
+
type: 'add' | 'preview' | 'manual' | 'manual-preview' | 'POS' | 'split' = 'add',
|
|
1804
1811
|
replace_order_id?: string
|
|
1805
1812
|
) {
|
|
1806
1813
|
try {
|
|
@@ -2777,8 +2784,8 @@ export class Shopping {
|
|
|
2777
2784
|
checkPoint('check user rebate');
|
|
2778
2785
|
|
|
2779
2786
|
// 手動結帳地方判定
|
|
2780
|
-
if (type === 'manual') {
|
|
2781
|
-
carData.orderSource =
|
|
2787
|
+
if (type === 'manual' || type === 'split') {
|
|
2788
|
+
carData.orderSource = type;
|
|
2782
2789
|
let tempVoucher: VoucherData = {
|
|
2783
2790
|
discount_total: data.voucher.discount_total,
|
|
2784
2791
|
end_ISO_Date: '',
|
|
@@ -2816,7 +2823,7 @@ export class Shopping {
|
|
|
2816
2823
|
carData.total = data.total ?? 0;
|
|
2817
2824
|
carData.rebate = tempVoucher.rebate_total;
|
|
2818
2825
|
|
|
2819
|
-
if (tempVoucher.reBackType == 'shipment_free') {
|
|
2826
|
+
if (tempVoucher.reBackType == 'shipment_free' || type == 'split') {
|
|
2820
2827
|
carData.shipment_fee = 0;
|
|
2821
2828
|
}
|
|
2822
2829
|
|
|
@@ -2988,7 +2995,7 @@ export class Shopping {
|
|
|
2988
2995
|
ReturnURL: '',
|
|
2989
2996
|
NotifyURL: '',
|
|
2990
2997
|
};
|
|
2991
|
-
//
|
|
2998
|
+
// 金流處理
|
|
2992
2999
|
switch (carData.customer_info.payment_select) {
|
|
2993
3000
|
case 'ecPay':
|
|
2994
3001
|
case 'newWebPay':
|
|
@@ -3122,6 +3129,162 @@ export class Shopping {
|
|
|
3122
3129
|
}
|
|
3123
3130
|
}
|
|
3124
3131
|
|
|
3132
|
+
async repayOrder(orderID: string, return_url: string) {
|
|
3133
|
+
const app = this.app;
|
|
3134
|
+
|
|
3135
|
+
async function getOrder(orderID: string) {
|
|
3136
|
+
try {
|
|
3137
|
+
const result = await db.query(
|
|
3138
|
+
`
|
|
3139
|
+
SELECT *
|
|
3140
|
+
FROM \`${app}\`.t_checkout
|
|
3141
|
+
WHERE cart_token = ?`,
|
|
3142
|
+
[orderID]
|
|
3143
|
+
);
|
|
3144
|
+
return result[0];
|
|
3145
|
+
} catch (e: any) {
|
|
3146
|
+
console.error(`查詢 orderID ${orderID} 的結帳資料時發生錯誤:`, e.message || e);
|
|
3147
|
+
// 處理錯誤的方式:
|
|
3148
|
+
// 選擇 1:返回 null,讓呼叫者知道操作失敗或未找到資料
|
|
3149
|
+
return null;
|
|
3150
|
+
}
|
|
3151
|
+
}
|
|
3152
|
+
|
|
3153
|
+
const sqlData: any = await getOrder(orderID);
|
|
3154
|
+
|
|
3155
|
+
if (sqlData) {
|
|
3156
|
+
const orderData: {
|
|
3157
|
+
lineItems: CartItem[];
|
|
3158
|
+
customer_info?: any; //顧客資訊 訂單人
|
|
3159
|
+
email?: string;
|
|
3160
|
+
return_url: string;
|
|
3161
|
+
orderID?: string;
|
|
3162
|
+
user_info: any; //取貨人資訊
|
|
3163
|
+
code?: string;
|
|
3164
|
+
use_rebate?: number;
|
|
3165
|
+
use_wallet?: number;
|
|
3166
|
+
checkOutType?: 'manual' | 'auto' | 'POS' | 'group_buy';
|
|
3167
|
+
pos_store?: string;
|
|
3168
|
+
voucher?: any; //自定義的voucher
|
|
3169
|
+
discount?: number; //自定義金額
|
|
3170
|
+
total?: number; //自定義總額
|
|
3171
|
+
pay_status?: number; //自定義訂單狀態
|
|
3172
|
+
custom_form_format?: any; //自定義表單格式
|
|
3173
|
+
custom_form_data?: any; //自定義表單資料
|
|
3174
|
+
custom_receipt_form?: any; //自定義配送表單格式
|
|
3175
|
+
distribution_code?: string; //分銷連結代碼
|
|
3176
|
+
code_array: string[]; // 優惠券代碼列表
|
|
3177
|
+
give_away?: {
|
|
3178
|
+
id: number;
|
|
3179
|
+
spec: string[];
|
|
3180
|
+
count: number;
|
|
3181
|
+
voucher_id: string;
|
|
3182
|
+
}[];
|
|
3183
|
+
language?: 'en-US' | 'zh-CN' | 'zh-TW';
|
|
3184
|
+
pos_info?: any; //POS結帳資訊;
|
|
3185
|
+
invoice_select?: string;
|
|
3186
|
+
pre_order?: boolean;
|
|
3187
|
+
voucherList?: any;
|
|
3188
|
+
isExhibition?: boolean;
|
|
3189
|
+
client_ip_address?: string;
|
|
3190
|
+
fbc?: string;
|
|
3191
|
+
fbp?: string;
|
|
3192
|
+
temp_cart_id?: string;
|
|
3193
|
+
shipment_fee?: number;
|
|
3194
|
+
rebate?: number;
|
|
3195
|
+
} = sqlData.orderData;
|
|
3196
|
+
if (!orderData) {
|
|
3197
|
+
throw exception.BadRequestError('BAD_REQUEST', 'ToCheckout Error: Cannot find this orderID', null);
|
|
3198
|
+
}
|
|
3199
|
+
const keyData = (
|
|
3200
|
+
await Private_config.getConfig({
|
|
3201
|
+
appName: this.app,
|
|
3202
|
+
key: 'glitter_finance',
|
|
3203
|
+
})
|
|
3204
|
+
)[0].value;
|
|
3205
|
+
|
|
3206
|
+
// 物流設定
|
|
3207
|
+
const shipment_setting: any = await (async () => {
|
|
3208
|
+
try {
|
|
3209
|
+
const config = await Private_config.getConfig({
|
|
3210
|
+
appName: this.app,
|
|
3211
|
+
key: 'logistics_setting',
|
|
3212
|
+
});
|
|
3213
|
+
|
|
3214
|
+
// 如果 config 為空,則返回預設值
|
|
3215
|
+
if (!config) {
|
|
3216
|
+
return {
|
|
3217
|
+
support: [],
|
|
3218
|
+
shipmentSupport: [],
|
|
3219
|
+
};
|
|
3220
|
+
}
|
|
3221
|
+
|
|
3222
|
+
// 返回第一個元素的 value 屬性
|
|
3223
|
+
return config[0].value;
|
|
3224
|
+
} catch (e) {
|
|
3225
|
+
// 發生錯誤時返回空陣列
|
|
3226
|
+
return [];
|
|
3227
|
+
}
|
|
3228
|
+
})();
|
|
3229
|
+
|
|
3230
|
+
let kd = keyData[orderData.customer_info.payment_select] ?? {
|
|
3231
|
+
ReturnURL: '',
|
|
3232
|
+
NotifyURL: '',
|
|
3233
|
+
};
|
|
3234
|
+
const newOrderID = Date.now();
|
|
3235
|
+
const carData: Cart = {
|
|
3236
|
+
customer_info: orderData.customer_info || {},
|
|
3237
|
+
lineItems: orderData.lineItems ?? [],
|
|
3238
|
+
total: orderData.total ?? 0,
|
|
3239
|
+
email: sqlData.email ?? orderData.user_info?.email ?? '',
|
|
3240
|
+
user_info: orderData.user_info,
|
|
3241
|
+
shipment_fee: orderData.shipment_fee ?? 0,
|
|
3242
|
+
rebate: orderData.rebate ?? 0,
|
|
3243
|
+
goodsWeight: 0,
|
|
3244
|
+
use_rebate: orderData.use_rebate || 0,
|
|
3245
|
+
orderID: `${newOrderID}`,
|
|
3246
|
+
shipment_support: shipment_setting.support as any,
|
|
3247
|
+
shipment_info: shipment_setting.info as any,
|
|
3248
|
+
shipment_selector: [
|
|
3249
|
+
// 標準物流
|
|
3250
|
+
...Shipment_support_config.list.map(dd => ({
|
|
3251
|
+
name: dd.title,
|
|
3252
|
+
value: dd.value,
|
|
3253
|
+
})),
|
|
3254
|
+
// 自定義物流
|
|
3255
|
+
...(shipment_setting.custom_delivery ?? []).map((dd: any) => ({
|
|
3256
|
+
form: dd.form,
|
|
3257
|
+
name: dd.name,
|
|
3258
|
+
value: dd.id,
|
|
3259
|
+
system_form: dd.system_form,
|
|
3260
|
+
})),
|
|
3261
|
+
].filter(option => shipment_setting.support.includes(option.value)),
|
|
3262
|
+
use_wallet: 0,
|
|
3263
|
+
method: sqlData.user_info?.method,
|
|
3264
|
+
user_email: sqlData.email ?? orderData.user_info?.email ?? '',
|
|
3265
|
+
useRebateInfo: sqlData.useRebateInfo,
|
|
3266
|
+
custom_form_format: sqlData.custom_form_format,
|
|
3267
|
+
custom_form_data: sqlData.custom_form_data,
|
|
3268
|
+
custom_receipt_form: sqlData.custom_receipt_form,
|
|
3269
|
+
orderSource: sqlData.orderSource === 'POS' ? 'POS' : '',
|
|
3270
|
+
code_array: sqlData.code_array,
|
|
3271
|
+
give_away: sqlData.give_away as any,
|
|
3272
|
+
user_rebate_sum: 0,
|
|
3273
|
+
language: sqlData.language,
|
|
3274
|
+
pos_info: sqlData.pos_info,
|
|
3275
|
+
client_ip_address: sqlData.client_ip_address as string,
|
|
3276
|
+
fbc: sqlData.fbc as string,
|
|
3277
|
+
fbp: sqlData.fbp as string,
|
|
3278
|
+
editRecord: [],
|
|
3279
|
+
};
|
|
3280
|
+
const result = await new PaymentTransaction(this.app, orderData.customer_info.payment_select).processPayment(
|
|
3281
|
+
carData
|
|
3282
|
+
);
|
|
3283
|
+
}
|
|
3284
|
+
|
|
3285
|
+
// return result
|
|
3286
|
+
}
|
|
3287
|
+
|
|
3125
3288
|
async getReturnOrder(query: {
|
|
3126
3289
|
page: number;
|
|
3127
3290
|
limit: number;
|
|
@@ -3411,6 +3574,9 @@ export class Shopping {
|
|
|
3411
3574
|
|
|
3412
3575
|
async splitOrder(obj: { orderData: Cart; splitOrderArray: OrderDetail[] }) {
|
|
3413
3576
|
try {
|
|
3577
|
+
const currentTime = new Date().toISOString();
|
|
3578
|
+
|
|
3579
|
+
//給定訂單編號 產生 編號A 編號B... 依此類推
|
|
3414
3580
|
function generateOrderIds(orderId: string, arrayLength: number): string[] {
|
|
3415
3581
|
const orderIdArray: string[] = [];
|
|
3416
3582
|
const startChar = 'A'.charCodeAt(0); // 取得 'A' 的 ASCII 碼
|
|
@@ -3423,6 +3589,7 @@ export class Shopping {
|
|
|
3423
3589
|
|
|
3424
3590
|
return orderIdArray;
|
|
3425
3591
|
}
|
|
3592
|
+
|
|
3426
3593
|
//整理原本訂單的總價 優惠卷
|
|
3427
3594
|
function refreshOrder(orderData: Cart, splitOrderArray: OrderDetail[]) {
|
|
3428
3595
|
const { newTotal, newDiscount } = splitOrderArray.reduce(
|
|
@@ -3434,27 +3601,51 @@ export class Shopping {
|
|
|
3434
3601
|
},
|
|
3435
3602
|
{ newTotal: 0, newDiscount: 0 }
|
|
3436
3603
|
);
|
|
3437
|
-
|
|
3438
|
-
orderData.
|
|
3439
|
-
orderData.
|
|
3604
|
+
orderData.total = orderData.total - newTotal;
|
|
3605
|
+
orderData.discount = (orderData.discount ?? 0) - newDiscount;
|
|
3606
|
+
orderData.splitOrders = generateOrderIds(orderData.orderID, splitOrderArray.length) ?? [];
|
|
3607
|
+
orderData.editRecord.push({
|
|
3608
|
+
time: currentTime,
|
|
3609
|
+
record: `拆分成 ${splitOrderArray.length} 筆子訂單\\n${orderData.splitOrders.map(orderID => `{{order=${orderID}}}`).join('\\n')}`,
|
|
3610
|
+
});
|
|
3440
3611
|
}
|
|
3612
|
+
|
|
3441
3613
|
const orderData = obj.orderData;
|
|
3442
3614
|
const splitOrderArray = obj.splitOrderArray;
|
|
3443
3615
|
refreshOrder(orderData, splitOrderArray);
|
|
3444
|
-
|
|
3445
|
-
|
|
3446
|
-
|
|
3447
|
-
|
|
3448
|
-
|
|
3449
|
-
|
|
3450
|
-
|
|
3616
|
+
await this.putOrder({
|
|
3617
|
+
cart_token: orderData.orderID,
|
|
3618
|
+
orderData,
|
|
3619
|
+
});
|
|
3620
|
+
for (const [index, order] of splitOrderArray.entries()) {
|
|
3621
|
+
await this.toCheckout(
|
|
3622
|
+
{
|
|
3623
|
+
code_array: [],
|
|
3624
|
+
order_id: orderData?.splitOrders?.[index] ?? '',
|
|
3625
|
+
line_items: order.lineItems as any,
|
|
3626
|
+
customer_info: order.customer_info,
|
|
3627
|
+
return_url: '',
|
|
3628
|
+
user_info: order.user_info,
|
|
3629
|
+
discount: order.discount,
|
|
3630
|
+
voucher: order.voucher,
|
|
3631
|
+
total: order.total,
|
|
3632
|
+
pay_status: Number(order.pay_status),
|
|
3633
|
+
},
|
|
3634
|
+
'split'
|
|
3451
3635
|
);
|
|
3452
|
-
} catch (e: any) {
|
|
3453
|
-
console.error(e);
|
|
3454
|
-
throw exception.BadRequestError('BAD_REQUEST', 'putOrder Error:' + e, null);
|
|
3455
3636
|
}
|
|
3456
3637
|
|
|
3457
|
-
|
|
3638
|
+
// try {
|
|
3639
|
+
// await db.query(
|
|
3640
|
+
// `UPDATE \`${this.app}\`.t_checkout
|
|
3641
|
+
// SET orderData = ?
|
|
3642
|
+
// WHERE cart_token = ?;`,
|
|
3643
|
+
// [JSON.stringify(orderData), orderData.orderID]
|
|
3644
|
+
// );
|
|
3645
|
+
// }catch (e:any){
|
|
3646
|
+
// console.error(e);
|
|
3647
|
+
// throw exception.BadRequestError('BAD_REQUEST', 'putOrder Error:' + e, null);
|
|
3648
|
+
// }
|
|
3458
3649
|
|
|
3459
3650
|
return true;
|
|
3460
3651
|
} catch (e) {
|
|
@@ -3882,7 +4073,7 @@ export class Shopping {
|
|
|
3882
4073
|
return cart;
|
|
3883
4074
|
}
|
|
3884
4075
|
|
|
3885
|
-
async putOrder(data: { id?: string; cart_token?: string; orderData: any; status
|
|
4076
|
+
async putOrder(data: { id?: string; cart_token?: string; orderData: any; status?: any }) {
|
|
3886
4077
|
try {
|
|
3887
4078
|
const update: any = {};
|
|
3888
4079
|
const storeConfig = await new User(this.app).getConfigV2({ key: 'store_manager', user_id: 'manager' });
|
|
@@ -3892,7 +4083,9 @@ export class Shopping {
|
|
|
3892
4083
|
const value = data.cart_token ?? data.id;
|
|
3893
4084
|
|
|
3894
4085
|
if (whereClause && value) {
|
|
3895
|
-
const query = `SELECT *
|
|
4086
|
+
const query = `SELECT *
|
|
4087
|
+
FROM \`${this.app}\`.t_checkout
|
|
4088
|
+
WHERE ${whereClause};`;
|
|
3896
4089
|
const result = await db.query(query, [value]);
|
|
3897
4090
|
origin = result[0];
|
|
3898
4091
|
}
|
|
@@ -3906,6 +4099,8 @@ export class Shopping {
|
|
|
3906
4099
|
|
|
3907
4100
|
if (data.status !== undefined) {
|
|
3908
4101
|
update.status = data.status;
|
|
4102
|
+
} else {
|
|
4103
|
+
data.status = update.status;
|
|
3909
4104
|
}
|
|
3910
4105
|
|
|
3911
4106
|
// lineItems 庫存修正
|
|
@@ -4003,7 +4198,9 @@ export class Shopping {
|
|
|
4003
4198
|
{}
|
|
4004
4199
|
);
|
|
4005
4200
|
await db.query(
|
|
4006
|
-
`UPDATE \`${this.app}\`.t_checkout
|
|
4201
|
+
`UPDATE \`${this.app}\`.t_checkout
|
|
4202
|
+
SET ?
|
|
4203
|
+
WHERE id = ?;
|
|
4007
4204
|
`,
|
|
4008
4205
|
[updateData, origin.id]
|
|
4009
4206
|
);
|
|
@@ -4438,7 +4635,8 @@ export class Shopping {
|
|
|
4438
4635
|
try {
|
|
4439
4636
|
let querySql = ['1=1'];
|
|
4440
4637
|
let orderString = 'order by id desc';
|
|
4441
|
-
|
|
4638
|
+
const timer = new UtTimer('get-checkout-info');
|
|
4639
|
+
timer.checkPoint('start');
|
|
4442
4640
|
if (query.search && query.searchType) {
|
|
4443
4641
|
switch (query.searchType) {
|
|
4444
4642
|
case 'cart_token':
|
|
@@ -4462,6 +4660,9 @@ export class Shopping {
|
|
|
4462
4660
|
`(cart_token in (select order_id from \`${this.app}\`.t_invoice_memory where invoice_no like '%${query.search}%' ))`
|
|
4463
4661
|
);
|
|
4464
4662
|
break;
|
|
4663
|
+
case 'cart_token_exact':
|
|
4664
|
+
querySql.push(`(cart_token = '${query.search}')`);
|
|
4665
|
+
break;
|
|
4465
4666
|
default:
|
|
4466
4667
|
querySql.push(
|
|
4467
4668
|
`JSON_CONTAINS_PATH(orderData, 'one', '$.lineItems[*].title') AND JSON_UNQUOTE(JSON_EXTRACT(orderData, '$.lineItems[*].${query.searchType}')) REGEXP '${query.search}'`
|
|
@@ -4526,7 +4727,6 @@ export class Shopping {
|
|
|
4526
4727
|
|
|
4527
4728
|
querySql.push(countingSQL);
|
|
4528
4729
|
}
|
|
4529
|
-
|
|
4530
4730
|
if (query.is_shipment) {
|
|
4531
4731
|
querySql.push(`(shipment_number IS NOT NULL) and (shipment_number != '')`);
|
|
4532
4732
|
}
|
|
@@ -4541,7 +4741,6 @@ export class Shopping {
|
|
|
4541
4741
|
.join(',')})`
|
|
4542
4742
|
);
|
|
4543
4743
|
}
|
|
4544
|
-
|
|
4545
4744
|
if (query.progress) {
|
|
4546
4745
|
//備貨中
|
|
4547
4746
|
if (query.progress === 'in_stock') {
|
|
@@ -4558,7 +4757,6 @@ export class Shopping {
|
|
|
4558
4757
|
temp += `progress IN (${newArray.map(status => `"${status}"`).join(',')})`;
|
|
4559
4758
|
querySql.push(`(${temp})`);
|
|
4560
4759
|
}
|
|
4561
|
-
|
|
4562
4760
|
if (query.distribution_code) {
|
|
4563
4761
|
let codes = query.distribution_code.split(',');
|
|
4564
4762
|
let temp = '';
|
|
@@ -4571,7 +4769,6 @@ export class Shopping {
|
|
|
4571
4769
|
} else if (query.is_pos === 'false') {
|
|
4572
4770
|
querySql.push(`(order_source!='POS' or order_source is null)`);
|
|
4573
4771
|
}
|
|
4574
|
-
|
|
4575
4772
|
if (query.shipment) {
|
|
4576
4773
|
let shipment = query.shipment.split(',');
|
|
4577
4774
|
let temp = '';
|
|
@@ -4617,7 +4814,6 @@ export class Shopping {
|
|
|
4617
4814
|
break;
|
|
4618
4815
|
}
|
|
4619
4816
|
}
|
|
4620
|
-
|
|
4621
4817
|
query.status && querySql.push(`o.status IN (${query.status})`);
|
|
4622
4818
|
const orderMath = [];
|
|
4623
4819
|
|
|
@@ -4648,6 +4844,7 @@ export class Shopping {
|
|
|
4648
4844
|
FROM \`${this.app}\`.t_checkout o
|
|
4649
4845
|
LEFT JOIN \`${this.app}\`.t_invoice_memory i ON o.cart_token = i.order_id and i.status = 1
|
|
4650
4846
|
WHERE ${querySql.join(' and ')} ${orderString}`;
|
|
4847
|
+
timer.checkPoint('start-query-sql');
|
|
4651
4848
|
if (query.returnSearch == 'true') {
|
|
4652
4849
|
const data = await db.query(
|
|
4653
4850
|
`SELECT *
|
|
@@ -4655,7 +4852,6 @@ export class Shopping {
|
|
|
4655
4852
|
WHERE cart_token = ${db.escape(query.search)}`,
|
|
4656
4853
|
[]
|
|
4657
4854
|
);
|
|
4658
|
-
|
|
4659
4855
|
let returnSql = `SELECT *
|
|
4660
4856
|
FROM \`${this.app}\`.t_return_order
|
|
4661
4857
|
WHERE order_id = ${query.search}`;
|
|
@@ -4678,6 +4874,7 @@ export class Shopping {
|
|
|
4678
4874
|
return data[0];
|
|
4679
4875
|
}
|
|
4680
4876
|
const response_data: any = await new Promise(async (resolve, reject) => {
|
|
4877
|
+
timer.checkPoint('start-query-response_data');
|
|
4681
4878
|
if (query.id) {
|
|
4682
4879
|
const data = (
|
|
4683
4880
|
await db.query(
|
|
@@ -4692,13 +4889,16 @@ export class Shopping {
|
|
|
4692
4889
|
result: !!data,
|
|
4693
4890
|
});
|
|
4694
4891
|
} else {
|
|
4892
|
+
const data = await db.query(
|
|
4893
|
+
`SELECT *
|
|
4894
|
+
FROM (${sql}) as subqyery limit ${query.page * query.limit}, ${query.limit}
|
|
4895
|
+
`,
|
|
4896
|
+
[]
|
|
4897
|
+
);
|
|
4898
|
+
timer.checkPoint('finish-query-response_data');
|
|
4899
|
+
console.log(sql);
|
|
4695
4900
|
resolve({
|
|
4696
|
-
data:
|
|
4697
|
-
`SELECT *
|
|
4698
|
-
FROM (${sql}) as subqyery limit ${query.page * query.limit}, ${query.limit}
|
|
4699
|
-
`,
|
|
4700
|
-
[]
|
|
4701
|
-
),
|
|
4901
|
+
data: data,
|
|
4702
4902
|
total: (
|
|
4703
4903
|
await db.query(
|
|
4704
4904
|
`SELECT count(1)
|
|
@@ -4796,7 +4996,7 @@ export class Shopping {
|
|
|
4796
4996
|
})
|
|
4797
4997
|
)
|
|
4798
4998
|
);
|
|
4799
|
-
|
|
4999
|
+
timer.checkPoint('finish-query-all');
|
|
4800
5000
|
return response_data;
|
|
4801
5001
|
} catch (e) {
|
|
4802
5002
|
throw exception.BadRequestError('BAD_REQUEST', 'getCheckOut Error:' + e, null);
|
|
@@ -5151,7 +5351,8 @@ export class Shopping {
|
|
|
5151
5351
|
}
|
|
5152
5352
|
|
|
5153
5353
|
const insertData = await db.query(
|
|
5154
|
-
`INSERT INTO \`${this.app}\`.t_variants
|
|
5354
|
+
`INSERT INTO \`${this.app}\`.t_variants
|
|
5355
|
+
SET ?
|
|
5155
5356
|
`,
|
|
5156
5357
|
[
|
|
5157
5358
|
{
|
|
@@ -6179,7 +6380,16 @@ export class Shopping {
|
|
|
6179
6380
|
}
|
|
6180
6381
|
|
|
6181
6382
|
query.id && querySql.push(`(v.id = ${query.id})`);
|
|
6182
|
-
|
|
6383
|
+
if (query.id_list) {
|
|
6384
|
+
if (query.id_list?.includes('-')) {
|
|
6385
|
+
querySql.push(`(v.product_id in (${query.id_list.split(',').map((dd)=>{
|
|
6386
|
+
return dd.split('-')[0]
|
|
6387
|
+
})}))`);
|
|
6388
|
+
} else {
|
|
6389
|
+
querySql.push(`(v.id in (${query.id_list}))`);
|
|
6390
|
+
}
|
|
6391
|
+
}
|
|
6392
|
+
|
|
6183
6393
|
query.collection &&
|
|
6184
6394
|
querySql.push(
|
|
6185
6395
|
`(${query.collection
|
|
@@ -6367,22 +6577,23 @@ export class Shopping {
|
|
|
6367
6577
|
WHERE id = ?`,
|
|
6368
6578
|
[{ content: JSON.stringify(data.variant_content) }, data.id]
|
|
6369
6579
|
);
|
|
6370
|
-
let variants=
|
|
6371
|
-
|
|
6580
|
+
let variants = (
|
|
6581
|
+
await db.query(
|
|
6582
|
+
`SELECT *
|
|
6372
6583
|
FROM \`${this.app}\`.t_variants
|
|
6373
6584
|
WHERE product_id = ?`,
|
|
6374
|
-
|
|
6375
|
-
|
|
6376
|
-
|
|
6585
|
+
[data.product_id]
|
|
6586
|
+
)
|
|
6587
|
+
).map((dd: any) => {
|
|
6588
|
+
return dd.content;
|
|
6377
6589
|
});
|
|
6378
|
-
data.product_content.variants=variants;
|
|
6590
|
+
data.product_content.variants = variants;
|
|
6379
6591
|
await db.query(
|
|
6380
6592
|
`UPDATE \`${this.app}\`.t_manager_post
|
|
6381
6593
|
SET ?
|
|
6382
6594
|
WHERE id = ?`,
|
|
6383
6595
|
[{ content: JSON.stringify(data.product_content) }, data.product_id]
|
|
6384
6596
|
);
|
|
6385
|
-
|
|
6386
6597
|
}
|
|
6387
6598
|
return {
|
|
6388
6599
|
result: 'success',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terms-check.js","sourceRoot":"","sources":["terms-check.ts"],"names":[],"mappings":";;;AAAA,MAAa,UAAU;IAEZ,MAAM,CAAE,KAAK,CAAC,GAAW;QAC5B,QAAQ,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"terms-check.js","sourceRoot":"","sources":["terms-check.ts"],"names":[],"mappings":";;;AAAA,MAAa,UAAU;IAEZ,MAAM,CAAE,KAAK,CAAC,GAAW;QAC5B,QAAQ,GAAG,EAAE,CAAC;YACV,KAAK,4BAA4B;gBAC7B,OAAO;oBACH,MAAM,EAAE,m3zCAAm3zC;iBAC93zC,CAAA;YACL,KAAK,8BAA8B;gBAC/B,OAAO;oBACH,MAAM,EAAE,kipCAAkipC;iBAC7ipC,CAAA;YACL,KAAK,0BAA0B;gBAC3B,OAAO,EAAC,MAAM,EAAE,0gxCAA0gxC,EAAC,CAAA;YAC/hxC,KAAK,6BAA6B;gBAC9B,OAAO,EAAC,MAAM,EAAE,s7nCAAs7nC,EAAC,CAAA;QAC/8nC,CAAC;QACD,OAAQ;YACJ,MAAM,EAAC,EAAE;SACZ,CAAA;IAEL,CAAC;CACJ;AAtBD,gCAsBC"}
|
|
@@ -199,6 +199,28 @@ class UpdatedTableChecked {
|
|
|
199
199
|
CHANGE COLUMN \`count\` \`count\` FLOAT NOT NULL;
|
|
200
200
|
`,
|
|
201
201
|
});
|
|
202
|
+
await UpdatedTableChecked.update({
|
|
203
|
+
app_name: app_name,
|
|
204
|
+
table_name: 't_user',
|
|
205
|
+
last_version: ['V1.2'],
|
|
206
|
+
new_version: 'V1.3',
|
|
207
|
+
event: `ALTER TABLE \`${app_name}\`.\`t_user\`
|
|
208
|
+
ADD COLUMN \`email\` VARCHAR(50) NULL AFTER \`member_level\`,
|
|
209
|
+
ADD COLUMN \`phone\` VARCHAR(50) NULL AFTER \`email\`,
|
|
210
|
+
ADD INDEX \`index8\` (\`email\` ASC) VISIBLE,
|
|
211
|
+
ADD INDEX \`index9\` (\`phone\` ASC) VISIBLE;
|
|
212
|
+
;`,
|
|
213
|
+
});
|
|
214
|
+
await UpdatedTableChecked.update({
|
|
215
|
+
app_name: app_name,
|
|
216
|
+
table_name: 't_user',
|
|
217
|
+
last_version: ['V1.3'],
|
|
218
|
+
new_version: 'V1.4',
|
|
219
|
+
event: `UPDATE \`${app_name}\`.t_user
|
|
220
|
+
SET
|
|
221
|
+
phone = JSON_UNQUOTE(JSON_EXTRACT(userData, '$.phone')),
|
|
222
|
+
email = JSON_UNQUOTE(JSON_EXTRACT(userData, '$.email')) where id>0`,
|
|
223
|
+
});
|
|
202
224
|
}
|
|
203
225
|
static async update(obj) {
|
|
204
226
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updated-table-checked.js","sourceRoot":"","sources":["updated-table-checked.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"updated-table-checked.js","sourceRoot":"","sources":["updated-table-checked.ts"],"names":[],"mappings":"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"}
|
|
@@ -209,6 +209,34 @@ export class UpdatedTableChecked {
|
|
|
209
209
|
CHANGE COLUMN \`count\` \`count\` FLOAT NOT NULL;
|
|
210
210
|
`,
|
|
211
211
|
});
|
|
212
|
+
|
|
213
|
+
//會員表插入信箱和電話
|
|
214
|
+
await UpdatedTableChecked.update({
|
|
215
|
+
app_name: app_name,
|
|
216
|
+
table_name: 't_user',
|
|
217
|
+
last_version: ['V1.2'],
|
|
218
|
+
new_version: 'V1.3',
|
|
219
|
+
event: `ALTER TABLE \`${app_name}\`.\`t_user\`
|
|
220
|
+
ADD COLUMN \`email\` VARCHAR(50) NULL AFTER \`member_level\`,
|
|
221
|
+
ADD COLUMN \`phone\` VARCHAR(50) NULL AFTER \`email\`,
|
|
222
|
+
ADD INDEX \`index8\` (\`email\` ASC) VISIBLE,
|
|
223
|
+
ADD INDEX \`index9\` (\`phone\` ASC) VISIBLE;
|
|
224
|
+
;`,
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
//會員表插入信箱和電話
|
|
228
|
+
await UpdatedTableChecked.update({
|
|
229
|
+
app_name: app_name,
|
|
230
|
+
table_name: 't_user',
|
|
231
|
+
last_version: ['V1.3'],
|
|
232
|
+
new_version: 'V1.4',
|
|
233
|
+
event:`UPDATE \`${app_name}\`.t_user
|
|
234
|
+
SET
|
|
235
|
+
phone = JSON_UNQUOTE(JSON_EXTRACT(userData, '$.phone')),
|
|
236
|
+
email = JSON_UNQUOTE(JSON_EXTRACT(userData, '$.email')) where id>0`,
|
|
237
|
+
});
|
|
238
|
+
|
|
239
|
+
|
|
212
240
|
}
|
|
213
241
|
|
|
214
242
|
public static async update(obj: {
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UserService = void 0;
|
|
4
|
+
class UserService {
|
|
5
|
+
static async updateAndMigrateToTableColumn(obj) {
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
exports.UserService = UserService;
|
|
9
|
+
//# sourceMappingURL=user-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-service.js","sourceRoot":"","sources":["user-service.ts"],"names":[],"mappings":";;;AAAA,MAAa,WAAW;IACf,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,GAMjD;IAED,CAAC;CACF;AAVD,kCAUC"}
|