123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- 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
- 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)
- 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 delete(self, request_dict, userID, response):
- own_perm = ModelService.check_perm(userID=userID, permID=10)
- # redisObj = RedisObject(db=8)
- # redisObj.del_data(key='uid_qs_' + userID)
- if own_perm is True:
- id = request_dict.get('id', None)
- if id:
- Device_Info.objects.filter(id=id).delete()
- return response.json(0)
- else:
- return response.json(444,'id must list')
- else:
- return response.json(404)
- def findByUser(self, request_dict, userID, response):
- own_perm = ModelService.check_perm(userID=userID, permID=30)
- if own_perm is True:
- page = int(request_dict.get('page', None))
- line = int(request_dict.get('line', None))
- username = request_dict.get('username', None)
- param_flag = CommonService.get_param_flag(data=[page, line, username])
- if param_flag is True:
- userID_id= ModelService.get_userID_byname(username=username)
- print(userID_id)
- queryset = Device_Info.objects.filter(userID_id=userID_id)
- 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=1)
- now_time = timezone.localtime(timezone.now())
- if now_time > dl_time:
- send_dict["datas"][k]['fields']['Online'] = False
- 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
- send_dict['count'] = count
- return response.json(0, send_dict)
- return response.json(0,{'count':0})
- else:
- return response.json(444)
- else:
- return response.json(404)
|