|
@ -26,7 +26,7 @@ class TopicRepo {
|
|
|
sql: sql,
|
|
|
args: [topicId],
|
|
|
handler: handler || function (err, res) {
|
|
|
if(err) log.error(err);
|
|
|
if (err) log.error(err);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
@ -53,7 +53,7 @@ class TopicRepo {
|
|
|
sql: sql,
|
|
|
args: [topicId],
|
|
|
handler: handler || function (err, res) {
|
|
|
if(err) log.error(err);
|
|
|
if (err) log.error(err);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
@ -72,7 +72,7 @@ class TopicRepo {
|
|
|
sql: sql,
|
|
|
args: [sessionId],
|
|
|
handler: handler || function (err, res) {
|
|
|
if(err) log.error(err);
|
|
|
if (err) log.error(err);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
@ -80,7 +80,7 @@ class TopicRepo {
|
|
|
/**
|
|
|
* 获取会话中的议题。
|
|
|
*
|
|
|
* @param sessionId
|
|
|
* @param id
|
|
|
* @param handler
|
|
|
*/
|
|
|
static findAllByTopicId(id, handler) {
|
|
@ -91,27 +91,24 @@ class TopicRepo {
|
|
|
sql: sql,
|
|
|
args: [id],
|
|
|
handler: handler || function (err, res) {
|
|
|
if(err) log.error(err);
|
|
|
if (err) log.error(err);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
static findAllBySessionIdsAndStatus(sessionIds,status,page,pagesize,handler){
|
|
|
static findAllBySessionIdsAndStatus(sessionIds, status, page, pagesize, handler) {
|
|
|
let sql = "select id, session_id, name, create_time, end_by, end_time," +
|
|
|
" start_message_id, end_message_id, description, status from " + DB_TABLES.Topics + " where session_id in ('"+sessionIds+"') and status in ("+status+") order by status desc limit ?,? ";
|
|
|
" start_message_id, end_message_id, description, status from " + DB_TABLES.Topics + " where session_id in ('" + sessionIds + "') and status in (" + status + ") order by status desc limit ?,? ";
|
|
|
ImDb.execQuery({
|
|
|
sql: sql,
|
|
|
args: [page,pagesize],
|
|
|
args: [page, pagesize],
|
|
|
handler: handler || function (err, res) {
|
|
|
if(err) log.error(err);
|
|
|
if (err) log.error(err);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 保存议题
|
|
|
*
|
|
@ -122,14 +119,15 @@ class TopicRepo {
|
|
|
* @param date
|
|
|
* @param description
|
|
|
* @param status
|
|
|
* @param handler
|
|
|
*/
|
|
|
static saveTopic(topicName, topicId, sessionId, messageId, date, description, status,handler) {
|
|
|
static saveTopic(topicName, topicId, sessionId, messageId, date, description, status, handler) {
|
|
|
let sql = "insert into " + DB_TABLES.Topics + " (id,session_id,name,create_time,start_message_id,description,status) VALUES (?,?,?,?,?,?,?)";
|
|
|
ImDb.execQuery({
|
|
|
"sql": sql,
|
|
|
"args": [topicId, sessionId, topicName, date, messageId, description, status],
|
|
|
"handler": function (err, res) {
|
|
|
handler(err,res);
|
|
|
handler(err, res);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
@ -163,31 +161,46 @@ class TopicRepo {
|
|
|
*
|
|
|
* @param topicId
|
|
|
* @param jsonValue
|
|
|
* @param handler
|
|
|
*/
|
|
|
static updateTopics(topicId, jsonValue,handler) {
|
|
|
var values = [];
|
|
|
let sql = "update topics set ";
|
|
|
var key =[];
|
|
|
for(var j in jsonValue){
|
|
|
key.push(j+" = ?");
|
|
|
static updateTopics(topicId, jsonValue, handler) {
|
|
|
let values = [];
|
|
|
let sql = "UPDATE topics SET ";
|
|
|
let key = [];
|
|
|
for (let j in jsonValue) {
|
|
|
key.push(j + " = ?");
|
|
|
values.push(jsonValue[j]);
|
|
|
}
|
|
|
sql = sql+key.join(",");
|
|
|
sql = sql + " where id = ?";
|
|
|
|
|
|
sql = sql + key.join(",");
|
|
|
sql = sql + " WHERE id = ?";
|
|
|
values.push(topicId);
|
|
|
|
|
|
ImDb.execQuery({
|
|
|
"sql": sql,
|
|
|
"args": values,
|
|
|
"handler": function (err, res) {
|
|
|
if (err) {
|
|
|
log.error("updateTopis is fail error: " + err);
|
|
|
} else {
|
|
|
log.info("updateTopis is success");
|
|
|
if(handler){
|
|
|
handler(err,res);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
"handler": handler
|
|
|
});
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 搜索最后回复时间超过指定时限的议题,此议题最后一条消息的回复者必须是医生,即医生发送消息后,患者未理睬的,关闭。
|
|
|
*
|
|
|
* @param timespan 时限,以小时计
|
|
|
* @param handler
|
|
|
*/
|
|
|
static findAllBySessionLastActiveTime(timespan, handler) {
|
|
|
let sql = "SELECT s.id session_id, s.name session_name, s.create_date session_create_time, s.last_message_time, " +
|
|
|
"t.id topic_id, t.name topic_name, t.create_time topic_create_time, t.start_message_id " +
|
|
|
"FROM sessions s, topics t " +
|
|
|
"WHERE s.id = t.session_id AND t.end_message_id IS NULL AND s.last_sender_id IN (SELECT id FROM doctors d)" +
|
|
|
"AND UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(s.last_message_time) > ? " +
|
|
|
"ORDER BY t.create_time";
|
|
|
|
|
|
ImDb.execQuery({
|
|
|
sql: sql,
|
|
|
args: [timespan * 3600],
|
|
|
handler: handler
|
|
|
});
|
|
|
}
|
|
|
}
|