diff --git a/apps/third/urls.py b/apps/third/urls.py index ae34d3d8..b1c5c934 100755 --- a/apps/third/urls.py +++ b/apps/third/urls.py @@ -12,7 +12,7 @@ router.register('xunxi', XxCommonViewSet, basename='api_xunxi') router.register('dahua', DhCommonViewSet, basename='api_dahua') router.register('tdevice', TDeviceViewSet, basename='tdevice') router.register('tlog', TlogViewSet, basename='tlog') -router.register('blt', BltViewSet, basename='blt') +router.register('tdevice/blt', BltViewSet, basename='blt') urlpatterns = [ path(API_BASE_URL, include(router.urls)), path(API_BASE_URL + 'dahua/test/', DahuaTestView.as_view()), diff --git a/apps/third/views_d.py b/apps/third/views_d.py index 578b994c..a5887777 100644 --- a/apps/third/views_d.py +++ b/apps/third/views_d.py @@ -36,9 +36,9 @@ class BltViewSet(CustomGenericViewSet): @action(methods=['get'], detail=False, perms_map={'get': '*'}) def count_now(self, request): - """统计在厂终端数 + """统计在厂标签数 - 统计在厂终端数 + 统计在厂标签数 """ json = { "pageNum": 1, @@ -61,15 +61,17 @@ class BltViewSet(CustomGenericViewSet): @action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=BltQuerySerializer) - def query(self, request): - """在线标签列表信息 + def all(self, request): + """全部在线标签列表信息 - 在线标签列表信息 + 全部在线标签列表信息 """ data = request.data + area = None if data.get('area', None): try: - railId = Area.objects.get(id=data['area']).third_info['xx_rail']['id'] + area = Area.objects.get(id=data['area']) + railId = area.third_info['xx_rail']['id'] except Exception: raise ParseError('区域信息不正确') json = { @@ -109,6 +111,28 @@ class TDeviceViewSet(ListModelMixin, CustomGenericViewSet): ordering = ['code', '-create_time'] filterset_fields = ['type'] + @action(methods=['post'], detail=False, perms_map={'post': '*'}, + serializer_class=Serializer) + def blt(self, request): + """定位标签列表 + + 定位标签列表 + """ + _, res = xxClient.request(**xxapis['blt_list'], json=request.data) + macs = [] + for i in res['recordList']: + macs.append(i['mac']) + qs = self.queryset.filter(code__in=macs).exclude(employee=None) + qs_data = list(BltSerializer(instance=qs, many=True).data) + qs_dict = {} + for i in qs_data: + qs_dict[i['code']] = i + for i in res['recordList']: + i['my_info'] = {} + if i['mac'] in qs_dict: + i['my_info'] = qs_dict[i['mac']] + return Response(res) + @action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=Serializer) def vchannel(self, request):