Nenhuma Descrição

views.py 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. # -*- coding: utf-8 -*-
  2. import os
  3. from django.conf import settings
  4. from django.shortcuts import redirect
  5. from django_logit import logit
  6. from django_response import response
  7. from account.models import UserInfo
  8. from operation.models import FeedbackInfo, GuestEntranceControlInfo, LatestAppInfo, SplashInfo
  9. from utils.error.errno_utils import UserStatusCode
  10. from utils.redis.rapp import get_latest_app
  11. from utils.redis.rpatch import get_app_patch_info
  12. from utils.redis.rsettings import get_app_settings_info
  13. from utils.version_utils import is_version_match
  14. @logit
  15. def upgrade_api(request):
  16. """ APP 升级 """
  17. src = int(request.POST.get('src', 0))
  18. latest_app = get_latest_app(src)
  19. if request.iOS:
  20. appinfo = {
  21. 'latest_version_code': latest_app.get('latest_ios_version_code', ''),
  22. 'latest_version_name': latest_app.get('latest_ios_version_name', ''),
  23. 'latest_url': latest_app.get('latest_ios_url', ''),
  24. }
  25. else:
  26. appinfo = {
  27. 'latest_version_code': latest_app.get('latest_adr_version_code', ''),
  28. 'latest_version_name': latest_app.get('latest_adr_version_name', ''),
  29. 'latest_url': latest_app.get('latest_adr_url', ''),
  30. }
  31. return response(200, 'Get Latest App Success', u'获取最新版信息成功', {
  32. 'appinfo': appinfo,
  33. })
  34. @logit
  35. def patch_api(request):
  36. """ APP 补丁 """
  37. platform = request.GET.get('platform', '') or request.POST.get('platform', '')
  38. version = request.GET.get('version', '') or request.POST.get('version', '')
  39. src = int(request.POST.get('src', 0))
  40. patch_info = get_app_patch_info(platform, version, src)
  41. return response(200, 'Get Patch Info Success', u'获取补丁信息成功', {
  42. 'patch_url': patch_info.get('patch_url', ''),
  43. })
  44. @logit
  45. def online_api(request):
  46. """ 是否上线 """
  47. platform = request.GET.get('platform', '') or request.POST.get('platform', '')
  48. channel = request.GET.get('channel', '') or request.POST.get('channel', '')
  49. version = request.GET.get('version', '') or request.POST.get('version', '')
  50. app_settings = get_app_settings_info(platform, channel, version)
  51. return response(200, 'Get Online Status Success', u'获取是否上线成功', {
  52. 'online': app_settings.get('online', True),
  53. })
  54. @logit
  55. def splash_api(request):
  56. """ 启动页面 """
  57. src = int(request.POST.get('src', 0))
  58. splashes = SplashInfo.objects.filter(src=src, status=True)
  59. splashes = [splash.data for splash in splashes]
  60. return response(200, 'Get Splash Success', u'获取最新版信息成功', {
  61. 'splashes': splashes,
  62. })
  63. @logit
  64. def feedback_api(request):
  65. """ 用户反馈 """
  66. user_id = request.POST.get('user_id', '')
  67. feedback = request.POST.get('feedback', '')
  68. src = int(request.POST.get('src', 0))
  69. if not UserInfo.objects.filter(user_id=user_id, status=True).exists():
  70. return response(UserStatusCode.USER_NOT_FOUND)
  71. FeedbackInfo.objects.create(
  72. user_id=user_id,
  73. feedback=feedback,
  74. src=src,
  75. )
  76. return response(200, 'Feedback Success', u'反馈成功')
  77. def download_api(request):
  78. """ 下载接口 """
  79. src = int(request.GET.get('src', 0))
  80. if request.weixin:
  81. if src == LatestAppInfo.PAIAI_USER:
  82. wx_url = settings.PAI2_USER_DOWNLOAD_WX_URL
  83. elif src == LatestAppInfo.PAIAI_LENSMAN:
  84. wx_url = settings.PAI2_LENSMAN_DOWNLOAD_WX_URL
  85. elif src == LatestAppInfo.PAIAI_TOURGUIDE:
  86. wx_url = settings.PAI2_TOURGUIDE_DOWNLOAD_WX_URL
  87. return redirect(wx_url)
  88. if request.iOS:
  89. if src == LatestAppInfo.PAIAI_USER:
  90. ios_url = settings.PAI2_USER_DOWNLOAD_IOS_URL
  91. elif src == LatestAppInfo.PAIAI_LENSMAN:
  92. ios_url = settings.PAI2_LENSMAN_DOWNLOAD_IOS_URL
  93. elif src == LatestAppInfo.PAIAI_TOURGUIDE:
  94. ios_url = settings.PAI2_TOURGUIDE_DOWNLOAD_IOS_URL
  95. return redirect(ios_url)
  96. return redirect(get_latest_app(src).get('latest_adr_url', ''))
  97. def kvformat(bpversion, k):
  98. v = bpversion.get(k, '')
  99. return '"{}":{}'.format(k, v) if isinstance(v, int) else '"{}":"{}"'.format(k, v)