SerialManageController.py 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. #!/usr/bin/python3.6
  2. # -*- coding: utf-8 -*-
  3. #
  4. # Copyright (C) 2022 #
  5. # @Time : 2022/3/9 9:20
  6. # @Author : ming
  7. # @Email : zhangdongming@asj6.wecom.work
  8. # @File : SurveysManageController.py
  9. # @Software: PyCharm
  10. from django.utils.decorators import method_decorator
  11. from django.views.decorators.csrf import csrf_exempt
  12. from django.views.generic.base import View
  13. from Model.models import CompanyModel, SerialNumberModel, VPGModel, UIDModel, UIDCompanySerialModel, CompanySerialModel
  14. from Object.ResponseObject import ResponseObject
  15. from Object.TokenObject import TokenObject
  16. from Service.CommonService import CommonService
  17. class SerialView(View):
  18. @method_decorator(csrf_exempt)
  19. def dispatch(self, *args, **kwargs):
  20. return super(SerialView, self).dispatch(*args, **kwargs)
  21. def get(self, request, *args, **kwargs):
  22. request.encoding = 'utf-8'
  23. operation = kwargs.get('operation')
  24. return self.validation(request.GET, request, operation)
  25. def post(self, request, *args, **kwargs):
  26. request.encoding = 'utf-8'
  27. operation = kwargs.get('operation')
  28. return self.validation(request.POST, request, operation)
  29. def validation(self, request_dict, request, operation):
  30. token = TokenObject(request.META.get('HTTP_AUTHORIZATION'))
  31. response = ResponseObject()
  32. if token.code != 0:
  33. return response.json(token.code)
  34. response = ResponseObject(returntype='pc')
  35. if operation == 'company-page':
  36. return self.company_page(request_dict, response)
  37. if operation == 'number/page':
  38. return self.serial_page(request_dict, response)
  39. if operation == 'vpg-info/page':
  40. return self.vpg_page(request_dict, response)
  41. if operation == 'uid-info/page':
  42. return self.uid_page(request_dict, response)
  43. return response.json(0)
  44. @classmethod
  45. def company_page(cls, request_dict, response):
  46. pageNo = request_dict.get('pageNo', None)
  47. pageSize = request_dict.get('pageSize', None)
  48. if not all([pageNo, pageSize]):
  49. return response.json(444)
  50. page = int(pageNo)
  51. line = int(pageSize)
  52. try:
  53. request_qs = CompanyModel.objects.all()
  54. if not request_qs.exists():
  55. return response.json(0, {'list': '', 'total': 0})
  56. total = request_qs.count()
  57. company_page = request_qs.order_by('-add_time')[(page - 1) * line:page * line].values()
  58. return response.json(0, {'list': list(company_page), 'total': total})
  59. except Exception as e:
  60. print(e)
  61. return response.json(500, repr(e))
  62. @classmethod
  63. def serial_page(cls, request_dict, response):
  64. pageNo = request_dict.get('pageNo', None)
  65. pageSize = request_dict.get('pageSize', None)
  66. serial_number = request_dict.get('serialNumber', None)
  67. status = request_dict.get('status', None)
  68. use_status = request_dict.get('useStatus', None)
  69. if not all([pageNo, pageSize]):
  70. return response.json(444)
  71. page = int(pageNo)
  72. line = int(pageSize)
  73. try:
  74. query = SerialNumberModel.objects.filter()
  75. if serial_number:
  76. query = query.filter(serial_number__contains=serial_number)
  77. if status:
  78. status = int(status)
  79. query = query.filter(status=status)
  80. if use_status:
  81. use_status = int(use_status)
  82. query = query.filter(use_status=use_status)
  83. if not query.exists():
  84. return response.json(0, {'list': '', 'total': 0})
  85. total = query.count()
  86. serial_number_page = query.order_by('-add_time')[(page - 1) * line:page * line].values()
  87. if serial_number_page.exists():
  88. return response.json(0, {'list': list(serial_number_page), 'total': total})
  89. return response.json(173)
  90. except Exception as e:
  91. print(e)
  92. return response.json(500, repr(e))
  93. @classmethod
  94. def vpg_page(cls, request_dict, response):
  95. isSelect = request_dict.get('isSelect', None)
  96. if isSelect:
  97. # 获取vpg id作为选项
  98. vpg_qs = VPGModel.objects.all().values('id')
  99. return response.json(
  100. 0, {'list': CommonService.qs_to_list(vpg_qs)})
  101. pageNo = request_dict.get('pageNo', None)
  102. pageSize = request_dict.get('pageSize', None)
  103. if not all([pageNo, pageSize]):
  104. return response.json(444)
  105. page = int(pageNo)
  106. line = int(pageSize)
  107. try:
  108. query = VPGModel.objects.filter()
  109. if not query.exists():
  110. return response.json(0, {'list': '', 'total': 0})
  111. total = query.count()
  112. vpg_page = query.order_by('-add_time')[(page - 1) * line:page * line] \
  113. .values('id', 'name',
  114. 'region__name',
  115. 'region_id',
  116. 'company__name',
  117. 'add_time',
  118. 'update_time',
  119. 'company__secret',
  120. 'uid_count')
  121. if vpg_page.exists():
  122. return response.json(0, {'list': list(vpg_page), 'total': total})
  123. return response.json(173)
  124. except Exception as e:
  125. print(e)
  126. return response.json(500, repr(e))
  127. @classmethod
  128. def uid_page(cls, request_dict, response):
  129. vpg_id = request_dict.get('vpg_id', None)
  130. status = request_dict.get('status', None)
  131. serial_number = request_dict.get('serialNumber', None)
  132. uid = request_dict.get('uid', None)
  133. p2p_type = request_dict.get('p2pType', None)
  134. pageNo = request_dict.get('pageNo', None)
  135. pageSize = request_dict.get('pageSize', None)
  136. if not all([pageNo, pageSize]):
  137. return response.json(444)
  138. page = int(pageNo)
  139. line = int(pageSize)
  140. try:
  141. query = UIDModel.objects.filter()
  142. if serial_number:
  143. company_serial_qs = CompanySerialModel.objects.filter(serial_number=serial_number).values()
  144. if company_serial_qs.exists():
  145. cs_id = str(company_serial_qs[0]['id'])
  146. uid_company_serial_qs = UIDCompanySerialModel.objects.filter(company_serial_id=cs_id).values(
  147. 'uid_id')
  148. if uid_company_serial_qs.exists():
  149. uid_id = uid_company_serial_qs[0]['uid_id']
  150. query = query.filter(id=uid_id)
  151. if vpg_id:
  152. query = query.filter(vpg_id=int(vpg_id))
  153. if status:
  154. query = query.filter(status=int(status))
  155. if uid:
  156. query = query.filter(uid__contains=uid)
  157. if p2p_type:
  158. query = query.filter(p2p_type=int(p2p_type))
  159. if not query.exists():
  160. return response.json(0, {'list': '', 'total': 0})
  161. total = query.count()
  162. uid_page = query[(page - 1) * line:page * line]
  163. result_list = []
  164. if not uid_page.exists():
  165. return response.json(0, {'list': '', 'total': 0})
  166. for vo in uid_page:
  167. uid_company_serial_qs = UIDCompanySerialModel.objects.filter(uid_id=vo.id).values('uid_id',
  168. 'company_serial_id')
  169. serial = None
  170. if uid_company_serial_qs.exists():
  171. company_serial_id = uid_company_serial_qs[0]['company_serial_id']
  172. company_serial_qs = CompanySerialModel.objects.filter(id=company_serial_id).values()
  173. if company_serial_qs.exists():
  174. serial = str(company_serial_qs[0]['serial_number'])
  175. result_list.append({
  176. 'vpg_id': vo.vpg_id,
  177. 'id': vo.id,
  178. 'uid': vo.uid,
  179. 'serial': serial,
  180. 'status': vo.status,
  181. 'area': vo.area,
  182. 'p2pType': vo.p2p_type,
  183. 'platform': vo.platform,
  184. 'fullUidCode': vo.full_uid_code,
  185. 'init_string': vo.init_string,
  186. 'init_string_app': vo.init_string_app,
  187. 'addTime': vo.add_time,
  188. 'updateTime': vo.update_time,
  189. })
  190. return response.json(0, {'list': result_list, 'total': total})
  191. except Exception as e:
  192. print(e)
  193. return response.json(500, repr(e))