1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- # -*- coding: utf-8 -*-
- """
- @Author : peng
- @Time : 2023-6-7 18:26:35
- @File :IcloudMeal.py
- """
- from django.http import HttpResponse
- from django.views import View
- from Model.models import ICloudStoreMeal, Pay_Type
- from Object.RedisObject import RedisObject
- from Object.ResponseObject import ResponseObject
- from Object.TokenObject import TokenObject
- from Ansjer.config import ACCESS_KEY_ID, SECRET_ACCESS_KEY, REGION_NAME, SERVER_DOMAIN
- class UserRelatedView(View):
- def get(self, request, *args, **kwargs):
- request.encoding = 'utf-8'
- operation = kwargs.get('operation')
- return self.validation(request.GET, operation, request)
- def post(self, request, *args, **kwargs):
- request.encoding = 'utf-8'
- operation = kwargs.get('operation')
- return self.validation(request.POST, operation, request)
- def validation(self, request_dict, operation, request):
- response = ResponseObject()
- tko = TokenObject(request.META.get('HTTP_AUTHORIZATION'))
- response.lang = tko.lang
- user_id = tko.userID
- if tko.code != 0:
- return response.json(tko.code)
- if operation == 'getMeal': # 获取套餐
- return self.get_meal(request_dict, response, user_id)
- elif operation == 'createPayOrder': # 购买订单
- return self.create_pay_order(request_dict, response)
- else:
- return response.json(404)
- @staticmethod
- def get_meal(request_dict, response, user_id):
- """
- 获取套餐
- @param request_dict: 请求参数
- @request_dict lang: 语言
- @param response: 响应对象
- @return: response
- """
- lang = request_dict.get('lang', 'en')
- cloud_drive_qs = ICloudStoreMeal.objects.filter(lang__lang=lang).values('currency', 'symbol', 'price', 'expire',
- 'pay_type',
- 'size', 'bucket_id', 'lang__title',
- 'lang__content', 'sort').order_by(
- 'sort')
- try:
- store_list = list(cloud_drive_qs)
- for cloud_drive in store_list:
- cloud_drive['title'] = cloud_drive.pop('lang__title')
- cloud_drive['content'] = cloud_drive.pop('lang__content')
- pay_type_qs = Pay_Type.objects.filter(icloudstoremeal=cloud_drive['pay_type']).values("id", "payment")
- cloud_drive['pay_type'] = list(pay_type_qs)
- return response.json(0, store_list)
- except Exception as e:
- print(e)
- return response.json(500)
- @staticmethod
- def create_pay_order(request_dict, response):
- """
- 购买订单
- @param request_dict: 请求参数
- @request_dict serial_number: 序列号
- @param response: 响应对象
- @return: response
- """
- uuid_number = request_dict.get('uuid', None)
- if not uuid_number:
- return response.json(444, {'error param': 'uuid'})
- try:
- return response.json(0)
- except Exception as e:
- print(e)
- return response.json(500)
|