Files
everything-is-suitable/everything-is-suitable-uniapp/cloudfunctions/updatePushTime/index.js
T
zhangxiang bd4a8aa358 feat(cloud): 实现微信云函数 - 订阅管理与每日运势推送
- subscribe: 用户订阅/取消订阅/查询订阅状态
- daily-push: 定时查询订阅用户、生成运势、发送订阅消息
- push-test: 推送调试云函数
- 定时触发器配置,每日 7:00/12:00/18:00 推送
2026-08-13 08:06:10 +08:00

37 lines
1.0 KiB
JavaScript

// 云函数:updatePushTime
// 更新用户推送时间
const cloud = require('wx-server-sdk')
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV })
const db = cloud.database()
exports.main = async (event, context) => {
const { pushTime } = event
const { OPENID } = cloud.getWXContext()
// 校验 pushTime 格式 (HH:mm)
if (!pushTime || !/^([01]\d|2[0-3]):([03]0)$/.test(pushTime)) {
return { success: false, error: '推送时间格式无效,需为 HH:mm 格式,分钟为 00 或 30' }
}
try {
const existing = await db.collection('subscriptions').where({
openid: OPENID,
}).get()
if (existing.data.length === 0) {
return { success: false, error: '未找到订阅记录' }
}
await db.collection('subscriptions').doc(existing.data[0]._id).update({
data: {
pushTime,
updatedAt: db.serverDate(),
},
})
return { success: true }
} catch (err) {
console.error('[updatePushTime] Error:', err)
return { success: false, error: err.message }
}
}