| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- from django.conf import settings
- from django.db import transaction
- from django.shortcuts import render
- from django_response import response
- from json_render import json_render
- from logit import logit
- 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)
-
- 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'提交成功', {})
|