Bläddra i källkod

优化停用云存服务接口

peng 1 år sedan
förälder
incheckning
6fbea03f91
1 ändrade filer med 24 tillägg och 15 borttagningar
  1. 24 15
      AdminController/ServeManagementController.py

+ 24 - 15
AdminController/ServeManagementController.py

@@ -1993,7 +1993,7 @@ class serveManagement(View):
         @param response:
         """
         status = request_dict.get('status', None)
-        if status in [1, 5, 6, 7]:  # 付款状态
+        if status in ['1', '5', '6', '7']:  # 付款状态
             return response.json(10059)
         uid = request_dict.get('uid', None)
         orderID = request_dict.get('orderID', None)
@@ -2008,24 +2008,33 @@ class serveManagement(View):
             with transaction.atomic():
                 #  云存套餐
                 if orderType == '0' and payType != '10':
+                    AiService.objects.filter(orders=orderID).delete()  # 删除AI服务
                     order_qs = Order_Model.objects.filter(orderID=orderID, userID__username=userName, UID=uid).values(
-                        'rank__bucket_id')
+                        'rank__bucket_id', 'payTime', 'rank__expire')
                     if not order_qs.exists():
                         return response.json(14)
-                    uid_bucket_qs = UID_Bucket.objects.filter(uid=uid, use_status=1).values('has_unused')
-                    has_unused = uid_bucket_qs[0]['has_unused'] if uid_bucket_qs.exists() else ''
-                    #  判断套餐是否唯一
-                    if has_unused == 0:
-                        uid_bucket_qs.update(endTime=nowTime)
-                        CronUpdateDataView.updateUnusedUidBucket(response)
-                        return response.json(0)
-                    # 当设备套餐不唯一时
-                    # 判断停用套餐是否是为未使用套餐
-                    unused_uid_Meal_qs = Unused_Uid_Meal.objects.filter(uid=uid,
-                                                                        bucket_id=order_qs[0]['rank__bucket_id'])
-                    unused_uid_Meal_number = unused_uid_Meal_qs.count()
-                    if unused_uid_Meal_number == 1:
+                    pay_time = order_qs[0]['payTime']
+                    bucket_id = order_qs[0]['rank__bucket_id']
+                    expire = order_qs[0]['rank__expire']
+                    unused_uid_Meal_qs = Unused_Uid_Meal.objects.filter(order_id=orderID)
+                    if unused_uid_Meal_qs.exists():  # 如果能通过订单id查询到未使用套餐则删除套餐
                         unused_uid_Meal_qs.delete()
+                        unused_meal_qs = Unused_Uid_Meal.objects.filter(uid=uid)
+                        if not unused_meal_qs.exists():
+                            UID_Bucket.objects.filter(uid=uid).update(has_unused=0, updateTime=nowTime)
+                        return response.json(0)
+                    unused_uid_Meal_qs = Unused_Uid_Meal.objects.filter(uid=uid, bucket_id=bucket_id)
+                    if unused_uid_Meal_qs.exists():  # 如果通过uid查询到未使用套餐则删除套餐
+                        unused_uid_Meal_qs.first().delete()
+                        unused_meal_qs = Unused_Uid_Meal.objects.filter(uid=uid)
+                        if not unused_meal_qs.exists():
+                            UID_Bucket.objects.filter(uid=uid).update(has_unused=0, updateTime=nowTime)
+                        return response.json(0)
+                    uid_bucket_qs = UID_Bucket.objects.filter(uid=uid, use_status=1).values('endTime')
+                    if uid_bucket_qs.exists():  # 如果通过uid查询正在使用的套餐,则更新过期时间和使用状态
+                        end_time = pay_time + uid_bucket_qs[0]['endTime'] - CommonService.calcMonthLater(expire, pay_time)
+                        use_status = 2 if end_time < nowTime else 1
+                        uid_bucket_qs.update(endTime=end_time, use_status=use_status, updateTime=nowTime)
                         return response.json(0)
                     return response.json(10059)  # 未使用套餐类型重复
                 #  AI套餐