|
|
@@ -66,6 +66,17 @@ function normalizePlatform(value) {
|
|
66
|
66
|
return platform || 'unknown';
|
|
67
|
67
|
}
|
|
68
|
68
|
|
|
|
69
|
+function parseMemberEndTime(value) {
|
|
|
70
|
+ if (!value || value === 'Invalid date') return null;
|
|
|
71
|
+ const normalized = String(value).trim().replaceAll('/', '-');
|
|
|
72
|
+ const parsed = moment(normalized, [
|
|
|
73
|
+ 'YYYY-MM-DD',
|
|
|
74
|
+ 'YYYY-MM-DD HH:mm:ss',
|
|
|
75
|
+ moment.ISO_8601
|
|
|
76
|
+ ], true);
|
|
|
77
|
+ return parsed.isValid() ? parsed : null;
|
|
|
78
|
+}
|
|
|
79
|
+
|
|
69
|
80
|
function resolveEnvironment(platform) {
|
|
70
|
81
|
if (platform === 'ios') return 0;
|
|
71
|
82
|
const env = Number(config.virtualPay.env);
|
|
|
@@ -159,10 +170,8 @@ function calculateMemberUpdate(user, order, detail) {
|
|
159
|
170
|
|
|
160
|
171
|
let productServiceTime;
|
|
161
|
172
|
const requestedEndTime = detail?.EndTime;
|
|
162
|
|
- const requestedMoment = requestedEndTime && requestedEndTime !== 'Invalid date'
|
|
163
|
|
- ? moment(requestedEndTime)
|
|
164
|
|
- : null;
|
|
165
|
|
- if (requestedMoment?.isValid()) {
|
|
|
173
|
+ const requestedMoment = parseMemberEndTime(requestedEndTime);
|
|
|
174
|
+ if (requestedMoment) {
|
|
166
|
175
|
productServiceTime = requestedMoment.format('YYYY-MM-DD HH:mm:ss');
|
|
167
|
176
|
} else {
|
|
168
|
177
|
const oldEndTime = moment(user.ProductServiceTime);
|
|
|
@@ -319,10 +328,10 @@ async function runCompatiblePostPayActions({ order, user, detail, memberUpdate }
|
|
319
|
328
|
|
|
320
|
329
|
try {
|
|
321
|
330
|
await axios.get(`http://localhost:${config.port}/api/BuildStatisticsShareUserPay`, {
|
|
322
|
|
- timeout: config.virtualPay.requestTimeoutMs
|
|
|
331
|
+ timeout: config.virtualPay.postActionTimeoutMs
|
|
323
|
332
|
});
|
|
324
|
333
|
} catch (error) {
|
|
325
|
|
- console.error('Miaoguo virtual pay statistics action failed:', error.message);
|
|
|
334
|
+ console.warn('Miaoguo virtual pay statistics refresh delayed after committed payment:', error.message);
|
|
326
|
335
|
}
|
|
327
|
336
|
}
|
|
328
|
337
|
|