Browse Source

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

guanhailong 2 years ago
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 django.views.generic.base import View
 from Model.models import VodBucketModel, CDKcontextModel, Store_Meal, Order_Model, \
 from Model.models import VodBucketModel, CDKcontextModel, Store_Meal, Order_Model, \
     UID_Bucket, ExperienceContextModel, Lang, CloudLogModel, UidSetModel, Unused_Uid_Meal, \
     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.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
 from django.db.models import F, Sum, Count
 from django.db.models import F, Sum, Count
+from Controller.Cron.CronTaskController import CronUpdateDataView
 
 
 
 
 class serveManagement(View):
 class serveManagement(View):
@@ -1368,12 +1369,12 @@ class serveManagement(View):
                         if vod_hls_qs.exists():
                         if vod_hls_qs.exists():
                             level = '取消预警'
                             level = '取消预警'
                         else:
                         else:
-                            level = '1号预警'
+                            level = '号预警'
                     else:
                     else:
-                        level = '预警'
+                        level = '取消预警'
                     if day >= 25:
                     if day >= 25:
                         if vod_hls_qs.exists():
                         if vod_hls_qs.exists():
-                            level = '取消预警'
+                            level = '二号预警'
                         else:
                         else:
                             startTime = uid_buncket['addTime']  # 开始时间
                             startTime = uid_buncket['addTime']  # 开始时间
                             nowTime = str(nowTime)
                             nowTime = str(nowTime)
@@ -1384,13 +1385,15 @@ class serveManagement(View):
                             startTime = datetime.datetime.strptime(startTime, '%Y-%m-%d %H:%M:%S')  # 开始时间
                             startTime = datetime.datetime.strptime(startTime, '%Y-%m-%d %H:%M:%S')  # 开始时间
                             nowTime = datetime.datetime.strptime(nowTime, '%Y-%m-%d %H:%M:%S')  # 结束时间
                             nowTime = datetime.datetime.strptime(nowTime, '%Y-%m-%d %H:%M:%S')  # 结束时间
                             day = (nowTime - startTime).days
                             day = (nowTime - startTime).days
-                            level = '2号预警'
+                            level = '号预警'
                 else:
                 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 ''
                 username = device_user[0]['username'] if device_user.exists() else ''
                 userID = device_user[0]['userID'] 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():
                 if not order_qs.exists():
                     device_count = ''
                     device_count = ''
@@ -1433,27 +1436,36 @@ class serveManagement(View):
         @param response:
         @param response:
         """
         """
         status = request_dict.get('status', None)
         status = request_dict.get('status', None)
-        if status != '1':
+        if status in [1, 5, 6, 7]:  # 付款状态
             return response.json(10059)
             return response.json(10059)
         uid = request_dict.get('uid', None)
         uid = request_dict.get('uid', None)
         orderID = request_dict.get('orderID', None)
         orderID = request_dict.get('orderID', None)
         orderType = request_dict.get('orderType', 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)
             return response.json(444)
         nowTime = int(time.time())
         nowTime = int(time.time())
         try:
         try:
             with transaction.atomic():
             with transaction.atomic():
                 #  云存套餐
                 #  云存套餐
                 if orderType == '0' and payType != '10':
                 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)
                         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_qs = Unused_Uid_Meal.objects.filter(uid=uid, bucket_id=order_qs[0]['rank_id'])
                     unused_uid_Meal_number = unused_uid_Meal_qs.count()
                     unused_uid_Meal_number = unused_uid_Meal_qs.count()
                     if unused_uid_Meal_number == 1:
                     if unused_uid_Meal_number == 1:
@@ -1462,27 +1474,31 @@ class serveManagement(View):
                     return response.json(10059)  # 未使用套餐类型重复
                     return response.json(10059)  # 未使用套餐类型重复
                 #  AI套餐
                 #  AI套餐
                 if orderType == '1' and payType != '10':
                 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套餐
                 #  联通4G套餐
                 if orderType == '2' and payType != '10':
                 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)
                 return response.json(173)
         except Exception as e:
         except Exception as e:
             print(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 Controller.UnicomCombo.UnicomComboController import UnicomComboView
 from Model.models import UnicomDeviceInfo, UnicomCombo, Pay_Type, UnicomComboOrderInfo, Device_User, Device_Info, \
 from Model.models import UnicomDeviceInfo, UnicomCombo, Pay_Type, UnicomComboOrderInfo, Device_User, Device_Info, \
     Order_Model
     Order_Model
+from Object.UnicomObject import UnicomObjeect
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
 
 
@@ -202,6 +203,13 @@ class UnicomManageControllerView(View):
                     data['userName'] = nick_name
                     data['userName'] = nick_name
                 if data['serialNo'] != '':
                 if data['serialNo'] != '':
                     data['UID'] = CommonService.query_serial_with_uid(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)
                 data_list.append(data)
             return response.json(0, {'list': data_list, 'total': total})
             return response.json(0, {'list': data_list, 'total': total})
         except Exception as e:
         except Exception as e: