|
@@ -182,21 +182,28 @@ class MySQLSessionManager(SessionManager):
|
|
|
temp_obj = {}
|
|
|
user_id = session["user_id"]
|
|
|
room_id = ":".join(["private", staff_id, user_id])
|
|
|
- select_query = f"""select content, max(sendtime) as max_timestamp from {self.chat_history_table} where roomid = %s;"""
|
|
|
+ select_query = f"""
|
|
|
+ select content, max(sendtime) as max_timestamp, msg_type
|
|
|
+ from {self.chat_history_table}
|
|
|
+ where roomid = %s;
|
|
|
+ """
|
|
|
last_message = self.db.select(
|
|
|
sql=select_query,
|
|
|
cursor_type=pymysql.cursors.DictCursor,
|
|
|
args=(room_id,),
|
|
|
)
|
|
|
if not last_message:
|
|
|
- temp_obj["message"] = ""
|
|
|
+ temp_obj["message"] = None
|
|
|
temp_obj["timestamp"] = 0
|
|
|
+ temp_obj["msg_type"] = None
|
|
|
else:
|
|
|
temp_obj["message"] = last_message[0]["content"]
|
|
|
temp_obj["timestamp"] = last_message[0]["max_timestamp"]
|
|
|
+ temp_obj["msg_type"] = last_message[0]["msg_type"]
|
|
|
temp_obj["user_id"] = user_id
|
|
|
temp_obj["user_name"] = session["name"]
|
|
|
temp_obj["avatar"] = session["iconurl"]
|
|
|
+ temp_obj["current_state"] = session["current_state"]
|
|
|
response_data.append(temp_obj)
|
|
|
return {
|
|
|
"staff_id": staff_id,
|
|
@@ -218,7 +225,7 @@ class MySQLSessionManager(SessionManager):
|
|
|
room_id = ":".join(["private", staff_id, user_id])
|
|
|
if not page:
|
|
|
fetch_query = f"""
|
|
|
- select t1.sender, t2.name, t1.sendtime, t1.content, t2.iconurl
|
|
|
+ select t1.sender, t2.name, t1.sendtime, t1.content, t2.iconurl, t1.msg_type
|
|
|
from {self.chat_history_table} t1
|
|
|
join {self.user_table} t2 on t1.sender = t2.third_party_user_id
|
|
|
where roomid = %s
|
|
@@ -232,7 +239,7 @@ class MySQLSessionManager(SessionManager):
|
|
|
)
|
|
|
else:
|
|
|
fetch_query = f"""
|
|
|
- select t1.sender, t2.name, t1.sendtime, t1.content, t2.iconurl
|
|
|
+ select t1.sender, t2.name, t1.sendtime, t1.content, t2.iconurl, t1.msg_type
|
|
|
from {self.chat_history_table} t1
|
|
|
join {self.user_table} t2 on t1.sender = t2.third_party_user_id
|
|
|
where t1.roomid = %s and t1.sendtime <= %s
|
|
@@ -258,6 +265,7 @@ class MySQLSessionManager(SessionManager):
|
|
|
"avatar": message["iconurl"],
|
|
|
"content": message["content"],
|
|
|
"timestamp": message["sendtime"],
|
|
|
+ "msg_type": message["msg_type"],
|
|
|
"role": "user" if message["sender"] == user_id else "staff",
|
|
|
}
|
|
|
for message in messages
|