3***@qq.com
3***@qq.com
  • 发布:2023-12-10 23:18
  • 更新:2023-12-11 11:07
  • 阅读:142

为什么我在获取数据的时候总是为null,但是我在外边获取数据是正常的?

分类:uniCloud
async createRechargeOrder(uid, money, type) {  
        const start = new Date().getTime();  

        // 使用 usemall-member-wallet-change 集合记录用户钱包变动  
        const walletChangeCollection = this.db.collection('usemall-member-wallet-change');  
        // 使用 usemall-member-wallet 集合记录用户的钱包信息  
        const walletCollection = this.db.collection('usemall-member-wallet');  

        const currentTime = new Date().getTime();  

            // 创建一条充值记录  
            const rechargeRecord = {  
                wallet_id: uid,  
                user_id: uid,  
                order_id: null,  
                balance_change: money,  
                type: type,  
                created_at: currentTime,  
            };  

            // 向 usemall-member-wallet-change 表中插入记录  
            const result = await walletChangeCollection.add(rechargeRecord);  

            // 获取当前用户的钱包信息  
            const walletInfo = await walletCollection.doc(uid).get();  
            console.log(walletInfo.data)  
            if (walletInfo.data) {  
                // 如果用户的钱包信息存在,更新余额  
                // 使用0作为默认值,如果balance为null  

                const currentBalance = walletInfo.data.balance || 0;  

                const newBalance = currentBalance + parseInt(money, 10);  
                // 更新用户钱包表  
                await walletCollection.doc(uid).update({  
                    balance: newBalance,  
                    // 根据你的业务需求更新其他字段  
                });  

                console.log(`用户 ${uid} 的钱包余额更新成功,新余额:${currentBalance}`);  
            } else {  
                // 如果用户的钱包信息不存在,根据实际需求进行处理  
                console.error(`用户 ${uid} 的钱包信息不存在`);  
            }  

            const end = new Date().getTime();  
            console.log(`生成充值订单耗时:${end - start}ms`);  

            return {  
                order_id: result.id  
            };  
        } catch (error) {  
            console.error('创建充值订单失败', error);  
            throw error; // 抛出错误以便外部捕获  
        }  
    }  

这里的const currentBalance = walletInfo.data.balance || 0; 这里可以获取到null,但是我的数据库里数据并不是null
,图片里是我的对应的数据库,balance是int类型。

【已解决】 数据是数据形式需要const currentBalance = walletInfo.data[0].balance || 0; 选择第一个数据

2023-12-10 23:18 负责人:无 分享
已邀请:

要回复问题请先登录注册