|
# -*- coding: utf-8 -*-
from __future__ import division
from django_logit import logit
from django_models_ext import ProvinceShortModelMixin
from django_response import response
from paginator import pagination
from mch.models import AdministratorInfo, DistributorInfo
from utils.error.errno_utils import AdministratorStatusCode, ProductDistributorStatusCode
@logit
def distributor_add(request):
distributor_name = request.POST.get('distributor_name', '')
distributor_short_name = request.POST.get('distributor_short_name', '')
province_code = request.POST.get('province_code', '')
province_name = request.POST.get('province_name', '')
sr_id = request.POST.get('sr_id', '')
# 如果省份编码不存在,而省份名称存在
if not province_code and province_name:
province_code = ProvinceShortModelMixin.PROVINCE_NAME_CODE_DICT.get(province_name, '')
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)
DistributorInfo.objects.create(
brand_id=administrator.brand_id,
distributor_name=distributor_name,
distributor_short_name=distributor_short_name,
distributor_province_code=province_code,
distributor_province_name=province_name,
sr_id=sr_id,
)
return response(200, 'Distributor Add Success', u'经销商添加成功')
@logit
def distributor_delete(request):
distributor_id = request.POST.get('distributor_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:
distributor = DistributorInfo.objects.get(brand_id=administrator.brand_id, distributor_id=distributor_id, status=True)
except DistributorInfo.DoesNotExist:
return response(ProductDistributorStatusCode.DISTRIBUTOR_NOT_FOUND)
distributor.status = False
distributor.save()
return response(200, 'Distributor Delete Success', u'经销商删除成功')
@logit
def distributor_update(request):
distributor_id = request.POST.get('distributor_id', '')
distributor_name = request.POST.get('distributor_name', '')
distributor_short_name = request.POST.get('distributor_short_name', '')
province_code = request.POST.get('province_code', '')
province_name = request.POST.get('province_name', '')
admin_id = request.session.get('admin_id')
sr_id = request.POST.get('sr_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:
distributor = DistributorInfo.objects.get(brand_id=administrator.brand_id, distributor_id=distributor_id, status=True)
except DistributorInfo.DoesNotExist:
return response(ProductDistributorStatusCode.DISTRIBUTOR_NOT_FOUND)
if distributor_name:
distributor.distributor_name = distributor_name
if distributor_short_name:
distributor.distributor_short_name = distributor_short_name
if province_code:
distributor.distributor_province_code = province_code
if province_name:
distributor.distributor_province_name = province_name
# 如果省份编码不存在,而省份名称存在
if not province_code:
distributor.distributor_province_code = ProvinceShortModelMixin.PROVINCE_NAME_CODE_DICT.get(province_name, '')
distributor.sr_id = sr_id
distributor.save()
return response(200, 'Distributor Update Success', u'经销商更新成功')
@logit
def distributor_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)
distributors = DistributorInfo.objects.filter(brand_id=administrator.brand_id, status=True).order_by('-pk')
count = distributors.count()
distributors, left = pagination(distributors, page, num)
distributors = [distributor.admindata for distributor in distributors]
return response(200, 'Get Distributor List Success', u'获取经销商列表成功', {
'distributors': distributors,
'count': count,
'left': left,
})
|