瀏覽代碼

更新过期的ai服务状态

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

+ 10 - 12
Controller/AiController.py

@@ -1238,20 +1238,18 @@ class AiView(View):
 
 # 如果ai套餐过期,更新未使用的关联套餐
 def updateUnusedAi(request):
-    response = ResponseObject()
     now_time = int(time.time())
-    expired_ai_services = AiService.objects.filter(endTime__lte=now_time,use_status=1).values("id","uid")[0:200]
-    for expired_ai_service in expired_ai_services:
+    ai_service_qs = AiService.objects.filter(endTime__lte=now_time, use_status=1).values('id', 'uid')[0:200]
+    for ai_service in ai_service_qs:
         try:
             with transaction.atomic():
-                AiService.objects.filter(id=expired_ai_service['id']).update(use_status=2)
-                hasUnUse = AiService.objects.filter(uid=expired_ai_service['uid'],use_status=0).order_by('addTime')[0:1]
-                if hasUnUse.exists():
-                    hasUnUse = hasUnUse.values('id','orders__ai_rank__effective_day')
-                    endTime = now_time + (hasUnUse[0]['orders__ai_rank__effective_day'] * 86400)
-                    AiService.objects.filter(id=hasUnUse[0]['id']).update(use_status=1, endTime=endTime)
+                AiService.objects.filter(id=ai_service['id']).update(use_status=2)      # 更新过期ai订单状态
+                # 如果存在未使用套餐,更新为使用
+                unused_ai_service = AiService.objects.filter(uid=ai_service['uid'], use_status=0).order_by('addTime')[:1].values('id', 'endTime')
+                if unused_ai_service.exists():
+                    effective_day = unused_ai_service[0]['endTime']     # 未使用套餐的endTime在购买的时候保存为有效时间
+                    endTime = now_time + effective_day
+                    AiService.objects.filter(id=unused_ai_service[0]['id']).update(use_status=1, endTime=endTime, updTime=now_time)
         except Exception as e:
-            # return HttpResponse("line={line},error={error}".format(line=e.__traceback__.tb_lineno, error=repr(e)))
             continue
-    # UID_Bucket.objects.filter(id__in=list(id_list)).update(use_status=2)  # 更新过期云存关联套餐状态
-    return response.json(0)
+    return HttpResponse()