暂无描述

sale_views.py 4.7KB

    # -*- coding: utf-8 -*- from __future__ import division from django.conf import settings from django.shortcuts import render from django_logit import logit from django_response import response from paginator import pagination from account.models import SaleclerkInfo, UserInfo from integral.models import SaleclerkIntegralIncomeExpensesInfo, SaleclerkSubmitLogInfo from mch.models import ModelInfo from product.models import ProductModelInfo from utils.error.errno_utils import ProductModelStatusCode, SaleclerkStatusCode def clerk_sale_oauth(request): unionid = request.GET.get('unionid', '') models = ProductModelInfo.objects.filter(status=True) models = [model.data for model in models] try: clerk = SaleclerkInfo.objects.get(unionid=unionid) except SaleclerkInfo.DoesNotExist: clerk = None return render(request, 'page/clerk_sale.html', { 'domain': settings.DOMAIN, 'models': models, 'clerk_info': clerk and clerk.data, }) @logit def clerk_sale_submit_api(request): user_id = request.POST.get('user_id', '') iv = request.POST.get('iv', '') encryptedData = request.POST.get('encryptedData', '') lat = float(request.POST.get('lat', 0)) lon = float(request.POST.get('lon', 0)) modelID = request.POST.get('ModelID', '') serialNo = request.POST.get('SerialNo', '') verifyResult = request.POST.get('verifyResult', '') consumer_name = request.POST.get('consumer_name', '') consumer_phone = request.POST.get('consumer_phone', '') file_path = request.POST.get('file_path', '') try: user = UserInfo.objects.get(user_id=user_id, status=True) except UserInfo.DoesNotExist: return response(SaleclerkStatusCode.CLERK_NOT_FOUND) try: clerk = SaleclerkInfo.objects.get(unionid=user.unionid, status=True) except SaleclerkInfo.DoesNotExist: return response(SaleclerkStatusCode.CLERK_NOT_FOUND) # 店员提交记录 ssli = SaleclerkSubmitLogInfo.objects.create( franchiser_id=clerk.franchiser_id, clerk_id=clerk.clerk_id, code=serialNo, consumer_name=consumer_name, consumer_phone=consumer_phone, lat=lat, lon=lon, image=file_path, test_user=clerk.test_user, ) try: sci = SaleclerkIntegralIncomeExpensesInfo.objects.get(code=serialNo, status=True) except SaleclerkIntegralIncomeExpensesInfo.DoesNotExist: sci = None if sci: ssli.dupload = True ssli.save() try: clerk = SaleclerkInfo.objects.get(clerk_id=sci.clerk_id, status=True) except SaleclerkInfo.DoesNotExist: clerk = None return response(SaleclerkStatusCode.DUPLICATE_SUBMIT, data={ 'franchiser_name': clerk.franchiser_name, 'clerk_name': clerk.clerk_name, } if clerk else {}) # 店员积分 try: model = ModelInfo.objects.get(pk=modelID) except ModelInfo.DoesNotExist: return response(ProductModelStatusCode.MODEL_NOT_FOUND) integral = model.integral clerk.integral += integral clerk.total_integral += integral clerk.save() # 店员积分记录 SaleclerkIntegralIncomeExpensesInfo.objects.create( franchiser_id=clerk.franchiser_id, clerk_id=clerk.clerk_id, type=SaleclerkIntegralIncomeExpensesInfo.INCOME, model_id=model.model_id, model_name=model.model_name, code=serialNo, consumer_name=consumer_name, consumer_phone=consumer_phone, lat=lat, lon=lon, image=file_path, integral=integral, left_integral=clerk.total_integral, test_user=clerk.test_user, ) return response(200, data={ 'integral': integral, 'total_integral': clerk.integral, }) @logit def clerk_integral_list_api(request): user_id = request.POST.get('user_id', '') page = int(request.POST.get('page', 1)) num = int(request.POST.get('num', settings.GROUP_NUM_PER_PAGE)) try: user = UserInfo.objects.get(user_id=user_id, status=True) except UserInfo.DoesNotExist: return response(SaleclerkStatusCode.CLERK_NOT_FOUND) try: clerk = SaleclerkInfo.objects.get(unionid=user.unionid, status=True) except SaleclerkInfo.DoesNotExist: return response(SaleclerkStatusCode.CLERK_NOT_FOUND) integrals = SaleclerkIntegralIncomeExpensesInfo.objects.filter(clerk_id=clerk.clerk_id).order_by('-pk') integrals, left = pagination(integrals, page, num) integrals = [integral.data for integral in integrals] return response(200, data={ 'integrals': integrals, 'total_integral': clerk.integral, })