36 lines
1.0 KiB
JavaScript
36 lines
1.0 KiB
JavaScript
// 云函数 getHistory — 遛狗历史列表(跨全部狗狗,附狗名)
|
|
// 供「遛狗历史」页与「记录」Tab 使用。
|
|
const cloud = require('wx-server-sdk');
|
|
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV });
|
|
const db = cloud.database();
|
|
|
|
exports.main = async (event) => {
|
|
const { OPENID } = cloud.getWXContext();
|
|
const limit = Math.min(event.limit || 50, 100);
|
|
|
|
// 狗名映射
|
|
const dogsRes = await db.collection('dogs').where({ _openid: OPENID }).get();
|
|
const nameMap = {};
|
|
dogsRes.data.forEach((d) => { nameMap[d._id] = d.name; });
|
|
|
|
const res = await db.collection('walks')
|
|
.where({ _openid: OPENID })
|
|
.orderBy('startAt', 'desc')
|
|
.limit(limit)
|
|
.get();
|
|
|
|
const walks = res.data.map((w) => ({
|
|
_id: w._id,
|
|
dogIds: w.dogIds,
|
|
dogNames: (w.dogIds || []).map((id) => nameMap[id] || '狗狗'),
|
|
startAt: w.startAt,
|
|
duration: w.duration,
|
|
distance: w.distance,
|
|
dogSteps: w.dogSteps,
|
|
isManual: w.isManual,
|
|
walkDate: w.walkDate,
|
|
}));
|
|
|
|
return { ok: true, data: { walks, total: walks.length } };
|
|
};
|