Quellcode durchsuchen

微信模板添加推送日志

yeshijie vor 7 Jahren
Ursprung
Commit
7c43176b50

+ 8 - 0
src/server/models/client/wechat.client.js

@ -339,6 +339,8 @@ class WechatClient extends RedisModel {
                                    // 发送模板消息
                                    WechatSDK.sendTemplateMessage({
                                        touser: openid,
                                        name: member.name,
                                        patient: member.code,
                                        template_id: config.wechatConfig.template.consultTemplate,
                                        url: url + "?openid=" + openid + "&type="+topic.type+"&doctor="+message.sender_id+
                                        "&consult=" + topic.id + "&toUser=" + member.code + "&toName=" + member.name+"&represented="+patient.code,
@ -360,6 +362,8 @@ class WechatClient extends RedisModel {
                            // 发送模板消息
                            WechatSDK.sendTemplateMessage({
                                touser: patient.openid,
                                name: targetUserName,
                                patient: targetUserId,
                                template_id: config.wechatConfig.template.consultTemplate,
                                url: url + "?openid=" + patient.openid +"&type="+topic.type+"&doctor="+message.sender_id+
                                "&consult=" + topic.id + "&toUser=" + targetUserId + "&toName=" + targetUserName+"&represented="+patient.code,
@ -380,6 +384,8 @@ class WechatClient extends RedisModel {
                        if(patient.openid){
                            WechatSDK.sendTemplateMessage({
                                touser: patient.openid,
                                name: targetUserName,
                                patient: targetUserId,
                                template_id: config.wechatConfig.template.consultTemplate,
                                url: url + "?openid=" + patient.openid +"&type="+topic.type+"&doctor="+message.sender_id+
                                "&consult=" + topic.id + "&toUser=" + targetUserId + "&toName=" + targetUserName+"&represented="+patient.code,
@ -403,6 +409,8 @@ class WechatClient extends RedisModel {
                                    // 发送模板消息
                                    WechatSDK.sendTemplateMessage({
                                        touser: openid,
                                        name: member.name,
                                        patient: member.code,
                                        template_id: config.wechatConfig.template.consultTemplate,
                                        url: url + "?openid=" + openid +"&type="+topic.type+"&doctor="+message.sender_id+
                                        "&consult=" + topic.id + "&toUser=" + member.code + "&toName=" + member.name+"&represented="+patient.code,

+ 18 - 0
src/server/repository/mysql/wechat.token.repo.js

@ -40,6 +40,24 @@ class WeChatTokenRepo {
            , "handler": handler
        });
    }
    /**
     * 微信推送日志
     * @param openid
     * @param patient
     * @param name
     * @param request
     * @param response
     * @param status
     * @param createTime
     */
    static saveLog(openid,patient,name,request,response,status,createTime,handler){
        ImDb.execQuery({
            "sql": "insert into wlyy.wlyy_wx_push_log (type,openid, patient,name,request,response,status, create_time) values (3,?,?,?,?,?,?,?)"
            , "args": [openid,patient,name,request,response,status, createTime]
            , "handler": handler
        });
    }
}
module.exports = WeChatTokenRepo;

+ 20 - 0
src/server/util/wechat.sdk.js

@ -50,19 +50,39 @@ class WechatSDK {
                            let wechatEcho = JSON.parse(data);
                            if (wechatEcho && wechatEcho.errcode === 0) {
                                log.info("Send wechat template message successfully: " + messageJSON);
                                WechatTokenRepo.saveLog(message.touser,message.patient, message.name,messageJSON,data,1, new Date(), function (err, result) {
                                    if (err) {
                                        log.error("save push log failed: " + err.message);
                                    }
                                });
                                handler(null, wechatEcho);
                            } else {
                                WechatTokenRepo.saveLog(message.touser,message.patient, message.name,messageJSON,data,0, new Date(), function (err, result) {
                                    if (err) {
                                        log.error("save push log failed: " + err.message);
                                    }
                                });
                                log.error("Send wechat template message failed: " + messageJSON);
                                handler(wechatEcho, null);
                            }
                        });
                        res.on('error', function (err) {
                            WechatTokenRepo.saveLog(message.touser,message.patient, message.name,messageJSON,err.message,1, new Date(), function (err, result) {
                                if (err) {
                                    log.error("save push log failed: " + err.message);
                                }
                            });
                            log.error('Send wechat template message failed: ' + err.message);
                            handler(err, null);
                        });
                    })
                    .on('error', (e) => {
                        WechatTokenRepo.saveLog(message.touser,message.patient, message.name,messageJSON,e.message,1, new Date(), function (err, result) {
                            if (err) {
                                log.error("save push log failed: " + err.message);
                            }
                        });
                        log.error("Send wechat template message failed:" + e.message);
                        handler(e, null);
                    });