- subscribe: 用户订阅/取消订阅/查询订阅状态 - daily-push: 定时查询订阅用户、生成运势、发送订阅消息 - push-test: 推送调试云函数 - 定时触发器配置,每日 7:00/12:00/18:00 推送
37 lines
1.0 KiB
JavaScript
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 }
|
|
}
|
|
} |