123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- 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 TimeConvert import TimeConvert as tc
- from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo
- from utils.error.errno_utils import (AdministratorStatusCode, ProductBrandStatusCode, ProductCouponStatusCode,
- ProductMachineStatusCode)
- WECHAT = settings.WECHAT
- @logit
- def querysn(request):
- brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
- admin_id = request.POST.get('admin_id', '')
- model_id = request.POST.get('model_id', '')
- sn = request.POST.get('sn', '')
- if brand_id != settings.KODO_DEFAULT_BRAND_ID:
- return response(ProductBrandStatusCode.BRAND_NOT_MATCH)
- if not AdministratorInfo.objects.filter(admin_id=admin_id, admin_type=AdministratorInfo.MAINTENANCE, user_status=AdministratorInfo.ACTIVATED, status=True).exists():
- return response(AdministratorStatusCode.MAINTENANCE_NOT_FOUND)
- log = ConsumeInfoSubmitLogInfo.objects.filter(brand_id=brand_id, model_id=model_id, serialNo=sn, submit_during_activity=True).order_by('has_used', '-pk').first()
- if not log:
- log = ConsumeInfoSubmitLogInfo.objects.filter(brand_id=brand_id, model_id=model_id, serialNo=sn).order_by('-submit_during_activity', 'dupload').first()
- if not log:
- return response(ProductMachineStatusCode.SN_NOT_FOUND)
- return response(200, 'Query SN Success', u'查询序列号成功', data=log.data)
- @logit
- def queryusedsn(request):
- brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
- admin_id = request.POST.get('admin_id', '')
- if brand_id != settings.KODO_DEFAULT_BRAND_ID:
- return response(ProductBrandStatusCode.BRAND_NOT_MATCH)
- if not AdministratorInfo.objects.filter(admin_id=admin_id, admin_type=AdministratorInfo.MAINTENANCE, user_status=AdministratorInfo.ACTIVATED, status=True).exists():
- return response(AdministratorStatusCode.MAINTENANCE_NOT_FOUND)
- logs = ConsumeInfoSubmitLogInfo.objects.filter(brand_id=brand_id, admin_id=admin_id, has_used=True).order_by('-used_at')
- logs = [log.data for log in logs]
- return response(200, 'Query Used SN Success', u'查询核销序列号成功', data={
- 'logs': logs,
- })
- @logit
- @transaction.atomic
- def usecoupon(request):
- brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
- admin_id = request.POST.get('admin_id', '')
- model_id = request.POST.get('model_id', '')
- sn = request.POST.get('sn', '')
- if brand_id != settings.KODO_DEFAULT_BRAND_ID:
- return response(ProductBrandStatusCode.BRAND_NOT_MATCH)
- if not AdministratorInfo.objects.filter(
- admin_id=admin_id,
- admin_type=AdministratorInfo.MAINTENANCE,
- user_status=AdministratorInfo.ACTIVATED,
- status=True
- ).exists():
- return response(AdministratorStatusCode.MAINTENANCE_NOT_FOUND)
- log = ConsumeInfoSubmitLogInfo.objects.filter(
- brand_id=brand_id,
- model_id=model_id,
- serialNo=sn,
- submit_during_activity=True,
- has_used=False
- ).first()
- if not log:
- return response(ProductMachineStatusCode.SN_NOT_FOUND)
- logdata = log.data
- if logdata.get('final_coupon_info', {}).get('coupon_has_expired', True):
- return response(ProductCouponStatusCode.COUPON_HAS_EXPIRED)
- log.has_used = True
- log.used_at = tc.utc_datetime()
- log.save()
- return response(200, 'Use Coupon Success', u'核销优惠券成功')
|