邹能昇 2 сар өмнө
parent
commit
9e2ce7d312

+ 82 - 58
nova-werun/components/home/index.js

@@ -21,7 +21,7 @@ Component({
         contentHeight: 0, // 可用内容高度
         contentpadding: 0, //顶部padding高度
         navheight: 0,
-        percentage:0,
+        percentage: 0,
         //选择
         rows: [{
                 image: 'https://file-cloud.fmode.cn/qpFbRRSZrO/20241225/r5j1uc041211788.png',
@@ -78,9 +78,9 @@ Component({
         todayList: [],
         changetitle: 'today',
         //点赞
-        isclick:false,
+        isclick: false,
         //正序
-        rank:'up'
+        rank: 'up'
     },
     lifetimes: {
 
@@ -115,7 +115,7 @@ Component({
             // this.order()
             this.Getlocation()
             this.gettoday()
-            
+
         },
     },
 
@@ -256,55 +256,79 @@ Component({
                     // 获取到的加密数据
                     const encryptedData = res.encryptedData;
                     const iv = res.iv;
-                    console.log('encryptedData',encryptedData);
-                    console.log('iv',iv);
+                    console.log('encryptedData', encryptedData);
+                    console.log('iv', iv);
+                    const userInfo = wx.getStorageSync('userInfo');
+                    const session_key = userInfo.session_key
+                    console.log('session_key', session_key);
                     // 这里需要调用你的后端接口进行解密
                     // 假设你有一个解密函数 decryptData
-                    // this.decryptData(encryptedData, iv).then(steps => {
-                    //     this.setData({
-                    //         steps: `${steps}`
-                    //     });
-                    //     console.log('用户步数:', this.data.steps);
-                    // }).catch(err => {
-                    //     console.error('解密失败:', err);
-                    // });
-                    const steps = this.decryptData(encryptedData, iv)
-                    console.log(steps);
-                    this.updatetoday(steps)
+                    this.decryptData(encryptedData, iv, session_key).then(steps => {
+                        this.setData({
+                            steps: steps
+                        });
+                        console.log('用户步数:', this.data.steps);
+                        this.updatetoday(steps)
+                    }).catch(err => {
+                        console.error('解密失败:', err);
+                    });   
                 },
                 fail: (err) => {
                     console.error('获取运动数据失败:', err);
                 }
             });
         },
-        decryptData(encryptedData, iv) {
-            // return new Promise((resolve, reject) => {
-            //     // 发送请求到后端进行解密
-            //     wx.request({
-            //         url: '', // 替换为你的后端解密接口
-            //         method: 'POST',
-            //         data: {
-            //             encryptedData: encryptedData,
-            //             iv: iv,
-            //             // 需要传递 session_key,通常在用户登录时获取
-            //             session_key: wx.getStorageSync('session_key') // 假设你已经存储了 session_key
-            //         },
-            //         success: (res) => {
-            //             if (res.data && res.data.steps) {
-            //                 // resolve(res.data.steps); // 返回步数
-            //                 const steps = 123456
-            //                 resolve(steps);
-            //             } else {
-            //                 reject('解密返回数据格式错误');
-            //             }
-            //         },
-            //         fail: (err) => {
-            //             reject(err);
-            //         }
-            //     });
-            // });
-            const steps = 1200
-            return steps
+        //  解密
+        decryptData(encryptedData, iv, session_key) {
+            return new Promise((resolve, reject) => {
+                // 发送请求到后端进行解密
+                wx.request({
+                    url: 'https://server.fmode.cn/api/wxapp/decrypt_phone', // 替换为你的后端解密接口
+                    method: 'get',
+                    data: {
+                        encryptedData: encryptedData,
+                        iv: iv,
+                        appId: 'wxe6ecc0193c09696c',
+                        sessionKey: session_key
+                    },
+                    success: (res) => {
+                        // if (res.data && res.data.steps) {
+                        //     console.log(res.data.steps);
+                        //     // resolve(res.data.steps); // 返回步数
+                        //     // const steps = 123456
+                        //     resolve(steps);
+                        // } else {
+                        //     reject('解密返回数据格式错误');
+                        // }
+                        if (res.data.data) {
+                            const stepInfoList = res.data.data.stepInfoList
+                            console.log(stepInfoList);
+                            const todaylist = stepInfoList.filter(item => {
+                                console.log(this.isToday(item));
+                                return this.isToday(item); // 使用 isToday 函数判断是否是今天
+                            });
+                            const steps = todaylist[0].step;
+                            resolve(steps);
+                            console.log('今日步数', steps);
+                        } else {
+                            reject('解密返回数据格式错误');
+                        }
+
+                    },
+                    fail: (err) => {
+                        reject(err);
+                    }
+                });
+            });
+        },
+        // 判断日期是否是今天
+        isToday(item) {
+            const today = new Date();
+            const date = new Date(item.timestamp * 1000); // 假设时间戳是以秒为单位
+            // 比较年、月、日
+            return date.getFullYear() === today.getFullYear() &&
+                date.getMonth() === today.getMonth() &&
+                date.getDate() === today.getDate();
         },
         //更新今日步数
         async updatetoday(steps) {
@@ -359,7 +383,7 @@ Component({
                     console.error("保存数据时出现错误:", error);
                 }
             }
-          
+
         },
         //切换
         change() {
@@ -372,19 +396,19 @@ Component({
             });
             if (this.data.changetitle == 'today') {
                 this.setData({
-                    rank:'up'
+                    rank: 'up'
                 })
                 this.gettoday()
             }
             if (this.data.changetitle == 'weekdday') {
                 this.setData({
-                    rank:'up'
+                    rank: 'up'
                 })
                 console.log('weekdday');
             }
             if (this.data.changetitle == 'month') {
                 this.setData({
-                    rank:'up'
+                    rank: 'up'
                 })
                 console.log('month');
             }
@@ -439,14 +463,14 @@ Component({
             }
         },
         //正序逆序
-        changeup(){
-            if(this.data.rank=='up'){
+        changeup() {
+            if (this.data.rank == 'up') {
                 this.setData({
-                    rank:'down'
+                    rank: 'down'
                 })
                 if (this.data.changetitle == 'today') {
                     this.setData({
-                        todayList:this.data.todayList.reverse(),
+                        todayList: this.data.todayList.reverse(),
                     })
                     console.log('逆序');
                 }
@@ -456,13 +480,13 @@ Component({
                 if (this.data.changetitle == 'month') {
                     console.log('month逆序');
                 }
-            }else{
+            } else {
                 this.setData({
-                    rank:'up'
+                    rank: 'up'
                 })
                 if (this.data.changetitle == 'today') {
                     this.setData({
-                        todayList:this.data.todayList.reverse(),
+                        todayList: this.data.todayList.reverse(),
                     })
                     console.log('顺序');
                 }
@@ -483,9 +507,9 @@ Component({
                 percentage = 100;
             }
             this.setData({
-                percentage:`conic-gradient(from 0deg, #015EEA ${percentage}%, white 0%)`,
+                percentage: `conic-gradient(from 0deg, #015EEA ${percentage}%, white 0%)`,
             })
-            console.log('百分比',this.data.percentage);
+            console.log('百分比', this.data.percentage);
         },
     }
 })