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): for i in Remind.objects.filter(event=event):
if i.notify_setting.sms_enable: 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, Thread(target=send_sms, args=(i.recipient.employee.phone,
'1001', {'code': '5678'}), daemon=True).start() '1001', {'code': '5678'}), daemon=True).start()
if i.notify_setting.wechat_enable: 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.errors import SP_REQUEST_ERROR
from apps.third.models import Tlog 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 apps.third.tapis import spapis
from django.utils.timezone import now from django.utils.timezone import now
@ -119,17 +119,10 @@ class SpClient:
json = { json = {
"sns": sns, "sns": sns,
"type": "req", "type": "req",
"name": "priority_task_play", "name": "songs_queue_append",
"source": "noreplay",
"params": { "params": {
"count": 1, "tid": ranstr(6),
"length": 0,
"level": 99804,
"name": "实时播放",
"tid": "x",
"vol": 50, "vol": 50,
"type": 5,
"uid": "y",
"urls": [{ "urls": [{
"name": "alarm.mp3", "name": "alarm.mp3",
"uri": settings.BASE_URL + path "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.models import BltBind, TDevice, Tlog
from apps.third.serializers import BindAreaSerializer, BltBindCreateSerializer, BltQuerySerializer, BltSerializer, LabelLocationSerializer, TDeviceSerializer, TlogSerializer from apps.third.serializers import BindAreaSerializer, BltBindCreateSerializer, BltQuerySerializer, BltSerializer, LabelLocationSerializer, TDeviceSerializer, TlogSerializer
from apps.utils.viewsets import CustomGenericViewSet from apps.utils.viewsets import CustomGenericViewSet
@ -117,7 +118,7 @@ class TDeviceViewSet(ListModelMixin, DestroyModelMixin, CustomGenericViewSet):
queryset = TDevice.objects.all() queryset = TDevice.objects.all()
serializer_class = TDeviceSerializer serializer_class = TDeviceSerializer
ordering = ['-create_time'] ordering = ['-create_time']
filterset_fields = ['type', 'area', 'employee', 'obj_cate'] filterset_class = TDeviceFilterSet
select_related_fields = ['employee', 'area', 'employee__post', 'employee__belong_dept'] select_related_fields = ['employee', 'area', 'employee__post', 'employee__belong_dept']
def list(self, request, *args, **kwargs): def list(self, request, *args, **kwargs):

View File

@ -7,6 +7,7 @@ from rest_framework.exceptions import ParseError
from django.db import transaction from django.db import transaction
from apps.third.clients import dhClient from apps.third.clients import dhClient
from apps.third.tapis import dhapis from apps.third.tapis import dhapis
from apps.system.serializers import UserSimpleSerializer
class VisitCreateUpdateSerializer(CustomModelSerializer): class VisitCreateUpdateSerializer(CustomModelSerializer):
@ -17,6 +18,8 @@ class VisitCreateUpdateSerializer(CustomModelSerializer):
class VisitSerializer(CustomModelSerializer): class VisitSerializer(CustomModelSerializer):
receptionist_ = UserSimpleSerializer(source='receptionist', read_only=True)
class Meta: class Meta:
model = Visit model = Visit
fields = '__all__' fields = '__all__'
@ -67,3 +70,16 @@ class VpeopleSerializer(CustomModelSerializer):
class VisitorRegisterSerializer(serializers.Serializer): class VisitorRegisterSerializer(serializers.Serializer):
name = serializers.CharField(label="姓名") name = serializers.CharField(label="姓名")
username = serializers.CharField(label='用户名', min_length=6) 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.system.models import User
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet, GenericViewSet from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet, GenericViewSet
from apps.vm.models import Visit, Visitor, Vpeople 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.decorators import action
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.exceptions import ParseError from rest_framework.exceptions import ParseError
@ -20,6 +20,7 @@ class VisitViewSet(CustomModelViewSet):
create_serializer_class = VisitCreateUpdateSerializer create_serializer_class = VisitCreateUpdateSerializer
update_serializer_class = VisitCreateUpdateSerializer update_serializer_class = VisitCreateUpdateSerializer
serializer_class = VisitSerializer serializer_class = VisitSerializer
retrieve_serializer_class = VisitDetailSerializer
def get_queryset(self): def get_queryset(self):
user = self.request.user user = self.request.user
@ -90,6 +91,7 @@ class VpeopleViewSet(ListModelMixin, RetrieveModelMixin, CreateModelMixin, Destr
create_serializer_class = VpeopleCreateSerializer create_serializer_class = VpeopleCreateSerializer
serializer_class = VpeopleSerializer serializer_class = VpeopleSerializer
filterset_fields = ['visit'] filterset_fields = ['visit']
ordering = ['is_main', 'create_time']
def destroy(self, request, *args, **kwargs): def destroy(self, request, *args, **kwargs):
obj = self.get_object() obj = self.get_object()