销售红包

oauth_views.py 2.5KB

    # -*- coding: utf-8 -*- from __future__ import division from django.conf import settings from django.db import transaction from django.shortcuts import render from django_logit import logit from account.models import FranchiserInfo, SaleclerkInfo from utils.error.errno_utils import FranchiserStatusCode, SaleclerkStatusCode from utils.error.response_utils import response 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'提交成功', {})