diff --git a/apps/application/migrations/0020_application_record_update_time.py b/apps/application/migrations/0020_application_record_update_time.py
new file mode 100644
index 00000000000..dc1d14081cc
--- /dev/null
+++ b/apps/application/migrations/0020_application_record_update_time.py
@@ -0,0 +1,22 @@
+from django.db import migrations, connection
+
+batch_update_update_time = """
+UPDATE application_chat ac
+SET update_time = acr_max.max_update_time
+FROM (
+ SELECT chat_id, MAX(update_time) AS max_update_time
+ FROM application_chat_record
+ GROUP BY chat_id
+) acr_max
+WHERE ac.id = acr_max.chat_id;
+"""
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ('application', '0019_application_file_upload_enable_and_more.py'),
+ ]
+
+ operations = [
+ migrations.RunPython(batch_update_update_time),
+ ]
diff --git a/apps/application/serializers/chat_message_serializers.py b/apps/application/serializers/chat_message_serializers.py
index b14e9f33e3f..455ef6a670c 100644
--- a/apps/application/serializers/chat_message_serializers.py
+++ b/apps/application/serializers/chat_message_serializers.py
@@ -6,6 +6,7 @@
@date:2023/11/14 13:51
@desc:
"""
+from datetime import datetime
import uuid
from typing import List, Dict
from uuid import UUID
@@ -125,7 +126,9 @@ def append_chat_record(self, chat_record: ChatRecord, client_id=None):
# 插入数据库
if not QuerySet(Chat).filter(id=self.chat_id).exists():
Chat(id=self.chat_id, application_id=self.application.id, abstract=chat_record.problem_text[0:1024],
- client_id=client_id).save()
+ client_id=client_id, update_time=datetime.now()).save()
+ else:
+ Chat.objects.filter(id=self.chat_id).update(update_time=datetime.now())
# 插入会话记录
chat_record.save()
diff --git a/apps/application/serializers/chat_serializers.py b/apps/application/serializers/chat_serializers.py
index ad25ac7d915..45e18a1ed9d 100644
--- a/apps/application/serializers/chat_serializers.py
+++ b/apps/application/serializers/chat_serializers.py
@@ -127,12 +127,12 @@ def get_query_set(self, select_ids=None):
"star_num": models.IntegerField(),
'trample_num': models.IntegerField(),
'comparer': models.CharField(),
- 'application_chat.create_time': models.DateTimeField(),
+ 'application_chat.update_time': models.DateTimeField(),
'application_chat.id': models.UUIDField(), }))
base_query_dict = {'application_chat.application_id': self.data.get("application_id"),
- 'application_chat.create_time__gte': start_time,
- 'application_chat.create_time__lte': end_time,
+ 'application_chat.update_time__gte': start_time,
+ 'application_chat.update_time__lte': end_time,
}
if 'abstract' in self.data and self.data.get('abstract') is not None:
base_query_dict['application_chat.abstract__icontains'] = self.data.get('abstract')
@@ -158,7 +158,7 @@ def get_query_set(self, select_ids=None):
condition = base_condition & min_trample_query
else:
condition = base_condition
- return query_set.filter(condition).order_by("-application_chat.create_time")
+ return query_set.filter(condition).order_by("-application_chat.update_time")
def list(self, with_valid=True):
if with_valid:
diff --git a/ui/src/views/log/index.vue b/ui/src/views/log/index.vue
index 9df70acb6ba..eb1b0c3aacb 100644
--- a/ui/src/views/log/index.vue
+++ b/ui/src/views/log/index.vue
@@ -123,9 +123,9 @@
-
+
- {{ datetimeFormat(row.create_time) }}
+ {{ datetimeFormat(row.update_time) }}