Browse Source

联通测试服,优化卡用户信息的查询(查找字段有改动)

guanhailong 3 years ago
parent
commit
46d75e7313
1 changed files with 24 additions and 185 deletions
  1. 24 185
      AdminController/UnicomManageController.py

+ 24 - 185
AdminController/UnicomManageController.py

@@ -49,206 +49,44 @@ class UnicomComboView(View):
         # 删除卡套餐
         elif operation == 'dele/combo/info':
             return self.combo_order_info(request_dict, response)
-        # 筛选用户信息
-        elif operation == 'filter/user':
-            return self.get_user_info(request_dict, response)
-
-    def get_user_info(self, request_dict, response):
-        # print('request_dict: ', request_dict)
-
-        # Unicom_comborOrder表查询
-        status = request_dict.get('status', None)
-        payType = request_dict.get('payType', None)
-        price = request_dict.get('price', None)
-        addTimeRange = request_dict.get('addTimeRange', None)
-        endTimeRange = request_dict.get('endTimeRange', None)
-
-        # UnicomDevice_info表查询
-        iccid = request_dict.get('iccid', None)
-        serialNo = request_dict.get('serialNo', None)
-        userID = request_dict.get('userID', None)
-
-        # Device_user查询
-        phone = request_dict.get('phone', None)
-        userEmail = request_dict.get('userEmail', None)
-        dataJoined = request_dict.get('dataJoined', None)
-
-        pageNo = request_dict.get('pageNo', None)
-        pageSize = request_dict.get('pageSize', None)
-        if not all([pageNo, [pageSize]]):
-            return response.json(444)
-        page = int(pageNo)
-        line = int(pageSize)
-
-        try:
-            unicom_device_qs = UnicomDeviceInfo.objects.all()
-            if iccid:
-                unicom_device_qs = unicom_device_qs.filter(iccid=iccid)
-            if serialNo:
-                unicom_device_qs = unicom_device_qs.filter(serial_no=serialNo)
-            if userID:
-                unicom_device_qs = unicom_device_qs.filter(user_id=userID)
-            # if addTimeRange:
-            #     addStartTime, addEndTime = int(
-            #         addTimeRange[0][:-3]), int(addTimeRange[1][:-3])
-            #     unicom_combo_order_qs = unicom_combo_order_qs.filter(
-            #         activation_time__gte=addStartTime,
-            #         activation_time__lte=addEndTime)
-            # if endTimeRange:
-            #     endStartTime, endEndTime = int(
-            #         endTimeRange[0][:-3]), int(endTimeRange[1][:-3])
-            #     unicom_combo_order_qs = unicom_combo_order_qs.filter(
-            #         activation_time__gte=endStartTime,
-            #         activation_time__lte=endEndTime)
-
-            userID_list = []
-            userID_set_dict = {}
-            if userID and userID != ['']:
-                device_user_qs = Device_User.objects.filter(user_id__in=userID).values('userID', 'phone', 'userEmail',
-                                                                                       'data_joined').distinct()
-                for device_user in device_user_qs:
-                    userID_list.append(device_user['iccid'])
-                    userID_set_dict[device_user['iccid']] = {
-                        'userID': device_user['user_id'],
-                        'phone': device_user['phone'],
-                        'userEmail': device_user['userEmail'],
-                        'dataJoined': device_user['data_joined'].strftime(
-                        "%Y-%m-%d %H:%M:%S")
-                    }
-                unicom_device_qs = unicom_device_qs.filter(iccid__in=userID_list)
-            else:
-                device_user_qs = Device_User.objects.filter().values('userID', 'phone', 'userEmail',
-                                                                     'data_joined').distinct()
-                for device_user in device_user_qs:
-                    userID_list.append(device_user['iccid'])
-                    userID_set_dict[device_user['iccid']] = {
-                        'userID': device_user['user_id'],
-                        'phone': device_user['phone'],
-                        'userEmail': device_user['userEmail'],
-                        'dataJoined': device_user['dataJoined'].strftime(
-                        "%Y-%m-%d %H:%M:%S")
-                    }
-
-            if not unicom_device_qs.exists():
-                return response.json(0, [])
-
-            unicom_combo_order_qs = UnicomComboOrderInfo.objects.filter(
-                order_id__in=unicom_device_qs.values('iccid')).values('status', 'combo__pay_type', 'combo__price',
-                                                                      'activation_time', 'expire_time')
-
-            if status or payType or addTimeRange or endTimeRange or price:
-                if status:
-                    unicom_combo_order_qs = unicom_combo_order_qs.filter(status=status)
-                if payType:
-                    unicom_combo_order_qs = unicom_combo_order_qs.filter(combo__pay_type=payType)
-                if price:
-                    unicom_combo_order_qs = unicom_combo_order_qs.filter(combo__price=price)
-                if addTimeRange:
-                    addStarTime, addEndTime = int(
-                        addTimeRange[0][-3]), int(addTimeRange[1][:-3])
-                    unicom_combo_order_qs = unicom_combo_order_qs.filter(
-                        activation_time=addStarTime,
-                        expire_time=addEndTime
-                    )
-                if endTimeRange:
-                    endStartTimem, endEndTiem = int(
-                        endTimeRange[0][:-3]),int(endTimeRange[1][:-3])
-                    unicom_combo_order_qs = unicom_combo_order_qs.filter(
-                        activation_time=endStartTimem,
-                        expire_time=endEndTiem)
-
-            list_data = []
-            count = unicom_device_qs.count()
-            unicom_device_qs = unicom_device_qs.order_by('-activation_time')[(page - 1) * line:page * line]
-
-            for unicom_device in unicom_device_qs:
-                endTime = time.strftime("%Y--%m--%d %H:%M:%S", time.localtime(unicom_device.endTime))
-
-                unicom = unicom_device.iccid.upper()
-                data = {
-                    'iccid':unicom_device.iccid,
-                    'serialNo':unicom_device.serial_no,
-                    'userID':unicom_device.user_id
-                }
-
-                for unicom_combo_order in unicom_combo_order_qs.filter(
-                        order_id=unicom_device.iccid).values('status', 'combo__pay_type', 'combo__price',
-                                                             'combo__combo_name', 'activation_time', 'expire_time'):
-                    data['status'] = unicom_combo_order['status']
-                    data['payType'] = unicom_combo_order['combo__pay_type']
-                    data['price'] = unicom_combo_order['combo__price']
-                    data['activationTime'] = unicom_combo_order['activation_time'].strftime(
-                        "%Y-%m-%d %H:%M:%S")
-                    data['expireTime'] = unicom_combo_order['expire_time'].strftime(
-                        "%Y-%m-%d %H:%M:%S")
-                    data['comboName'] = unicom_combo_order['combo__combo_name']
-
-                if userID in userID_set_dict:
-                    data['userID'] = userID_set_dict['userID']
-                    data['phone'] = userID_set_dict['phone']
-                    data['userEmail'] = userID_set_dict['userEmail']
-                    data['dataJoined'] = userID_set_dict['dataJoined']
-
-                list_data.append(data)
-            return response.json(0, {'list': list_data, 'total': count})
-        except Exception as e:
-            print(e)
-            return response.json(500, repr(e))
 
     @staticmethod
     def get_user_combo(request_dict, response):
