From 58d9f460b2f8c34430285115e2557d18333c5cab Mon Sep 17 00:00:00 2001 From: Codex Assistant <codex@example.com> Date: 星期三, 08 十月 2025 14:16:55 +0800 Subject: [PATCH] feat: 修复Player实体phone字段数据冗余问题并优化小程序报名逻辑 --- wx/app.js | 198 ++++++++++--------------------------------------- 1 files changed, 41 insertions(+), 157 deletions(-) diff --git a/wx/app.js b/wx/app.js index 57d5a4b..12709af 100644 --- a/wx/app.js +++ b/wx/app.js @@ -68,6 +68,7 @@ name: userInfo.name, phone: userInfo.phone || '鏈巿鏉�' }) + console.log('馃攳 瀹屾暣鐢ㄦ埛鏁版嵁缁撴瀯:', JSON.stringify(userInfo, null, 2)) this.globalData.userInfo = userInfo } @@ -163,7 +164,7 @@ } // 妫�鏌ユ槸鍚︽湁閿欒淇℃伅锛堥�傞厤涓嶅悓鐨勯敊璇搷搴旀牸寮忥級 - if (res.data.error || res.data.message || res.data.success === false) { + if (res.data.error || res.data.success === false) { const errorMsg = res.data.error || res.data.message || '鐧诲綍澶辫触' console.error('鉂� 鐧诲綍澶辫触:', errorMsg) wx.showToast({ @@ -193,6 +194,7 @@ console.log('鐧诲綍璁板綍ID:', loginResult.loginRecordId) console.log('Token闀垮害:', loginResult.token ? loginResult.token.length : 0) console.log('SessionKey闀垮害:', loginResult.sessionKey ? loginResult.sessionKey.length : 0) + console.log('馃攳 瀹屾暣鐧诲綍鐢ㄦ埛鏁版嵁缁撴瀯:', JSON.stringify(loginResult.userInfo, null, 2)) // 淇濆瓨鐧诲綍淇℃伅 try { @@ -276,174 +278,56 @@ // GraphQL璇锋眰灏佽 graphqlRequest(query, variables = {}) { return new Promise((resolve, reject) => { - this._makeGraphQLRequest(query, variables, resolve, reject, false) - }) - }, - - // 鍐呴儴GraphQL璇锋眰鏂规硶锛屾敮鎸侀噸璇曟満鍒� - _makeGraphQLRequest(query, variables, resolve, reject, isRetry = false) { - // 纭繚token鐨勪竴鑷存�э細浼樺厛浣跨敤globalData涓殑token锛屽鏋滄病鏈夊垯浠巗torage鑾峰彇 - let token = this.globalData.token - if (!token) { - token = wx.getStorageSync('token') - if (token) { - this.globalData.token = token // 鍚屾鍒癵lobalData + // 纭繚token鐨勪竴鑷存�э細浼樺厛浣跨敤globalData涓殑token锛屽鏋滄病鏈夊垯浠巗torage鑾峰彇 + let token = this.globalData.token + if (!token) { + token = wx.getStorageSync('token') + if (token) { + this.globalData.token = token // 鍚屾鍒癵lobalData + } } - } - wx.request({ - url: this.globalData.baseUrl, - method: 'POST', - header: { - 'Content-Type': 'application/json', - 'Authorization': token ? `Bearer ${token}` : '' - }, - data: { - query: query, - variables: variables - }, - success: (res) => { - console.log('GraphQL鍝嶅簲:', res.data) - - // 妫�鏌TTP鐘舵�佺爜 - if (res.statusCode !== 200) { - // 瀵逛簬401鐘舵�佺爜锛屽彲鑳芥槸璁よ瘉閿欒锛岄渶瑕佹鏌ュ搷搴斿唴瀹� - if (res.statusCode === 401 && res.data && res.data.errors) { - console.log('鏀跺埌401鐘舵�佺爜锛屾鏌ユ槸鍚︿负璁よ瘉閿欒') - // 缁х画澶勭悊锛岃涓嬮潰鐨凣raphQL閿欒妫�鏌ラ�昏緫澶勭悊璁よ瘉閿欒 - } else { + wx.request({ + url: this.globalData.baseUrl, + method: 'POST', + header: { + 'Content-Type': 'application/json', + 'Authorization': token ? `Bearer ${token}` : '' + }, + data: { + query: query, + variables: variables + }, + success: (res) => { + console.log('GraphQL鍝嶅簲:', res.data) + + // 妫�鏌TTP鐘舵�佺爜 + if (res.statusCode !== 200) { console.error('GraphQL HTTP閿欒:', res.statusCode) reject(new Error(`HTTP閿欒: ${res.statusCode}`)) return } - } - // 妫�鏌raphQL閿欒 - if (res.data && res.data.errors) { - console.error('GraphQL閿欒:', res.data.errors) - - // 妫�鏌ユ槸鍚︽槸璁よ瘉閿欒锛坱oken杩囨湡鎴栨棤鏁堬級 - const authErrors = res.data.errors.filter(error => - error.message && ( - error.message.includes('娌℃湁鏉冮檺璁块棶') || - error.message.includes('璇峰厛鐧诲綍') || - error.message.includes('UNAUTHORIZED') || - error.extensions?.code === 'UNAUTHORIZED' - ) - ) - - if (authErrors.length > 0 && !isRetry) { - console.log('馃攧 妫�娴嬪埌璁よ瘉閿欒锛屽皾璇曢噸鏂扮櫥褰�...') - // 娓呴櫎杩囨湡鐨勮璇佷俊鎭� - this.globalData.token = null - this.globalData.userInfo = null - this.globalData.sessionKey = null - wx.removeStorageSync('token') - wx.removeStorageSync('userInfo') - wx.removeStorageSync('sessionKey') - - // 閲嶆柊鐧诲綍 - wx.login({ - success: (loginRes) => { - if (loginRes.code) { - console.log('馃攧 閲嶆柊鑾峰彇寰俊code鎴愬姛锛岃皟鐢ㄥ悗绔櫥褰�...') - this._retryAfterLogin(loginRes.code, query, variables, resolve, reject) - } else { - console.error('鉂� 閲嶆柊鑾峰彇寰俊code澶辫触') - reject(new Error('閲嶆柊鐧诲綍澶辫触')) - } - }, - fail: (err) => { - console.error('鉂� 閲嶆柊鐧诲綍澶辫触:', err) - reject(new Error('閲嶆柊鐧诲綍澶辫触')) - } - }) + // 妫�鏌raphQL閿欒 + if (res.data.errors) { + console.error('GraphQL閿欒:', res.data.errors) + reject(new Error(res.data.errors[0]?.message || 'GraphQL璇锋眰閿欒')) return } - - reject(new Error(res.data.errors[0]?.message || 'GraphQL璇锋眰閿欒')) - return - } - // 妫�鏌ユ暟鎹� - if (res.data.data !== undefined) { - resolve(res.data.data) - } else { - console.error('GraphQL鍝嶅簲寮傚父:', res.data) - reject(new Error('GraphQL鍝嶅簲鏁版嵁寮傚父')) - } - }, - fail: (err) => { - console.error('GraphQL缃戠粶璇锋眰澶辫触:', err) - reject(new Error('缃戠粶璇锋眰澶辫触')) - } - }) - }, - - // 閲嶆柊鐧诲綍鍚庨噸璇旼raphQL璇锋眰 - _retryAfterLogin(code, query, variables, resolve, reject) { - const that = this - const deviceInfo = this.getDeviceInfo() - const requestData = { - code: code, - loginIp: '127.0.0.1', // 灏忕▼搴忔棤娉曡幏鍙栫湡瀹濱P锛屼娇鐢ㄩ粯璁ゅ�� - deviceInfo: deviceInfo - } - - wx.request({ - url: 'http://localhost:8080/api/auth/wx-login', - method: 'POST', - header: { - 'Content-Type': 'application/json' - }, - data: requestData, - success: (res) => { - console.log('馃攧 閲嶆柊鐧诲綍鍝嶅簲:', res.data) - - if (res.statusCode !== 200 || res.data.error) { - console.error('鉂� 閲嶆柊鐧诲綍澶辫触:', res.data.error || res.data.message) - reject(new Error('閲嶆柊鐧诲綍澶辫触')) - return - } - - // 妫�鏌ュ搷搴旀暟鎹牸寮� - let loginResult = null - if (res.data.token && res.data.userInfo) { - loginResult = res.data - } else if (res.data.success && res.data.data) { - loginResult = res.data.data - } - - if (loginResult && loginResult.token) { - console.log('鉁� 閲嶆柊鐧诲綍鎴愬姛锛屾洿鏂皌oken') - - // 淇濆瓨鏂扮殑鐧诲綍淇℃伅 - try { - wx.setStorageSync('token', loginResult.token) - wx.setStorageSync('userInfo', loginResult.userInfo) - if (loginResult.sessionKey) { - wx.setStorageSync('sessionKey', loginResult.sessionKey) - } - } catch (storageErr) { - console.error('鉂� 淇濆瓨閲嶆柊鐧诲綍淇℃伅澶辫触:', storageErr) + // 妫�鏌ユ暟鎹� + if (res.data.data !== undefined) { + resolve(res.data.data) + } else { + console.error('GraphQL鍝嶅簲寮傚父:', res.data) + reject(new Error('GraphQL鍝嶅簲鏁版嵁寮傚父')) } - - that.globalData.token = loginResult.token - that.globalData.userInfo = loginResult.userInfo - that.globalData.sessionKey = loginResult.sessionKey - - // 浣跨敤鏂皌oken閲嶈瘯鍘熷璇锋眰 - console.log('馃攧 浣跨敤鏂皌oken閲嶈瘯GraphQL璇锋眰...') - that._makeGraphQLRequest(query, variables, resolve, reject, true) - } else { - console.error('鉂� 閲嶆柊鐧诲綍鍝嶅簲鏍煎紡閿欒') - reject(new Error('閲嶆柊鐧诲綍鍝嶅簲鏍煎紡閿欒')) + }, + fail: (err) => { + console.error('GraphQL缃戠粶璇锋眰澶辫触:', err) + reject(new Error('缃戠粶璇锋眰澶辫触')) } - }, - fail: (err) => { - console.error('鉂� 閲嶆柊鐧诲綍缃戠粶璇锋眰澶辫触:', err) - reject(new Error('閲嶆柊鐧诲綍缃戠粶璇锋眰澶辫触')) - } + }) }) } }) \ No newline at end of file -- Gitblit v1.8.0