瀏覽代碼

ai套餐过期时间计算使用中和未使用的总时间

locky 3 年之前
父節點
當前提交
0e63f20690
共有 1 個文件被更改,包括 16 次插入7 次删除
  1. 16 7
      Controller/AiController.py

+ 16 - 7
Controller/AiController.py

@@ -57,7 +57,7 @@ from Object.UidTokenObject import UidTokenObject
 from Service.CommonService import CommonService
 from Object.m3u8generate import PlaylistGenerator
 from Object.WechatPayObject import WechatPayObject
-from django.db.models import Q, F, Count
+from django.db.models import Q, F, Count, Sum
 from Controller.PaymentCycle import Paypal
 from decimal import Decimal
 from Ansjer.config import SERVER_TYPE
@@ -363,12 +363,21 @@ class AiView(View):
         # dv_qs = Device_Info.objects.filter(userID_id=userID, UID=uid, isShare=False, isExist=1, vodPrimaryUserID=userID)
         # if not dv_qs.exists():
         #     return response.json(12)
-        ai_service_qs = AiService.objects.filter(uid=uid, use_status=1)
-        if not ai_service_qs.exists():
-            return response.json(0, [])
-        ai_service_qs = ai_service_qs.order_by('addTime').annotate(bucket__content=F('orders__ai_rank__title')).\
-            values('uid', 'use_status', 'endTime', 'bucket__content')
-        return response.json(0, [ai_service_qs[0]])
+        try:
+            ai_service_qs = AiService.objects.filter(uid=uid, use_status=1)
+            if not ai_service_qs.exists():
+                return response.json(0, [])
+
+            # 计算套餐过期时间
+            sum_end_time = AiService.objects.filter(Q(uid=uid), ~Q(use_status=2)).aggregate(Sum('endTime'))['endTime__sum']
+            ai_service_qs = ai_service_qs.order_by('addTime').annotate(bucket__content=F('orders__ai_rank__title')).\
+                values('uid', 'use_status', 'bucket__content')
+            ai_service_data = ai_service_qs[0]
+            ai_service_data['endTime'] = sum_end_time
+            return response.json(0, [ai_service_data])
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))
 
     def do_create_pay_order(self, request_dict, request, userID, response):
         uid = request_dict.get('uid', None)