瀏覽代碼

feature:
1.获取接口返回结果优化
2.优化bug

chenjunkai 6 年之前
父節點
當前提交
5422d9bb6d
共有 1 個文件被更改,包括 77 次插入31 次删除
  1. 77 31
      Controller/FeedBack.py

+ 77 - 31
Controller/FeedBack.py

@@ -67,31 +67,77 @@ class FeedBackView(View):
             line = int(line)
         else:
             return response.json(444, 'page,line')
-        fb_qs = FeedBackModel.objects.filter(userID_id=userID)[(page - 1) * line:page * line].values('id', 'status',
-                                                                                                     'content',
-                                                                                                     'addTime',
-                                                                                                     'updTime',
-                                                                                                     'FS__name')
-        res = {}
+
+        fb_qs = FeedBackModel.objects.filter(userID_id=userID)[(page - 1) * line:page * line]. \
+            values('id', 'status', 'content', 'addTime', 'updTime')
+        sid_list = []
+        for fb in fb_qs:
+            sid_list.append(fb['id'])
+        sm_qs = StatResModel.objects.filter(feedbackmodel__id__in=sid_list).values('id', 'name', 'feedbackmodel__id')
+        # return response.json(0,list(sm_qs))
         auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
         bucket = oss2.Bucket(auth, 'oss-cn-hongkong.aliyuncs.com', 'statres')
+        res = []
         for fb in fb_qs:
-            if fb['id'] in res:
-                if fb['FS__name']:
-                    img_url = bucket.sign_url('GET', fb['FS__name'], 600)
-                    res[fb['id']]['img_url'].append(img_url)
-            else:
-                print(fb['FS__name'])
-                if fb['FS__name']:
-                    img_url = bucket.sign_url('GET', fb['FS__name'], 600)
-                    fb['img_url'] = []
+            fb['img_url'] = []
+            for sm in sm_qs:
+                if sm['feedbackmodel__id'] == fb['id']:
+                    img_url = bucket.sign_url('GET', sm['name'], 3600)
                     fb['img_url'].append(img_url)
-                res[fb['id']] = fb
+                    fb['FS__name'] = sm['name']
+            res.append(fb)
+        return response.json(0, res)
+        # for fb in fb_qs:
+        #     if
+        #         if fb['id'] in res:
+        #             if fb['FS__name']:
+        #                 img_url = bucket.sign_url('GET', fb['FS__name'], 600)
+        #                 res[fb['id']]['img_url'].append(img_url)
+        #         else:
+        #             print(fb['FS__name'])
+        #             if fb['FS__name']:
+        #                 img_url = bucket.sign_url('GET', fb['FS__name'], 600)
+        #                 fb['img_url'] = []
+        #                 fb['img_url'].append(img_url)
+        #             res[fb['id']] = fb
 
         # print(fb_qs.FS_set.all())
 
         return response.json(0, res)
 
+    # def do_query2(self, userID, request_dict, response):
+    #     page = request_dict.get('page', None)
+    #     line = request_dict.get('line', None)
+    #     if page and line:
+    #         page = int(page)
+    #         line = int(line)
+    #     else:
+    #         return response.json(444, 'page,line')
+    #     fb_qs = FeedBackModel.objects.filter(userID_id=userID)[(page - 1) * line:page * line].values('id', 'status',
+    #                                                                                                  'content',
+    #                                                                                                  'addTime',
+    #                                                                                                  'updTime',
+    #                                                                                                  'FS__name')
+    #     res = {}
+    #     auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
+    #     bucket = oss2.Bucket(auth, 'oss-cn-hongkong.aliyuncs.com', 'statres')
+    #     for fb in fb_qs:
+    #         if fb['id'] in res:
+    #             if fb['FS__name']:
+    #                 img_url = bucket.sign_url('GET', fb['FS__name'], 600)
+    #                 res[fb['id']]['img_url'].append(img_url)
+    #         else:
+    #             print(fb['FS__name'])
+    #             if fb['FS__name']:
+    #                 img_url = bucket.sign_url('GET', fb['FS__name'], 600)
+    #                 fb['img_url'] = []
+    #                 fb['img_url'].append(img_url)
+    #             res[fb['id']] = fb
+    #
+    #     # print(fb_qs.FS_set.all())
+    #
+    #     return response.json(0, res)
+
     def do_add(self, userID, request_dict, response):
         nowTime = int(time.time())
         content = request_dict.get('content', None)
@@ -174,25 +220,25 @@ class FeedBackView(View):
                 if filter_data:
                     fb_qs = fb_qs.filter(**filter_data)
                 fb_qs = fb_qs[(page - 1) * line:page * line]. \
-                    values('id', 'status', 'content', 'addTime', 'updTime', 'FS__name')
-                res = {}
+                    values('id', 'status', 'content', 'addTime', 'updTime')
+                sid_list = []
+
+                for fb in fb_qs:
+                    sid_list.append(fb['id'])
+                sm_qs = StatResModel.objects.filter(feedbackmodel__id__in=sid_list). \
+                    values('id', 'name', 'feedbackmodel__id')
                 auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
                 bucket = oss2.Bucket(auth, 'oss-cn-hongkong.aliyuncs.com', 'statres')
-                count = 0
+                res = []
                 for fb in fb_qs:
-                    if fb['id'] in res:
-                        if fb['FS__name']:
-                            img_url = bucket.sign_url('GET', fb['FS__name'], 600)
-                            res[fb['id']]['img_url'].append(img_url)
-                    else:
-                        print(fb['FS__name'])
-                        if fb['FS__name']:
-                            img_url = bucket.sign_url('GET', fb['FS__name'], 600)
-                            fb['img_url'] = []
+                    fb['img_url'] = []
+                    for sm in sm_qs:
+                        if sm['feedbackmodel__id'] == fb['id']:
+                            img_url = bucket.sign_url('GET', sm['name'], 3600)
                             fb['img_url'].append(img_url)
-                        res[fb['id']] = fb
-                        count += 1
-                return response.json(0, {'data': res, 'count': count})
+                            fb['FS__name'] = sm['name']
+                    res.append(fb)
+                return response.json(0, res)
             else:
                 return response.json(444, 'page,line')
         else: