ts-glitter 20.8.7 → 20.8.9

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.
Files changed (177) hide show
  1. package/lowcode/Entry.js +1 -1
  2. package/lowcode/Entry.ts +1 -1
  3. package/lowcode/backend-manager/bg-product.js +1 -1
  4. package/lowcode/backend-manager/bg-product.ts +1 -1
  5. package/lowcode/backend-manager/bg-recommend.js +1 -1
  6. package/lowcode/backend-manager/bg-recommend.ts +2 -2
  7. package/lowcode/backend-manager/bg-shopping.js +2 -5
  8. package/lowcode/backend-manager/bg-shopping.ts +2 -5
  9. package/lowcode/cms-plugin/POS-setting.js +58 -34
  10. package/lowcode/cms-plugin/POS-setting.ts +69 -33
  11. package/lowcode/cms-plugin/data-analyze-orders.js +0 -1
  12. package/lowcode/cms-plugin/data-analyze-orders.ts +1 -1
  13. package/lowcode/cms-plugin/data-analyze.js +1 -21
  14. package/lowcode/cms-plugin/data-analyze.ts +25 -25
  15. package/lowcode/cms-plugin/filter-options.js +1 -1
  16. package/lowcode/cms-plugin/filter-options.ts +1 -2
  17. package/lowcode/cms-plugin/information/information-module.js +275 -0
  18. package/lowcode/cms-plugin/information/information-module.ts +308 -0
  19. package/lowcode/cms-plugin/pos-pages/models.ts +3 -1
  20. package/lowcode/cms-plugin/pos-pages/payment-page.js +3 -11
  21. package/lowcode/cms-plugin/pos-pages/payment-page.ts +3 -11
  22. package/lowcode/cms-plugin/pos-pages/pos-function.js +1 -0
  23. package/lowcode/cms-plugin/pos-pages/pos-function.ts +1 -0
  24. package/lowcode/cms-plugin/pos-pages/products-page.js +1 -1
  25. package/lowcode/cms-plugin/pos-pages/products-page.ts +1 -1
  26. package/lowcode/cms-plugin/product-service.js +4 -9
  27. package/lowcode/cms-plugin/product-service.ts +4 -13
  28. package/lowcode/cms-plugin/shopping-discount-setting.js +76 -27
  29. package/lowcode/cms-plugin/shopping-discount-setting.ts +123 -63
  30. package/lowcode/cms-plugin/shopping-information.js +21 -167
  31. package/lowcode/cms-plugin/shopping-information.ts +35 -191
  32. package/lowcode/cms-plugin/shopping-order-return.js +212 -360
  33. package/lowcode/cms-plugin/shopping-order-return.ts +349 -482
  34. package/lowcode/cms-plugin/shopping-product-setting.js +8 -0
  35. package/lowcode/cms-plugin/shopping-product-setting.ts +12 -4
  36. package/lowcode/form-view/e-commerce/product-select.js +59 -51
  37. package/lowcode/form-view/e-commerce/product-select.ts +279 -266
  38. package/lowcode/glitter-base/global/language.js +2 -1
  39. package/lowcode/glitter-base/global/language.ts +2 -1
  40. package/lowcode/public-components/checkout/index.ts +2078 -2078
  41. package/lowcode/public-components/headers/sy-02.js +190 -179
  42. package/lowcode/public-components/headers/sy-02.ts +397 -370
  43. package/lowcode/public-components/headers/sy-03.js +133 -107
  44. package/lowcode/public-components/headers/sy-03.ts +276 -244
  45. package/lowcode/public-components/headers/sy-04.js +181 -146
  46. package/lowcode/public-components/headers/sy-04.ts +289 -247
  47. package/lowcode/public-components/product/pd-class.js +31 -23
  48. package/lowcode/public-components/product/pd-class.ts +51 -29
  49. package/lowcode/public-components/user-manager/um-voucher.js +1 -0
  50. package/lowcode/public-components/user-manager/um-voucher.ts +1 -0
  51. package/package.json +1 -1
  52. package/src/Language.js +1 -1
  53. package/src/Language.js.map +1 -1
  54. package/src/Language.ts +1 -1
  55. package/src/api-public/controllers/ai-chat.js.map +1 -1
  56. package/src/api-public/controllers/chat.js.map +1 -1
  57. package/src/api-public/controllers/customer-sessions.js.map +1 -1
  58. package/src/api-public/controllers/fb-message.js.map +1 -1
  59. package/src/api-public/controllers/fb-service.js.map +1 -1
  60. package/src/api-public/controllers/invoice.js.map +1 -1
  61. package/src/api-public/controllers/line-message.js.map +1 -1
  62. package/src/api-public/controllers/oauth.js.map +1 -1
  63. package/src/api-public/controllers/progress.js.map +1 -1
  64. package/src/api-public/controllers/rebate.js.map +1 -1
  65. package/src/api-public/controllers/recommend.js.map +1 -1
  66. package/src/api-public/controllers/reconciliation.js.map +1 -1
  67. package/src/api-public/controllers/shop.js +5 -2
  68. package/src/api-public/controllers/shop.js.map +1 -1
  69. package/src/api-public/controllers/shop.ts +7 -3
  70. package/src/api-public/controllers/shopee.js.map +1 -1
  71. package/src/api-public/controllers/sms.js.map +1 -1
  72. package/src/api-public/controllers/smtp.js.map +1 -1
  73. package/src/api-public/controllers/stock.js.map +1 -1
  74. package/src/api-public/controllers/track.js.map +1 -1
  75. package/src/api-public/controllers/voucher.js.map +1 -1
  76. package/src/api-public/models/glitter-finance.js +1 -2
  77. package/src/api-public/models/glitter-finance.js.map +1 -1
  78. package/src/api-public/services/EcInvoice.js.map +1 -1
  79. package/src/api-public/services/article.js.map +1 -1
  80. package/src/api-public/services/auto-send-email.js.map +1 -1
  81. package/src/api-public/services/chat.js.map +1 -1
  82. package/src/api-public/services/checkout-event.d.ts +1 -0
  83. package/src/api-public/services/checkout-event.js +17 -7
  84. package/src/api-public/services/checkout-event.js.map +1 -1
  85. package/src/api-public/services/checkout-event.ts +21 -9
  86. package/src/api-public/services/checkout.js.map +1 -1
  87. package/src/api-public/services/custom-code.js.map +1 -1
  88. package/src/api-public/services/customer-sessions.js.map +1 -1
  89. package/src/api-public/services/data-analyze.js +209 -196
  90. package/src/api-public/services/data-analyze.js.map +1 -1
  91. package/src/api-public/services/data-analyze.ts +219 -205
  92. package/src/api-public/services/delivery.js.map +1 -1
  93. package/src/api-public/services/ezpay/tool.d.ts +0 -1
  94. package/src/api-public/services/ezpay/tool.js.map +1 -1
  95. package/src/api-public/services/fake-data-model/fake-order.js.map +1 -1
  96. package/src/api-public/services/fake-data-model/fake-product.js.map +1 -1
  97. package/src/api-public/services/fake-data-model/fake-user.js.map +1 -1
  98. package/src/api-public/services/fb-api.js.map +1 -1
  99. package/src/api-public/services/filter-protect-data.js.map +1 -1
  100. package/src/api-public/services/financial-service.js +0 -1
  101. package/src/api-public/services/financial-service.js.map +1 -1
  102. package/src/api-public/services/form-check.js.map +1 -1
  103. package/src/api-public/services/graph-api.js.map +1 -1
  104. package/src/api-public/services/initial-fake-data.js.map +1 -1
  105. package/src/api-public/services/invoice.d.ts +3 -9
  106. package/src/api-public/services/invoice.js +66 -85
  107. package/src/api-public/services/invoice.js.map +1 -1
  108. package/src/api-public/services/invoice.ts +287 -293
  109. package/src/api-public/services/language-setting.js.map +1 -1
  110. package/src/api-public/services/mail.js.map +1 -1
  111. package/src/api-public/services/manager.js.map +1 -1
  112. package/src/api-public/services/paynow-logistics.js.map +1 -1
  113. package/src/api-public/services/phone-verify.js.map +1 -1
  114. package/src/api-public/services/pos.js.map +1 -1
  115. package/src/api-public/services/post.js.map +1 -1
  116. package/src/api-public/services/product-initial.js.map +1 -1
  117. package/src/api-public/services/rebate.js.map +1 -1
  118. package/src/api-public/services/reconciliation.js.map +1 -1
  119. package/src/api-public/services/schedule.d.ts +1 -0
  120. package/src/api-public/services/schedule.js +27 -0
  121. package/src/api-public/services/schedule.js.map +1 -1
  122. package/src/api-public/services/schedule.ts +30 -0
  123. package/src/api-public/services/shopping.d.ts +4 -3
  124. package/src/api-public/services/shopping.js +40 -20
  125. package/src/api-public/services/shopping.js.map +1 -1
  126. package/src/api-public/services/shopping.ts +52 -28
  127. package/src/api-public/services/stock.js.map +1 -1
  128. package/src/api-public/services/terms-check.js.map +1 -1
  129. package/src/api-public/services/updated-table-checked.js.map +1 -1
  130. package/src/api-public/services/user-update.js.map +1 -1
  131. package/src/api-public/services/user.d.ts +10 -0
  132. package/src/api-public/services/user.js +35 -8
  133. package/src/api-public/services/user.js.map +1 -1
  134. package/src/api-public/services/user.ts +50 -7
  135. package/src/api-public/services/voucher.js.map +1 -1
  136. package/src/api-public/utils/ut-database.js.map +1 -1
  137. package/src/app-project/android/app/src/main/res/xml/network_security_config.xml +3 -3
  138. package/src/app-project/android/app/src/main/res/xml/s.xml +5 -5
  139. package/src/app-project/android/gradlew.bat +94 -94
  140. package/src/app-project/serverless/src/controllers/index.js.map +1 -1
  141. package/src/app-project/serverless/src/controllers/sample.js.map +1 -1
  142. package/src/app-project/serverless/src/modules/database.d.ts +1 -2
  143. package/src/app-project/serverless/src/modules/database.js.map +1 -1
  144. package/src/app-project/serverless/src/modules/exception.js.map +1 -1
  145. package/src/app-project/serverless/src/modules/hooks.js.map +1 -1
  146. package/src/app-project/serverless/src/modules/logger.js.map +1 -1
  147. package/src/app-project/serverless/src/modules/redis.d.ts +1 -1
  148. package/src/app-project/serverless/src/modules/redis.js.map +1 -1
  149. package/src/app-project/serverless/src/modules/response.js.map +1 -1
  150. package/src/app-project/serverless/src/modules/ssh.js.map +1 -1
  151. package/src/controllers/ai.js.map +1 -1
  152. package/src/controllers/global-event.js.map +1 -1
  153. package/src/controllers/page.js.map +1 -1
  154. package/src/controllers/private_config.js.map +1 -1
  155. package/src/export/export-test.js.map +1 -1
  156. package/src/firebase/message.js +1 -2
  157. package/src/firebase/message.js.map +1 -1
  158. package/src/helper/app_creater.js +1 -2
  159. package/src/helper/app_creater.js.map +1 -1
  160. package/src/helper/glitter-util.d.ts +0 -1
  161. package/src/helper/glitter-util.js.map +1 -1
  162. package/src/lambda/interface.d.ts +1 -1
  163. package/src/lambda/interface.js +2 -2
  164. package/src/lambda/interface.js.map +1 -1
  165. package/src/modules/exception.js.map +1 -1
  166. package/src/modules/hooks.js.map +1 -1
  167. package/src/modules/response.js.map +1 -1
  168. package/src/modules/ssh.js.map +1 -1
  169. package/src/public-config-initial/auto-fcm.js.map +1 -1
  170. package/src/run.js.map +1 -1
  171. package/src/run.ts +12 -12
  172. package/src/services/ai.js.map +1 -1
  173. package/src/services/ses.js +1 -2
  174. package/src/services/ses.js.map +1 -1
  175. package/src/services/system-schedule.js.map +1 -1
  176. package/src/update-progress-track.js.map +1 -1
  177. package/src/update-script.js.map +1 -1
