IcloudMeal.py 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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')
  50. try:
  51. store_list = list(cloud_drive_qs)
  52. for cloud_drive in store_list:
  53. cloud_drive['title'] = cloud_drive.pop('lang__title')
  54. cloud_drive['content'] = cloud_drive.pop('lang__content')
  55. pay_type_qs = Pay_Type.objects.filter(icloudstoremeal=cloud_drive['pay_type']).values("id", "payment")
  56. cloud_drive['pay_type'] = list(pay_type_qs)
  57. return response.json(0, store_list)
  58. except Exception as e:
  59. print(e)
  60. return response.json(500)
  61. @staticmethod
  62. def create_pay_order(request_dict, response):
  63. """
  64. 购买订单
  65. @param request_dict: 请求参数
  66. @request_dict serial_number: 序列号
  67. @param response: 响应对象
  68. @return: response
  69. """
  70. uuid_number = request_dict.get('uuid', None)
  71. if not uuid_number:
  72. return response.json(444, {'error param': 'uuid'})
  73. try:
  74. return response.json(0)
  75. except Exception as e:
  76. print(e)
  77. return response.json(500)