|
# -*- coding: utf-8 -*-
from __future__ import division
from django.conf import settings
from django.contrib.auth.hashers import check_password
from django_logit import logit
from django_response import response
from account.models import AdministratorInfo
from equipment.models import IsolationPointInfo
from utils.error.errno_utils import AdministratorStatusCode, IsolationPointStatusCode
WECHAT = settings.WECHAT
@logit
def admin_login(request):
phone = request.POST.get('phone', '')
password = request.POST.get('password', '')
try:
administrator = AdministratorInfo.objects.get(phone=phone, status=True)
except AdministratorInfo.DoesNotExist:
return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
if administrator.user_status == AdministratorInfo.DISABLED:
return response(AdministratorStatusCode.ADMINISTRATOR_NOT_ACTIVATED)
elif administrator.user_status == AdministratorInfo.DELETED:
return response(AdministratorStatusCode.ADMINISTRATOR_HAS_DELETED)
if not check_password(password, administrator.encryption):
return response(AdministratorStatusCode.ADMINISTRATOR_PASSWORD_ERROR)
try:
point = IsolationPointInfo.objects.get(point_id=administrator.point_id, status=True)
except IsolationPointInfo.DoesNotExist:
return response(IsolationPointStatusCode.ISOLATIONPOINT_NOT_FOUND)
return response(200, 'Admin Login Success', '管理员登录成功', data={**administrator.data, **point.data})
|