説明なし

clerk_views.py 4.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. # -*- coding: utf-8 -*-
  2. from __future__ import division
  3. from django.db import transaction
  4. from django_logit import logit
  5. from django_response import response
  6. from paginator import pagination
  7. from mch.models import AdministratorInfo, DistributorInfo, SaleclerkInfo
  8. from utils.error.errno_utils import AdministratorStatusCode, ProductDistributorStatusCode, SaleclerkStatusCode
  9. @logit
  10. def clerk_add(request):
  11. distributor_id = request.POST.get('distributor_id', '')
  12. clerk_name = request.POST.get('clerk_name', '')
  13. clerk_phone = request.POST.get('clerk_phone', '')
  14. admin_id = request.session.get('admin_id')
  15. try:
  16. administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
  17. except AdministratorInfo.DoesNotExist:
  18. return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
  19. try:
  20. distributor = DistributorInfo.objects.get(distributor_id=distributor_id, status=True)
  21. except DistributorInfo.DoesNotExist:
  22. return response(ProductDistributorStatusCode.DISTRIBUTOR_NOT_FOUND)
  23. SaleclerkInfo.objects.create(
  24. brand_id=administrator.brand_id,
  25. distributor_id=distributor_id,
  26. distributor_name=distributor.distributor_name,
  27. clerk_name=clerk_name,
  28. clerk_phone=clerk_phone,
  29. )
  30. return response(200, 'Clerk Add Success', u'销售员添加成功')
  31. @logit
  32. @transaction.atomic
  33. def clerk_delete(request):
  34. distributor_id = request.POST.get('distributor_id', '')
  35. clerk_id = request.POST.get('clerk_id', '')
  36. admin_id = request.session.get('admin_id')
  37. try:
  38. administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
  39. except AdministratorInfo.DoesNotExist:
  40. return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
  41. try:
  42. clerk = SaleclerkInfo.objects.select_for_update().get(brand_id=administrator.brand_id, clerk_id=clerk_id, status=True)
  43. except SaleclerkInfo.DoesNotExist:
  44. return response(SaleclerkStatusCode.CLERK_NOT_FOUND)
  45. clerk.user_status = SaleclerkInfo.UNVERIFIED
  46. clerk.status = False
  47. clerk.save()
  48. return response(200, 'Clerk Delete Success', u'销售员删除成功')
  49. @logit
  50. @transaction.atomic
  51. def clerk_update(request):
  52. distributor_id = request.POST.get('distributor_id', '')
  53. clerk_id = request.POST.get('clerk_id', '')
  54. clerk_name = request.POST.get('clerk_name', '')
  55. clerk_phone = request.POST.get('clerk_phone', '')
  56. is_auth = request.POST.get('is_auth', '0') # 1 为已授权,0 为未授权
  57. admin_id = request.session.get('admin_id')
  58. try:
  59. administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
  60. except AdministratorInfo.DoesNotExist:
  61. return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
  62. try:
  63. clerk = SaleclerkInfo.objects.select_for_update().get(brand_id=administrator.brand_id, clerk_id=clerk_id, status=True)
  64. except SaleclerkInfo.DoesNotExist:
  65. return response(SaleclerkStatusCode.CLERK_NOT_FOUND)
  66. if clerk_name:
  67. clerk.clerk_name = clerk_name
  68. if clerk_phone:
  69. clerk.clerk_phone = clerk_phone
  70. if is_auth:
  71. clerk.user_status = clerk.is_auth = bool(int(is_auth))
  72. clerk.save()
  73. return response(200, 'Clerk Update Success', u'销售员更新成功')
  74. @logit
  75. def clerk_list(request):
  76. distributor_id = request.POST.get('distributor_id', '')
  77. page = request.POST.get('page', 1)
  78. num = request.POST.get('num', 20)
  79. admin_id = request.session.get('admin_id')
  80. try:
  81. administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
  82. except AdministratorInfo.DoesNotExist:
  83. return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
  84. clerks = SaleclerkInfo.objects.filter(brand_id=administrator.brand_id, status=True).order_by('-pk')
  85. if distributor_id:
  86. clerks = clerks.filter(distributor_id=distributor_id)
  87. count = clerks.count()
  88. clerks, left = pagination(clerks, page, num)
  89. clerks = [clerk.admindata for clerk in clerks]
  90. return response(200, 'Get Clerk List Success', u'获取销售员列表成功', {
  91. 'clerks': clerks,
  92. 'count': count,
  93. 'left': left,
  94. })