| 
					
				 | 
			
			
				@@ -10,11 +10,15 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import logging 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from django.db import transaction 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from django.utils.decorators import method_decorator 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from django.views.decorators.csrf import csrf_exempt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from django.views.generic.base import View 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from Model.models import Surveys, SurveysTitle, Order_Model, CloudVodSurveysAnswer, SurveysUserLog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from Model.models import Surveys, SurveysTitle, Order_Model, CloudVodSurveysAnswer, SurveysUserLog, \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CloudVodSurveysOperateLog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from Object.utils import LocalDateTimeUtil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from Object.ResponseObject import ResponseObject 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from Object.TokenObject import TokenObject 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from Service.CommonService import CommonService 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -50,15 +54,18 @@ class CloudStorageView(View): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if operation == 'cloud/answer/save': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ip = CommonService.get_ip_address(request) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return self.answer_save(userID, ip, request_dict, response) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if operation == "cloud/storage/ioc/close": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.cloud_vob_operate_log_save(status=2, userId=userID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return response.json(0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def check_stock_user(self, user_id, response): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         order = Order_Model.objects.filter(userID=user_id, status=1, order_type=0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if order.count() == 0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if not order.exists() and order.count() == 0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return response.json(10030) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             no = '01' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             surveys = Surveys.objects.filter(no=no, user_type=1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if not all(surveys): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if not surveys.exists(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return response.json(173) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             result = surveys[0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             surveys_title = SurveysTitle.objects.filter(surveys_id=result.id).order_by('-created_time') 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -82,6 +89,8 @@ class CloudStorageView(View): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             status = True if submit == 1 else False 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             self.surveys_user_log_save(status, user_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if not submit == 1: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                self.cloud_vob_operate_log_save(submit, userId=user_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return response.json(0, data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         except Exception as e: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             print(e) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -99,6 +108,30 @@ class CloudStorageView(View): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 user_log = SurveysUserLog(user_id=userId, type=1, created_time=createdTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 user_log.save() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @classmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def cloud_vob_operate_log_save(cls, status=0, userId=''): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        """ 保存用户操作记录 """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            with transaction.atomic(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if userId: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    start_time, end_time = LocalDateTimeUtil.get_today_date(True) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    user_operate_qs = CloudVodSurveysOperateLog.objects.filter(user_id=userId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                                               created_time__gte=start_time, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                                               created_time__lte=end_time) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    local_time = int(time.time()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if user_operate_qs.exists(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        operate_log = user_operate_qs.first() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if not operate_log.status == status: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            operate_log.status = status 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            operate_log.updated_time = local_time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            operate_log.save() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        operate_log = CloudVodSurveysOperateLog(user_id=userId, status=status, updated_time=local_time, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                                created_time=local_time) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        operate_log.save() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        except Exception as e: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            print(e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @classmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def answer_save(cls, userId, ip, request_dict, response): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -129,6 +162,7 @@ class CloudStorageView(View): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                    created_time=createdTime, country_name=country_name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     answer.save() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     SurveysUserLog.objects.filter(user_id=userId, type=1).update(is_filled=1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    cls.cloud_vob_operate_log_save(status=1, userId=userId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return response.json(0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         except Exception as e: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             print(e) 
			 |