guanhailong преди 2 години
родител
ревизия
024c147935
променени са 1 файла, в които са добавени 40 реда и са изтрити 28 реда
  1. 40 28
      AdminController/UnicomManageController.py

+ 40 - 28
AdminController/UnicomManageController.py

@@ -9,7 +9,7 @@ import time
 from django.db import transaction
 from django.views.generic.base import View
 
-from Model.models import UnicomDeviceInfo, UnicomCombo, Pay_Type, UnicomComboOrderInfo, Device_User
+from Model.models import UnicomDeviceInfo, UnicomCombo, Pay_Type, UnicomComboOrderInfo, Device_User, Device_Info
 from Object.ResponseObject import ResponseObject
 
 
@@ -63,6 +63,7 @@ class UnicomManageControllerView(View):
         phone = request_dict.get('phone', None)
         iccid = request_dict.get('iccid', None)
         serial_no = request_dict.get('serialNo', None)
+        status = request_dict.get('status')
         pageSize = request_dict.get('pageSize', None)
         pageNo = request_dict.get('pageNo', None)
 
@@ -76,12 +77,14 @@ class UnicomManageControllerView(View):
             unicom_device_qs = UnicomDeviceInfo.objects.all().order_by('-updated_time')
             device_user_qs = Device_User.objects.filter().values(
                 'userID', 'NickName', 'phone')
+            if status:
+                unicom_device_qs = unicom_device_qs.filter(status=status)
             if iccid:
-                unicom_device_qs = unicom_device_qs.filter(iccid=iccid)
+                unicom_device_qs = unicom_device_qs.filter(iccid__icontains=iccid)
             if serial_no:
-                unicom_device_qs = unicom_device_qs.filter(serial_no=serial_no)
+                unicom_device_qs = unicom_device_qs.filter(serial_no__icontains=serial_no)
             if NickName:
-                device_user_qs = device_user_qs.filter(NickName=NickName)
+                device_user_qs = device_user_qs.filter(NickName__icontains=NickName)
                 if not device_user_qs.exists():
                     return response.json(0, [])
                 userID = device_user_qs.first()['userID']
@@ -101,21 +104,21 @@ class UnicomManageControllerView(View):
                     'serialNo': unicom_device.serial_no,
                     'userID': unicom_device.user_id,
                     'cardType': unicom_device.card_type,
-                    'status':unicom_device.status,
+                    'status': unicom_device.status,
                     'mainCard': unicom_device.main_card,
                     'createdTime': unicom_device.created_time,
                     'updatedTime': unicom_device.updated_time
                 }
-                device_user_qs = Device_User.objects.filter(userID=unicom_device.user_id).values('NickName', 'phone')
-                data['NickName'] = device_user_qs[0]['NickName'] if device_user_qs.first() else ''
-                data['phone'] = device_user_qs[0]['phone'] if device_user_qs.first() else ''
+                device_user_qs = Device_User.objects.filter(userID=unicom_device.user_id).values('username', 'NickName', 'phone')
+                data['userName'] = device_user_qs[0]['username'] if device_user_qs.exists() else ''
+                data['NickName'] = device_user_qs[0]['NickName'] if device_user_qs.exists() else ''
+                data['phone'] = device_user_qs[0]['phone'] if device_user_qs.exists() else ''
                 list_data.append(data)
             return response.json(0, {'list': list_data, 'total': total})
         except Exception as e:
             print(e)
             return response.json(500, repr(e))
 
-
     @staticmethod
     def get_order_info(request_dict, response):
         """
@@ -125,6 +128,7 @@ class UnicomManageControllerView(View):
         @return:
         serial_no 设备序列号
         """
+        UID = request_dict.get('uid', None)
         serial_no = request_dict.get('serialNo', None)
         status = request_dict.get('status', None)
         pageNo = request_dict.get('pageNo', None)
@@ -137,19 +141,26 @@ class UnicomManageControllerView(View):
 
         try:
             combo_order_info_qs = UnicomComboOrderInfo.objects.all()
+            # 筛选查询
             if serial_no:
-                unicom_device_qs = UnicomDeviceInfo.objects.filter(serial_no=serial_no).values('serial_no', 'user_id',
-                                                                                               'iccid')
+                unicom_device_qs = UnicomDeviceInfo.objects.filter(serial_no__icontains=serial_no).values('serial_no',
+                                                                                                          'user_id',
+                                                                                                          'iccid')
+                if not unicom_device_qs.exists():
+                    return response.json(0, [])
+                combo_order_info_qs = combo_order_info_qs.filter(iccid__icontains=unicom_device_qs[0]['iccid'])
+            if UID:
+                device_qs = Device_Info.objects.filter(UID=UID).values('serial_number').distinct()
+                if not device_qs.exists():
+                    return response.json(0, [])
+                unicom_device_qs = UnicomDeviceInfo.objects.filter(
+                    serial_no__icontains=device_qs[0]['serial_number']).values('serial_no', 'user_id', 'iccid')
                 if not unicom_device_qs.exists():
                     return response.json(0, [])
