CouponController.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import base64
  4. import json
  5. import os
  6. import time
  7. from django.views.generic.base import View
  8. from Model.models import CouponModel
  9. from Object.ResponseObject import ResponseObject
  10. from Object.TokenObject import TokenObject
  11. from django.db.models import Q, F, Count
  12. # 优惠券
  13. class CouponView(View):
  14. def get(self, request, *args, **kwargs):
  15. request.encoding = 'utf-8'
  16. operation = kwargs.get('operation')
  17. return self.validation(request.GET, request, operation)
  18. def post(self, request, *args, **kwargs):
  19. request.encoding = 'utf-8'
  20. operation = kwargs.get('operation')
  21. return self.validation(request.POST, request, operation)
  22. def validation(self, request_dict, request, operation):
  23. response = ResponseObject()
  24. if operation is None:
  25. return response.json(444, 'error path')
  26. else:
  27. token = request_dict.get('token', None)
  28. tko = TokenObject(token)
  29. response.lang = tko.lang
  30. if tko.code != 0:
  31. return response.json(tko.code)
  32. userID = tko.userID
  33. if operation == 'UserCoupon': #用户优惠券
  34. return self.query_user_coupon(request_dict, userID, response)
  35. else:
  36. return response.json(414)
  37. def query_user_coupon(self, request_dict, userID, response): #用户优惠券列表
  38. nowTime = int(time.time())
  39. couponObj = CouponModel.objects.filter(userID_id=userID,use_status=0,distributeTime__lte=nowTime,
  40. valid_time__gt=nowTime).annotate(coupon_id=F('id')).values(
  41. "coupon_id","type","coupon_discount")
  42. result = {
  43. 'count':couponObj.count(),
  44. 'couponList':list(couponObj),
  45. }
  46. return response.json(0, result)