# -*- 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)