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