|
# -*- coding: utf-8 -*-
from __future__ import division
from django.conf import settings
from django.db import transaction
from django_logit import logit
from django_response import response
from paginator import pagination
from mch.models import BrandInfo, DistributorInfo, SaleclerkInfo
from utils.error.errno_utils import ProductDistributorStatusCode, SaleclerkStatusCode
@logit
def distributor_list(request):
page = request.POST.get('page', 1)
num = request.POST.get('num', 20)
distributors = DistributorInfo.objects.filter(status=True).order_by('distributor_name')
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,
})
@logit
def salesman_detail(request):
user_id = request.POST.get('user_id', '')
try:
salesman = SaleclerkInfo.objects.get(user_id=user_id, status=True)
except SaleclerkInfo.DoesNotExist:
return response(SaleclerkStatusCode.CLERK_NOT_FOUND)
return response(200, 'Get Salesman Detail Success', u'获取销售员信息成功', data=salesman.data)
@logit
@transaction.atomic
def salesman_register(request):
""" 店员授权信息提交 """
user_id = request.POST.get('user_id', '')
brand_id = request.POST.get('brand_id') or settings.KODO_DEFAULT_BRAND_ID
distributor_id = request.POST.get('distributor_id', '')
unionid = request.POST.get('unionid', '')
openid = request.POST.get('openid', '')
phone = request.POST.get('phone', '')
if SaleclerkInfo.objects.filter(clerk_phone=phone).exclude(unionid=unionid).exists():
return response(SaleclerkStatusCode.CLERK_PHONE_ALREADY_EXISTS)
try:
distributor = DistributorInfo.objects.get(distributor_id=distributor_id)
except DistributorInfo.DoesNotExist:
return response(ProductDistributorStatusCode.DISTRIBUTOR_NOT_FOUND)
fields = {
'distributor_id': distributor_id,
'user_id': user_id,
'distributor_name': distributor.distributor_name,
'clerk_name': request.POST.get('name', ''),
'clerk_sex': int(request.POST.get('sex', 1)),
'clerk_phone': phone,
'openid': openid,
'user_status': SaleclerkInfo.UNVERIFIED,
}
clerk, _ = SaleclerkInfo.objects.update_or_create(brand_id=brand_id, unionid=unionid, defaults=fields)
return response(200, 'Submit Success', u'提交成功', {})
|