推送企业微信消息

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();
}