IcloudMeal.py 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. # -*- coding: utf-8 -*-
  2. """
  3. @Author : peng
  4. @Time : 2023-6-7 18:26:35
  5. @File :IcloudMeal.py
  6. """
  7. from django.http import HttpResponse
  8. from django.views import View
  9. from Model.models import ICloudStoreMeal, Pay_Type
  10. from Object.RedisObject import RedisObject
  11. from Object.ResponseObject import ResponseObject
  12. from Object.TokenObject import TokenObject
  13. from Ansjer.config import ACCESS_KEY_ID, SECRET_ACCESS_KEY, REGION_NAME, SERVER_DOMAIN
  14. class UserRelatedView(View):
  15. def get(self, request, *args, **kwargs):
  16. request.encoding = 'utf-8'
  17. operation = kwargs.get('operation')
  18. return self.validation(request.GET, operation, request)
  19. def post(self, request, *args, **kwargs):
  20. request.encoding = 'utf-8'
  21. operation = kwargs.get('operation')
  22. return self.validation(request.POST, operation, request)
  23. def validation(self, request_dict, operation, request):
  24. response = ResponseObject()
  25. tko = TokenObject(request.META.get('HTTP_AUTHORIZATION'))
  26. response.lang = tko.lang
  27. user_id = tko.userID
  28. if tko.code != 0:
  29. return response.json(tko.code)
  30. if operation == 'getMeal': # 获取套餐
  31. return self.get_meal(request_dict, response, user_id)
  32. elif operation == 'createPayOrder': # 购买订单
  33. return self.create_pay_order(request_dict, response)
  34. else:
  35. return response.json(404)
  36. @staticmethod
  37. def get_meal(request_dict, response, user_id):
  38. """
  39. 获取套餐
  40. @param request_dict: 请求参数
  41. @request_dict lang: 语言
  42. @param response: 响应对象
  43. @return: response
  44. """
  45. lang = request_dict.get('lang', 'en')
  46. cloud_drive_qs = ICloudStoreMeal.objects.filter(lang__lang=lang).values('currency', 'symbol', 'price', 'expire',
  47. 'pay_type',
  48. 'size', 'bucket_id', 'lang__title',
  49. 'lang__content', 'sort').order_by(
  50. 'sort')
  51. try:
  52. store_list = list(cloud_drive_qs)
  53. for cloud_drive in store_list:
  54. cloud_drive['title'] = cloud_drive.pop('lang__title')
  55. cloud_drive['content'] = cloud_drive.pop('lang__content')
  56. pay_type_qs = Pay_Type.objects.filter(icloudstoremeal=cloud_drive['pay_type']).values("id", "payment")
  57. cloud_drive['pay_type'] = list(pay_type_qs)
  58. return response.json(0, store_list)
  59. except Exception as e:
  60. print(e)
  61. return response.json(500)
  62. @staticmethod
  63. def create_pay_order(request_dict, response):
  64. """
  65. 购买订单
  66. @param request_dict: 请求参数
  67. @request_dict serial_number: 序列号
  68. @param response: 响应对象
  69. @return: response
  70. """
  71. uuid_number = request_dict.get('uuid', None)
  72. if not uuid_number:
  73. return response.json(444, {'error param': 'uuid'})
  74. try:
  75. return response.json(0)
  76. except Exception as e:
  77. print(e)
  78. return response.json(500)