| 
					
				 | 
			
			
				@@ -1,16 +1,13 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import oss2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from django.views.generic.base import View 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from django.utils.decorators import method_decorator 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from django.views.decorators.csrf import csrf_exempt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from Service.ModelService import ModelService 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from Model.models import FeedBackModel, StatResModel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from django.utils import timezone 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import traceback 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from Object.ResponseObject import ResponseObject 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from Object.TokenObject import TokenObject 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from Service.CommonService import CommonService 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import oss2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class FeedBackView(View): 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -30,43 +27,85 @@ class FeedBackView(View): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         tko = TokenObject(token) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if tko.code == 0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             userID = tko.userID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if operation == 'add': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return self.do_add(userID, request_dict, response) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             elif operation == 'getUploadUrl': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return self.do_get_upload_url(request_dict, response) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            elif operation == 'query': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return self.do_query(userID, request_dict, response) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return response.json(414) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return response.json(tko.code) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def do_query(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: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                img_url = bucket.sign_url('GET', fb['FS__name'], 600) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                res[fb['id']]['img_url'].append(img_url) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                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) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        # urls = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        res_1 = request_dict.get('res_1', None) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        res_2 = request_dict.get('res_2', None) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        res_3 = request_dict.get('res_3', None) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        # res_list = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            fb = FeedBackModel() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            fb.addTime = nowTime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            fb.updTime = nowTime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            fb.content = content 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            fb.userID_id = userID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            fb.save() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if res_1: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                fb.FS.add(StatResModel.objects.create(addTime=nowTime, name=res_1)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if res_2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                fb.FS.add(StatResModel.objects.create(addTime=nowTime, name=res_2)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if res_3: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                fb.FS.add(StatResModel.objects.create(addTime=nowTime, name=res_3)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if not res_1 and not res_2 and not res_3: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                fb.delete() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return response.json(444, 'res_1,2,3') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        except Exception as e: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            print(repr(e)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            # fb.delete() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return response.json(500, repr(e)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return response.json(0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def do_get_upload_url(self, request_dict, response): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         uploadType = request_dict.get('uploadType', None) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        nowTime = int(time.time()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if uploadType: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            StatResModel.objects.create() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             bucket = oss2.Bucket(auth, 'oss-cn-hongkong.aliyuncs.com', 'statres') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             name = CommonService.createOrderID() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             obj = str(name) + '.' + uploadType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            create_data = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                'addTime': nowTime, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                'name': obj 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                FeedBackModel.objects.create(**create_data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            except Exception as e: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                print(repr(e)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return response.json(178) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                # 设置此签名URL在60秒内有效。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                url = bucket.sign_url('PUT', obj, 7200) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return response.json(0, url) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            url = bucket.sign_url('PUT', obj, 7200) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return response.json(0, {'put_url': url, 'res_name': obj}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return response.json(444, 'uploadType') 
			 |