|
@@ -9,7 +9,7 @@ import time
|
|
|
from urllib.parse import quote, parse_qs, unquote
|
|
|
|
|
|
import paypalrestsdk
|
|
|
-from django.db import transaction
|
|
|
+from django.db import transaction, connection
|
|
|
from django.db.models import Q
|
|
|
from django.http import HttpResponse, HttpResponseRedirect
|
|
|
from django.views import View
|
|
@@ -58,6 +58,8 @@ class IcloudMeal(View):
|
|
|
return self.create_pay_order(request_dict, request, user_id, response)
|
|
|
elif operation == 'getCloudDriveInit': # 获取套餐明细
|
|
|
return self.get_cloud_drive_init(request_dict, response, user_id)
|
|
|
+ elif operation == 'getCapacity': # 获取容量
|
|
|
+ return self.get_capacity(response, user_id)
|
|
|
else:
|
|
|
return response.json(414)
|
|
|
|
|
@@ -495,10 +497,9 @@ class IcloudMeal(View):
|
|
|
data = {}
|
|
|
cloud_service_list = []
|
|
|
count = cloud_service_qs.count()
|
|
|
- cloud_service_qs = cloud_service_qs[(page - 1) * line:page * line].values('use_status', 'type',
|
|
|
- 'order_id',
|
|
|
- 'add_time', 'end_time').order_by(
|
|
|
- '-add_time')
|
|
|
+ cloud_service_qs = cloud_service_qs.values('use_status', 'type', 'order_id', 'add_time',
|
|
|
+ 'end_time').order_by(
|
|
|
+ '-add_time')[(page - 1) * line:page * line]
|
|
|
# 获取套餐明细
|
|
|
for service in cloud_service_qs:
|
|
|
data['use_status'] = service['use_status']
|
|
@@ -531,3 +532,36 @@ class IcloudMeal(View):
|
|
|
except Exception as e:
|
|
|
logging.info('异常错误,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
return response.json(500, e)
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def get_capacity(response, user_id):
|
|
|
+ """
|
|
|
+ 获取云盘容量
|
|
|
+ @param user_id: 用户id
|
|
|
+ @param response: 响应
|
|
|
+ @return: response
|
|
|
+ """
|
|
|
+ try:
|
|
|
+ select_part = 'SELECT'
|
|
|
+ sum_used_size = 'SUM(u.use_size) AS total_used_size'
|
|
|
+ sum_size = 'SUM(i.size) AS total_all_size'
|
|
|
+ from_part = 'FROM icloud_use_details AS u JOIN icloud_service AS i ON i.use_details_id = u.id'
|
|
|
+ where_part = "WHERE u.user_id = %s"
|
|
|
+ # 合并SQL查询
|
|
|
+ query = f'{select_part} {sum_used_size}, {sum_size} {from_part} {where_part}'
|
|
|
+
|
|
|
+ with connection.cursor() as cursor:
|
|
|
+ cursor.execute(query, (user_id,))
|
|
|
+ result = cursor.fetchone()
|
|
|
+ connection.close()
|
|
|
+ if result != (None, None):
|
|
|
+ data = {
|
|
|
+ 'M_size': round(result[0], 2),
|
|
|
+ 'G_size': round(result[1], 0)
|
|
|
+ }
|
|
|
+ return response.json(0, data)
|
|
|
+ else:
|
|
|
+ return response.json(173)
|
|
|
+ except Exception as e:
|
|
|
+ logging.info('异常错误,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
+ return response.json(500, e)
|