No Description

operator_views.py 4.5KB

    # -*- coding: utf-8 -*- from __future__ import division from django.conf import settings from django.contrib.auth.hashers import make_password from django_logit import logit from django_response import response from paginator import pagination from mch.models import AdministratorInfo, OperatorInfo from utils.error.errno_utils import AdministratorStatusCode, OperatorStatusCode @logit def operator_add(request): name = request.POST.get('name', '') phone = request.POST.get('phone', '') password = request.POST.get('password', '') admin_id = request.session.get('admin_id') try: administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True) except AdministratorInfo.DoesNotExist: return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) try: operator = OperatorInfo.objects.get(brand_id=administrator.brand_id, phone=phone, user_status=OperatorInfo.ACTIVATED, status=True) except OperatorInfo.DoesNotExist: operator = None if operator: return response(OperatorStatusCode.OPERATOR_PHONE_ALREADY_EXISTS) encryption = make_password(password, settings.MAKE_PASSWORD_SALT, settings.MAKE_PASSWORD_HASHER) OperatorInfo.objects.create( brand_id=administrator.brand_id, name=name, phone=phone, encryption=encryption, ) return response(200, 'Operator Add Success', u'操作员添加成功') @logit def operator_delete(request): operator_id = request.POST.get('operator_id', '') admin_id = request.session.get('admin_id') try: administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True) except AdministratorInfo.DoesNotExist: return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) try: operator = OperatorInfo.objects.get(brand_id=administrator.brand_id, operator_id=operator_id, status=True) except OperatorInfo.DoesNotExist: return response(OperatorStatusCode.OPERATOR_NOT_FOUND) if operator.user_status == OperatorStatusCode.OPERATOR_HAS_DISABLED: return response(OperatorStatusCode.OPERATOR_HAS_DISABLED) elif operator.user_status == OperatorStatusCode.OPERATOR_HAS_DELETED: return response(OperatorStatusCode.OPERATOR_HAS_DELETED) operator.user_status = OperatorInfo.DELETED operator.save() return response(200, 'Operator Delete Success', u'操作员删除成功') @logit def operator_update(request): operator_id = request.POST.get('operator_id', '') name = request.POST.get('name', '') password = request.POST.get('password', '') admin_id = request.session.get('admin_id') try: administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True) except AdministratorInfo.DoesNotExist: return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) try: operator = OperatorInfo.objects.get(brand_id=administrator.brand_id, operator_id=operator_id, status=True) except OperatorInfo.DoesNotExist: return response(OperatorStatusCode.OPERATOR_NOT_FOUND) if operator.user_status == OperatorStatusCode.OPERATOR_HAS_DISABLED: return response(OperatorStatusCode.OPERATOR_HAS_DISABLED) elif operator.user_status == OperatorStatusCode.OPERATOR_HAS_DELETED: return response(OperatorStatusCode.OPERATOR_HAS_DELETED) if name: operator.name = name if password: operator.encryption = make_password(password, settings.MAKE_PASSWORD_SALT, settings.MAKE_PASSWORD_HASHER) operator.save() return response(200, 'Operator Update Success', u'操作员更新成功') @logit def operator_list(request): page = request.POST.get('page', 1) num = request.POST.get('num', 20) admin_id = request.session.get('admin_id') try: administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True) except AdministratorInfo.DoesNotExist: return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) optors = OperatorInfo.objects.filter(brand_id=administrator.brand_id, user_status=OperatorInfo.ACTIVATED, status=True).order_by('-pk') count = optors.count() optors, left = pagination(optors, page, num) optors = [optor.data for optor in optors] return response(200, 'Get Operator List Success', u'获取操作员列表成功', { 'optors': optors, 'count': count, 'left': left, })