CloudServiceController.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. # -*- encoding: utf-8 -*-
  2. """
  3. @File : CloudServiceController.py
  4. @Time : 2022/12/8 10:23
  5. @Author : stephen
  6. @Email : zhangdongming@asj6.wecom.work
  7. @Software: PyCharm
  8. """
  9. import time
  10. from django.views import View
  11. from Model.models import CouponCombo, CouponModel
  12. from Object.ResponseObject import ResponseObject
  13. from Object.TokenObject import TokenObject
  14. class CloudServiceController(View):
  15. def get(self, request, *args, **kwargs):
  16. request.encoding = 'utf-8'
  17. operation = kwargs.get('operation')
  18. return self.validation(request.GET, request, operation)
  19. def post(self, request, *args, **kwargs):
  20. request.encoding = 'utf-8'
  21. operation = kwargs.get('operation')
  22. return self.validation(request.POST, request, operation)
  23. def validation(self, request_dict, request, operation):
  24. token = TokenObject(request.META.get('HTTP_AUTHORIZATION'))
  25. lang = request_dict.get('lang', token.lang)
  26. response = ResponseObject(lang)
  27. if token.code != 0:
  28. return response.json(token.code)
  29. user_id = token.userID
  30. if operation == 'save-photo':
  31. return self.get_combo_list_by_coupon(user_id, response)
  32. else:
  33. return response.json(404)
  34. @classmethod
  35. def get_combo_list_by_coupon(cls, request_dict, response):
  36. """
  37. 根据优惠券获取套餐列表
  38. @param request_dict: couponId 优惠券ID
  39. @param request_dict: couponType 优惠券类型
  40. @param response: 响应结果
  41. """
  42. coupon_id = int(request_dict.get('couponId', 0))
  43. coupon_type = int(request_dict.get('couponType', 0))
  44. if coupon_id == 0:
  45. return response.json(444)
  46. coupon_combo_qs = CouponCombo.objects.filter(coupon_type=coupon_type, coupon_id=coupon_id).values('combo_id')
  47. combo_list = []
  48. if not coupon_combo_qs.exists():
  49. return combo_list
  50. for item in coupon_combo_qs:
  51. combo_list.append(item['combo_id'])
  52. return combo_list
  53. @classmethod
  54. def get_user_coupon_list(cls, user_id):
  55. """
  56. 获取用户未使用优惠券配置ID列表
  57. @param user_id:用户id
  58. @return: coupon_qs
  59. """
  60. now_time = int(time.time())
  61. coupon_qs = CouponModel.objects.filter(
  62. userID=user_id,
  63. use_status=0,
  64. distribute_time__lte=now_time,
  65. valid_time__gt=now_time
  66. ).values('coupon_config__id')
  67. return coupon_qs
  68. @classmethod
  69. def get_combo_list(cls, coupon_type, coupon_id):
  70. """
  71. 根据优惠券类型与优惠券ID,获取关联套餐列表
  72. @param coupon_type: 优惠券类型
  73. @param coupon_id: 套餐id
  74. @return: coupon_list
  75. """
  76. combo_qs = CouponCombo.objects.filter(coupon_type=coupon_type, coupon_id=coupon_id) \
  77. .values('combo_id')
  78. combo_list = []
  79. if not combo_qs.exists():
  80. return combo_list
  81. for item in combo_qs:
  82. combo_list.append(item['combo_id'])
  83. return combo_list
  84. @classmethod
  85. def get_coupon_list(cls, coupon_type, combo_id):
  86. """
  87. 根据优惠券类型与套餐ID,获取关联优惠券列表
  88. @param coupon_type: 优惠券类型
  89. @param combo_id: 套餐id
  90. @return: coupon_list
  91. """
  92. coupon_combo_qs = CouponCombo.objects.filter(coupon_type=coupon_type, combo_id=combo_id) \
  93. .values('coupon_id')
  94. coupon_list = []
  95. if not coupon_combo_qs.exists():
  96. return coupon_list
  97. for item in coupon_combo_qs:
  98. coupon_list.append(item['coupon_id'])
  99. return coupon_list