feat: 对话日志,删除
This commit is contained in:
parent
5db9ce45c3
commit
9ed8aa91bb
@ -36,6 +36,16 @@ chat_cache = cache
|
|||||||
|
|
||||||
|
|
||||||
class ChatSerializers(serializers.Serializer):
|
class ChatSerializers(serializers.Serializer):
|
||||||
|
class Operate(serializers.Serializer):
|
||||||
|
chat_id = serializers.UUIDField(required=True)
|
||||||
|
application_id = serializers.UUIDField(required=True)
|
||||||
|
|
||||||
|
def delete(self, with_valid=True):
|
||||||
|
if with_valid:
|
||||||
|
self.is_valid(raise_exception=True)
|
||||||
|
QuerySet(Chat).filter(id=self.data.get('chat_id'), application_id=self.data.get('application_id')).delete()
|
||||||
|
return True
|
||||||
|
|
||||||
class Query(serializers.Serializer):
|
class Query(serializers.Serializer):
|
||||||
abstract = serializers.CharField(required=False)
|
abstract = serializers.CharField(required=False)
|
||||||
history_day = serializers.IntegerField(required=True)
|
history_day = serializers.IntegerField(required=True)
|
||||||
@ -48,7 +58,10 @@ class ChatSerializers(serializers.Serializer):
|
|||||||
|
|
||||||
def get_query_set(self):
|
def get_query_set(self):
|
||||||
end_time = self.get_end_time()
|
end_time = self.get_end_time()
|
||||||
return QuerySet(Chat).filter(application_id=self.data.get("application_id"), create_time__gte=end_time)
|
query_dict = {'application_id': self.data.get("application_id"), 'create_time__gte': end_time}
|
||||||
|
if 'abstract' in self.data and self.data.get('abstract') is not None:
|
||||||
|
query_dict['abstract'] = self.data.get('abstract')
|
||||||
|
return QuerySet(Chat).filter(**query_dict)
|
||||||
|
|
||||||
def list(self, with_valid=True):
|
def list(self, with_valid=True):
|
||||||
if with_valid:
|
if with_valid:
|
||||||
|
|||||||
@ -61,7 +61,9 @@ class ChatApi(ApiMixin):
|
|||||||
in_=openapi.IN_QUERY,
|
in_=openapi.IN_QUERY,
|
||||||
type=openapi.TYPE_NUMBER,
|
type=openapi.TYPE_NUMBER,
|
||||||
required=True,
|
required=True,
|
||||||
description='历史天数')
|
description='历史天数'),
|
||||||
|
openapi.Parameter(name='abstract', in_=openapi.IN_QUERY, type=openapi.TYPE_STRING, required=False,
|
||||||
|
description="摘要")
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -20,6 +20,7 @@ urlpatterns = [
|
|||||||
path("application/chat/open", views.ChatView.OpenTemp.as_view()),
|
path("application/chat/open", views.ChatView.OpenTemp.as_view()),
|
||||||
path('application/<str:application_id>/chat', views.ChatView.as_view(), name='chats'),
|
path('application/<str:application_id>/chat', views.ChatView.as_view(), name='chats'),
|
||||||
path('application/<str:application_id>/chat/<int:current_page>/<int:page_size>', views.ChatView.Page.as_view()),
|
path('application/<str:application_id>/chat/<int:current_page>/<int:page_size>', views.ChatView.Page.as_view()),
|
||||||
|
path('application/<str:application_id>/chat/<chat_id>', views.ChatView.Operate.as_view()),
|
||||||
path('application/<str:application_id>/chat/<chat_id>/chat_record/', views.ChatView.ChatRecord.as_view()),
|
path('application/<str:application_id>/chat/<chat_id>/chat_record/', views.ChatView.ChatRecord.as_view()),
|
||||||
path('application/<str:application_id>/chat/<chat_id>/chat_record/<int:current_page>/<int:page_size>',
|
path('application/<str:application_id>/chat/<chat_id>/chat_record/<int:current_page>/<int:page_size>',
|
||||||
views.ChatView.ChatRecord.Page.as_view()),
|
views.ChatView.ChatRecord.Page.as_view()),
|
||||||
|
|||||||
@ -90,6 +90,26 @@ class ChatView(APIView):
|
|||||||
data={**query_params_to_single_dict(request.query_params), 'application_id': application_id,
|
data={**query_params_to_single_dict(request.query_params), 'application_id': application_id,
|
||||||
'user_id': request.user.id}).list())
|
'user_id': request.user.id}).list())
|
||||||
|
|
||||||
|
class Operate(APIView):
|
||||||
|
authentication_classes = [TokenAuth]
|
||||||
|
|
||||||
|
@action(methods=['DELETE'], detail=False)
|
||||||
|
@swagger_auto_schema(operation_summary="删除对话",
|
||||||
|
operation_id="删除对话",
|
||||||
|
tags=["应用/对话日志"])
|
||||||
|
@has_permissions(ViewPermission(
|
||||||
|
[RoleConstants.ADMIN, RoleConstants.USER],
|
||||||
|
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.MANAGE,
|
||||||
|
dynamic_tag=keywords.get('application_id'))],
|
||||||
|
compare=CompareConstants.AND), lambda r, k: Permission(group=Group.APPLICATION, operate=Operate.DELETE,
|
||||||
|
dynamic_tag=k.get('application_id')),
|
||||||
|
compare=CompareConstants.AND)
|
||||||
|
def delete(self, request: Request, application_id: str, chat_id: str):
|
||||||
|
return result.success(
|
||||||
|
ChatSerializers.Operate(
|
||||||
|
data={'application_id': application_id, 'user_id': request.user.id,
|
||||||
|
'chat_id': chat_id}).delete())
|
||||||
|
|
||||||
class Page(APIView):
|
class Page(APIView):
|
||||||
authentication_classes = [TokenAuth]
|
authentication_classes = [TokenAuth]
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user