* 404 Page */ app.get('*', function(req, res, next) { if (/.*\.(gif|jpg|jpeg|png|bmp|js|css|html|eot|svg|ttf|woff|otf|ico|mp3).*$/.test(req.originalUrl)) { next(); } else { res.render('404'); } }); }; // 监听关注事件 weixin.on('subscribeEventMsg', function(data) { console.log('>>>>>>>>> subscribeEventMsg emit >>>>>>>>>'); console.log(data); api.subscribeHandler(data); }); // 监听点击菜单拉取消息时的事件推送 weixin.on('clickEventMsg', function(data) { console.log('>>>>>>>>> clickEventMsg emit >>>>>>>>>'); console.log(data); // 菜单事件 if (data.event === 'CLICK') { switch (data.eventKey) { case 'CHUANG_KE_LAI_LE': api.chuangKeLaiLe(data); break; case 'BANGING_ACCOUNT':
var weixin_biz = function (app) { // 微信接入配置 weixin.configurate({ app: app, token: 'guanai', appid: 'wxaf3a162fe7e04d37', secret: '2166e5441e7412dc7ebd4111635db0b7' }); // 监听文本消息 weixin.on('textMsg', function (data) { console.log('>>>>>>>>> textMsg emit >>>>>>>>>'); console.log(data); if (data.content === '审核') { var msg = { toUserName: data.fromUserName, fromUserName: data.toUserName, msgType: 'text', content: '' }; models().doctor.find({"wx_id":data.fromUserName}, function(err, da){ if (err || da.length==0) { console.error(err); msg.content = "医生账户未绑定微信,请登录"; console.log(msg); weixin.sendMsg(msg); } else { models().sickRequest.find({"doctorId": da[0].id, "status":"f"}, function(err, da2){ if (err) { console.error(err); msg.content="抱歉,暂时无法提供服务"; console.log(msg); weixin.sendMsg(msg); } else if (da2.length == 0) { msg.content = "暂时没有需要审核的患者"; weixin.sendMsg(msg); } else { for (var i = 0; i< da2.length; i++) { msg.content += "患者(" + da2[i].sickName + ")申请成为您的患者\n"; } msg.content += "请回复‘同意+患者姓名'审核通过,回复'拒绝+患者姓名'拒绝请求"; weixin.sendMsg(msg); } }); } }); } else if (data.content.indexOf("同意") == 0) { var name = data.content.slice(2); var msg = { toUserName: data.fromUserName, fromUserName: data.toUserName, msgType: 'text', content: "操作失败,暂时无法审核,请稍候再试" }; console.info("sick name = " + name); models().doctor.find({wx_id: data.fromUserName}, function(err, dat) { if (err || dat.length === 0) { weixin.sendMsg(msg); } else { models().sickRequest.find({doctorId: dat[0].id, sickName: name, status:'f'}, function(err, dat2){ if (err) { weixin.sendMsg(msg); } else if (dat2.length === 0) { msg.content = "找不到该患者的审核申请"; weixin.sendMsg(msg); } else { dat2[0].save({status:'t'}); models().sick.get(dat2[0].sickId, function(err, sick) { if (err || !sick) { msg.content="找不到该患者的信息"; weixin.sendMsg(msg); } else { sick.save({status:'t'}, function(err){ if (err) { weixin.sendMsg(msg); } else { models().sick_notify.create({ "sick_id" : sick.id, "day" : 1, "wx_id" : sick.wx_id, "status" : 1 }, function(err){ if (!err) { notifyOneDay(sick.wx_id); } else { console.error(err); } }); if (sick.wx_id) { var templateId = "qYe34Nu4PM505KmbFaduJ3bf82hcgmNDtczROaDOCAU"; var url = 'http://www.guanaikangfu.com/gakf/video.html'; var topcolor = '#FF0000'; // 顶部颜色 var datetime = new Date(); var data = { "first": {"value":"医生审核通过"}, "keyword1": {"value":"医生通过了您的申请"}, "keyword2": {"value":dat[0].name}, "keyword3" :{"value":dateFormat(datetime,"yyyy/mm/dd hh:MM:ss")}, "remarks":{"value":""} }; api.sendTemplate(sick.wx_id, templateId, "", topcolor, data, function(err){ console.info(err||'ok'); }); // 视频模板 templateId = "_hpYqESfjPoRF45jEmSoKSVs49NFU5h1DkSQoE73RAY"; data = { first: {"value":"帮助视频"}, keyword1: {"value":"给您的帮助视频,请点击观看"}, keyword2: {"value":dateFormat(datetime,"yyyy/mm/dd hh:MM:ss")}, remarks: {"value":"请点击观看"} }; api.sendTemplate(sick.wx_id, templateId, url, topcolor,data,function(err){ console.info(err||'ok'); }); } msg.content="操作成功"; weixin.sendMsg(msg); } }); } }); } }); } }); } else if (data.content.indexOf("拒绝") == 0) { var name = data.content.slice(2); var msg = { toUserName: data.fromUserName, fromUserName: data.toUserName, msgType: 'text', content: "操作失败,暂时无法审核,请稍候再试" }; console.info("sick name = " + name); models().doctor.find({wx_id: data.fromUserName}, function(err, dat) { if (err || dat.length === 0) { weixin.sendMsg(msg); } else { models().sickRequest.find({doctorId: dat[0].id, sickName: name}, function(err, dat2){ if (err) { weixin.sendMsg(msg); } else if (dat2.length === 0) { msg.content = "找不到该患者的审核申请"; weixin.sendMsg(msg); } else { dat2[0].save({status:'t'}); models().sick.get(dat2[0].sickId, function(err, sick) { if (err || !sick) { msg.content="找不到该患者的信息"; weixin.sendMsg(msg); } else { sick.save({status:'f'}, function(err){ if (err) { weixin.sendMsg(msg); } else { msg.content="操作成功"; weixin.sendMsg(msg); } }); if (sick.wx_id) { var templateId = "-Vyr7il3acv0WRMneuSANWib1wCcB4c9WWnWL1JL1-w"; var url = ''; var topcolor = '#FF0000'; // 顶部颜色 var datetime = new Date(); var data = { "first": {"value":"医生审核未通过"}, "keyword1": {"value": dat[0].name}, "keyword2": {"value": "无"}, "keyword3" :{"value": "无"}, "keyword4" :{"value" : "医生拒绝了您的申请"}, "remarks":{"value": ""} }; api.sendTemplate(sick.wx_id, templateId, "", topcolor, data, function(err){ console.info(err||'ok'); }); } } }); } }); } }); } else { var articles = []; articles[0] = { title: "欢迎使用关艾康复微信平台", description: "使用入门", picUrl: "http://www.guanaikangfu.com/gakf/static/images/help.jpg", url: "http://www.guanaikangfu.com/gakf/help.html" }; var msg = { toUserName: data.fromUserName, fromUserName: data.toUserName, msgType: 'news', articles: articles }; weixin.sendMsg(msg); } }); // 监听图片消息 weixin.on('imageMsg', function (data) { console.log('>>>>>>>>> imageMsg emit >>>>>>>>>'); console.log(data); }); // 监听语音消息 weixin.on('voiceMsg', function (data) { console.log('>>>>>>>>> voiceMsg emit >>>>>>>>>'); console.log(data); }); // 监听视频消息 weixin.on('videoMsg', function (data) { console.log('>>>>>>>>> videoMsg emit >>>>>>>>>'); console.log(data); }); // 监听地理位置消息 weixin.on('locationMsg', function (data) { console.log('>>>>>>>>> locationMsg emit >>>>>>>>>'); console.log(data); }); // 监听链接消息 weixin.on('linkMsg', function (data) { console.log('>>>>>>>>> linkMsg emit >>>>>>>>>'); console.log(data); }); // 监听关注事件 weixin.on('subscribeEventMsg', function (data) { console.log('>>>>>>>>> subscribeEventMsg emit >>>>>>>>>'); console.log(data); var articles = []; articles[0] = { title: "欢迎使用关艾康复微信平台", description: "使用入门", picUrl: "http://www.guanaikangfu.com/gakf/static/images/help.jpg", url: "http://www.guanaikangfu.com/gakf/help.html" }; var msg = { toUserName: data.fromUserName, fromUserName: data.toUserName, msgType: 'news', articles: articles }; weixin.sendMsg(msg); }); // 监听取消关注事件 weixin.on('unsubscribeEventMsg', function (data) { console.log('>>>>>>>>> unsubscribeEventMsg emit >>>>>>>>>'); console.log(data); //todo }); // 扫描带参数二维码事件 // 2. 用户已关注时的事件推送 weixin.on("scanEventMsg", function (data) { console.log('>>>>>>>>> scanEventMsg emit >>>>>>>>>'); console.log(data); var articles = []; articles[0] = { title: "欢迎使用关艾康复微信平台", description: "使用入门", picUrl: "http://www.guanaikangfu.com/gakf/static/images/help.jpg", url: "http://www.guanaikangfu.com/gakf/help.html" }; var msg = { toUserName: data.fromUserName, fromUserName: data.toUserName, msgType: 'news', articles: articles }; weixin.sendMsg(msg); }); // 监听上报地理位置事件 weixin.on('locationEventMsg', function (data) { console.log('>>>>>>>>> locationEventMsg emit >>>>>>>>>'); console.log(data); }); // // 监听点击菜单拉取消息时的事件推送 // weixin.on('clickEventMsg', function (data) { // console.log('>>>>>>>>> clickEventMsg emit >>>>>>>>>'); // console.log(data); // }); // 监听点击菜单跳转链接时的事件推送 weixin.on('viewEventMsg', function (data) { console.log('>>>>>>>>> viewEventMsg emit >>>>>>>>>'); console.log(data); }); weixin.on("templateSendJobFinishEventMsg", function(data){ console.log('>>>>>>> TEMPLATESENDJOBFINISH emit >>>>>>>>'); console.log(data); weixin.sendMsg("success"); }); };