SysManage.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
  5. @AUTHOR: ASJRD018
  6. @NAME: Ansjer
  7. @software: PyCharm
  8. @DATE: 2018/6/8 9:10
  9. @Version: python3.6
  10. @MODIFY DECORD:ansjer dev
  11. @file: SysManage.py
  12. @Contact: chanjunkai@163.com
  13. """
  14. import os
  15. import time
  16. from django.http import HttpResponse
  17. from django.views.decorators.csrf import csrf_exempt
  18. from django.views.generic.base import View
  19. from Ansjer.config import BASE_DIR
  20. from Model.models import SysMsgModel, Device_Info, Ai_Push_Info
  21. from Object.ResponseObject import ResponseObject
  22. from Object.TokenObject import TokenObject
  23. from Service.ModelService import ModelService
  24. @csrf_exempt
  25. def updateLog(request):
  26. response = ResponseObject()
  27. request.encoding = 'utf-8'
  28. if request.method == 'GET':
  29. request_dict = request.GET
  30. if request.method == 'POST':
  31. request_dict = request.POST
  32. else:
  33. response.json(404)
  34. token = request_dict.get('token', None)
  35. content = request_dict.get('content', None)
  36. if not content:
  37. return response.json(444, 'content')
  38. tko = TokenObject(token)
  39. response.lang = tko.lang
  40. if tko.code != 0:
  41. return response.json(tko.code)
  42. userID = tko.userID
  43. own_permission = ModelService.check_perm(userID=userID, permID=50)
  44. if own_permission is not True:
  45. return response.json(404)
  46. file_path = os.path.join(BASE_DIR, 'static/Help/version.txt')
  47. try:
  48. with open(file_path, "w", encoding="utf-8") as f:
  49. f.write(content)
  50. except Exception as e:
  51. pass
  52. return response.json(0)
  53. class getStatView(View):
  54. def post(self, request, *args, **kwargs):
  55. request.encoding = 'utf-8'
  56. filePath = kwargs.get('filePath', None)
  57. filePath.encode(encoding='utf-8', errors='strict')
  58. response = ResponseObject()
  59. return self.getFile(filePath, response)
  60. def get(self, request, *args, **kwargs):
  61. request.encoding = 'gb2312'
  62. filePath = kwargs.get('filePath', None)
  63. response = ResponseObject()
  64. filePath.encode(encoding='gb2312', errors='strict')
  65. return self.getFile(filePath, response)
  66. def getFile(self, filePath, response):
  67. if filePath:
  68. pass
  69. else:
  70. return response.json(800)
  71. fullPath = os.path.join(BASE_DIR, filePath).replace('\\', '/')
  72. from var_dump import var_dump
  73. var_dump(fullPath)
  74. if os.path.isfile(fullPath):
  75. try:
  76. Imagedata = open(fullPath, 'rb').read()
  77. except Exception as e:
  78. return response.json(906, repr(e))
  79. else:
  80. return HttpResponse(Imagedata, content_type="image/jpeg")
  81. else:
  82. return response.json(907)
  83. from Service.EquipmentInfoService import EquipmentInfoService
  84. def initMsgFunc(request):
  85. response = ResponseObject()
  86. request.encoding = 'utf-8'
  87. if request.method == 'GET':
  88. request_dict = request.GET
  89. if request.method == 'POST':
  90. request_dict = request.POST
  91. else:
  92. response.json(404)
  93. token = request_dict.get('token', None)
  94. tko = TokenObject(token)
  95. response.lang = tko.lang
  96. if tko.code != 0:
  97. return response.json(tko.code)
  98. userID = tko.userID
  99. seven_days_ago = int(time.time()) - 3600 * 24 * 7 # 过滤七天前数据
  100. sm_count = SysMsgModel.objects.filter(userID_id=userID, status=0).count()
  101. kwargs = {
  102. 'device_user_id': userID,
  103. 'event_time__gt': seven_days_ago,
  104. 'status': 0
  105. }
  106. eq_count = EquipmentInfoService.count_equipment_info(**kwargs)
  107. # kwargs['event_type'] = 57
  108. # rq_count = EquipmentInfoService.count_equipment_info(**kwargs)
  109. rq_count = 0 # 影响查询性能APP未调用该属性,统一返回0
  110. ai_count = Ai_Push_Info.objects.filter(userID_id=userID, eventTime__gt=seven_days_ago, status=False).count()
  111. uid_reset_count = Device_Info.objects.filter(userID_id=userID, isExist=2).count()
  112. res = {
  113. 'sm_count': sm_count, # 系统消息未读数量
  114. 'eq_count': eq_count, # 未读消息总数
  115. 'rq_count': rq_count, # 人形检测总数
  116. 'ai_count': ai_count, # AI消息总数
  117. 'uid_reset_count': uid_reset_count, # 复位的设备数量
  118. }
  119. return response.json(0, res)