|
# -*- coding: utf-8 -*-
import os
from django.conf import settings
from django.shortcuts import redirect
from django_logit import logit
from django_response import response
from account.models import UserInfo
from operation.models import FeedbackInfo, GuestEntranceControlInfo, LatestAppInfo, SplashInfo
from utils.error.errno_utils import UserStatusCode
from utils.redis.rapp import get_latest_app
from utils.redis.rpatch import get_app_patch_info
from utils.redis.rsettings import get_app_settings_info
from utils.version_utils import is_version_match
@logit
def upgrade_api(request):
""" APP 升级 """
src = int(request.POST.get('src', 0))
latest_app = get_latest_app(src)
if request.iOS:
appinfo = {
'latest_version_code': latest_app.get('latest_ios_version_code', ''),
'latest_version_name': latest_app.get('latest_ios_version_name', ''),
'latest_url': latest_app.get('latest_ios_url', ''),
}
else:
appinfo = {
'latest_version_code': latest_app.get('latest_adr_version_code', ''),
'latest_version_name': latest_app.get('latest_adr_version_name', ''),
'latest_url': latest_app.get('latest_adr_url', ''),
}
return response(200, 'Get Latest App Success', u'获取最新版信息成功', {
'appinfo': appinfo,
})
@logit
def patch_api(request):
""" APP 补丁 """
platform = request.GET.get('platform', '') or request.POST.get('platform', '')
version = request.GET.get('version', '') or request.POST.get('version', '')
src = int(request.POST.get('src', 0))
patch_info = get_app_patch_info(platform, version, src)
return response(200, 'Get Patch Info Success', u'获取补丁信息成功', {
'patch_url': patch_info.get('patch_url', ''),
})
@logit
def online_api(request):
""" 是否上线 """
platform = request.GET.get('platform', '') or request.POST.get('platform', '')
channel = request.GET.get('channel', '') or request.POST.get('channel', '')
version = request.GET.get('version', '') or request.POST.get('version', '')
app_settings = get_app_settings_info(platform, channel, version)
return response(200, 'Get Online Status Success', u'获取是否上线成功', {
'online': app_settings.get('online', True),
})
@logit
def splash_api(request):
""" 启动页面 """
src = int(request.POST.get('src', 0))
splashes = SplashInfo.objects.filter(src=src, status=True)
splashes = [splash.data for splash in splashes]
return response(200, 'Get Splash Success', u'获取最新版信息成功', {
'splashes': splashes,
})
@logit
def feedback_api(request):
""" 用户反馈 """
user_id = request.POST.get('user_id', '')
feedback = request.POST.get('feedback', '')
src = int(request.POST.get('src', 0))
if not UserInfo.objects.filter(user_id=user_id, status=True).exists():
return response(UserStatusCode.USER_NOT_FOUND)
FeedbackInfo.objects.create(
user_id=user_id,
feedback=feedback,
src=src,
)
return response(200, 'Feedback Success', u'反馈成功')
def download_api(request):
""" 下载接口 """
src = int(request.GET.get('src', 0))
if request.weixin:
if src == LatestAppInfo.PAIAI_USER:
wx_url = settings.PAI2_USER_DOWNLOAD_WX_URL
elif src == LatestAppInfo.PAIAI_LENSMAN:
wx_url = settings.PAI2_LENSMAN_DOWNLOAD_WX_URL
elif src == LatestAppInfo.PAIAI_TOURGUIDE:
wx_url = settings.PAI2_TOURGUIDE_DOWNLOAD_WX_URL
return redirect(wx_url)
if request.iOS:
if src == LatestAppInfo.PAIAI_USER:
ios_url = settings.PAI2_USER_DOWNLOAD_IOS_URL
elif src == LatestAppInfo.PAIAI_LENSMAN:
ios_url = settings.PAI2_LENSMAN_DOWNLOAD_IOS_URL
elif src == LatestAppInfo.PAIAI_TOURGUIDE:
ios_url = settings.PAI2_TOURGUIDE_DOWNLOAD_IOS_URL
return redirect(ios_url)
return redirect(get_latest_app(src).get('latest_adr_url', ''))
def kvformat(bpversion, k):
v = bpversion.get(k, '')
return '"{}":{}'.format(k, v) if isinstance(v, int) else '"{}":"{}"'.format(k, v)
|