浏览代码

ydf项目处理

8 年之前
父节点
当前提交
0ddd40106e
共有 2 个文件被更改,包括 66 次插入20 次删除
  1. 37 14
      src/doctor/models/doctor.js
  2. 29 6
      src/doctor/repository/system.msg.repo.js

+ 37 - 14
src/doctor/models/doctor.js

@ -475,7 +475,7 @@ class Doctor extends BaseModel {
    getSystemMsgList(userId){
        let self = this;
        let chats = {systems:[]};
        smRepo.getLastMessageByType(userId,"302,303,304,305,401,402,403,404,405",function(err,res){
        smRepo.getLastMessageByType(userId,"302,303,304,305,402,403,404,405",null,null,null,null,function(err,res){
            if (err) {
                modelUtil.emitDbError(self.eventEmitter, 'Get getLastMessageByType list with doctor failed', err);
                return;
@ -485,7 +485,7 @@ class Doctor extends BaseModel {
                system.lastContent = res[0]["lastContent"];
                system.czrq = objectUtil.timestampToLong(res[0]["czrq"]);
            }
            smRepo.getMessagesAmountByType(userId,"302,303,304,305,401,402,403,404,405",function(err,res){
            smRepo.getMessagesAmountByType(userId,"302,303,304,305,402,403,404,405",null,null,null,null,function(err,res){
                if (err) {
                    modelUtil.emitDbError(self.eventEmitter, 'Get getLastMessageByType list with doctor failed', err);
                    return;
@ -493,7 +493,7 @@ class Doctor extends BaseModel {
                system.amount=res[0]["amount"];
                chats.systems.push(system);
                //审核处理 type 2
                smRepo.getLastMessageByType(userId,"301",function(err,res){
                smRepo.getLastMessageByType(userId,"301,401",null,null,null,null,function(err,res){
                    if (err) {
                        modelUtil.emitDbError(self.eventEmitter, 'Get getLastMessageByType list with doctor failed', err);
                        return;
@ -503,7 +503,7 @@ class Doctor extends BaseModel {
                        audit.lastContent = res[0]["lastContent"];
                        audit.czrq = objectUtil.timestampToLong(res[0]["czrq"]);
                    }
                    smRepo.getMessagesAmountByType(userId,"301",function(err,res){
                    smRepo.getMessagesAmountByType(userId,"301,401",null,null,null,null,function(err,res){
                        if (err) {
                            modelUtil.emitDbError(self.eventEmitter, 'Get getLastMessageByType list with doctor failed', err);
                            return;
@ -511,7 +511,7 @@ class Doctor extends BaseModel {
                        audit.amount=res[0]["amount"];
                        chats.systems.push(audit);
                        //在线咨询 type 3
                        smRepo.getLastMessageByType(userId,"101",function(err,res){
                        smRepo.getLastMessageByType(userId,"101","ydf_consult","id","status","1",function(err,res){
                            if (err) {
                                modelUtil.emitDbError(self.eventEmitter, 'Get getLastMessageByType list with doctor failed', err);
                                return;
@ -521,7 +521,7 @@ class Doctor extends BaseModel {
                                consult.lastContent = res[0]["lastContent"];
                                consult.czrq = objectUtil.timestampToLong(res[0]["czrq"]);
                            }
                            smRepo.getMessagesAmountByType(userId,"101",function(err,res){
                            smRepo.getMessagesAmountByType(userId,"101","ydf_consult","id","status","1",function(err,res){
                                if (err) {
                                    modelUtil.emitDbError(self.eventEmitter, 'Get getLastMessageByType list with doctor failed', err);
                                    return;
@ -529,7 +529,7 @@ class Doctor extends BaseModel {
                                consult.amount=res[0]["amount"];
                                chats.systems.push(consult);
                                //预约就诊 type 4
                                smRepo.getLastMessageByType(userId,"201",function(err,res){
                                smRepo.getLastMessageByType(userId,"201","ydf_appointment","id","status","0",function(err,res){
                                    if (err) {
                                        modelUtil.emitDbError(self.eventEmitter, 'Get getLastMessageByType list with doctor failed', err);
                                        return;
@ -539,7 +539,7 @@ class Doctor extends BaseModel {
                                        appo.lastContent = res[0]["lastContent"];
                                        appo.czrq = objectUtil.timestampToLong(res[0]["czrq"]);
                                    }
                                    smRepo.getMessagesAmountByType(userId,"201",function(err,res){
                                    smRepo.getMessagesAmountByType(userId,"201","ydf_appointment","id","status","0",function(err,res){
                                        if (err) {
                                            modelUtil.emitDbError(self.eventEmitter, 'Get getLastMessageByType list with doctor failed', err);
                                            return;
@ -547,7 +547,7 @@ class Doctor extends BaseModel {
                                        appo.amount=res[0]["amount"];
                                        chats.systems.push(appo);
                                        //反馈意见 type 5
                                        smRepo.getLastMessageByType(userId,"501",function(err,res){
                                        smRepo.getLastMessageByType(userId,"501","ydf_feedback","id","status","0",function(err,res){
                                            if (err) {
                                                modelUtil.emitDbError(self.eventEmitter, 'Get getLastMessageByType list with doctor failed', err);
                                                return;
@ -557,7 +557,7 @@ class Doctor extends BaseModel {
                                                view.lastContent = res[0]["lastContent"];
                                                view.czrq = objectUtil.timestampToLong(res[0]["czrq"]);
                                            }
                                            smRepo.getMessagesAmountByType(userId,"501",function(err,res){
                                            smRepo.getMessagesAmountByType(userId,"501","ydf_feedback","id","status","0",function(err,res){
                                                if (err) {
                                                    modelUtil.emitDbError(self.eventEmitter, 'Get getLastMessageByType list with doctor failed', err);
                                                    return;
@ -714,14 +714,37 @@ class Doctor extends BaseModel {
                    }
                    chats.patient  = patientAmount;
                    smRepo.getMessagesAmountByType(userId,"101,201,301,302,303,304,401,402,403,404,405,501",function(err, res){
                    let systemAmount = 0;
                    smRepo.getMessagesAmountByType(userId,"301,302,303,304,401,402,403,404,405",null,null,null,null,function(err, res){
                        if (err) {
                            modelUtil.emitDbError(self.eventEmitter, 'Get chat list with patient failed', err);
                            return;
                        }else{
                            chats.sysInfo = res[0]['amount'];
                            modelUtil.emitData(self.eventEmitter, chats);
                        }
                         systemAmount+=res[0]["amount"];
                         smRepo.getMessagesAmountByType(userId,"101","ydf_consult","id","status","1",function(err,res){
                                if (err) {
                                    modelUtil.emitDbError(self.eventEmitter, 'Get getLastMessageByType list with doctor failed', err);
                                    return;
                                }
                                systemAmount+=res[0]["amount"];
                                smRepo.getMessagesAmountByType(userId,"201","ydf_appointment","id","status","0",function(err,res){
                                    if (err) {
                                        modelUtil.emitDbError(self.eventEmitter, 'Get getLastMessageByType list with doctor failed', err);
                                        return;
                                    }
                                    systemAmount+=res[0]["amount"];
                                    //反馈意见 type 5
                                    smRepo.getMessagesAmountByType(userId,"501","ydf_feedback","id","status","0",function(err,res){
                                        if (err) {
                                            modelUtil.emitDbError(self.eventEmitter, 'Get getLastMessageByType list with doctor failed', err);
                                            return;
                                        }
                                        systemAmount+=res[0]["amount"];
                                        chats.sysInfo = systemAmount;
                                        modelUtil.emitData(self.eventEmitter, chats);
                                    });
                                })
                          })
                    })
                });
            });

+ 29 - 6
src/doctor/repository/system.msg.repo.js

@ -11,20 +11,43 @@ exports.save = function(to, contentType, title, summary, content, handler) {
    });
};
exports.getLastMessageByType = function (userId,type, handler) {
    var sql="select m.content as lastContent,m.czrq FROM ydf_message m  where  m.type in ("+type+")  and m.readonly = 1 and m.receiver = ?  order by m.czrq desc limit 0,1" ;
exports.getLastMessageByType = function (userId,type,jointable,joincol,status,statusvalue,handler) {
    var args=[];
    var sql="select m.content as lastContent,m.czrq FROM ydf_message m  ";
        if(jointable&&joincol){
            sql+=","+jointable+" t ";
        }
        sql+="where  m.type in ("+type+")  and m.readonly = 1 and m.receiver = ?  ";
        args.push(userId);
        if(jointable&&joincol&&status&&statusvalue){
            sql+=" and t."+joincol+"= m.business_id and "+status+"= ? ";
            args.push(status);
        }
        sql+="order by m.czrq desc limit 0,1" ;
        console.log(sql);
    imRepo.execQuery({
        "sql": sql,
        "args": [userId],
        "args": args,
        "handler": handler
    });
};
exports.getMessagesAmountByType = function (userId,type, handler) {
    var sql="select count(1) as amount  FROM ydf_message m  where  m.readonly = 1 and m.type in ("+type+") and m.receiver = ?  order by m.czrq desc " ;
exports.getMessagesAmountByType = function (userId,type,jointable,joincol,status,statusvalue, handler) {
    var args=[];
    var sql="select count(1) as amount FROM ydf_message m  ";
    if(jointable&&joincol){
        sql+=","+jointable+" t ";
    }
    sql+="where  m.type in ("+type+")  and m.readonly = 1 and m.receiver = ?  ";
    args.push(userId);
    if(jointable&&joincol&&status&&statusvalue){
        sql+=" and t."+joincol+"= m.business_id and t."+status+"= ? ";
        args.push(status);
    }
    console.log(sql);
    imRepo.execQuery({
        "sql": sql,
        "args": [userId],
        "args": args,
        "handler": handler
    });
};