feat: 对话日志默认使用最后对话时间

--story=1017064 --user=王孝刚 【对话日志】- 列表排序使用最后对话时间 issue #1587 https://www.tapd.cn/57709429/s/1609354
This commit is contained in:
wxg0103 2024-11-13 15:05:13 +08:00 committed by wxg0103
parent 51facbc46d
commit eb24750028
4 changed files with 32 additions and 7 deletions

View File

@ -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),
]

View File

@ -6,6 +6,7 @@
@date2023/11/14 13:51 @date2023/11/14 13:51
@desc: @desc:
""" """
from datetime import datetime
import uuid import uuid
from typing import List, Dict from typing import List, Dict
from uuid import UUID from uuid import UUID
@ -125,7 +126,9 @@ class ChatInfo:
# 插入数据库 # 插入数据库
if not QuerySet(Chat).filter(id=self.chat_id).exists(): 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], 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() chat_record.save()

View File

@ -127,12 +127,12 @@ class ChatSerializers(serializers.Serializer):
"star_num": models.IntegerField(), "star_num": models.IntegerField(),
'trample_num': models.IntegerField(), 'trample_num': models.IntegerField(),
'comparer': models.CharField(), 'comparer': models.CharField(),
'application_chat.create_time': models.DateTimeField(), 'application_chat.update_time': models.DateTimeField(),
'application_chat.id': models.UUIDField(), })) 'application_chat.id': models.UUIDField(), }))
base_query_dict = {'application_chat.application_id': self.data.get("application_id"), base_query_dict = {'application_chat.application_id': self.data.get("application_id"),
'application_chat.create_time__gte': start_time, 'application_chat.update_time__gte': start_time,
'application_chat.create_time__lte': end_time, 'application_chat.update_time__lte': end_time,
} }
if 'abstract' in self.data and self.data.get('abstract') is not None: if 'abstract' in self.data and self.data.get('abstract') is not None:
base_query_dict['application_chat.abstract__icontains'] = self.data.get('abstract') base_query_dict['application_chat.abstract__icontains'] = self.data.get('abstract')
@ -158,7 +158,7 @@ class ChatSerializers(serializers.Serializer):
condition = base_condition & min_trample_query condition = base_condition & min_trample_query
else: else:
condition = base_condition 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): def list(self, with_valid=True):
if with_valid: if with_valid:

View File

@ -123,9 +123,9 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="mark_sum" label="改进标注" align="right" /> <el-table-column prop="mark_sum" label="改进标注" align="right" />
<el-table-column label="时间" width="180"> <el-table-column label="最近对话时间" width="180">
<template #default="{ row }"> <template #default="{ row }">
{{ datetimeFormat(row.create_time) }} {{ datetimeFormat(row.update_time) }}
</template> </template>
</el-table-column> </el-table-column>