积分与余额账务系统硬切重构

This commit is contained in:
kate522 committed 2026-08-24 15:59:11 +08:00
1 parent ca12226b39
commit 5cae5b5c93
159 files changed
+7275 -4718

No files matched your search

+26 -2
View File
@@ -75,6 +75,11 @@
var refreshTimeout = null;
var refreshInFlight = false;
var openSequence = 0;
var pendingCreateKey = '';
var pendingCreateSignature = '';
var pendingRefreshKey = '';
var pendingManualKey = '';
var pendingManualSignature = '';
function isOpen(shell) {
return !!shell && shell.classList.contains('is-open') && document.contains(shell);
@@ -176,6 +181,7 @@
var timedOut = false;
var shell = activeShell;
var timeoutMs = Math.max(5000, Number(config.refreshTimeout || 15000));
if (!pendingRefreshKey) pendingRefreshKey = uuid();
refreshTimeout = window.setTimeout(function () {
timedOut = true;
if (refreshController) {
@@ -185,8 +191,10 @@
return request(config.restBase + '/' + encodeURIComponent(currentUuid) + '/refresh', config, {
method: 'POST',
headers: { 'Idempotency-Key': pendingRefreshKey },
signal: refreshController ? refreshController.signal : undefined,
}).then(function (data) {
pendingRefreshKey = '';
if (shell !== activeShell || !isOpen(shell)) return data;
pollBackoff = explicit ? 0 : Math.min(4, pollBackoff + 1);
render(data, shell);
@@ -270,17 +278,23 @@
var payload = {};
form.forEach(function (value, key) { payload[key] = value; });
payload.consent = payload.consent === '1';
payload.client_request_id = uuid();
var signature = JSON.stringify(payload);
if (!pendingCreateKey || pendingCreateSignature !== signature) {
pendingCreateKey = uuid();
pendingCreateSignature = signature;
}
if (button) button.disabled = true;
if (message) message.textContent = '';
aliyunMetaInfo(config).then(function (metaInfo) {
if (metaInfo) payload.meta_info = metaInfo;
return request(config.restBase, config, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
headers: { 'Content-Type': 'application/json', 'Idempotency-Key': pendingCreateKey },
body: JSON.stringify(payload),
});
}).then(function (data) {
pendingCreateKey = '';
pendingCreateSignature = '';
render(data, shell);
}).catch(function (error) {
if (message) message.textContent = errorMessage(error, '创建认证会话失败,请重试。');
@@ -300,11 +314,21 @@
var button = manualForm.querySelector('[type="submit"]');
var body = new FormData();
Array.prototype.forEach.call((files && files.files) || [], function (file) { body.append('evidence[]', file); });
var signature = Array.prototype.map.call((files && files.files) || [], function (file) {
return [file.name, file.size, file.lastModified].join(':');
}).join('|');
if (!pendingManualKey || pendingManualSignature !== signature) {
pendingManualKey = uuid();
pendingManualSignature = signature;
}
if (button) button.disabled = true;
request(config.restBase + '/' + encodeURIComponent(currentUuid) + '/manual', config, {
method: 'POST',
headers: { 'Idempotency-Key': pendingManualKey },
body: body,
}).then(function (data) {
pendingManualKey = '';
pendingManualSignature = '';
manualForm.hidden = true;
render(data, shell);
}).catch(function (error) {