123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- #!/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__contains=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, {'list': {}, 'total': 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__contains=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})
|