@@ -25,14 +25,20 @@ export class DataAnalyze {
25
25
  async workerExample(data: { type: 0 | 1; divisor: number }) {
26
26
  try {
27
27
  // 以 t_voucher_history 更新資料舉例
28
- const jsonData = await db.query(`SELECT * FROM \`${this.app}\`.t_voucher_history`, []);
28
+ const jsonData = await db.query(
29
+ `SELECT *
30
+ FROM \`${this.app}\`.t_voucher_history`,
31
+ []
32
+ );
29
33
  const t0 = performance.now();
30
34
 
31
35
  // 單線程插入資料
32
36
  if (data.type === 0) {
33
37
  for (const record of jsonData) {
34
38
  await db.query(
35
- `UPDATE \`${this.app}\`.\`t_voucher_history\` SET ? WHERE id = ?
39
+ `UPDATE \`${this.app}\`.\`t_voucher_history\`
40
+ SET ?
41
+ WHERE id = ?
36
42
  `,
37
43
  [record, record.id]
38
44
  );
@@ -47,7 +53,9 @@ export class DataAnalyze {
47
53
  // 多線程插入資料
48
54
  const formatJsonData = jsonData.map((record: any) => {
49
55
  return {
50
- sql: `UPDATE \`${this.app}\`.\`t_voucher_history\` SET ? WHERE id = ?
56
+ sql: `UPDATE \`${this.app}\`.\`t_voucher_history\`
57
+ SET ?
58
+ WHERE id = ?
51
59
  `,
52
60
  data: [record, record.id],
53
61
  };
@@ -152,11 +160,13 @@ export class DataAnalyze {
152
160
  const orderCountingSQL = await this.getOrderCountingSQL();
153
161
 
154
162
  const getCheckoutsSQL = (monthOffset: number) => `
155
- SELECT *
156
- FROM \`${this.app}\`.t_checkout
157
- WHERE MONTH(created_time) = MONTH(DATE_SUB(NOW(), INTERVAL ${monthOffset} MONTH))
158
- AND YEAR(created_time) = YEAR(DATE_SUB(NOW(), INTERVAL ${monthOffset} MONTH))
159
- AND (${orderCountingSQL});
163
+ SELECT *
164
+ FROM \`${this.app}\`.t_checkout
165
+ WHERE MONTH (created_time) = MONTH (DATE_SUB(NOW()
166
+ , INTERVAL ${monthOffset} MONTH))
167
+ AND YEAR (created_time) = YEAR (DATE_SUB(NOW()
168
+ , INTERVAL ${monthOffset} MONTH))
169
+ AND (${orderCountingSQL});
160
170
  `;
161
171
 
162
172
  const calculateTotal = (checkouts: any[]): number =>
@@ -218,18 +228,18 @@ export class DataAnalyze {
218
228
  // 組裝 SQL 查詢
219
229
  const orderCountingSQL = await this.getOrderCountingSQL();
220
230
  const checkoutSQL = `
221
- SELECT *
222
- FROM \`${this.app}\`.t_checkout
223
- WHERE ${
224
- duration === 'day'
225
- ? `created_time BETWEEN NOW() AND NOW() + INTERVAL 1 DAY - INTERVAL 1 SECOND`
226
- : duration === 'month'
227
- ? `created_time BETWEEN DATE_SUB(NOW(), INTERVAL 1 MONTH) AND NOW()`
228
- : sqlConditions.length
229
- ? sqlConditions.join(' AND ')
230
- : '1=1'
231
- }
232
- AND (${orderCountingSQL});
231
+ SELECT *
232
+ FROM \`${this.app}\`.t_checkout
233
+ WHERE ${
234
+ duration === 'day'
235
+ ? `created_time BETWEEN NOW() AND NOW() + INTERVAL 1 DAY - INTERVAL 1 SECOND`
236
+ : duration === 'month'
237
+ ? `created_time BETWEEN DATE_SUB(NOW(), INTERVAL 1 MONTH) AND NOW()`
238
+ : sqlConditions.length
239
+ ? sqlConditions.join(' AND ')
240
+ : '1=1'
241
+ }
242
+ AND (${orderCountingSQL});
233
243
  `;
234
244
 
235
245
  const checkouts = await db.query(checkoutSQL, []);
@@ -240,6 +250,7 @@ export class DataAnalyze {
240
250
 
241
251
  checkouts.forEach(({ orderData }: { orderData: any }) => {
242
252
  orderData.lineItems?.forEach((item: any) => {
253
+ item.collection=item.collection??[];
243
254
  const existing = productMap.get(item.title);
244
255
  const collections = new Set(item.collection.filter((c: string) => c.trim().length > 0));
245
256
 
@@ -298,11 +309,13 @@ export class DataAnalyze {
298
309
  const orderCountingSQL = await this.getOrderCountingSQL();
299
310
 
300
311
  const getCheckoutCountSQL = (monthOffset: number) => `
301
- SELECT id
302
- FROM \`${this.app}\`.t_checkout
303
- WHERE MONTH(created_time) = MONTH(DATE_SUB(NOW(), INTERVAL ${monthOffset} MONTH))
304
- AND YEAR(created_time) = YEAR(DATE_SUB(NOW(), INTERVAL ${monthOffset} MONTH))
305
- AND ${orderCountingSQL};
312
+ SELECT id
313
+ FROM \`${this.app}\`.t_checkout
314
+ WHERE MONTH (created_time) = MONTH (DATE_SUB(NOW()
315
+ , INTERVAL ${monthOffset} MONTH))
316
+ AND YEAR (created_time) = YEAR (DATE_SUB(NOW()
317
+ , INTERVAL ${monthOffset} MONTH))
318
+ AND ${orderCountingSQL};
306
319
  `;
307
320
 
308
321
  const recentMonthCheckouts = await db.query(getCheckoutCountSQL(0), []);
@@ -337,10 +350,10 @@ export class DataAnalyze {
337
350
  const queries = Array.from({ length: 14 }, async (_, index) => {
338
351
  const dayOffset = `DATE_SUB(DATE(NOW()), INTERVAL ${index} DAY)`;
339
352
  const monthCheckoutSQL = `
340
- SELECT orderData->>'$.orderSource' as orderSource, orderData
341
- FROM \`${this.app}\`.t_checkout
342
- WHERE DATE(${convertTimeZone('created_time')}) = ${dayOffset}
343
- AND ${orderCountingSQL};
353
+ SELECT orderData ->>'$.orderSource' as orderSource, orderData
354
+ FROM \`${this.app}\`.t_checkout
355
+ WHERE DATE (${convertTimeZone('created_time')}) = ${dayOffset}
356
+ AND ${orderCountingSQL};
344
357
  `;
345
358
 
346
359
  return db.query(monthCheckoutSQL, []).then(data => {
@@ -394,10 +407,10 @@ export class DataAnalyze {
394
407
  const queries = Array.from({ length: 30 }, async (_, index) => {
395
408
  const dayOffset = `DATE_SUB(DATE(NOW()), INTERVAL ${index} DAY)`;
396
409
  const monthCheckoutSQL = `
397
- SELECT orderData->>'$.orderSource' as orderSource, orderData
398
- FROM \`${this.app}\`.t_checkout
399
- WHERE DATE(${convertTimeZone('created_time')}) = ${dayOffset}
400
- AND ${orderCountingSQL};
410
+ SELECT orderData ->>'$.orderSource' as orderSource, orderData
411
+ FROM \`${this.app}\`.t_checkout
412
+ WHERE DATE (${convertTimeZone('created_time')}) = ${dayOffset}
413
+ AND ${orderCountingSQL};
401
414
  `;
402
415
 
403
416
  return db.query(monthCheckoutSQL, []).then(data => {
@@ -455,10 +468,10 @@ export class DataAnalyze {
455
468
  const queries = Array.from({ length: days }, async (_, index) => {
456
469
  const dayOffset = `DATE_SUB(DATE("${endDate}"), INTERVAL ${index} DAY)`;
457
470
  const monthCheckoutSQL = `
458
- SELECT orderData->>'$.orderSource' as orderSource, orderData
459
- FROM \`${this.app}\`.t_checkout
460
- WHERE DATE(${convertTimeZone('created_time')}) = ${dayOffset}
461
- AND ${orderCountingSQL};
471
+ SELECT orderData ->>'$.orderSource' as orderSource, orderData
472
+ FROM \`${this.app}\`.t_checkout
473
+ WHERE DATE (${convertTimeZone('created_time')}) = ${dayOffset}
474
+ AND ${orderCountingSQL};
462
475
  `;
463
476
 
464
477
  return db.query(monthCheckoutSQL, []).then(data => {
@@ -512,10 +525,11 @@ export class DataAnalyze {
512
525
  const queries = Array.from({ length: 12 }, async (_, index) => {
513
526
  const monthOffset = `DATE_FORMAT(DATE_SUB(${convertTimeZone('NOW()')}, INTERVAL ${index} MONTH), '%Y-%m')`;
514
527
  const monthCheckoutSQL = `
515
- SELECT orderData->>'$.orderSource' as orderSource, orderData
516
- FROM \`${this.app}\`.t_checkout
517
- WHERE DATE_FORMAT(${convertTimeZone('created_time')}, '%Y-%m') = ${monthOffset}
518
- AND ${orderCountingSQL};
528
+ SELECT orderData ->>'$.orderSource' as orderSource, orderData
529
+ FROM \`${this.app}\`.t_checkout
530
+ WHERE DATE_FORMAT(${convertTimeZone('created_time')}
531
+ , '%Y-%m') = ${monthOffset}
532
+ AND ${orderCountingSQL};
519
533
  `;
520
534
 
521
535
  return db.query(monthCheckoutSQL, []).then(data => {
@@ -566,15 +580,15 @@ export class DataAnalyze {
566
580
  await new Promise(resolve => {
567
581
  for (let index = 0; index < 12; index++) {
568
582
  const monthCheckoutSQL = `
569
- SELECT orderData
570
- FROM \`${this.app}\`.t_checkout
571
- WHERE
572
- MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone('NOW()')}
573
- , INTERVAL ${index} MONTH))
574
- AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone('NOW()')}
575
- , INTERVAL ${index} MONTH))
576
- AND ${orderCountingSQL};
577
- `;
583
+ SELECT orderData
584
+ FROM \`${this.app}\`.t_checkout
585
+ WHERE
586
+ MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone('NOW()')}
587
+ , INTERVAL ${index} MONTH))
588
+ AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone('NOW()')}
589
+ , INTERVAL ${index} MONTH))
590
+ AND ${orderCountingSQL};
591
+ `;
578
592
  db.query(monthCheckoutSQL, []).then(data => {
579
593
  pass++;
580
594
  let total = 0;
@@ -644,17 +658,17 @@ export class DataAnalyze {
644
658
  await new Promise(resolve => {
645
659
  for (let index = 0; index < 14; index++) {
646
660
  const monthCheckoutSQL = `
647
- SELECT orderData
648
- FROM \`${this.app}\`.t_checkout
649
- WHERE
650
- DAY (${convertTimeZone('created_time')}) = DAY (DATE_SUB(${convertTimeZone('NOW()')}
651
- , INTERVAL ${index} DAY))
652
- AND MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone('NOW()')}
653
- , INTERVAL ${index} DAY))
654
- AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone('NOW()')}
655
- , INTERVAL ${index} DAY))
656
- AND ${orderCountingSQL};
657
- `;
661
+ SELECT orderData
662
+ FROM \`${this.app}\`.t_checkout
663
+ WHERE
664
+ DAY (${convertTimeZone('created_time')}) = DAY (DATE_SUB(${convertTimeZone('NOW()')}
665
+ , INTERVAL ${index} DAY))
666
+ AND MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone('NOW()')}
667
+ , INTERVAL ${index} DAY))
668
+ AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone('NOW()')}
669
+ , INTERVAL ${index} DAY))
670
+ AND ${orderCountingSQL};
671
+ `;
658
672
  db.query(monthCheckoutSQL, []).then(data => {
659
673
  pass++;
660
674
  let total = 0;
@@ -723,17 +737,17 @@ export class DataAnalyze {
723
737
  await new Promise(resolve => {
724
738
  for (let index = 0; index < 30; index++) {
725
739
  const monthCheckoutSQL = `
726
- SELECT orderData
727
- FROM \`${this.app}\`.t_checkout
728
- WHERE
729
- DAY (${convertTimeZone('created_time')}) = DAY (DATE_SUB(${convertTimeZone('NOW()')}
730
- , INTERVAL ${index} DAY))
731
- AND MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone('NOW()')}
732
- , INTERVAL ${index} DAY))
733
- AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone('NOW()')}
734
- , INTERVAL ${index} DAY))
735
- AND ${orderCountingSQL};
736
- `;
740
+ SELECT orderData
741
+ FROM \`${this.app}\`.t_checkout
742
+ WHERE
743
+ DAY (${convertTimeZone('created_time')}) = DAY (DATE_SUB(${convertTimeZone('NOW()')}
744
+ , INTERVAL ${index} DAY))
745
+ AND MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone('NOW()')}
746
+ , INTERVAL ${index} DAY))
747
+ AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone('NOW()')}
748
+ , INTERVAL ${index} DAY))
749
+ AND ${orderCountingSQL};
750
+ `;
737
751
  db.query(monthCheckoutSQL, []).then(data => {
738
752
  pass++;
739
753
  let total = 0;
@@ -816,17 +830,17 @@ export class DataAnalyze {
816
830
  await new Promise(resolve => {
817
831
  for (let index = 0; index < days; index++) {
818
832
  const monthCheckoutSQL = `
819
- SELECT orderData
820
- FROM \`${this.app}\`.t_checkout
821
- WHERE
822
- DAY (${convertTimeZone('created_time')}) = DAY (DATE_SUB(${convertTimeZone(formatEndDate)}
823
- , INTERVAL ${index} DAY))
824
- AND MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone(formatEndDate)}
825
- , INTERVAL ${index} DAY))
826
- AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone(formatEndDate)}
827
- , INTERVAL ${index} DAY))
828
- AND ${orderCountingSQL};
829
- `;
833
+ SELECT orderData
834
+ FROM \`${this.app}\`.t_checkout
835
+ WHERE
836
+ DAY (${convertTimeZone('created_time')}) = DAY (DATE_SUB(${convertTimeZone(formatEndDate)}
837
+ , INTERVAL ${index} DAY))
838
+ AND MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone(formatEndDate)}
839
+ , INTERVAL ${index} DAY))
840
+ AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone(formatEndDate)}
841
+ , INTERVAL ${index} DAY))
842
+ AND ${orderCountingSQL};
843
+ `;
830
844
  db.query(monthCheckoutSQL, []).then(data => {
831
845
  pass++;
832
846
  let total = 0;
@@ -894,15 +908,15 @@ export class DataAnalyze {
894
908
  await new Promise(resolve => {
895
909
  for (let index = 0; index < 12; index++) {
896
910
  const monthCheckoutSQL = `
897
- SELECT orderData
898
- FROM \`${this.app}\`.t_checkout
899
- WHERE
900
- MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone('NOW()')}
901
- , INTERVAL ${index} MONTH))
902
- AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone('NOW()')}
903
- , INTERVAL ${index} MONTH))
904
- AND ${orderCountingSQL};
905
- `;
911
+ SELECT orderData
912
+ FROM \`${this.app}\`.t_checkout
913
+ WHERE
914
+ MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone('NOW()')}
915
+ , INTERVAL ${index} MONTH))
916
+ AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone('NOW()')}
917
+ , INTERVAL ${index} MONTH))
918
+ AND ${orderCountingSQL};
919
+ `;
906
920
  db.query(monthCheckoutSQL, []).then(data => {
907
921
  pass++;
908
922
  let total = 0;
@@ -977,17 +991,17 @@ export class DataAnalyze {
977
991
  await new Promise(resolve => {
978
992
  for (let index = 0; index < 14; index++) {
979
993
  const monthCheckoutSQL = `
980
- SELECT orderData
981
- FROM \`${this.app}\`.t_checkout
982
- WHERE
983
- DAY (${convertTimeZone('created_time')}) = DAY (DATE_SUB(${convertTimeZone('NOW()')}
984
- , INTERVAL ${index} DAY))
985
- AND MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone('NOW()')}
986
- , INTERVAL ${index} DAY))
987
- AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone('NOW()')}
988
- , INTERVAL ${index} DAY))
989
- AND ${orderCountingSQL};
990
- `;
994
+ SELECT orderData
995
+ FROM \`${this.app}\`.t_checkout
996
+ WHERE
997
+ DAY (${convertTimeZone('created_time')}) = DAY (DATE_SUB(${convertTimeZone('NOW()')}
998
+ , INTERVAL ${index} DAY))
999
+ AND MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone('NOW()')}
1000
+ , INTERVAL ${index} DAY))
1001
+ AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone('NOW()')}
1002
+ , INTERVAL ${index} DAY))
1003
+ AND ${orderCountingSQL};
1004
+ `;
991
1005
  db.query(monthCheckoutSQL, []).then(data => {
992
1006
  pass++;
993
1007
  let total = 0;
@@ -1062,17 +1076,17 @@ export class DataAnalyze {
1062
1076
  await new Promise(resolve => {
1063
1077
  for (let index = 0; index < 30; index++) {
1064
1078
  const monthCheckoutSQL = `
1065
- SELECT orderData
1066
- FROM \`${this.app}\`.t_checkout
1067
- WHERE
1068
- DAY (${convertTimeZone('created_time')}) = DAY (DATE_SUB(${convertTimeZone('NOW()')}
1069
- , INTERVAL ${index} DAY))
1070
- AND MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone('NOW()')}
1071
- , INTERVAL ${index} DAY))
1072
- AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone('NOW()')}
1073
- , INTERVAL ${index} DAY))
1074
- AND ${orderCountingSQL};
1075
- `;
1079
+ SELECT orderData
1080
+ FROM \`${this.app}\`.t_checkout
1081
+ WHERE
1082
+ DAY (${convertTimeZone('created_time')}) = DAY (DATE_SUB(${convertTimeZone('NOW()')}
1083
+ , INTERVAL ${index} DAY))
1084
+ AND MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone('NOW()')}
1085
+ , INTERVAL ${index} DAY))
1086
+ AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone('NOW()')}
1087
+ , INTERVAL ${index} DAY))
1088
+ AND ${orderCountingSQL};
1089
+ `;
1076
1090
  db.query(monthCheckoutSQL, []).then(data => {
1077
1091
  pass++;
1078
1092
  let total = 0;
@@ -1150,17 +1164,17 @@ export class DataAnalyze {
1150
1164
  await new Promise(resolve => {
1151
1165
  for (let index = 0; index < days; index++) {
1152
1166
  const monthCheckoutSQL = `
1153
- SELECT orderData
1154
- FROM \`${this.app}\`.t_checkout
1155
- WHERE
1156
- DAY (${convertTimeZone('created_time')}) = DAY (DATE_SUB(${convertTimeZone(formatEndDate)}
1157
- , INTERVAL ${index} DAY))
1158
- AND MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone(formatEndDate)}
1159
- , INTERVAL ${index} DAY))
1160
- AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone(formatEndDate)}
1161
- , INTERVAL ${index} DAY))
1162
- AND ${orderCountingSQL}
1163
- `;
1167
+ SELECT orderData
1168
+ FROM \`${this.app}\`.t_checkout
1169
+ WHERE
1170
+ DAY (${convertTimeZone('created_time')}) = DAY (DATE_SUB(${convertTimeZone(formatEndDate)}
1171
+ , INTERVAL ${index} DAY))
1172
+ AND MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone(formatEndDate)}
1173
+ , INTERVAL ${index} DAY))
1174
+ AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone(formatEndDate)}
1175
+ , INTERVAL ${index} DAY))
1176
+ AND ${orderCountingSQL}
1177
+ `;
1164
1178
  db.query(monthCheckoutSQL, []).then(data => {
1165
1179
  pass++;
1166
1180
  let total = 0;
@@ -1230,14 +1244,14 @@ export class DataAnalyze {
1230
1244
  startDate.setMonth(endDate.getMonth() - 12);
1231
1245
 
1232
1246
  const sql = `
1233
- SELECT mac_address, created_time
1234
- FROM \`${saasConfig.SAAS_NAME}\`.t_monitor
1235
- WHERE app_name = ${db.escape(this.app)}
1236
- AND req_type = 'file'
1237
- AND created_time BETWEEN '${startDate.toISOString()}' AND '${endDate.toISOString()}'
1238
- GROUP BY id, mac_address
1239
- `;
1240
-
1247
+ SELECT mac_address, created_time
1248
+ FROM \`${saasConfig.SAAS_NAME}\`.t_monitor
1249
+ WHERE app_name = ${db.escape(this.app)}
1250
+ AND req_type = 'file'
1251
+ AND created_time BETWEEN '${startDate.toISOString()}' AND '${endDate.toISOString()}'
1252
+ GROUP BY id, mac_address
1253
+ `;
1254
+ console.log(`sql: ${sql}`);
1241
1255
  const queryData = await db.query(sql, []);
1242
1256
 
1243
1257
  const now = moment.tz('Asia/Taipei').toDate(); // 當前時間
@@ -1274,15 +1288,15 @@ export class DataAnalyze {
1274
1288
 
1275
1289
  async getActiveRecentWeek() {
1276
1290
  const sql = `
1277
- SELECT mac_address, ${convertTimeZone('created_time')} AS created_time
1278
- FROM \`${saasConfig.SAAS_NAME}\`.t_monitor
1279
- WHERE app_name = ${db.escape(this.app)}
1280
- AND req_type = 'file'
1281
- AND ${convertTimeZone('created_time')} BETWEEN (DATE_SUB(${convertTimeZone('NOW()')}
1282
- , INTERVAL 14 DAY))
1283
- AND ${convertTimeZone('NOW()')}
1284
- GROUP BY id, mac_address
1285
- `;
1291
+ SELECT mac_address, ${convertTimeZone('created_time')} AS created_time
1292
+ FROM \`${saasConfig.SAAS_NAME}\`.t_monitor
1293
+ WHERE app_name = ${db.escape(this.app)}
1294
+ AND req_type = 'file'
1295
+ AND ${convertTimeZone('created_time')} BETWEEN (DATE_SUB(${convertTimeZone('NOW()')}
1296
+ , INTERVAL 14 DAY))
1297
+ AND ${convertTimeZone('NOW()')}
1298
+ GROUP BY id, mac_address
1299
+ `;
1286
1300
 
1287
1301
  const queryData = await db.query(sql, []);
1288
1302
 
@@ -1322,15 +1336,15 @@ export class DataAnalyze {
1322
1336
 
1323
1337
  async getActiveRecentMonth() {
1324
1338
  const sql = `
1325
- SELECT mac_address, ${convertTimeZone('created_time')} AS created_time
1326
- FROM \`${saasConfig.SAAS_NAME}\`.t_monitor
1327
- WHERE app_name = ${db.escape(this.app)}
1328
- AND req_type = 'file'
1329
- AND ${convertTimeZone('created_time')} BETWEEN (DATE_SUB(${convertTimeZone('NOW()')}
1330
- , INTERVAL 30 DAY))
1331
- AND ${convertTimeZone('NOW()')}
1332
- GROUP BY id, mac_address
1333
- `;
1339
+ SELECT mac_address, ${convertTimeZone('created_time')} AS created_time
1340
+ FROM \`${saasConfig.SAAS_NAME}\`.t_monitor
1341
+ WHERE app_name = ${db.escape(this.app)}
1342
+ AND req_type = 'file'
1343
+ AND ${convertTimeZone('created_time')} BETWEEN (DATE_SUB(${convertTimeZone('NOW()')}
1344
+ , INTERVAL 30 DAY))
1345
+ AND ${convertTimeZone('NOW()')}
1346
+ GROUP BY id, mac_address
1347
+ `;
1334
1348
 
1335
1349
  const queryData = await db.query(sql, []);
1336
1350
 
@@ -1374,15 +1388,15 @@ export class DataAnalyze {
1374
1388
  const formatEndDate = `"${Tool.replaceDatetime(qData.end)}"`;
1375
1389
  const days = this.diffDates(new Date(qData.start), new Date(qData.end));
1376
1390
  const sql = `
1377
- SELECT mac_address, ${convertTimeZone('created_time')} AS created_time
1378
- FROM \`${saasConfig.SAAS_NAME}\`.t_monitor
1379
- WHERE app_name = ${db.escape(this.app)}
1380
- AND req_type = 'file'
1381
- AND ${convertTimeZone('created_time')}
1382
- BETWEEN ${convertTimeZone(formatStartDate)}
1383
- AND ${convertTimeZone(formatEndDate)}
1384
- GROUP BY id, mac_address
1385
- `;
1391
+ SELECT mac_address, ${convertTimeZone('created_time')} AS created_time
1392
+ FROM \`${saasConfig.SAAS_NAME}\`.t_monitor
1393
+ WHERE app_name = ${db.escape(this.app)}
1394
+ AND req_type = 'file'
1395
+ AND ${convertTimeZone('created_time')}
1396
+ BETWEEN ${convertTimeZone(formatStartDate)}
1397
+ AND ${convertTimeZone(formatEndDate)}
1398
+ GROUP BY id, mac_address
1399
+ `;
1386
1400
 
1387
1401
  const queryData = await db.query(sql, []);
1388
1402
 
@@ -1427,17 +1441,17 @@ export class DataAnalyze {
1427
1441
  await new Promise(resolve => {
1428
1442
  for (let index = 0; index < 30; index++) {
1429
1443
  const monthCheckoutSQL = `
1430
- SELECT count(1)
1431
- FROM \`${this.app}\`.t_user
1432
- WHERE
1433
- DAY (${convertTimeZone('created_time')}) = DAY (DATE_SUB(${convertTimeZone('NOW()')}
1434
- , INTERVAL ${index} DAY))
1435
- AND MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone('NOW()')}
1436
- , INTERVAL ${index} DAY))
1437
- AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone('NOW()')}
1438
- , INTERVAL ${index} DAY))
1439
- AND status <> 0;
1440
- `;
1444
+ SELECT count(1)
1445
+ FROM \`${this.app}\`.t_user
1446
+ WHERE
1447
+ DAY (${convertTimeZone('created_time')}) = DAY (DATE_SUB(${convertTimeZone('NOW()')}
1448
+ , INTERVAL ${index} DAY))
1449
+ AND MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone('NOW()')}
1450
+ , INTERVAL ${index} DAY))
1451
+ AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone('NOW()')}
1452
+ , INTERVAL ${index} DAY))
1453
+ AND status <> 0;
1454
+ `;
1441
1455
  db.query(monthCheckoutSQL, []).then(data => {
1442
1456
  countArray[index] = data[0]['count(1)'];
1443
1457
  pass++;
@@ -1475,17 +1489,17 @@ export class DataAnalyze {
1475
1489
  await new Promise(resolve => {
1476
1490
  for (let index = 0; index < days; index++) {
1477
1491
  const monthCheckoutSQL = `
1478
- SELECT count(1)
1479
- FROM \`${this.app}\`.t_user
1480
- WHERE
1481
- DAY (${convertTimeZone('created_time')}) = DAY (DATE_SUB(${convertTimeZone(formatEndDate)}
1482
- , INTERVAL ${index} DAY))
1483
- AND MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone(formatEndDate)}
1484
- , INTERVAL ${index} DAY))
1485
- AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone(formatEndDate)}
1486
- , INTERVAL ${index} DAY))
1487
- AND status <> 0;
1488
- `;
1492
+ SELECT count(1)
1493
+ FROM \`${this.app}\`.t_user
1494
+ WHERE
1495
+ DAY (${convertTimeZone('created_time')}) = DAY (DATE_SUB(${convertTimeZone(formatEndDate)}
1496
+ , INTERVAL ${index} DAY))
1497
+ AND MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone(formatEndDate)}
1498
+ , INTERVAL ${index} DAY))
1499
+ AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone(formatEndDate)}
1500
+ , INTERVAL ${index} DAY))
1501
+ AND status <> 0;
1502
+ `;
1489
1503
  db.query(monthCheckoutSQL, []).then(data => {
1490
1504
  countArray[index] = data[0]['count(1)'];
1491
1505
  pass++;
@@ -1519,17 +1533,17 @@ export class DataAnalyze {
1519
1533
  await new Promise(resolve => {
1520
1534
  for (let index = 0; index < 14; index++) {
1521
1535
  const monthCheckoutSQL = `
1522
- SELECT count(1)
1523
- FROM \`${this.app}\`.t_user
1524
- WHERE
1525
- DAY (${convertTimeZone('created_time')}) = DAY (DATE_SUB(${convertTimeZone('NOW()')}
1526
- , INTERVAL ${index} DAY))
1527
- AND MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone('NOW()')}
1528
- , INTERVAL ${index} DAY))
1529
- AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone('NOW()')}
1530
- , INTERVAL ${index} DAY))
1531
- AND status <> 0;
1532
- `;
1536
+ SELECT count(1)
1537
+ FROM \`${this.app}\`.t_user
1538
+ WHERE
1539
+ DAY (${convertTimeZone('created_time')}) = DAY (DATE_SUB(${convertTimeZone('NOW()')}
1540
+ , INTERVAL ${index} DAY))
1541
+ AND MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone('NOW()')}
1542
+ , INTERVAL ${index} DAY))
1543
+ AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone('NOW()')}
1544
+ , INTERVAL ${index} DAY))
1545
+ AND status <> 0;
1546
+ `;
1533
1547
  db.query(monthCheckoutSQL, []).then(data => {
1534
1548
  countArray[index] = data[0]['count(1)'];
1535
1549
  pass++;
@@ -1561,8 +1575,8 @@ export class DataAnalyze {
1561
1575
  const countArray: any = {};
1562
1576
  const order = await db.query(
1563
1577
  `SELECT count(1)
1564
- FROM \`${this.app}\`.t_user
1565
- WHERE DATE (created_time) = CURDATE()`,
1578
+ FROM \`${this.app}\`.t_user
1579
+ WHERE DATE (created_time) = CURDATE()`,
1566
1580
  []
1567
1581
  );
1568
1582
 
@@ -1570,13 +1584,13 @@ export class DataAnalyze {
1570
1584
  await new Promise(resolve => {
1571
1585
  for (let index = 0; index < 12; index++) {
1572
1586
  const monthRegisterSQL = `
1573
- SELECT count(1)
1574
- FROM \`${this.app}\`.t_user
1575
- WHERE MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone('NOW()')}
1576
- , INTERVAL ${index} MONTH))
1577
- AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone('NOW()')}
1578
- , INTERVAL ${index} MONTH))
1579
- `;
1587
+ SELECT count(1)
1588
+ FROM \`${this.app}\`.t_user
1589
+ WHERE MONTH (${convertTimeZone('created_time')}) = MONTH (DATE_SUB(${convertTimeZone('NOW()')}
1590
+ , INTERVAL ${index} MONTH))
1591
+ AND YEAR (${convertTimeZone('created_time')}) = YEAR (DATE_SUB(${convertTimeZone('NOW()')}
1592
+ , INTERVAL ${index} MONTH))
1593
+ `;
1580
1594
  db.query(monthRegisterSQL, []).then(data => {
1581
1595
  pass++;
1582
1596
  countArray[index] = data[0]['count(1)'];
@@ -1613,16 +1627,16 @@ export class DataAnalyze {
1613
1627
  // 並行查詢
1614
1628
  const [order, unShipmentCount] = await Promise.all([
1615
1629
  db.query(
1616
- `SELECT status, orderData->>'$.total' as total
1630
+ `SELECT status, orderData ->>'$.total' as total
1617
1631
  FROM \`${this.app}\`.t_checkout
1618
- WHERE DATE(${convertTimeZone('created_time')}) = CURDATE()`,
1632
+ WHERE DATE (${convertTimeZone('created_time')}) = CURDATE()`,
1619
1633
  []
1620
1634
  ),
1621
1635
  db.query(
1622
1636
  `SELECT COUNT(1) as count
1623
1637
  FROM \`${this.app}\`.t_checkout
1624
1638
  WHERE ${orderCountingSQL}
1625
- AND DATE(${convertTimeZone('created_time')}) = CURDATE()`,
1639
+ AND DATE (${convertTimeZone('created_time')}) = CURDATE()`,
1626
1640
  []
1627
1641
  ),
1628
1642
  ]);