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
@desc:
"""
from datetime import datetime
import uuid
from typing import List, Dict
from uuid import UUID
@ -125,7 +126,9 @@ class ChatInfo:
# 插入数据库
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()

View File

@ -127,12 +127,12 @@ class ChatSerializers(serializers.Serializer):
"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 @@ class ChatSerializers(serializers.Serializer):
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:

View File

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