UidSetController.py 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
  5. @AUTHOR: ASJRD019
  6. @NAME: AnsjerFormal
  7. @software: PyCharm
  8. @DATE: 2019/5/27 15:50
  9. @Version: python3.6
  10. @MODIFY DECORD:ansjer dev
  11. @file: AliPayObject.py
  12. @Contact: pzb3076@163.com
  13. """
  14. import time
  15. import traceback
  16. import simplejson as json
  17. from django.utils.decorators import method_decorator
  18. from django.views.decorators.csrf import csrf_exempt
  19. from django.views.generic.base import View
  20. from Model.models import UidSetModel, Device_User, Device_Info,UidPushModel
  21. from Object.ResponseObject import ResponseObject
  22. from Object.TokenObject import TokenObject
  23. from Service.CommonService import CommonService
  24. from Service.ModelService import ModelService
  25. '''
  26. # 管理员获取信息
  27. http://192.168.136.39:8000/uidset/adminQuery?token=local&page=1&line=10
  28. 管理员删除信息
  29. http://192.168.136.39:8000/uidset/adminDelete?token=local&id=2
  30. 管理员添加信息
  31. http://192.168.136.39:8000/uidset/adminAdd?token=local&uid=JW3684H8BSHG9TTM111A
  32. 管理员编辑信息
  33. http://192.168.136.39:8000/uidset/adminUpdate?token=local&id=6&content={"uid":"9999"}
  34. '''
  35. # 设备信息添加
  36. class UidSetView(View):
  37. @method_decorator(csrf_exempt)
  38. def dispatch(self, *args, **kwargs):
  39. return super(UidSetView, self).dispatch(*args, **kwargs)
  40. def get(self, request, *args, **kwargs):
  41. request.encoding = 'utf-8'
  42. operation = kwargs.get('operation')
  43. return self.validation(request.GET, request, operation)
  44. def post(self, request, *args, **kwargs):
  45. request.encoding = 'utf-8'
  46. operation = kwargs.get('operation')
  47. return self.validation(request.POST, request, operation)
  48. def validation(self, request_dict, request, operation):
  49. response = ResponseObject()
  50. if operation is None:
  51. return response.json(444, 'error path')
  52. token = request_dict.get('token', None)
  53. # 设备主键uid
  54. tko = TokenObject(token)
  55. response.lang = tko.lang
  56. if tko.code != 0:
  57. return response.json(tko.code)
  58. userID = tko.userID
  59. if operation == 'queryAll':
  60. return self.do_queryAll(request_dict, userID, response)
  61. elif operation == 'adminQueryAll':
  62. return self.do_admin_queryAll(request_dict, userID, response)
  63. elif operation == 'adminDelete':
  64. return self.do_admin_delete(request_dict, userID, response)
  65. elif operation == 'adminQuery':
  66. return self.do_admin_query(request_dict, userID, response)
  67. elif operation == 'adminAdd':
  68. return self.do_admin_add(request_dict, userID, response)
  69. elif operation == 'adminUpdate':
  70. return self.do_admin_update(request_dict, userID, response)
  71. else:
  72. return response.json(444, 'error path')
  73. def do_queryAll(self, request_dict, userID, response):
  74. uid_list = Device_Info.objects.filter(userID_id=userID).values_list('UID', flat=True)
  75. uid_set_qs = UidSetModel.objects.filter(uid__in=uid_list).values('uid', 'detect_status', 'detect_interval',
  76. 'version', 'ucode', 'p2p_region', 'tz',
  77. 'video_code', 'channel', 'cloud_vod')
  78. if uid_set_qs.exists():
  79. return response.json(0, list(uid_set_qs))
  80. else:
  81. return response.json(0)
  82. def do_admin_queryAll(self, request_dict, userID, response):
  83. uid_list = Device_Info.objects.filter(userID_id=userID).values_list('UID', flat=True)
  84. print (uid_list)
  85. id = request_dict.get('id', None)
  86. uid_set_qs = UidPushModel.objects.filter(uid_set__id=id).values('addTime',
  87. 'appBundleId','app_type','lang','m_code','push_type','token_val','tz','uid_set',
  88. 'updTime','userID','userID__username'
  89. , 'userID__userEmail', 'userID__NickName'
  90. , 'userID__is_active', 'userID__phone'
  91. , 'uid_set__channel', 'uid_set__uid'
  92. , 'uid_set__detect_status'
  93. ,'uid_set__detect_interval', 'uid_set__ucode'
  94. , 'uid_set__version'
  95. , 'uid_set__p2p_region'
  96. ,'uid_set__cloud_vod', 'uid_set__tz'
  97. , 'uid_set__video_code'
  98. ,'uid_set__nickname'
  99. ,'uid_set__ip'
  100. )
  101. return response.json(0, list(uid_set_qs))
  102. # 管理员删除
  103. def do_admin_delete(self, request_dict, userID, response):
  104. own_perm = ModelService.check_perm(userID, 20)
  105. if own_perm is True:
  106. id = request_dict.get('id')
  107. try:
  108. list = UidSetModel.objects.filter(id=id)
  109. if list.exists():
  110. list.delete()
  111. return response.json(0)
  112. else:
  113. return response.json(173)
  114. except Exception as e:
  115. print(repr(e))
  116. return response.json(424, repr(e))
  117. else:
  118. return response.json(404)
  119. # 管理员查询接口
  120. def do_admin_query(self, request_dict, userID, response):
  121. own_perm = ModelService.check_perm(userID, 20)
  122. if own_perm is True:
  123. page = request_dict.get('page', None)
  124. line = request_dict.get('line', None)
  125. page = int(page)
  126. line = int(line)
  127. omqs = UidSetModel.objects.all().order_by('-id')
  128. if not omqs.exists():
  129. return response.json(0, [])
  130. count = omqs.count()
  131. order_ql = omqs[(page - 1) * line:page * line]
  132. uidset_json = CommonService.qs_to_dict(order_ql)
  133. uidset_json['count'] = count
  134. return response.json(0, uidset_json)
  135. else:
  136. return response.json(404)
  137. # 管理员的添加
  138. def do_admin_add(self, request_dict, userID, response):
  139. own_perm = ModelService.check_perm(userID=userID, permID=40)
  140. if own_perm is not True:
  141. return response.json(404)
  142. uid = request_dict.get('uid', None)
  143. timestamp = int(time.time())
  144. param_flag = CommonService.get_param_flag(
  145. data=[uid])
  146. if param_flag is not True:
  147. return response.json(444)
  148. try:
  149. uidset = UidSetModel(
  150. uid=uid,
  151. addTime=timestamp,
  152. updTime=timestamp)
  153. uidset.save()
  154. return response.json(0)
  155. except Exception:
  156. errorInfo = traceback.format_exc()
  157. print(errorInfo)
  158. return response.json(500, {'details': errorInfo})
  159. # 管理员的编辑
  160. def do_admin_update(self, request_dict, userID, response):
  161. own_perm = ModelService.check_perm(userID=userID, permID=50)
  162. if own_perm is not True:
  163. return response.json(404)
  164. deviceContent = request_dict.get('content', None)
  165. id = request_dict.get('id', None)
  166. if not deviceContent or not id:
  167. return response.json(444, 'content,id')
  168. try:
  169. timestamp = int(time.time())
  170. deviceData = json.loads(deviceContent)
  171. uid_set = UidSetModel.objects.filter(id=id)
  172. if uid_set.exists():
  173. uid_set.update(updTime=timestamp, **deviceData)
  174. return response.json(0)
  175. else:
  176. return response.json(173)
  177. except Exception:
  178. errorInfo = traceback.format_exc()
  179. print(errorInfo)
  180. return response.json(500, {'details': errorInfo})