AppSetController.py 5.0 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 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. app_set_qs = AppSetModel.objects.filter(appBundleId=appBundleId).values('content')
  60. if not app_set_qs.exists():
  61. return response.json(173)
  62. dict_json = json.loads(app_set_qs[0]['content'])
  63. if 'editionUpgrading' in dict_json:
  64. if dict_json['editionUpgrading'] == 1:
  65. if lang == 'cn':
  66. dict_json['editionUpgrading'] = '正在升级,请稍后登录'
  67. else:
  68. dict_json['editionUpgrading'] = 'Upgrading, please sign in later'
  69. else:
  70. dict_json['editionUpgrading'] = ''
  71. return response.json(0, dict_json)
  72. # res = {}
  73. # res['grade'] = 1
  74. # # # 用户帮助
  75. # res['usingHelp'] = 0
  76. # # # AP添加方式
  77. # res['apAdd'] = 1
  78. # # # AP工具
  79. # res['apTool'] = 1
  80. # # # 广告模块
  81. # res['ad_module'] = {
  82. # "time": 0,
  83. # "ad_path": [
  84. # "https://test.dvema.com/web/static/image/default_ad1",
  85. # "https://test.dvema.com/web/static/image/default_ad2",
  86. # "https://test.dvema.com/web/static/image/default_ad3",
  87. # ]
  88. # }
  89. # res['init_img'] = 'https://test.dvema.com/web/static/image/default_start'
  90. # return response.json(0, res)
  91. def do_admin_query(self, userID, request_dict, response):
  92. # 查询和添加权限
  93. own_perm = ModelService.check_perm(userID, 40)
  94. if not own_perm:
  95. return response.json(404)
  96. appBundleId = request_dict.get('appBundleId', None)
  97. sm_qs = AppSetModel.objects.filter(appBundleId=appBundleId)
  98. count = sm_qs.count()
  99. nowTime = int(time.time())
  100. if count>0:
  101. sm_qs = sm_qs.values('id', 'appBundleId', 'content', 'addTime', 'updTime')
  102. return response.json(0, {'data': list(sm_qs), 'count': count})
  103. else:
  104. AppSetModel.objects.create(
  105. appBundleId=appBundleId,
  106. addTime=nowTime,
  107. updTime=nowTime
  108. )
  109. return response.json(0)
  110. def do_admin_update(self, userID, request_dict, response):
  111. # 修改的权限
  112. own_perm = ModelService.check_perm(userID, 50)
  113. if not own_perm:
  114. return response.json(404)
  115. appBundleId = request_dict.get('appBundleId', None)
  116. content = request_dict.get('content', None)
  117. nowTime = int(time.time())
  118. sm_qs = AppSetModel.objects.filter(appBundleId=appBundleId)
  119. redis = RedisObject()
  120. if SERVER_TYPE != "Ansjer.formal_settings":
  121. key_id= "www"+appBundleId
  122. else:
  123. key_id = "test" + appBundleId
  124. redis.del_data(key=key_id)
  125. if sm_qs.exists():
  126. sm_qs.update(content=content, updTime=nowTime)
  127. return response.json(0)
  128. else:
  129. return response.json(173)