暂无描述

clerk_views.py 4.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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. brand_name=administrator.brand_name,
  26. distributor_id=distributor_id,
  27. distributor_name=distributor.distributor_name,
  28. clerk_name=clerk_name,
  29. clerk_phone=clerk_phone,
  30. )
  31. return response(200, 'Clerk Add Success', u'销售员添加成功')
  32. @logit
  33. @transaction.atomic
  34. def clerk_delete(request):
  35. distributor_id = request.POST.get('distributor_id', '')
  36. clerk_id = request.POST.get('clerk_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. clerk = SaleclerkInfo.objects.select_for_update().get(brand_id=administrator.brand_id, clerk_id=clerk_id, status=True)
  44. except SaleclerkInfo.DoesNotExist:
  45. return response(SaleclerkStatusCode.CLERK_NOT_FOUND)
  46. clerk.user_status = SaleclerkInfo.UNVERIFIED
  47. clerk.status = False
  48. clerk.save()
  49. return response(200, 'Clerk Delete Success', u'销售员删除成功')
  50. @logit
  51. @transaction.atomic
  52. def clerk_update(request):
  53. distributor_id = request.POST.get('distributor_id', '')
  54. clerk_id = request.POST.get('clerk_id', '')
  55. clerk_name = request.POST.get('clerk_name', '')
  56. clerk_phone = request.POST.get('clerk_phone', '')
  57. is_auth = request.POST.get('is_auth', '0') # 1 为已授权,0 为未授权
  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. clerk = SaleclerkInfo.objects.select_for_update().get(brand_id=administrator.brand_id, clerk_id=clerk_id, status=True)
  65. except SaleclerkInfo.DoesNotExist:
  66. return response(SaleclerkStatusCode.CLERK_NOT_FOUND)
  67. if clerk_name:
  68. clerk.clerk_name = clerk_name
  69. if clerk_phone:
  70. clerk.clerk_phone = clerk_phone
  71. if is_auth:
  72. clerk.user_status = clerk.is_auth = bool(int(is_auth))
  73. clerk.save()
  74. return response(200, 'Clerk Update Success', u'销售员更新成功')
  75. @logit
  76. def clerk_list(request):
  77. distributor_id = request.POST.get('distributor_id', '')
  78. page = request.POST.get('page', 1)
  79. num = request.POST.get('num', 20)
  80. admin_id = request.session.get('admin_id')
  81. try:
  82. administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
  83. except AdministratorInfo.DoesNotExist:
  84. return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
  85. clerks = SaleclerkInfo.objects.filter(brand_id=administrator.brand_id, status=True).order_by('-pk')
  86. if distributor_id:
  87. clerks = clerks.filter(distributor_id=distributor_id)
  88. count = clerks.count()
  89. clerks, left = pagination(clerks, page, num)
  90. clerks = [clerk.admindata for clerk in clerks]
  91. return response(200, 'Get Clerk List Success', u'获取销售员列表成功', {
  92. 'clerks': clerks,
  93. 'count': count,
  94. 'left': left,
  95. })