From c4938f6f4e839890b032c75c7a57333a6a9157a9 Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期四, 06 十一月 2025 17:06:10 +0800
Subject: [PATCH] 添加新闻功能

---
 wx/app.js |  107 ++++++++++++++++++++++++++++-------------------------
 1 files changed, 57 insertions(+), 50 deletions(-)

diff --git a/wx/app.js b/wx/app.js
index 574b272..ba9f405 100644
--- a/wx/app.js
+++ b/wx/app.js
@@ -4,7 +4,10 @@
     userInfo: null,
     token: null,
     sessionKey: null, // 寰俊浼氳瘽瀵嗛挜锛岀敤浜庤В瀵嗘墜鏈哄彿绛夋晱鎰熸暟鎹�
-    baseUrl: 'http://localhost:8080/api/graphql', // 鍚庡彴GraphQL鎺ュ彛鍦板潃
+    baseUrl: 'https://ryc.9village.cn/api/graphql', // 鍚庡彴GraphQL鎺ュ彛鍦板潃
+    loginUrl:'https://ryc.9village.cn',
+    // baseUrl: 'http://localhost:8080/api/graphql', // 鍚庡彴GraphQL鎺ュ彛鍦板潃
+    // loginUrl:'http://localhost:8080',
     hasPhoneAuth: false, // 鏄惁宸叉巿鏉冩墜鏈哄彿
     rejectPhone: false, // 鏄惁鎷掔粷杩囨墜鏈哄彿鎺堟潈
     cos: {
@@ -68,6 +71,7 @@
           name: userInfo.name,
           phone: userInfo.phone || '鏈巿鏉�'
         })
+        console.log('馃攳 瀹屾暣鐢ㄦ埛鏁版嵁缁撴瀯:', JSON.stringify(userInfo, null, 2))
         this.globalData.userInfo = userInfo
       }
       
