No Description

distributor_views.py 4.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. # -*- coding: utf-8 -*-
  2. from __future__ import division
  3. from django_logit import logit
  4. from django_models_ext import ProvinceShortModelMixin
  5. from django_response import response
  6. from paginator import pagination
  7. from mch.models import AdministratorInfo, DistributorInfo
  8. from utils.error.errno_utils import AdministratorStatusCode, ProductDistributorStatusCode
  9. @logit
  10. def distributor_add(request):
  11. distributor_name = request.POST.get('distributor_name', '')
  12. distributor_short_name = request.POST.get('distributor_short_name', '')
  13. province_code = request.POST.get('province_code', '')
  14. province_name = request.POST.get('province_name', '')
  15. sr_id = request.POST.get('sr_id', '')
  16. # 如果省份编码不存在,而省份名称存在
  17. if not province_code and province_name:
  18. province_code = ProvinceShortModelMixin.PROVINCE_NAME_CODE_DICT.get(province_name, '')
  19. admin_id = request.session.get('admin_id')
  20. try:
  21. administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
  22. except AdministratorInfo.DoesNotExist:
  23. return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
  24. DistributorInfo.objects.create(
  25. brand_id=administrator.brand_id,
  26. distributor_name=distributor_name,
  27. distributor_short_name=distributor_short_name,
  28. distributor_province_code=province_code,
  29. distributor_province_name=province_name,
  30. sr_id=sr_id,
  31. )
  32. return response(200, 'Distributor Add Success', u'经销商添加成功')
  33. @logit
  34. def distributor_delete(request):
  35. distributor_id = request.POST.get('distributor_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. distributor = DistributorInfo.objects.get(brand_id=administrator.brand_id, distributor_id=distributor_id, status=True)
  43. except DistributorInfo.DoesNotExist:
  44. return response(ProductDistributorStatusCode.DISTRIBUTOR_NOT_FOUND)
  45. distributor.status = False
  46. distributor.save()
  47. return response(200, 'Distributor Delete Success', u'经销商删除成功')
  48. @logit
  49. def distributor_update(request):
  50. distributor_id = request.POST.get('distributor_id', '')
  51. distributor_name = request.POST.get('distributor_name', '')
  52. distributor_short_name = request.POST.get('distributor_short_name', '')
  53. province_code = request.POST.get('province_code', '')
  54. province_name = request.POST.get('province_name', '')
  55. admin_id = request.session.get('admin_id')
  56. sr_id = request.POST.get('sr_id', '')
  57. try:
  58. administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
  59. except AdministratorInfo.DoesNotExist:
  60. return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
  61. try:
  62. distributor = DistributorInfo.objects.get(brand_id=administrator.brand_id, distributor_id=distributor_id, status=True)
  63. except DistributorInfo.DoesNotExist:
  64. return response(ProductDistributorStatusCode.DISTRIBUTOR_NOT_FOUND)
  65. if distributor_name:
  66. distributor.distributor_name = distributor_name
  67. if distributor_short_name:
  68. distributor.distributor_short_name = distributor_short_name
  69. if province_code:
  70. distributor.distributor_province_code = province_code
  71. if province_name:
  72. distributor.distributor_province_name = province_name
  73. # 如果省份编码不存在,而省份名称存在
  74. if not province_code:
  75. distributor.distributor_province_code = ProvinceShortModelMixin.PROVINCE_NAME_CODE_DICT.get(province_name, '')
  76. distributor.sr_id = sr_id
  77. distributor.save()
  78. return response(200, 'Distributor Update Success', u'经销商更新成功')
  79. @logit
  80. def distributor_list(request):
  81. page = request.POST.get('page', 1)
  82. num = request.POST.get('num', 20)
  83. admin_id = request.session.get('admin_id')
  84. try:
  85. administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
  86. except AdministratorInfo.DoesNotExist:
  87. return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
  88. distributors = DistributorInfo.objects.filter(brand_id=administrator.brand_id, status=True).order_by('-pk')
  89. count = distributors.count()
  90. distributors, left = pagination(distributors, page, num)
  91. distributors = [distributor.admindata for distributor in distributors]
  92. return response(200, 'Get Distributor List Success', u'获取经销商列表成功', {
  93. 'distributors': distributors,
  94. 'count': count,
  95. 'left': left,
  96. })