Browse Source

健康咨询过滤名医咨询

yeshijie 8 years ago
parent
commit
d6c2e63783

+ 12 - 0
src/server/endpoints/v2/topic.endpoint.js

@ -55,6 +55,18 @@ router.get(APIv2.Sessions.TopicList, function (req, res) {
    topic.findAllByUserAndReplyAndStatus(users,reply,status,page,pagesize);
});
router.get(APIv2.Sessions.HealthTopicList, function (req, res) {
    let user = req.query.user;
    let status = req.query.status;
    let reply = req.query.reply;//SESSION_TYPES
    let page = req.query.page;
    let pagesize = req.query.pagesize;
    let topic = new Topics();
    ControllerUtil.regModelEventHandler(topic, res);
    let users = user.split(",");
    topic.findAllByUserAndReplyAndStatusHealthTopic(users,reply,status,page,pagesize);
});
router.get(APIv2.Sessions.TopicReplyCount, function (req, res) {
    let user = req.query.user;
    let status = req.query.status;

+ 1 - 0
src/server/include/endpoints.js

@ -35,6 +35,7 @@ const APIv2 = {
        Topic: '/topics/:topic_id',                          // 议题,指定ID的议题将返回其信息
        TopicEnded: '/:session_id/topics/:topic_id/ended',              // 议题是否已结束,若top_id为current,则检查最后一个议题的状态
        TopicList:'/topics',
        HealthTopicList:'/healthTopics', //健康咨询
        TopicReplyCount:"/topics/count/reply",
        TopicMessages:'/topic/:topic_id/messages',
        Messages: '/:session_id/messages',                             // 会话消息

+ 21 - 0
src/server/models/sessions/topics.js

@ -119,6 +119,27 @@ class Topics extends RedisModel {
        })
    }
    /**
     * 根据状态和回复获取列表,(过滤名医咨询)
     * @param user
     * @param reply
     * @param status
     * @param page
     * @param pagesize
     */
    findAllByUserAndReplyAndStatusHealthTopic(users,reply, status, page, pagesize) {
        let self = this;
        page = (page - 1 < 0 ? 0 : page - 1) * pagesize;
        if (!pagesize) pagesize = 10;
        pagesize = parseInt(pagesize);
        TopicsRepo.findAllByUserAndReplyAndStatusHealthTopic(users,reply,status, page, pagesize, function (err, res) {
            if (err) {
                ModelUtil.emitError(self.eventEmitter, "获取列表失败" + err);
            }
            ModelUtil.emitOK(self.eventEmitter, res);
        })
    }
    findReplyCount(users,reply, status) {
        let self = this;

+ 34 - 0
src/server/repository/mysql/topics.repo.js

@ -83,6 +83,40 @@ class TopicRepo {
        });
    }
    /**
     * 过滤名医咨询
     * @param userId
     * @param reply
     * @param status
     * @param page
     * @param size
     * @param handler
     */
    static findAllByUserAndReplyAndStatusHealthTopic(userId,reply,status,page,size,handler){
        let sql = "";
        var args =[];
        if(status==10){
            args.push(userId,status,page,size);
            sql =  "SELECT t.*, s.avatar,s.sex,s.birthdate, s.`name` AS patient_name,c.doctor FROM "+
                DB_TABLES.Topics+" t,"+DB_TABLES.Participants+" p,"+DB_TABLES.Doctors+" d,"+DB_TABLES.WlyyConsult+" c,"+DB_TABLES.Patients+" s "+
                "WHERE d.id = p.participant_id AND c.id = t.id AND c.patient = s.id AND p.session_id = t.session_id "+
                "AND d.id in (?) AND t. STATUS = ? AND c.type not in ('6') ORDER BY create_time DESC limit ?,?";
        }else{
            args.push(userId,status,reply,page,size);
            sql =  "SELECT t.*, s.avatar,s.sex,s.birthdate, s.`name` AS patient_name,c.doctor FROM "+
                DB_TABLES.Topics+" t,"+DB_TABLES.Participants+" p,"+DB_TABLES.Doctors+" d,"+DB_TABLES.WlyyConsult+" c,"+DB_TABLES.Patients+" s "+
                "WHERE d.id = p.participant_id AND c.id = t.id AND c.patient = s.id AND p.session_id = t.session_id "+
                "AND d.id in (?) AND t. STATUS = ? and t.reply=? AND c.type not in ('6') ORDER BY create_time DESC limit ?,?";
        }
        ImDb.execQuery({
            sql: sql,
            args: args,
            handler: function (err, res) {
                handler(err, res);
            }
        });
    }
    static findReplyCount(userId,reply,status,handler){
        let sql = "";
        var args =[];