CloudServiceController.py 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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. from django.views import View
  10. from Model.models import CouponCombo
  11. from Object.ResponseObject import ResponseObject
  12. from Object.TokenObject import TokenObject
  13. class CloudServiceController(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. token = TokenObject(request.META.get('HTTP_AUTHORIZATION'))
  24. lang = request_dict.get('lang', token.lang)
  25. response = ResponseObject(lang)
  26. if token.code != 0:
  27. return response.json(token.code)
  28. user_id = token.userID
  29. if operation == 'save-photo':
  30. return self.get_combo_list_by_coupon(user_id, response)
  31. else:
  32. return response.json(404)
  33. @classmethod
  34. def get_combo_list_by_coupon(cls, request_dict, response):
  35. """
  36. 根据优惠券获取套餐列表
  37. @param request_dict: couponId 优惠券ID
  38. @param request_dict: couponType 优惠券类型
  39. @param response: 响应结果
  40. """
  41. coupon_id = int(request_dict.get('couponId', 0))
  42. coupon_type = int(request_dict.get('couponType', 0))
  43. if coupon_id == 0:
  44. return response.json(444)
  45. coupon_combo_qs = CouponCombo.objects.filter(coupon_type=coupon_type, coupon_id=coupon_id).values('combo_id')
  46. combo_list = []
  47. if not coupon_combo_qs.exists():
  48. return combo_list
  49. for item in coupon_combo_qs:
  50. combo_list.append(item['combo_id'])
  51. return combo_list
  52. @classmethod
  53. def get_combo_list(cls, coupon_type, coupon_id):
  54. """
  55. 根据优惠券类型与优惠券ID,获取关联套餐列表
  56. @param coupon_type: 优惠券类型
  57. @param coupon_id: 套餐id
  58. @return: coupon_list
  59. """
  60. combo_qs = CouponCombo.objects.filter(coupon_type=coupon_type, coupon_id=coupon_id) \
  61. .values('combo_id')
  62. combo_list = []
  63. if not combo_qs.exists():
  64. return combo_list
  65. for item in combo_qs:
  66. combo_list.append(item['combo_id'])
  67. return combo_list
  68. @classmethod
  69. def get_coupon_list(cls, coupon_type, combo_id):
  70. """
  71. 根据优惠券类型与套餐ID,获取关联优惠券列表
  72. @param coupon_type: 优惠券类型
  73. @param combo_id: 套餐id
  74. @return: coupon_list
  75. """
  76. coupon_combo_qs = CouponCombo.objects.filter(coupon_type=coupon_type, combo_id=combo_id) \
  77. .values('coupon_id')
  78. coupon_list = []
  79. if not coupon_combo_qs.exists():
  80. return coupon_list
  81. for item in coupon_combo_qs:
  82. coupon_list.append(item['coupon_id'])
  83. return coupon_list