@@ -100,10 +104,6 @@
     wx.login({
       success: (res) => {
         if (res.code) {
-          console.log('鉁� 鑾峰彇寰俊鐧诲綍code鎴愬姛')
-          console.log('鐧诲綍code:', res.code)
-          console.log('code闀垮害:', res.code.length)
-          console.log('鍑嗗璋冪敤鍚庣wxLogin鎺ュ彛...')
           this.wxLogin(res.code)
         } else {
           console.error('鉂� 鑾峰彇寰俊鐧诲綍code澶辫触')
@@ -129,49 +129,21 @@
     const deviceInfo = this.getDeviceInfo()
     const requestData = {
       code: code,
-      loginIp: '127.0.0.1', // 灏忕▼搴忔棤娉曡幏鍙栫湡瀹濱P锛屼娇鐢ㄩ粯璁ゅ��
+      // loginIp: '127.0.0.1', // 灏忕▼搴忔棤娉曡幏鍙栫湡瀹濱P锛屼娇鐢ㄩ粯璁ゅ��
       deviceInfo: deviceInfo
     }
     
-    console.log('=== 鍑嗗璋冪敤鍚庣wxLogin鎺ュ彛 ===')
-    console.log('璇锋眰URL:', this.globalData.baseUrl)
-    console.log('璁惧淇℃伅:', deviceInfo)
-    console.log('璇锋眰鍙傛暟:', requestData)
-    console.log('璇锋眰寮�濮嬫椂闂�:', new Date().toISOString())
+
     
     wx.request({
-      url: this.globalData.baseUrl,
+      url: this.globalData.loginUrl + '/api/auth/wx-login',
       method: 'POST',
       header: {
         'Content-Type': 'application/json'
       },
-      data: {
-        query: `
-          mutation wxLogin($input: WxLoginRequest!) {
-            wxLogin(input: $input) {
-              token
-              userInfo {
-                userId
-                name
-                phone
-                wxOpenid
-              }
-              isNewUser
-              loginRecordId
-              sessionKey
-            }
-          }
-        `,
-        variables: {
-          input: requestData
-        }
-      },
+      data: requestData,
       success: (res) => {
-        console.log('=== 鍚庣wxLogin鎺ュ彛鍝嶅簲 ===')
-        console.log('鍝嶅簲鏃堕棿:', new Date().toISOString())
-        console.log('HTTP鐘舵�佺爜:', res.statusCode)
-        console.log('鍝嶅簲澶�:', res.header)
-        console.log('鍝嶅簲鏁版嵁:', JSON.stringify(res.data, null, 2))
+
         
         if (res.statusCode !== 200) {
           console.error('鉂� HTTP璇锋眰澶辫触锛岀姸鎬佺爜:', res.statusCode)
@@ -182,17 +154,28 @@
           return
         }
         
-        if (res.data.errors) {
-          console.error('鉂� GraphQL閿欒:', res.data.errors)
+        // 妫�鏌ユ槸鍚︽湁閿欒淇℃伅锛堥�傞厤涓嶅悓鐨勯敊璇搷搴旀牸寮忥級
+        if (res.data.error || res.data.success === false) {
+          const errorMsg = res.data.error || res.data.message || '鐧诲綍澶辫触'
+          console.error('鉂� 鐧诲綍澶辫触:', errorMsg)
           wx.showToast({
-            title: '鐧诲綍澶辫触',
+            title: errorMsg,
             icon: 'error'
           })
           return
         }
         
-        if (res.data.data && res.data.data.wxLogin) {
-          const loginResult = res.data.data.wxLogin
+        // 妫�鏌ュ搷搴旀暟鎹牸寮忥細鏀寔鐩存帴杩斿洖WxLoginResponse鎴栧寘瑁呮牸寮�
+        let loginResult = null
+        if (res.data.token && res.data.userInfo) {
+          // 鐩存帴杩斿洖WxLoginResponse鏍煎紡
+          loginResult = res.data
+        } else if (res.data.success && res.data.data) {
+          // 鍖呰鏍煎紡 {success: true, data: WxLoginResponse}
+          loginResult = res.data.data
+        }
+        
+        if (loginResult) {
           
           console.log('鉁� 鐧诲綍鎴愬姛!')
           console.log('鐢ㄦ埛ID:', loginResult.userInfo.userId)
@@ -202,6 +185,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 {
@@ -227,10 +211,10 @@
             console.log('鈩癸笍 鑰佺敤鎴锋垨宸叉嫆缁濇墜鏈哄彿鎺堟潈锛岃烦杩囨巿鏉冨脊绐�')
           }
         } else {
-          console.error('鉂� 鍝嶅簲鏁版嵁鏍煎紡閿欒锛岀己灏憌xLogin瀛楁')
+          console.error('鉂� 鍝嶅簲鏁版嵁鏍煎紡閿欒锛岀己灏戝繀瑕佸瓧娈�(token鎴杣serInfo)')
           console.error('瀹為檯鍝嶅簲:', res.data)
           wx.showToast({
-            title: '鐧诲綍澶辫触',
+            title: '鐧诲綍鏁版嵁鏍煎紡閿欒',
             icon: 'error'
           })
         }
@@ -285,12 +269,21 @@
   // GraphQL璇锋眰灏佽
   graphqlRequest(query, variables = {}) {
     return new Promise((resolve, reject) => {
+      // 纭繚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': this.globalData.token ? `Bearer ${this.globalData.token}` : ''
+          'Authorization': token ? `Bearer ${token}` : ''
         },
         data: {
           query: query,
@@ -298,18 +291,32 @@
         },
         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.errors) {
             console.error('GraphQL閿欒:', res.data.errors)
-            reject(res.data.errors)
-          } else if (res.data.data) {
+            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('璇锋眰澶辫触')
+            reject(new Error('GraphQL鍝嶅簲鏁版嵁寮傚父'))
           }
         },
         fail: (err) => {
-          reject(err)
+          console.error('GraphQL缃戠粶璇锋眰澶辫触:', err)
+          reject(new Error('缃戠粶璇锋眰澶辫触'))
         }
       })
     })

--
Gitblit v1.8.0