| 
              # -*- 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})
 
  |