|
# -*- coding: utf-8 -*-
from django.conf import settings
from django.db import transaction
from django.shortcuts import render
from django_logit import logit
from django_response import response
from json_render import json_render
from account.models import FranchiserInfo, LensmanInfo, SaleclerkInfo, TourGuideInfo
from utils.error.errno_utils import FranchiserStatusCode, SaleclerkStatusCode
from utils.redis.connect import r
def lensman_oauth(request):
lensman_type = int(request.GET.get('lt') or 0)
unionid = request.GET.get('unionid', '')
try:
lensman = LensmanInfo.objects.get(unionid=unionid)
except LensmanInfo.DoesNotExist:
lensman = None
return render(request, 'page/lensman_oauth.html', {
'lensman_type': lensman_type,
'lensman_info': lensman and lensman.data(lensman_type),
'modified': bool((not lensman) or (lensman and lensman.modified(lensman_type))), # 是否可以更改信息
})
def tourguide_oauth(request):
unionid = request.GET.get('unionid', '')
try:
tourguide = TourGuideInfo.objects.get(unionid=unionid)
except TourGuideInfo.DoesNotExist:
tourguide = None
return render(request, 'page/tourguide_oauth.html', {
'tourguide_info': tourguide and tourguide.data,
'modified': bool((not tourguide) or (tourguide and tourguide.modified)), # 是否可以更改信息
})
def login_qrcode(request):
lensman_type = int(request.GET.get('lt') or 0)
unionid = request.GET.get('unionid', '')
data = {
'lensman_type': lensman_type,
'unionid': unionid,
'token': r.token(unionid)
}
return json_render(request, 'page/login_qrcode.html', data)
def clerk_oauth(request):
unionid = request.GET.get('unionid', '')
chisers = FranchiserInfo.objects.filter(status=True)
chisers = [chiser.data for chiser in chisers]
try:
clerk = SaleclerkInfo.objects.get(unionid=unionid)
except SaleclerkInfo.DoesNotExist:
clerk = None
return render(request, 'page/clerk_oauth.html', {
'domain': settings.DOMAIN,
'chisers': chisers,
'clerk_info': clerk and clerk.data,
'modified': bool((not clerk) or (clerk and clerk.user_status in [SaleclerkInfo.UNVERIFIED, SaleclerkInfo.REFUSED])), # 是否可以更改信息
})
@logit
@transaction.atomic
def clerk_submit_api(request):
""" 店员授权信息提交 """
unionid = request.POST.get('unionid', '')
openid = request.POST.get('openid', '')
phone = request.POST.get('phone', '')
chiser = request.POST.get('chiser', '')
if SaleclerkInfo.objects.filter(clerk_phone=phone).exclude(unionid=unionid).exists():
return response(SaleclerkStatusCode.CLERK_PHONE_ALREADY_EXISTS)
try:
franchiser = FranchiserInfo.objects.get(franchiser_id=chiser)
except FranchiserInfo.DoesNotExist:
return response(FranchiserStatusCode.CHISER_NOT_FOUND)
fields = {
'franchiser_id': chiser,
'franchiser_name': franchiser.franchiser_name,
'clerk_name': request.POST.get('name', ''),
'clerk_sex': int(request.POST.get('sex', 1)),
'clerk_phone': phone,
'openid': openid,
'user_status': SaleclerkInfo.UNVERIFIED,
}
lensman, created = SaleclerkInfo.objects.select_for_update().get_or_create(unionid=unionid, defaults=fields)
# 状态为 UNVERIFIED 的允许修改, 其他需要登录摄影师 APP 进行信息的修改
if lensman.user_status not in [SaleclerkInfo.UNVERIFIED, SaleclerkInfo.REFUSED]:
return response(SaleclerkInfo.LENSMAN_ALREADY_NOT_UNVERIFIED)
if not created:
for key, value in fields.iteritems():
setattr(lensman, key, value)
lensman.save()
return response(200, 'Submit Success', u'提交成功', {})
|