推送企业微信消息
TIP
推送企业微信消息
查询外部数据源
//创建MongoDB低代码数据库的连接事物
const instanceOrg = await api.database.getMongoConnection('JFMbPYSBTDKdjBsd');
//获取当前时间
let curdate = api.utils.formatDate(new Date(), 'YYYY-MM-DD')
//定义推送文本信息
let httpurl = `请点击网址进入服务平台填报本日健康状态`;
try {
//获取用户清单列表
const userList = await instanceOrg.collection('HRzjXaJhxztRaPfi').find({}).toArray()//应用平台人员信息
//定义用户编码与微信ID映射关系
const userMap = {}
for (const u of userList) {
userMap[u.user_code] = u.wechat
}
//获取当天未上报的填报
const recordList = await instanceOrg.collection('TiaDaFWDdTNAGWEB').find({ date: curdate, is_Report: '0' }).toArray()
//定义微信清单列表
const pushWechat = async (wechatList) => {
// 推送微信 过滤掉没有维护的
const str = wechatList.filter(s => s !== '').join('|')
//批量推送企业微信
await api.wechat.sendWorkAppText('jFEpxjjxXGnSfBpC', str, httpurl)
}
let pushList = []
//循环未填报记录列表清单
for (let i = 0; i < recordList.length; i++) {
//将未推送的列表清单用户对应维护存入临时数组 pushList
pushList.push(userMap[recordList[i].user_code])
//如果达到500个企业微信ID,一次性推入 pushWechat
if (pushList.length === 500) {
//批量推送企业微信
await pushWechat(pushList)
//清空数组
pushList = []
}
}
//将最后少于500个的临时数组推入微信数组中
await pushWechat(pushList)
}
catch (e) {
api.logger.info(e)
}
finally {
//执行完成后关闭连接,mogodb数据库不需要关闭
// await instanceOrg.close();
}