+        """
+        定时检查是否有次月激活套餐
+        @param request_dict:
+        @param response:
+        @return:
+        """
         pageNo = request_dict.get('pageNo', None)
         pageSize = request_dict.get('pageSize', None)
         if not all([pageNo, [pageSize]]):
             return response.json(444)
         page = int(pageNo)
         line = int(pageSize)
-        get_info_qs = UnicomComboOrderInfo.objects.filter().values(
-            'iccid', 'activation_time', 'expire_time', 'status',
-            'combo__combo_name',
-            'combo__pay_type__payment',
-            'combo__price'
+        # cardType:状态(0:联通,1:电信,2:移动)
+        # mainCard:状态(0:主卡,1:拔插卡)
+        get_info_qs = UnicomDeviceInfo.objects.filter().values(
+            'iccid', 'serial_no', 'user_id', 'card_type', 'main_card', 'created_time'
         )[(page - 1) * line:page * line]
         total = get_info_qs.count()
         try:
             res_list = []
             for item in get_info_qs:
                 res = {
-                    'userID': '',
-                    'phone': '',
-                    'userEmail': '',
-                    'serialNo': '',
-                    'loginTime': '',
-                    'iccid': '',
-                    'openTime': '',
-                    'endTime': '',
-                    'status': '',
-                    'comboName': '',
-                    'payType': '',
-                    'price': ''
-
+                    'userID': item['user_id'],
+                    'serialNo': item['serial_no'],
+                    'iccid': item['iccid'],
+                    'cardType': item['card_type'],
+                    'mainCard': item['main_card'],
+                    'createdTime': item['created_time']
                 }
-                iccid = item['iccid']
-                res['iccid'] = iccid
-                res['openTime'] = item['activation_time']
-                res['endTime'] = item['expire_time']
-                res['status'] = item['status']
-                res['comboName'] = item['combo__combo_name']
-                res['payType'] = item['combo__pay_type__payment']
-                res['price'] = item['combo__price']
-                serial_no_qs = UnicomDeviceInfo.objects.filter(iccid=iccid).values('serial_no')
-                # serial_no = serial_no_qs[0]['serial_no']
-                res['serialNo'] = serial_no_qs.first()['serial_no']
-                user_id_qs = UnicomDeviceInfo.objects.filter(iccid=iccid).values('user_id')
-                user_id = user_id_qs[0]['user_id']
-                if user_id_qs.exists():
-                    user_info_qs = Device_User.objects.filter(userID=user_id).values(
-                        'userEmail', 'data_joined',
-                        'phone')
-                    res['userID'] = user_id
-                    res['loginTime'] = user_info_qs.first()['data_joined'].strftime("%Y-%m-%d %H:%M:%S")
-                    res['userEmail'] = user_info_qs.first()['userEmail']
-                    res['phone'] = user_info_qs.first()['phone']
+                usreID = get_info_qs[0]['user_id']
+                user_info_qs = Device_User.objects.filter(userID=usreID).values(
+                    'NickName', 'phone')
+                res['userID'] = usreID
+                res['NickName'] = user_info_qs.first()['NickName']
+                res['phone'] = user_info_qs.first()['phone']
                 res_list.append(res)
             return response.json(0, {'list': res_list, 'total': total})
         except Exception as e:
@@ -374,7 +212,8 @@ class UnicomComboView(View):
             combo_list = []
             for item in combo_qs:
                 # 获取支付方式列表
-                pay_type_list = [pay_type['id'] for pay_type in UnicomCombo.objects.get(id=item['id']).pay_type.values('id')]
+                pay_type_list = [pay_type['id'] for pay_type in
+                                 UnicomCombo.objects.get(id=item['id']).pay_type.values('id')]
                 combo_list.append({
                     'id': item['id'],
                     'comboName': item['combo_name'],