AppSetController.py 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  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: AnsjerFormal
  7. @software: PyCharm
  8. @DATE: 2020/2/27 9:38
  9. @Version: python3.6
  10. @MODIFY DECORD:ansjer dev
  11. @file: AppSetController.py
  12. @Contact: chanjunkai@163.com
  13. """
  14. from Model.models import AppSetModel
  15. from django.views.generic.base import View
  16. from Object.RedisObject import RedisObject
  17. from Object.TokenObject import TokenObject
  18. from Service.ModelService import ModelService
  19. import time,json
  20. from Object.ResponseObject import ResponseObject
  21. class AppSetView(View):
  22. def get(self, request, *args, **kwargs):
  23. request.encoding = 'utf-8'
  24. operation = kwargs.get('operation', None)
  25. return self.validation(request.GET, operation)
  26. def post(self, request, *args, **kwargs):
  27. request.encoding = 'utf-8'
  28. operation = kwargs.get('operation', None)
  29. return self.validation(request.POST, operation)
  30. def validation(self, request_dict, operation):
  31. response = ResponseObject()
  32. if operation == 'query':
  33. return self.do_query(request_dict, response)
  34. if operation == 'admin_query':
  35. token = request_dict.get('token', None)
  36. tko = TokenObject(token)
  37. if tko.code == 0:
  38. userID = tko.userID
  39. return self.do_admin_query(userID, request_dict, response)
  40. else:
  41. return response.json(tko.code)
  42. elif operation == 'admin_update':
  43. token = request_dict.get('token', None)
  44. tko = TokenObject(token)
  45. if tko.code == 0:
  46. userID = tko.userID
  47. return self.do_admin_update(userID, request_dict, response)
  48. else:
  49. return response.json(tko.code)
  50. else:
  51. return response.json(414)
  52. # 查询
  53. def do_query(self, request_dict, response):
  54. appBundleId = request_dict.get('appBundleId', None)
  55. if not appBundleId:
  56. return response.json(444,'appBundleId')
  57. redis = RedisObject()
  58. redis_value = redis.get_data(key=appBundleId)
  59. if redis_value == False:
  60. # print('添加到缓存')
  61. # 查数据库
  62. sm_qs = AppSetModel.objects.filter(appBundleId=appBundleId)
  63. count = sm_qs.count()
  64. if count > 0:
  65. sm_qs = sm_qs.values("content")
  66. # 添加到缓存,缓存时间为3600秒------指的是一个钟后再次访问,就会刷新缓存一次
  67. content_json_str = list(sm_qs)[0]['content'].replace("'", '"')
  68. redis.set_data(key=appBundleId, val=content_json_str, expire=3600)
  69. # 返回固定值
  70. return response.json(0, json.loads(list(sm_qs)[0]['content']))
  71. else:
  72. return response.json(173)
  73. else:
  74. # print('去缓存找')
  75. # 返回固定值
  76. return response.json(0, json.loads(redis_value))
  77. # res = {}
  78. # res['grade'] = 1
  79. # # # 用户帮助
  80. # res['usingHelp'] = 0
  81. # # # AP添加方式
  82. # res['apAdd'] = 1
  83. # # # AP工具
  84. # res['apTool'] = 1
  85. # # # 广告模块
  86. # res['ad_module'] = {
  87. # "time": 0,
  88. # "ad_path": [
  89. # "https://test.dvema.com/web/static/image/default_ad1",
  90. # "https://test.dvema.com/web/static/image/default_ad2",
  91. # "https://test.dvema.com/web/static/image/default_ad3",
  92. # ]
  93. # }
  94. # res['init_img'] = 'https://test.dvema.com/web/static/image/default_start'
  95. # return response.json(0, res)
  96. def do_admin_query(self, userID, request_dict, response):
  97. # 查询和添加权限
  98. own_perm = ModelService.check_perm(userID, 40)
  99. if not own_perm:
  100. return response.json(404)
  101. appBundleId = request_dict.get('appBundleId', None)
  102. sm_qs = AppSetModel.objects.filter(appBundleId=appBundleId)
  103. count = sm_qs.count()
  104. nowTime = int(time.time())
  105. if count>0:
  106. sm_qs = sm_qs.values('id', 'appBundleId', 'content', 'addTime', 'updTime')
  107. return response.json(0, {'data': list(sm_qs), 'count': count})
  108. else:
  109. AppSetModel.objects.create(
  110. appBundleId=appBundleId,
  111. addTime=nowTime,
  112. updTime=nowTime
  113. )
  114. return response.json(0)
  115. def do_admin_update(self, userID, request_dict, response):
  116. # 修改的权限
  117. own_perm = ModelService.check_perm(userID, 50)
  118. if not own_perm:
  119. return response.json(404)
  120. appBundleId = request_dict.get('appBundleId', None)
  121. content = request_dict.get('content', None)
  122. nowTime = int(time.time())
  123. sm_qs = AppSetModel.objects.filter(appBundleId=appBundleId)
  124. redis = RedisObject()
  125. redis.del_data(key=appBundleId)
  126. if sm_qs.exists():
  127. sm_qs.update(content=content, updTime=nowTime)
  128. return response.json(0)
  129. else:
  130. return response.json(173)