-                combo_order_info_qs = combo_order_info_qs.filter(iccid=unicom_device_qs[0]['iccid'])
+                combo_order_info_qs = combo_order_info_qs.filter(iccid__icontains=unicom_device_qs[0]['iccid'])
             if status:
                 status = int(status)
-                unicom_device_qs = UnicomDeviceInfo.objects.filter().values('serial_no', 'user_id',
-                                                                            'iccid').distinct()
                 combo_order_info_qs = combo_order_info_qs.filter(status=status)
-                if not unicom_device_qs.exists():
-                    return response.json(0, [])
             if not combo_order_info_qs.exists():
                 return response.json(0, [])
             total = combo_order_info_qs.count()
@@ -168,18 +179,17 @@ class UnicomManageControllerView(View):
                         'createdTime': combo_order.created_time,
                         'updated_time': combo_order.updated_time}
                 unicom_combo_qs = UnicomCombo.objects.filter(id=combo_order.combo_id).values('combo_name')
-                if unicom_combo_qs.exists():
-                    data['comboName'] = unicom_combo_qs[0]['combo_name']
-                else:
-                    data['comboName'] = ''
-                iccid = combo_order.iccid
-                unicom_device_qs = UnicomDeviceInfo.objects.filter(iccid=iccid).values('user_id', 'serial_no')
-                userID = unicom_device_qs[0]['user_id']
+                data['comboName'] = unicom_combo_qs[0]['combo_name'] if unicom_combo_qs.exists() else ''
+                unicom_device_qs = UnicomDeviceInfo.objects.filter(iccid__icontains=combo_order.iccid).values('user_id',
+                                                                                                              'serial_no')
+                userID = unicom_device_qs[0]['user_id'] if unicom_device_qs.exists() else ''
                 device_user = Device_User.objects.filter(userID=userID).values('username')
                 if device_user.exists():
                     nick_name = device_user[0]['username']
                     data['userName'] = nick_name
-                data['serialNo'] = unicom_device_qs[0]['serial_no']
+                data['serialNo'] = unicom_device_qs[0]['serial_no'] if unicom_device_qs.exists() else ''
+                device_qs = Device_Info.objects.filter(serial_number=unicom_device_qs[0]['serial_no']).values('UID')
+                data['UID'] = device_qs[0]['UID'] if device_qs.exists() else ''
                 data_list.append(data)
             return response.json(0, {'list': data_list, 'total': total})
         except Exception as e:
@@ -208,6 +218,7 @@ class UnicomManageControllerView(View):
         price = request_dict.get('price', None)
         remark = request_dict.get('remark', None)
         is_show = request_dict.get('isShow', None)
+        virtualPrice = request_dict.get('virtualPrice', None)
 
         if not all([pay_type, price, is_show, status, combo_type, flow_total, expiration_days, expiration_type]):
             return response.json(444)
@@ -243,7 +254,8 @@ class UnicomManageControllerView(View):
                     'price': price,
                     'sort': sort,
                     'remark': remark if remark else '',
-                    'is_show': is_show
+                    'is_show': is_show,
+                    'virtual_price': virtualPrice,
                 }
                 if unicom_combo_qs.filter(id=combo_id).exists():
                     re_data['updated_time'] = int(time.time())
@@ -280,7 +292,8 @@ class UnicomManageControllerView(View):
                                                     'expiration_days',
                                                     'expiration_type', 'price', 'is_unlimited',
                                                     'updated_time', 'created_time',
-                                                    'remark', 'is_show', 'sort')[(page - 1) * line:page * line]
+                                                    'remark', 'is_show', 'sort', 'virtual_price')[
+                       (page - 1) * line:page * line]
             if not combo_qs.exists():
                 return response.json(0, [])
             total = combo_qs.count()
@@ -305,6 +318,7 @@ class UnicomManageControllerView(View):
                     'remark': item['remark'],
                     'isShow': item['is_show'],
                     'payTypes': pay_type_list,
+                    'virtualPrice': item['virtual_price']
                 })
             return response.json(0, {'list': combo_list, 'total': total})
         except Exception as e:
@@ -323,7 +337,6 @@ class UnicomManageControllerView(View):
         try:
             pay_type_list = []
             for pay_type in pay_type_qs:
-                pay_type_qs.exists()
                 pay_type_list.append(pay_type)
             return response.json(0, pay_type_list)
         except Exception as e:
@@ -374,7 +387,6 @@ class UnicomManageControllerView(View):
 
         list_data = []
         unicom_combo_qs = UnicomCombo.objects.filter().values('id', 'combo_type', 'combo_name')
-
         if not unicom_combo_qs.exists():
             return response.json(173)
         try: