小程序
小游戏
企业微信
微信支付
扫描小程序码分享
一、云端调用,Request ID: c382185f-157a-11ea-8bd4-525400a88e2e
二、本地调试
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
建议env写死或传进去
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
方便把云函数代码贴出来看看吗?
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
建议env写死或传进去
方便把云函数代码贴出来看看吗?
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database()
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
console.log('event: ', event);
let payload = { ...event.payload };
// 计算拼车人数
const totalBindingNumber = payload.users.map(item => item.bindingNumber).reduce((a, b) => a + b);
console.log('totalBindingNumber: ', totalBindingNumber);
// 获取"在该起点、入队最早、状态为已上线"的车辆队列列表
const carsRes = await cloud.callFunction({
// 要调用的云函数名称
name: 'getCarLines',
// 传递给云函数的参数
data: {
payload: {
carPosition: payload.startPlaceId, // 在该起点
},
carPayload: {
'carList.carStatus': 'c90b5d3d-617f-4685-808d-a77af0b2a37f', // 状态为已上线
}
}
});
const onlineCarLines = carsRes.result.list;
console.log('onlineCarLines: ', onlineCarLines);
// 有上线车辆,并且 拼车人数大于该车辆的出发人数
// if (onlineCarLines.length > 0 && totalBindingNumber >= onlineCarLines[0].carList[0].carStartNumber) {
if (onlineCarLines.length > 0) {
const target = onlineCarLines.find(item => totalBindingNumber >= item.carList[0].carStartNumber);
if (target) {
payload['carId'] = target.carId;
// 1、新增队列日志:上线 -> 使用中
await cloud.callFunction({
// 要调用的云函数名称
name: 'addCarLinesLogs',
// 传递给云函数的参数
data: {
payload: {
carId: target.carId,
operationType: 'using', // 使用
operationTime: new Date(),
carPosition: target.carPosition
}
}
})
// 2、车辆状态改为使用中
await cloud.callFunction({
// 要调用的云函数名称
name: 'updateCars',
// 传递给云函数的参数
data: {
payload: {
_id: target.carId
},
data: {
carStatus: '278ad4fc-acff-45c7-b953-df6de1d2c0da',
},
}
})
// 3、若人满,则订单状态显示"已满员"
if (totalBindingNumber === target.carList[0].carSeatNumber) {
payload = { ...payload, orderStatusId: '99d6da64-1571-4838-a918-941071dc1c8f' }
}
}
}
console.log('payload: ', payload);
const addCarpoolRes = await db.collection('carpools').add({
// data 字段表示需新增的 JSON 数据
data: payload
})
console.log('addCarpoolRes: ', addCarpoolRes);
return addCarpoolRes
}