AppSetController.py 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  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 Ansjer.config import SERVER_TYPE
  15. from Model.models import AppSetModel
  16. from django.views.generic.base import View
  17. from Object.RedisObject import RedisObject
  18. from Object.TokenObject import TokenObject
  19. from Service.ModelService import ModelService
  20. import time,json
  21. from Object.ResponseObject import ResponseObject
  22. class AppSetView(View):
  23. def get(self, request, *args, **kwargs):
  24. request.encoding = 'utf-8'
  25. operation = kwargs.get('operation', None)
  26. return self.validation(request.GET, operation)
  27. def post(self, request, *args, **kwargs):
  28. request.encoding = 'utf-8'
  29. operation = kwargs.get('operation', None)
  30. return self.validation(request.POST, operation)
  31. def validation(self, request_dict, operation):
  32. response = ResponseObject()
  33. if operation == 'query':
  34. return self.do_query(request_dict, response)
  35. if operation == 'admin_query':
  36. token = request_dict.get('token', None)
  37. tko = TokenObject(token)
  38. if tko.code == 0:
  39. userID = tko.userID
  40. return self.do_admin_query(userID, request_dict, response)
  41. else:
  42. return response.json(tko.code)
  43. elif operation == 'admin_update':
  44. token = request_dict.get('token', None)
  45. tko = TokenObject(token)
  46. if tko.code == 0:
  47. userID = tko.userID
  48. return self.do_admin_update(userID, request_dict, response)
  49. else:
  50. return response.json(tko.code)
  51. else:
  52. return response.json(414)
  53. # 查询
  54. def do_query(self, request_dict, response):
  55. lang = request_dict.get('lang', None)
  56. appBundleId = request_dict.get('appBundleId', None)
  57. if not appBundleId:
  58. return response.json(444,'appBundleId')
  59. redis = RedisObject()
  60. if SERVER_TYPE != "Ansjer.formal_settings":
  61. key_id= "www"+appBundleId
  62. else:
  63. key_id = "test" + appBundleId
  64. #redis_value = redis.get_data(key=key_id) 去除到缓存中找
  65. redis_value = False
  66. if redis_value == False:
  67. print('添加到缓存')
  68. # 查数据库
  69. sm_qs = AppSetModel.objects.filter(appBundleId=appBundleId)
  70. count = sm_qs.count()
  71. if count > 0:
  72. sm_qs = sm_qs.values("content")
  73. # 添加到缓存,缓存时间为3600秒------指的是一个钟后再次访问,就会刷新缓存一次
  74. dict_json = json.loads(sm_qs[0]['content'])
  75. if 'editionUpgrading' in dict_json :
  76. if dict_json['editionUpgrading'] == 1:
  77. if lang !='cn':
  78. dict_json['editionUpgrading'] = 'Upgrading, please sign in later'
  79. else:
  80. dict_json['editionUpgrading'] = '正在升级,请稍后登录'
  81. else:
  82. dict_json['editionUpgrading'] = ''
  83. content_json_str = dict_json
  84. redis.set_data(key=key_id, val=content_json_str, expire=3600)
  85. # 返回固定值
  86. return response.json(0, content_json_str)
  87. else:
  88. return response.json(173)
  89. else:
  90. print('去缓存找')
  91. # 返回固定值
  92. return response.json(0, json.loads(redis_value))
  93. # res = {}
  94. # res['grade'] = 1
  95. # # # 用户帮助
  96. # res['usingHelp'] = 0
  97. # # # AP添加方式
  98. # res['apAdd'] = 1
  99. # # # AP工具
  100. # res['apTool'] = 1
  101. # # # 广告模块
  102. # res['ad_module'] = {
  103. # "time": 0,
  104. # "ad_path": [
  105. # "https://test.dvema.com/web/static/image/default_ad1",
  106. # "https://test.dvema.com/web/static/image/default_ad2",
  107. # "https://test.dvema.com/web/static/image/default_ad3",
  108. # ]
  109. # }
  110. # res['init_img'] = 'https://test.dvema.com/web/static/image/default_start'
  111. # return response.json(0, res)
  112. def do_admin_query(self, userID, request_dict, response):
  113. # 查询和添加权限
  114. own_perm = ModelService.check_perm(userID, 40)
  115. if not own_perm:
  116. return response.json(404)
  117. appBundleId = request_dict.get('appBundleId', None)
  118. sm_qs = AppSetModel.objects.filter(appBundleId=appBundleId)
  119. count = sm_qs.count()
  120. nowTime = int(time.time())
  121. if count>0:
  122. sm_qs = sm_qs.values('id', 'appBundleId', 'content', 'addTime', 'updTime')
  123. return response.json(0, {'data': list(sm_qs), 'count': count})
  124. else:
  125. AppSetModel.objects.create(
  126. appBundleId=appBundleId,
  127. addTime=nowTime,
  128. updTime=nowTime
  129. )
  130. return response.json(0)
  131. def do_admin_update(self, userID, request_dict, response):
  132. # 修改的权限
  133. own_perm = ModelService.check_perm(userID, 50)
  134. if not own_perm:
  135. return response.json(404)
  136. appBundleId = request_dict.get('appBundleId', None)
  137. content = request_dict.get('content', None)
  138. nowTime = int(time.time())
  139. sm_qs = AppSetModel.objects.filter(appBundleId=appBundleId)
  140. redis = RedisObject()
  141. if SERVER_TYPE != "Ansjer.formal_settings":
  142. key_id= "www"+appBundleId
  143. else:
  144. key_id = "test" + appBundleId
  145. redis.del_data(key=key_id)
  146. if sm_qs.exists():
  147. sm_qs.update(content=content, updTime=nowTime)
  148. return response.json(0)
  149. else:
  150. return response.json(173)