#!/usr/bin/env python3 # -*- coding: utf-8 -*- import json from Object.ResponseObject import ResponseObject from Object.TokenObject import TokenObject from django.views.generic.base import View from Service.ModelService import ModelService from Service.CommonService import CommonService from Model.models import Device_Info, UidSetModel import datetime from django.utils import timezone class DeviceManagement(View): def get(self, request, *args, **kwargs): request.encoding = 'utf-8' operation = kwargs.get('operation') return self.validation(request.GET, request, operation) def post(self, request, *args, **kwargs): request.encoding = 'utf-8' operation = kwargs.get('operation') return self.validation(request.POST, request, operation) def validation(self, request_dict, request, operation): language = request_dict.get('language', 'en') response = ResponseObject(language, 'pc') tko = TokenObject( request.META.get('HTTP_AUTHORIZATION'), returntpye='pc') if tko.code != 0: return response.json(tko.code) response.lang = tko.lang userID = tko.userID if userID is not None: if operation == 'query': return self.query(request_dict, userID, response) elif operation == 'findByUser': return self.findByUser(request_dict, userID, response) elif operation == 'delete': return self.delete(request_dict, userID, response) elif operation == 'uidSetQuery': return self.uidSetQuery(request_dict, userID, response) return response.json(444, 'operation') def query(self, request_dict, userID, response): own_perm = ModelService.check_perm(userID=userID, permID=30) if not own_perm : return response.json(404) pageNo = request_dict.get('pageNo', None) pageSize = request_dict.get('pageSize', None) UID = request_dict.get('UID', None) if not all([pageNo, pageSize]): return response.json(444) page = int(pageNo) line = int(pageSize) queryset = Device_Info.objects.all() if UID: queryset = queryset.filter(UID=UID) if queryset.exists(): count = queryset.count() res = queryset[(page - 1) * line:page * line] send_dict = CommonService.qs_to_dict(res) for k, v in enumerate(send_dict["datas"]): for val in res: if v['pk'] == val.id: if send_dict["datas"][k]['fields']['Online'] is True: dl_time = val.update_time+datetime.timedelta(minutes=60) now_time = timezone.localtime(timezone.now()) if now_time > dl_time: pass # send_dict["datas"][k]['fields']['Online'] = False username= ModelService.get_user_name(send_dict["datas"][k]['fields']['userID']) send_dict["datas"][k]['fields']['username']=username primary= ModelService.get_user_name(send_dict["datas"][k]['fields']['primaryUserID']) send_dict["datas"][k]['fields']['primaryusername']=primary return response.json( 0, {'list': send_dict, 'total': count}) return response.json(0,{'count':0}) # 管理员查询接口 def uidSetQuery(self, request_dict, userID, response): pageNo = request_dict.get('pageNo', None) pageSize = request_dict.get('pageSize', None) UID = request_dict.get('UID', None) if not all([pageNo, pageSize]): return response.json(444) page = int(pageNo) line = int(pageSize) omqs = UidSetModel.objects.all().order_by('-id') if UID: omqs = omqs.filter(uid=UID) count = omqs.count() order_ql = omqs[(page - 1) * line:page * line] uidset_json = CommonService.qs_to_dict(order_ql) uidset_json['count'] = count return response.json( 0, {'list': uidset_json, 'total': count})