暂无描述

admin_views.py 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. # -*- coding: utf-8 -*-
  2. from __future__ import division
  3. from django.conf import settings
  4. from django.db import transaction
  5. from django_logit import logit
  6. from django_response import response
  7. from TimeConvert import TimeConvert as tc
  8. from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo
  9. from utils.error.errno_utils import (AdministratorStatusCode, ProductBrandStatusCode, ProductCouponStatusCode,
  10. ProductMachineStatusCode)
  11. WECHAT = settings.WECHAT
  12. @logit
  13. def querysn(request):
  14. brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
  15. admin_id = request.POST.get('admin_id', '')
  16. model_id = request.POST.get('model_id', '')
  17. sn = request.POST.get('sn', '')
  18. if brand_id != settings.KODO_DEFAULT_BRAND_ID:
  19. return response(ProductBrandStatusCode.BRAND_NOT_MATCH)
  20. if not AdministratorInfo.objects.filter(admin_id=admin_id, admin_type=AdministratorInfo.MAINTENANCE, user_status=AdministratorInfo.ACTIVATED, status=True).exists():
  21. return response(AdministratorStatusCode.MAINTENANCE_NOT_FOUND)
  22. log = ConsumeInfoSubmitLogInfo.objects.filter(brand_id=brand_id, model_id=model_id, serialNo=sn, submit_during_activity=True).order_by('has_used', '-pk').first()
  23. if not log:
  24. log = ConsumeInfoSubmitLogInfo.objects.filter(brand_id=brand_id, model_id=model_id, serialNo=sn).order_by('-submit_during_activity', 'dupload').first()
  25. if not log:
  26. return response(ProductMachineStatusCode.SN_NOT_FOUND)
  27. return response(200, 'Query SN Success', u'查询序列号成功', data=log.data)
  28. @logit
  29. def queryusedsn(request):
  30. brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
  31. admin_id = request.POST.get('admin_id', '')
  32. if brand_id != settings.KODO_DEFAULT_BRAND_ID:
  33. return response(ProductBrandStatusCode.BRAND_NOT_MATCH)
  34. if not AdministratorInfo.objects.filter(admin_id=admin_id, admin_type=AdministratorInfo.MAINTENANCE, user_status=AdministratorInfo.ACTIVATED, status=True).exists():
  35. return response(AdministratorStatusCode.MAINTENANCE_NOT_FOUND)
  36. logs = ConsumeInfoSubmitLogInfo.objects.filter(brand_id=brand_id, admin_id=admin_id, has_used=True).order_by('-used_at')
  37. logs = [log.data for log in logs]
  38. return response(200, 'Query Used SN Success', u'查询核销序列号成功', data={
  39. 'logs': logs,
  40. })
  41. @logit
  42. @transaction.atomic
  43. def usecoupon(request):
  44. brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
  45. admin_id = request.POST.get('admin_id', '')
  46. model_id = request.POST.get('model_id', '')
  47. sn = request.POST.get('sn', '')
  48. if brand_id != settings.KODO_DEFAULT_BRAND_ID:
  49. return response(ProductBrandStatusCode.BRAND_NOT_MATCH)
  50. if not AdministratorInfo.objects.filter(
  51. admin_id=admin_id,
  52. admin_type=AdministratorInfo.MAINTENANCE,
  53. user_status=AdministratorInfo.ACTIVATED,
  54. status=True
  55. ).exists():
  56. return response(AdministratorStatusCode.MAINTENANCE_NOT_FOUND)
  57. log = ConsumeInfoSubmitLogInfo.objects.filter(
  58. brand_id=brand_id,
  59. model_id=model_id,
  60. serialNo=sn,
  61. submit_during_activity=True,
  62. has_used=False
  63. ).first()
  64. if not log:
  65. return response(ProductMachineStatusCode.SN_NOT_FOUND)
  66. logdata = log.data
  67. if logdata.get('final_coupon_info', {}).get('coupon_has_expired', True):
  68. return response(ProductCouponStatusCode.COUPON_HAS_EXPIRED)
  69. log.has_used = True
  70. log.used_at = tc.utc_datetime()
  71. log.save()
  72. return response(200, 'Use Coupon Success', u'核销优惠券成功')