Browse Source

优化用户反馈信息导出功能

guanhailong 2 years ago
parent
commit
de8379574a
1 changed files with 5 additions and 84 deletions
  1. 5 84
      AdminController/UserManageController.py

+ 5 - 84
AdminController/UserManageController.py

@@ -485,15 +485,13 @@ class UserManagement(View):
         line = int(pageSize)
         try:
             filter_data = {}
-            if status or username or collect_status or fileType:
+            if status or username or collect_status:
                 if status:
                     filter_data['status'] = int(status)
                 if username:
                     filter_data['userID_id'] = ModelService.get_userID_byname(username)
                 if collect_status:
                     filter_data['collect_status'] = int(collect_status)
-                if fileType:
-                    return self.download(status, collect_status)
             feed_back_qs = FeedBackModel.objects.filter()
             if filter_data:
                 feed_back_qs = feed_back_qs.filter(**filter_data).values()
@@ -516,7 +514,10 @@ class UserManagement(View):
                 'score',
                 'collect_status'
             )
-            feed_backs = feed_backs[(page - 1) * line: page * line]
+            if fileType:
+                feed_backs = feed_backs
+            else:
+                feed_backs = feed_backs[(page - 1) * line: page * line]
             feed_back_id_list = [feed_back['id'] for feed_back in feed_backs]
             stat_res_qs = StatResModel.objects.filter(
                 feedbackmodel__id__in=feed_back_id_list).values(
@@ -691,83 +692,3 @@ class UserManagement(View):
         else:
             FeedBackModel.objects.filter(id=feedBackID).update(collect_status=collect_status)
         return response.json(0)
-
-    def download(self, status, collect_status):
-        response = HttpResponse(content_type='application/vnd.ms-excel')
-        response['Content-Disposition'] = 'attachment; filename=FeedBack' + time.strftime('-%Y-%m-%d-%H-%M-%S',
-                                                                                          time.localtime()) + '.xls'
-        workbook = xlwt.Workbook(encoding='utf-8')
-        ws = workbook.add_sheet('FeedBack')
-        row_num = 0
-        font_style = xlwt.XFStyle()
-        font_style.font.bold = True
-
-        columns = ['id', 'userID__username', 'userID__phone', 'userID__userEmail', 'content', 'addTime', 'status',
-                   'type', 'app', 'app_version', 'phone_model', 'os_version', 'uid', 'appBundleId', 'score', 'img_url',
-                   'collect_status']
-
-        for col_num in range(len(columns)):
-            ws.write(row_num, col_num, columns[col_num], font_style)
-
-        font_style = xlwt.XFStyle()
-
-        filter_data = {}
-        if status or collect_status:
-            if status:
-                filter_data['status'] = int(status)
-            if collect_status:
-                filter_data['collect_status'] = int(collect_status)
-        feed_back_qs = FeedBackModel.objects.filter()
-        if filter_data:
-            feed_back_qs = feed_back_qs.filter(**filter_data)
-        # rows = Exception.objects.filter().values_list()
-        feed_backs = feed_back_qs.values(
-            'id',
-            'userID__username',
-            'userID__phone',
-            'userID__userEmail',
-            'content',
-            'addTime',
-            'status',
-            'type',
-            'app',
-            'app_version',
-            'phone_model',
-            'os_version',
-            'uid',
-            'appBundleId',
-            'score',
-            'collect_status'
-        )
-
-        feed_back_id_list = [feed_back['id'] for feed_back in feed_backs]
-        stat_res_qs = StatResModel.objects.filter(
-            feedbackmodel__id__in=feed_back_id_list).values(
-            'name', 'feedbackmodel__id')
-        auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
-        bucket = oss2.Bucket(
-            auth, 'oss-cn-hongkong.aliyuncs.com', 'statres')
-        try:
-            feed_back_list = []
-            for feed_back in feed_backs:
-                feed_back['img_url'] = []
-                for stat_res in stat_res_qs:
-                    if stat_res['feedbackmodel__id'] == feed_back['id']:
-                        obj = 'feedback/' + stat_res['name']
-                        img_url = bucket.sign_url('GET', obj, 3600)
-                        feed_back['img_url'].append(img_url)
-                        if not feed_back['userID__username']:
-                            feed_back['userID__username'] = feed_back['userID__userEmail'] if feed_back[
-                                'userID__userEmail'] else feed_back['userID__phone']
-                feed_back_list.append(feed_back)
-
-            for row in feed_back_list:
-                row_num += 1
-                row = [values for k, values in row.items()]
-
-                for col_num in range(len(row)):
-                    ws.write(row_num, col_num, str(row[col_num]), font_style)
-            workbook.save(response)
-            return response
-        except Exception as e:
-            print(e)