visit detail 接口
This commit is contained in:
parent
cb12fe6ca0
commit
2c993ce910
|
@ -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:
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue