No Description

operator_views.py 4.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. # -*- coding: utf-8 -*-
  2. from __future__ import division
  3. from django.conf import settings
  4. from django.contrib.auth.hashers import make_password
  5. from django_logit import logit
  6. from django_response import response
  7. from paginator import pagination
  8. from mch.models import AdministratorInfo, OperatorInfo
  9. from utils.error.errno_utils import AdministratorStatusCode, OperatorStatusCode
  10. @logit
  11. def operator_add(request):
  12. name = request.POST.get('name', '')
  13. phone = request.POST.get('phone', '')
  14. password = request.POST.get('password', '')
  15. admin_id = request.session.get('admin_id')
  16. try:
  17. administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
  18. except AdministratorInfo.DoesNotExist:
  19. return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
  20. try:
  21. operator = OperatorInfo.objects.get(brand_id=administrator.brand_id, phone=phone, user_status=OperatorInfo.ACTIVATED, status=True)
  22. except OperatorInfo.DoesNotExist:
  23. operator = None
  24. if operator:
  25. return response(OperatorStatusCode.OPERATOR_PHONE_ALREADY_EXISTS)
  26. encryption = make_password(password, settings.MAKE_PASSWORD_SALT, settings.MAKE_PASSWORD_HASHER)
  27. OperatorInfo.objects.create(
  28. brand_id=administrator.brand_id,
  29. name=name,
  30. phone=phone,
  31. encryption=encryption,
  32. )
  33. return response(200, 'Operator Add Success', u'操作员添加成功')
  34. @logit
  35. def operator_delete(request):
  36. operator_id = request.POST.get('operator_id', '')
  37. admin_id = request.session.get('admin_id')
  38. try:
  39. administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
  40. except AdministratorInfo.DoesNotExist:
  41. return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
  42. try:
  43. operator = OperatorInfo.objects.get(brand_id=administrator.brand_id, operator_id=operator_id, status=True)
  44. except OperatorInfo.DoesNotExist:
  45. return response(OperatorStatusCode.OPERATOR_NOT_FOUND)
  46. if operator.user_status == OperatorStatusCode.OPERATOR_HAS_DISABLED:
  47. return response(OperatorStatusCode.OPERATOR_HAS_DISABLED)
  48. elif operator.user_status == OperatorStatusCode.OPERATOR_HAS_DELETED:
  49. return response(OperatorStatusCode.OPERATOR_HAS_DELETED)
  50. operator.user_status = OperatorInfo.DELETED
  51. operator.save()
  52. return response(200, 'Operator Delete Success', u'操作员删除成功')
  53. @logit
  54. def operator_update(request):
  55. operator_id = request.POST.get('operator_id', '')
  56. name = request.POST.get('name', '')
  57. password = request.POST.get('password', '')
  58. admin_id = request.session.get('admin_id')
  59. try:
  60. administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
  61. except AdministratorInfo.DoesNotExist:
  62. return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
  63. try:
  64. operator = OperatorInfo.objects.get(brand_id=administrator.brand_id, operator_id=operator_id, status=True)
  65. except OperatorInfo.DoesNotExist:
  66. return response(OperatorStatusCode.OPERATOR_NOT_FOUND)
  67. if operator.user_status == OperatorStatusCode.OPERATOR_HAS_DISABLED:
  68. return response(OperatorStatusCode.OPERATOR_HAS_DISABLED)
  69. elif operator.user_status == OperatorStatusCode.OPERATOR_HAS_DELETED:
  70. return response(OperatorStatusCode.OPERATOR_HAS_DELETED)
  71. if name:
  72. operator.name = name
  73. if password:
  74. operator.encryption = make_password(password, settings.MAKE_PASSWORD_SALT, settings.MAKE_PASSWORD_HASHER)
  75. operator.save()
  76. return response(200, 'Operator Update Success', u'操作员更新成功')
  77. @logit
  78. def operator_list(request):
  79. page = request.POST.get('page', 1)
  80. num = request.POST.get('num', 20)
  81. admin_id = request.session.get('admin_id')
  82. try:
  83. administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
  84. except AdministratorInfo.DoesNotExist:
  85. return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
  86. optors = OperatorInfo.objects.filter(brand_id=administrator.brand_id, user_status=OperatorInfo.ACTIVATED, status=True).order_by('-pk')
  87. count = optors.count()
  88. optors, left = pagination(optors, page, num)
  89. optors = [optor.data for optor in optors]
  90. return response(200, 'Get Operator List Success', u'获取操作员列表成功', {
  91. 'optors': optors,
  92. 'count': count,
  93. 'left': left,
  94. })