visit detail 接口

This commit is contained in:
曹前明 2022-07-11 13:41:28 +08:00
parent cb12fe6ca0
commit 2c993ce910
6 changed files with 42 additions and 13 deletions

View File

@ -202,7 +202,7 @@ def create_remind(event: Event):
# 开始发送通知
for i in Remind.objects.filter(event=event):
if i.notify_setting.sms_enable:
if i.recipient.employee.phone:
if i.recipient.employee.phone: # 短信通知
Thread(target=send_sms, args=(i.recipient.employee.phone,
'1001', {'code': '5678'}), daemon=True).start()
if i.notify_setting.wechat_enable:

17
apps/third/filters.py Normal file
View File

@ -0,0 +1,17 @@
from django_filters import rest_framework as filters
from .models import TDevice
class TDeviceFilterSet(filters.FilterSet):
state = filters.CharFilter(method='filter_state', label="used/unused")
class Meta:
model = TDevice
fields = ['type', 'area', 'employee', 'obj_cate', 'state']
def filter_used(self, queryset, name, value):
if value == 'unused':
queryset = queryset.filter(employee=None)
elif value == 'used':
queryset = queryset.exclude(employee=None)
return queryset

View File

@ -8,7 +8,7 @@ from django.conf import settings
from apps.third.errors import SP_REQUEST_ERROR
from apps.third.models import Tlog
from apps.utils.tools import print_roundtrip
from apps.utils.tools import print_roundtrip, ranstr
from apps.third.tapis import spapis
from django.utils.timezone import now
@ -119,17 +119,10 @@ class SpClient:
json = {
"sns": sns,
"type": "req",
"name": "priority_task_play",
"source": "noreplay",
"name": "songs_queue_append",
"params": {
"count": 1,
"length": 0,
"level": 99804,
"name": "实时播放",
"tid": "x",
"tid": ranstr(6),
"vol": 50,
"type": 5,
"uid": "y",
"urls": [{
"name": "alarm.mp3",
"uri": settings.BASE_URL + path

View File

@ -1,3 +1,4 @@
from apps.third.filters import TDeviceFilterSet
from apps.third.models import BltBind, TDevice, Tlog
from apps.third.serializers import BindAreaSerializer, BltBindCreateSerializer, BltQuerySerializer, BltSerializer, LabelLocationSerializer, TDeviceSerializer, TlogSerializer
from apps.utils.viewsets import CustomGenericViewSet
@ -117,7 +118,7 @@ class TDeviceViewSet(ListModelMixin, DestroyModelMixin, CustomGenericViewSet):
queryset = TDevice.objects.all()
serializer_class = TDeviceSerializer
ordering = ['-create_time']
filterset_fields = ['type', 'area', 'employee', 'obj_cate']
filterset_class = TDeviceFilterSet
select_related_fields = ['employee', 'area', 'employee__post', 'employee__belong_dept']
def list(self, request, *args, **kwargs):

View File

@ -7,6 +7,7 @@ from rest_framework.exceptions import ParseError
from django.db import transaction
from apps.third.clients import dhClient
from apps.third.tapis import dhapis
from apps.system.serializers import UserSimpleSerializer
class VisitCreateUpdateSerializer(CustomModelSerializer):
@ -17,6 +18,8 @@ class VisitCreateUpdateSerializer(CustomModelSerializer):
class VisitSerializer(CustomModelSerializer):
receptionist_ = UserSimpleSerializer(source='receptionist', read_only=True)
class Meta:
model = Visit
fields = '__all__'
@ -67,3 +70,16 @@ class VpeopleSerializer(CustomModelSerializer):
class VisitorRegisterSerializer(serializers.Serializer):
name = serializers.CharField(label="姓名")
username = serializers.CharField(label='用户名', min_length=6)
class VisitDetailSerializer(CustomModelSerializer):
receptionist_ = UserSimpleSerializer(source='receptionist', read_only=True)
visitors_ = serializers.SerializerMethodField()
class Meta:
model = Visit
fields = '__all__'
def get_visitors_(self, obj):
objs = Vpeople.objects.filter(visit=obj).order_by('is_main', 'create_time')
return VpeopleSerializer(instance=objs, many=True).data

View File

@ -3,7 +3,7 @@ from apps.hrm.models import Employee
from apps.system.models import User
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet, GenericViewSet
from apps.vm.models import Visit, Visitor, Vpeople
from apps.vm.serializers import VisitCreateUpdateSerializer, VisitSerializer, VisitorCreateSerializer, VisitorRegisterSerializer, VisitorSerializer, VpeopleCreateSerializer, VpeopleSerializer
from apps.vm.serializers import VisitCreateUpdateSerializer, VisitDetailSerializer, VisitSerializer, VisitorCreateSerializer, VisitorRegisterSerializer, VisitorSerializer, VpeopleCreateSerializer, VpeopleSerializer
from rest_framework.decorators import action
from rest_framework.response import Response
from rest_framework.exceptions import ParseError
@ -20,6 +20,7 @@ class VisitViewSet(CustomModelViewSet):
create_serializer_class = VisitCreateUpdateSerializer
update_serializer_class = VisitCreateUpdateSerializer
serializer_class = VisitSerializer
retrieve_serializer_class = VisitDetailSerializer
def get_queryset(self):
user = self.request.user
@ -90,6 +91,7 @@ class VpeopleViewSet(ListModelMixin, RetrieveModelMixin, CreateModelMixin, Destr
create_serializer_class = VpeopleCreateSerializer
serializer_class = VpeopleSerializer
filterset_fields = ['visit']
ordering = ['is_main', 'create_time']
def destroy(self, request, *args, **kwargs):
obj = self.get_object()