Эх сурвалжийг харах

优化云存停用功能;添加已消耗流量字段;优化流失预警界面

guanhailong 2 жил өмнө
parent
commit
0cb4aeda5d

+ 52 - 36
AdminController/ServeManagementController.py

@@ -15,11 +15,12 @@ from django.http import HttpResponse, StreamingHttpResponse
 from django.views.generic.base import View
 from Model.models import VodBucketModel, CDKcontextModel, Store_Meal, Order_Model, \
     UID_Bucket, ExperienceContextModel, Lang, CloudLogModel, UidSetModel, Unused_Uid_Meal, \
-    Device_Info, VodHlsModel, UnicomComboOrderInfo, Device_User
+    Device_Info, VodHlsModel, UnicomComboOrderInfo, Device_User, AiService
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
 from django.db.models import F, Sum, Count
+from Controller.Cron.CronTaskController import CronUpdateDataView
 
 
 class serveManagement(View):
@@ -1368,12 +1369,12 @@ class serveManagement(View):
                         if vod_hls_qs.exists():
                             level = '取消预警'
                         else:
-                            level = '1号预警'
+                            level = '号预警'
                     else:
-                        level = '预警'
+                        level = '取消预警'
                     if day >= 25:
                         if vod_hls_qs.exists():
-                            level = '取消预警'
+                            level = '二号预警'
                         else:
                             startTime = uid_buncket['addTime']  # 开始时间
                             nowTime = str(nowTime)
@@ -1384,13 +1385,15 @@ class serveManagement(View):
                             startTime = datetime.datetime.strptime(startTime, '%Y-%m-%d %H:%M:%S')  # 开始时间
                             nowTime = datetime.datetime.strptime(nowTime, '%Y-%m-%d %H:%M:%S')  # 结束时间
                             day = (nowTime - startTime).days
-                            level = '2号预警'
+                            level = '号预警'
                 else:
-                    level = '套餐过期'
-                device_user = Device_User.objects.filter(device_info__UID=uid_buncket['uid']).values('username', 'userID')
+                    level = '八号预警'
+                device_user = Device_User.objects.filter(device_info__UID=uid_buncket['uid']).values('username',
+                                                                                                     'userID')
                 username = device_user[0]['username'] if device_user.exists() else ''
                 userID = device_user[0]['userID'] if device_user.exists() else ''
-                order_qs = Order_Model.objects.filter(order_type=0, userID=userID).values('UID').annotate(count=Count('UID'))
+                order_qs = Order_Model.objects.filter(order_type=0, userID=userID).values('UID').annotate(
+                    count=Count('UID'))
                 #  用户设备购买云存数量
                 if not order_qs.exists():
                     device_count = ''
