|
# -*- coding: utf-8 -*-
from __future__ import division
from django.contrib.auth.hashers import check_password, make_password
from django_logit import logit
from django_response import response
from mch.models import BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, LatestAppInfo, ModelInfo, OperatorInfo
from utils.error.errno_utils import OperatorStatusCode
@logit
def login_api(request):
phone = request.POST.get('phone', '')
password = request.POST.get('password', '')
try:
operator = OperatorInfo.objects.get(phone=phone, status=True)
except OperatorInfo.DoesNotExist:
return response(OperatorStatusCode.OPERATOR_NOT_FOUND)
if operator.user_status == OperatorInfo.DISABLED:
return response(OperatorStatusCode.OPERATOR_NOT_ACTIVATED)
if not check_password(password, operator.encryption):
return response(OperatorStatusCode.OPERATOR_PASSWORD_ERROR)
return response(200, data={
'optor_id': operator.operator_id,
})
@logit
def bmd_infos(request):
optor_id = request.POST.get('optor_id', '')
try:
operator = OperatorInfo.objects.get(operator_id=optor_id, status=True)
except OperatorInfo.DoesNotExist:
return response(OperatorStatusCode.OPERATOR_NOT_FOUND)
if operator.user_status == OperatorInfo.DISABLED:
return response(OperatorStatusCode.OPERATOR_NOT_ACTIVATED)
brands = BrandInfo.objects.filter(brand_id=operator.brand_id, status=True).order_by('position')
brands = [brand.data for brand in brands]
models = ModelInfo.objects.filter(brand_id=operator.brand_id, status=True).order_by('position')
models = [model.data for model in models]
distributors = DistributorInfo.objects.filter(brand_id=operator.brand_id, status=True).order_by('position')
distributors = [distributor.data for distributor in distributors]
return response(200, data={
'optor_id': operator.operator_id,
'brands': brands,
'models': models,
'distributors': distributors,
})
@logit
def brands_list(request):
brands = BrandInfo.objects.filter(status=True).order_by('position')
brands = [brand.data for brand in brands]
return response(200, data={
'brands': brands,
})
@logit
def models_list(request):
models = ModelInfo.objects.filter(status=True).order_by('position')
models = [model.data for model in models]
return response(200, data={
'models': models,
})
@logit
def distributors_list(request):
distributors = DistributorInfo.objects.filter(status=True).order_by('position')
distributors = [distributor.data for distributor in distributors]
return response(200, data={
'distributors': distributors,
})
@logit
def upgrade_api(request):
""" APP 升级 """
try:
appinfo = LatestAppInfo.objects.filter(status=True)[0].adr
except IndexError:
appinfo = {
'latest_version_code': '',
'latest_version_name': '',
'latest_url': '',
}
return response(200, 'Get Latest App Success', u'获取最新版信息成功', {
'appinfo': appinfo,
})
@logit
def consumer_info_api(request):
user_id = request.POST.get('user_id', '')
iv = request.POST.get('iv', '')
encryptedData = request.POST.get('encryptedData', '')
lat = request.POST.get('lat', '')
lon = request.POST.get('lon', '')
serialNo = request.POST.get('SerialNo', '')
verifyResult = request.POST.get('verifyResult', '')
# To Get Phone
ConsumeInfoSubmitLogInfo.objects.create(
user_id=user_id,
phone='',
iv=iv,
encryptedData=encryptedData,
lat=lat,
lon=lon,
serialNo=serialNo,
verifyResult=verifyResult,
)
return response()
|