@@ -1433,27 +1436,36 @@ class serveManagement(View):
         @param response:
         """
         status = request_dict.get('status', None)
-        if status != '1':
+        if status in [1, 5, 6, 7]:  # 付款状态
             return response.json(10059)
         uid = request_dict.get('uid', None)
         orderID = request_dict.get('orderID', None)
         orderType = request_dict.get('orderType', None)
-        payType = request_dict.get('payType')
+        payType = request_dict.get('payType', None)
+        userName = request_dict.get('userName', None)
         # 查询订单
-        if not all([orderID, orderType, uid]):
+        if not all([orderID, orderType, uid, userName]):
             return response.json(444)
         nowTime = int(time.time())
         try:
             with transaction.atomic():
                 #  云存套餐
                 if orderType == '0' and payType != '10':
-                    order_qs = Order_Model.objects.filter(UID=uid)
-                    order_number = order_qs.count()
-                    if order_number == 1:
-                        UID_Bucket.objects.filter(uid=uid).update(endTime=nowTime)
+                    order_qs = Order_Model.objects.filter(orderID=orderID, userID__username=userName, UID=uid).values(
+                        'rank_id')
+                    if not order_qs.exists():
+                        return response.json(14)
+                    uid_bucket_qs = UID_Bucket.objects.filter(uid=uid, use_status=1).values('addTime', 'endTime')
+                    uid_bucket_number = uid_bucket_qs.count()
+                    if not uid_bucket_qs.exists():
+                        return response.json(173)
+                    #  判断订单是否唯一
+                    if uid_bucket_number <= 1:
+                        uid_bucket_qs.update(endTime=nowTime)
+                        CronUpdateDataView.updateUnusedUidBucket(response)
                         return response.json(0)
-                    # 判断是否有未使用的设备关联套餐表
-                    order_qs = order_qs.filter(orderID=orderID).values('rank_id')
+                    # 当设备套餐不唯一时
+                    #  判断购买套餐类型
                     unused_uid_Meal_qs = Unused_Uid_Meal.objects.filter(uid=uid, bucket_id=order_qs[0]['rank_id'])
                     unused_uid_Meal_number = unused_uid_Meal_qs.count()
                     if unused_uid_Meal_number == 1:
@@ -1462,27 +1474,31 @@ class serveManagement(View):
                     return response.json(10059)  # 未使用套餐类型重复
                 #  AI套餐
                 if orderType == '1' and payType != '10':
-                    order_qs = Order_Model.objects.filter(UID=uid)
-                    order_number = order_qs.count()
-                    if order_number == 1:
-                        UID_Bucket.objects.filter(uid=uid).update(endTime=nowTime)
-                        return response.json(0)
-                    # 判断是否有未使用的设备关联套餐表
-                    order_qs = order_qs.first(orderID=orderID).values('ai_rank_id')
-                    unused_uid_Meal_qs = Unused_Uid_Meal.objects.filter(uid=uid, bucket_id=order_qs[0]['ai_rank_id'])
-                    unused_uid_Meal_number = unused_uid_Meal_qs.count()
-                    if unused_uid_Meal_number == 1:
-                        unused_uid_Meal_qs.delete()
-                        return response.json(0)
-                    return response.json(10059)  # 未使用套餐类型重复
+                    return response.json(10059)
+                    # order_qs = Order_Model.objects.filter(orderID=orderID, userID__username=userName, UID=uid).values(
+                    #     'ai_rank_id')
+                    # order_qs = order_qs.objects.filter(UID=uid)
+                    # ai_service_qs = AiService.objects.filter(uid=uid, use_status=1).values('addTime', 'endTime')
+                    # ai_service_number = ai_service_qs.count()
+                    # if ai_service_number <= 1:
+                    #     ai_service_qs.update(endTime=nowTime)
+                    #     return response.json(0)
+                    # # 当设备套餐不唯一时
+                    # ai_service_qs = AiService.objects.filter(uid=uid, bucket_id=order_qs[0]['ai_rank_id'])
+                    # ai_serverice_number = ai_service_qs.count()
+                    # if ai_serverice_number == 1:
+                    #     ai_service_qs.update(endTime=nowTime)
+                    #     return response.json(0)
+                    # return response.json(10059)  # 未使用套餐类型重复
                 #  联通4G套餐
                 if orderType == '2' and payType != '10':
-                    unicom_combo_order_info_qs = UnicomComboOrderInfo.objects.filter(order_id=orderID).values(
-                        'expire_time')
-                    if not unicom_combo_order_info_qs.exists():
-                        return response.json(173)
-                    unicom_combo_order_info_qs.update(expire_time=nowTime)
-                    return response.json(0)
+                    return response.json(10059)
+                    # unicom_combo_order_info_qs = UnicomComboOrderInfo.objects.filter(order_id=orderID & ~Q(status=2)).values(
+                    #     'expire_time')
+                    # if not unicom_combo_order_info_qs.exists():
+                    #     return response.json(173)
+                    # unicom_combo_order_info_qs.update(expire_time=nowTime)
+                    # return response.json(0)
                 return response.json(173)
         except Exception as e:
             print(e)

+ 8 - 0
AdminController/UnicomManageController.py

@@ -12,6 +12,7 @@ from django.views.generic.base import View
 from Controller.UnicomCombo.UnicomComboController import UnicomComboView
 from Model.models import UnicomDeviceInfo, UnicomCombo, Pay_Type, UnicomComboOrderInfo, Device_User, Device_Info, \
     Order_Model
+from Object.UnicomObject import UnicomObjeect
 from Object.ResponseObject import ResponseObject
 from Service.CommonService import CommonService
 
@@ -202,6 +203,13 @@ class UnicomManageControllerView(View):
                     data['userName'] = nick_name
                 if data['serialNo'] != '':
                     data['UID'] = CommonService.query_serial_with_uid(data['serialNo'])
+                if combo_order.status == 1:
+                    total_flow = UnicomObjeect.current_sim_traffic_usage_details(combo_order.iccid)  # 4G总值
+                    flow_total_usage = combo_order.flow_total_usage  # 激活时当月已用流量
+                    flow_total_usage = float(flow_total_usage)
+                    data['using_total'] = total_flow - flow_total_usage
+                else:
+                    data['using_total'] = 0
                 data_list.append(data)
             return response.json(0, {'list': data_list, 'total': total})
         except Exception as e: