Эх сурвалжийг харах

更新问卷用户统计日志API

zhangdongming 3 жил өмнө
parent
commit
752c8ef664

+ 4 - 4
Ansjer/urls.py

@@ -19,7 +19,7 @@ from Controller import FeedBack, EquipmentOTA, EquipmentInfo, AdminManage, AppIn
     OrderTaskController, HistoryUIDController, UIDManageUserController, SerialNumberController, CompanyController, \
     RegionController, VPGController, LanguageController, TestController, DeviceConfirmRegion, S3GetStsController, \
     DetectControllerV2, ShadowController, TestDetectController, PcInfo, PctestController, DeviceDebug, PaymentCycle, \
-    DeviceLogController, CouponController, AiController
+    DeviceLogController, CouponController, AiController, SurveysController, SurveysUserLogController
 from AdminController import UserManageController, RoleController, MenuController, TestServeController, \
     ServeManagementController, LogManagementController, DeviceManagementController, VersionManagementController, \
     AiServeController
@@ -362,7 +362,7 @@ urlpatterns = [
     re_path('deviceDebug/(?P<operation>.*)', DeviceDebug.DeviceDebug.as_view()),
 
     # 问卷调查
-    # url(r'^api/surveys/(?P<operation>.*)$', SurveysController.SurveysView.as_view()),
+    url(r'^api/surveys/(?P<operation>.*)$', SurveysController.SurveysView.as_view()),
 
     # 后台界面接口 -----------------------------------------------------
     # 用户登录信息等
@@ -389,8 +389,8 @@ urlpatterns = [
     # AI服务
     re_path('aiServe/(?P<operation>.*)', AiServeController.AiServeView.as_view()),
     # 问卷调查管理
-    # url(r'surveys/(?P<operation>.*)', SurveysController.SurveysView.as_view()),
-    # url(r'surveysUser/log/(?P<operation>.*)', SurveysUserLogController.SurveysUserLogView.as_view()),
+    url(r'surveys/(?P<operation>.*)', SurveysController.SurveysView.as_view()),
+    url(r'surveysUser/log/(?P<operation>.*)', SurveysUserLogController.SurveysUserLogView.as_view()),
     # 后台界面接口 -----------------------------------------------------
 
 

+ 317 - 317
Controller/SurveysController.py

@@ -1,318 +1,318 @@
-# #!/usr/bin/python3.6
-# # -*- coding: utf-8 -*-
-# #
-# # Copyright (C) 2022 #
-# # @Time    : 2022/3/9 9:20
-# # @Author  : ming
-# # @Email   : zhangdongming@asj6.wecom.work
-# # @File    : SurveysController.py
-# # @Software: PyCharm
-# import time
-# import json
-# from django.utils.decorators import method_decorator
-# from django.views.decorators.csrf import csrf_exempt
-# from django.views.generic.base import View
-# from Object.TokenObject import TokenObject
-# from Object.ResponseObject import ResponseObject
-# from Model.models import Surveys, SurveysTitle, Order_Model, CloudVodSurveysAnswer, Device_User, SurveysUserLog
-# from Service.CommonService import CommonService
-# import logging
+#!/usr/bin/python3.6
+# -*- coding: utf-8 -*-
 #
-#
-# class SurveysView(View):
-#     @method_decorator(csrf_exempt)
-#     def dispatch(self, *args, **kwargs):
-#         return super(SurveysView, self).dispatch(*args, **kwargs)
-#
-#     def get(self, request, *args, **kwargs):
-#         request.encoding = 'utf-8'
-#         operation = kwargs.get('operation')
-#         return self.validation(request.GET, request, operation)
-#
-#     def post(self, request, *args, **kwargs):
-#         request.encoding = 'utf-8'
-#         operation = kwargs.get('operation')
-#         return self.validation(request.POST, request, operation)
-#
-#     def validation(self, request_dict, request, operation):
-#         logger = logging.getLogger('info')
-#         token = TokenObject(request.META.get('HTTP_AUTHORIZATION'))
-#         response = ResponseObject()
-#         if token.code != 0:
-#             return response.json(token.code)
-#         userID = token.userID
-#
-#         ''' API '''
-#         logger.info('---- this user id:{},dict{}'.format(userID, request_dict))
-#         if operation == 'get/info':
-#             return self.check_stock_user(userID, request_dict, response)
-#         if operation == 'cloud/answer/save':
-#             ip = CommonService.get_ip_address(request)
-#             return self.answer_save(userID, ip, request_dict, response)
-#
-#         ''' 后台管理'''
-#         response = ResponseObject(returntype='pc')
-#         if operation == 'save':
-#             return self.save(request_dict, response)
-#         if operation == 'edit':
-#             return self.edit(request_dict, response)
-#         if operation == 'list':
-#             return self.get_page(request_dict, response)
-#         if operation == 'title/list':
-#             return self.get_title_list(request_dict, response)
-#         if operation == 'title/save':
-#             return self.title_save(request_dict, response)
-#         if operation == 'title/edit':
-#             return self.title_edit(request_dict, response)
-#         if operation == 'title/del':
-#             return self.title_del(request_dict, response)
-#         if operation == 'cloud/vod/answer/page':
-#             return self.cloud_surveys_answer_page(request_dict, response)
-#         return response.json(0)
-#
-#     def check_stock_user(self, user_id, request_dict, response):
-#         order = Order_Model.objects.filter(userID=user_id, status=1, order_type=0)
-#         if order.count() == 0:
-#             return response.json(10030)
-#         try:
-#             no = '01'
-#             surveys = Surveys.objects.filter(no=no, user_type=1)
-#             if not all(surveys):
-#                 return response.json(173)
-#             result = surveys[0]
-#             surveys_title = SurveysTitle.objects.filter(surveys_id=result.id).order_by('-created_time')
-#
-#             submit = 0
-#             if surveys_title.exists():
-#                 surveys_title = surveys_title[0]
-#                 cloud_vod = CloudVodSurveysAnswer.objects.filter(title_id=surveys_title.id, user_id=user_id)
-#                 if cloud_vod.exists():
-#                     submit = 1
-#             data = {
-#                 'no': result.no,
-#                 'title': 'Zosi Cloud Storage',
-#                 'imageUrl': 'https://d2cjxvw3tr9apc.cloudfront.net/app/images/ansjer-cloud-surveys.png',
-#                 'userType': result.user_type,
-#                 'startTime': result.start_time,
-#                 'endTime': result.end_time,
-#                 'isShow': result.is_show,
-#                 'isSubmit': submit,
-#                 'page': '/surveys?token=' if result.is_show == 1 else ''
-#             }
-#             status = True if submit == 1 else False
-#             self.surveys_user_log_save(status, user_id)
-#             return response.json(0, data)
-#         except Exception as e:
-#             print(e)
-#             return response.json(500, repr(e))
-#
-#     def surveys_user_log_save(self, status=False, userId='', survey_type=1):
-#         if userId:
-#             user_log = SurveysUserLog.objects.filter(user_id=userId, type=survey_type)
-#             if user_log.exists():
-#                 if status and user_log[0].is_filled == 0:
-#                     user_log.update(is_filled=1)
-#             else:
-#                 createdTime = int(time.time())
-#                 user_log = SurveysUserLog(user_id=userId, type=1, created_time=createdTime)
-#                 user_log.save()
-#
-#     def answer_save(self, userId, ip, request_dict, response):
-#         try:
-#             ipInfo = CommonService.getIpIpInfo(ip, "CN")
-#             country_name = ipInfo['country_name']
-#             no = request_dict.get('no', None)
-#             if not no:
-#                 return response.json(10, 'no is null')
-#             survey = Surveys.objects.filter(no=no)
-#             if survey.exists():
-#                 survey = survey[0]
-#                 survey_title = SurveysTitle.objects.filter(surveys=survey.id)
-#                 if survey_title.exists():
-#                     survey_title = survey_title[0]
-#                     cloud_vod = CloudVodSurveysAnswer.objects.filter(title_id=survey_title.id, user_id=userId)
-#                     if cloud_vod.exists():
-#                         return response.json(10, "Do not submit twice")
-#                     score = request_dict.get('score', None)
-#                     topicA = request_dict.get('topicA', None)
-#                     topicB = request_dict.get('topicB', None)
-#                     topicC = request_dict.get('topicC', None)
-#                     topicD = request_dict.get('topicD', None)
-#                     topicF = request_dict.get('topicF', None)
-#                     createdTime = int(time.time())
-#                     answer = CloudVodSurveysAnswer(title_id=survey_title.id, user_id=userId, ip=ip, answer1=int(score),
-#                                                    answer2=topicA,
-#                                                    answer3=topicB, answer4=topicC, answer5=topicD, answer6=topicF,
-#                                                    created_time=createdTime, country_name=country_name)
-#                     answer.save()
-#                     SurveysUserLog.objects.filter(user_id=userId, type=1).update(is_filled=1)
-#             return response.json(0)
-#         except Exception as e:
-#             print(e)
-#             return response.json(500, repr(e))
-#
-#     def get_page(self, request_dict, response):
-#         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:
-#             request_qs = Surveys.objects.all()
-#             total = request_qs.count()
-#             surveys_list = request_qs.filter().order_by('-created_time')[(page - 1) * line:page * line]
-#             result_list = []
-#             for surveys in surveys_list:
-#                 start_time = time.localtime(surveys.start_time)
-#                 endT_time = time.localtime(surveys.end_time)
-#                 created_time = time.localtime(surveys.created_time)
-#                 result_list.append({
-#                     'id': surveys.id,
-#                     'no': surveys.no,
-#                     'userType': surveys.user_type,
-#                     'startTime': time.strftime("%Y-%m-%d %H:%M:%S", start_time),
-#                     'endTime': time.strftime("%Y-%m-%d %H:%M:%S", endT_time),
-#                     'isShow': surveys.is_show,
-#                     'createdTime': time.strftime("%Y-%m-%d %H:%M:%S", created_time),
-#                 })
-#             return response.json(0, {'list': result_list, 'total': total})
-#         except Exception as e:
-#             print(e)
-#             return response.json(500, repr(e))
-#
-#     def save(self, request_dict, response):
-#         no = request_dict.get('no', None)
-#         if no:
-#             if Surveys.objects.filter(no=no).exists():
-#                 return response.json(10, '已存在')
-#             no = request_dict.get('no', None)
-#             userType = request_dict.get('userType', None)
-#             startTime = request_dict.get('dateTime[0]', None)
-#             endTime = request_dict.get('dateTime[1]', None)
-#             isShow = request_dict.get('isShow', None)
-#             isShow = 1 if isShow == 'true' else 0
-#             createdTime = int(time.time())
-#             try:
-#                 surveys = Surveys(no=no, user_type=userType, start_time=int(startTime),
-#                                   end_time=endTime, is_show=isShow, created_time=int(createdTime))
-#                 surveys.save()
-#                 return response.json(0)
-#             except Exception as e:
-#                 print(e)
-#                 return response.json(500, repr(e))
-#         return response.json(0)
-#
-#     def edit(self, request_dict, response):
-#         sur_id = request_dict.get('id', None)
-#         if not sur_id:
-#             return response.json(10, 'id不存在')
-#
-#         userType = request_dict.get('userType', None)
-#         startTime = request_dict.get('dateTime[0]', None)
-#         endTime = request_dict.get('dateTime[1]', None)
-#         isShow = request_dict.get('isShow', None)
-#         isShow = 1 if isShow == 'true' else 0
-#         print(endTime)
-#         Surveys.objects.filter(id=int(sur_id)).update(user_type=int(userType), start_time=int(startTime),
-#                                                       end_time=int(endTime),
-#                                                       is_show=int(isShow))
-#         return response.json(0)
-#
-#     def delete(self, request_dict, response):
-#         sId = request_dict.get('id', None)
-#         if not sId:
-#             return response.json(10, 'id不存在')
-#         Surveys.objects.filter(id=sId).delete()
-#         response.json(0)
-#
-#     def title_save(self, request_dict, response):
-#         surveyId = request_dict.get('surveyId', None)
-#         if not surveyId:
-#             return response(10, 'surveyId is null')
-#         t_id = request_dict.get('id', None)
-#         content = request_dict.get('content', None)
-#         createdTime = int(time.time())
-#         try:
-#             title = SurveysTitle.objects.filter(id=t_id)
-#             if title.exists():
-#                 title.update(title_content=content)
-#             else:
-#                 surveys_title = SurveysTitle(surveys_id=surveyId, title_content=content
-#                                              , created_time=createdTime)
-#                 surveys_title.save()
-#             return response.json(0)
-#         except Exception as e:
-#             print(e)
-#             return response.json(500, repr(e))
-#
-#     def get_title_list(self, request_dict, response):
-#         surveyId = request_dict.get('surveyId', None)
-#         info = request_dict.get('info', None)
-#         if not surveyId:
-#             return response.json(10, '问卷id不存在')
-#         title_list = SurveysTitle.objects.filter(surveys_id=surveyId).order_by('-created_time')
-#         if not title_list.exists():
-#             if info:
-#                 return response.json(0, {'id': None, 'content': None})
-#             return response.json(173)
-#         content = title_list[0]
-#         if info:
-#             return response.json(0, {'id': content.id, 'content': content.title_content})
-#         data = json.loads(content.title_content)
-#         return response.json(0, {'answers': data})
-#
-#     def title_edit(self, request_dict, response):
-#         title_id = request_dict.get('id', None)
-#         if not title_id:
-#             return response.json(10, 'id不存在')
-#         content = request_dict.get('content', None)
-#         surveys_title = SurveysTitle.objects.filter(surveys_id=title_id)
-#         surveys_title.update(title_content=content)
-#         return response.json(0)
-#
-#     def title_del(self, request_dict, response):
-#         title_id = request_dict.get('id', None)
-#         if not title_id:
-#             return response.json(10, 'id不存在')
-#         SurveysTitle.objects.filter(id=title_id).delete()
-#         return response.json(0)
-#
-#     def cloud_surveys_answer_page(self, request_dict, response):
-#         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:
-#             request_qs = CloudVodSurveysAnswer.objects.all()
-#             total = request_qs.count()
-#             answer_page = request_qs.filter().order_by('-created_time')[(page - 1) * line:page * line]
-#             result_list = []
-#             for answer in answer_page:
-#                 d_user = Device_User.objects.filter(userID=answer.user_id)
-#                 if not all(d_user):
-#                     return response.json(173)
-#                 d_user = d_user[0]
-#                 created_time = time.localtime(answer.created_time)
-#                 result_list.append({
-#                     'id': answer.id,
-#                     'uId': d_user.userID,
-#                     'uName': d_user.username,
-#                     'nickName': d_user.NickName,
-#                     'answer1': answer.answer1,
-#                     'answer2': answer.answer2,
-#                     'answer3': answer.answer3,
-#                     'answer4': answer.answer4,
-#                     'answer5': answer.answer5,
-#                     'answer6': answer.answer6,
-#                     'country': answer.country_name,
-#                     'createdTime': time.strftime("%Y-%m-%d %H:%M:%S", created_time),
-#                 })
-#             return response.json(0, {'list': result_list, 'total': total})
-#         except Exception as e:
-#             print(e)
-#             return response.json(500, repr(e))
+# Copyright (C) 2022 #
+# @Time    : 2022/3/9 9:20
+# @Author  : ming
+# @Email   : zhangdongming@asj6.wecom.work
+# @File    : SurveysController.py
+# @Software: PyCharm
+import time
+import json
+from django.utils.decorators import method_decorator
+from django.views.decorators.csrf import csrf_exempt
+from django.views.generic.base import View
+from Object.TokenObject import TokenObject
+from Object.ResponseObject import ResponseObject
+from Model.models import Surveys, SurveysTitle, Order_Model, CloudVodSurveysAnswer, Device_User, SurveysUserLog
+from Service.CommonService import CommonService
+import logging
+
+
+class SurveysView(View):
+    @method_decorator(csrf_exempt)
+    def dispatch(self, *args, **kwargs):
+        return super(SurveysView, self).dispatch(*args, **kwargs)
+
+    def get(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation')
+        return self.validation(request.GET, request, operation)
+
+    def post(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation')
+        return self.validation(request.POST, request, operation)
+
+    def validation(self, request_dict, request, operation):
+        logger = logging.getLogger('info')
+        token = TokenObject(request.META.get('HTTP_AUTHORIZATION'))
+        response = ResponseObject()
+        if token.code != 0:
+            return response.json(token.code)
+        userID = token.userID
+
+        ''' API '''
+        logger.info('---- this user id:{},dict{}'.format(userID, request_dict))
+        if operation == 'get/info':
+            return self.check_stock_user(userID, request_dict, response)
+        if operation == 'cloud/answer/save':
+            ip = CommonService.get_ip_address(request)
+            return self.answer_save(userID, ip, request_dict, response)
+
+        ''' 后台管理'''
+        response = ResponseObject(returntype='pc')
+        if operation == 'save':
+            return self.save(request_dict, response)
+        if operation == 'edit':
+            return self.edit(request_dict, response)
+        if operation == 'list':
+            return self.get_page(request_dict, response)
+        if operation == 'title/list':
+            return self.get_title_list(request_dict, response)
+        if operation == 'title/save':
+            return self.title_save(request_dict, response)
+        if operation == 'title/edit':
+            return self.title_edit(request_dict, response)
+        if operation == 'title/del':
+            return self.title_del(request_dict, response)
+        if operation == 'cloud/vod/answer/page':
+            return self.cloud_surveys_answer_page(request_dict, response)
+        return response.json(0)
+
+    def check_stock_user(self, user_id, request_dict, response):
+        order = Order_Model.objects.filter(userID=user_id, status=1, order_type=0)
+        if order.count() == 0:
+            return response.json(10030)
+        try:
+            no = '01'
+            surveys = Surveys.objects.filter(no=no, user_type=1)
+            if not all(surveys):
+                return response.json(173)
+            result = surveys[0]
+            surveys_title = SurveysTitle.objects.filter(surveys_id=result.id).order_by('-created_time')
+
+            submit = 0
+            if surveys_title.exists():
+                surveys_title = surveys_title[0]
+                cloud_vod = CloudVodSurveysAnswer.objects.filter(title_id=surveys_title.id, user_id=user_id)
+                if cloud_vod.exists():
+                    submit = 1
+            data = {
+                'no': result.no,
+                'title': 'Zosi Cloud Storage',
+                'imageUrl': 'https://d2cjxvw3tr9apc.cloudfront.net/app/images/ansjer-cloud-surveys.png',
+                'userType': result.user_type,
+                'startTime': result.start_time,
+                'endTime': result.end_time,
+                'isShow': result.is_show,
+                'isSubmit': submit,
+                'page': '/surveys?token=' if result.is_show == 1 else ''
+            }
+            status = True if submit == 1 else False
+            self.surveys_user_log_save(status, user_id)
+            return response.json(0, data)
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))
+
+    def surveys_user_log_save(self, status=False, userId='', survey_type=1):
+        if userId:
+            user_log = SurveysUserLog.objects.filter(user_id=userId, type=survey_type)
+            if user_log.exists():
+                if status and user_log[0].is_filled == 0:
+                    user_log.update(is_filled=1)
+            else:
+                createdTime = int(time.time())
+                user_log = SurveysUserLog(user_id=userId, type=1, created_time=createdTime)
+                user_log.save()
+
+    def answer_save(self, userId, ip, request_dict, response):
+        try:
+            ipInfo = CommonService.getIpIpInfo(ip, "CN")
+            country_name = ipInfo['country_name']
+            no = request_dict.get('no', None)
+            if not no:
+                return response.json(10, 'no is null')
+            survey = Surveys.objects.filter(no=no)
+            if survey.exists():
+                survey = survey[0]
+                survey_title = SurveysTitle.objects.filter(surveys=survey.id)
+                if survey_title.exists():
+                    survey_title = survey_title[0]
+                    cloud_vod = CloudVodSurveysAnswer.objects.filter(title_id=survey_title.id, user_id=userId)
+                    if cloud_vod.exists():
+                        return response.json(10, "Do not submit twice")
+                    score = request_dict.get('score', None)
+                    topicA = request_dict.get('topicA', None)
+                    topicB = request_dict.get('topicB', None)
+                    topicC = request_dict.get('topicC', None)
+                    topicD = request_dict.get('topicD', None)
+                    topicF = request_dict.get('topicF', None)
+                    createdTime = int(time.time())
+                    answer = CloudVodSurveysAnswer(title_id=survey_title.id, user_id=userId, ip=ip, answer1=int(score),
+                                                   answer2=topicA,
+                                                   answer3=topicB, answer4=topicC, answer5=topicD, answer6=topicF,
+                                                   created_time=createdTime, country_name=country_name)
+                    answer.save()
+                    SurveysUserLog.objects.filter(user_id=userId, type=1).update(is_filled=1)
+            return response.json(0)
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))
+
+    def get_page(self, request_dict, response):
+        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:
+            request_qs = Surveys.objects.all()
+            total = request_qs.count()
+            surveys_list = request_qs.filter().order_by('-created_time')[(page - 1) * line:page * line]
+            result_list = []
+            for surveys in surveys_list:
+                start_time = time.localtime(surveys.start_time)
+                endT_time = time.localtime(surveys.end_time)
+                created_time = time.localtime(surveys.created_time)
+                result_list.append({
+                    'id': surveys.id,
+                    'no': surveys.no,
+                    'userType': surveys.user_type,
+                    'startTime': time.strftime("%Y-%m-%d %H:%M:%S", start_time),
+                    'endTime': time.strftime("%Y-%m-%d %H:%M:%S", endT_time),
+                    'isShow': surveys.is_show,
+                    'createdTime': time.strftime("%Y-%m-%d %H:%M:%S", created_time),
+                })
+            return response.json(0, {'list': result_list, 'total': total})
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))
+
+    def save(self, request_dict, response):
+        no = request_dict.get('no', None)
+        if no:
+            if Surveys.objects.filter(no=no).exists():
+                return response.json(10, '已存在')
+            no = request_dict.get('no', None)
+            userType = request_dict.get('userType', None)
+            startTime = request_dict.get('dateTime[0]', None)
+            endTime = request_dict.get('dateTime[1]', None)
+            isShow = request_dict.get('isShow', None)
+            isShow = 1 if isShow == 'true' else 0
+            createdTime = int(time.time())
+            try:
+                surveys = Surveys(no=no, user_type=userType, start_time=int(startTime),
+                                  end_time=endTime, is_show=isShow, created_time=int(createdTime))
+                surveys.save()
+                return response.json(0)
+            except Exception as e:
+                print(e)
+                return response.json(500, repr(e))
+        return response.json(0)
+
+    def edit(self, request_dict, response):
+        sur_id = request_dict.get('id', None)
+        if not sur_id:
+            return response.json(10, 'id不存在')
+
+        userType = request_dict.get('userType', None)
+        startTime = request_dict.get('dateTime[0]', None)
+        endTime = request_dict.get('dateTime[1]', None)
+        isShow = request_dict.get('isShow', None)
+        isShow = 1 if isShow == 'true' else 0
+        print(endTime)
+        Surveys.objects.filter(id=int(sur_id)).update(user_type=int(userType), start_time=int(startTime),
+                                                      end_time=int(endTime),
+                                                      is_show=int(isShow))
+        return response.json(0)
+
+    def delete(self, request_dict, response):
+        sId = request_dict.get('id', None)
+        if not sId:
+            return response.json(10, 'id不存在')
+        Surveys.objects.filter(id=sId).delete()
+        response.json(0)
+
+    def title_save(self, request_dict, response):
+        surveyId = request_dict.get('surveyId', None)
+        if not surveyId:
+            return response(10, 'surveyId is null')
+        t_id = request_dict.get('id', None)
+        content = request_dict.get('content', None)
+        createdTime = int(time.time())
+        try:
+            title = SurveysTitle.objects.filter(id=t_id)
+            if title.exists():
+                title.update(title_content=content)
+            else:
+                surveys_title = SurveysTitle(surveys_id=surveyId, title_content=content
+                                             , created_time=createdTime)
+                surveys_title.save()
+            return response.json(0)
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))
+
+    def get_title_list(self, request_dict, response):
+        surveyId = request_dict.get('surveyId', None)
+        info = request_dict.get('info', None)
+        if not surveyId:
+            return response.json(10, '问卷id不存在')
+        title_list = SurveysTitle.objects.filter(surveys_id=surveyId).order_by('-created_time')
+        if not title_list.exists():
+            if info:
+                return response.json(0, {'id': None, 'content': None})
+            return response.json(173)
+        content = title_list[0]
+        if info:
+            return response.json(0, {'id': content.id, 'content': content.title_content})
+        data = json.loads(content.title_content)
+        return response.json(0, {'answers': data})
+
+    def title_edit(self, request_dict, response):
+        title_id = request_dict.get('id', None)
+        if not title_id:
+            return response.json(10, 'id不存在')
+        content = request_dict.get('content', None)
+        surveys_title = SurveysTitle.objects.filter(surveys_id=title_id)
+        surveys_title.update(title_content=content)
+        return response.json(0)
+
+    def title_del(self, request_dict, response):
+        title_id = request_dict.get('id', None)
+        if not title_id:
+            return response.json(10, 'id不存在')
+        SurveysTitle.objects.filter(id=title_id).delete()
+        return response.json(0)
+
+    def cloud_surveys_answer_page(self, request_dict, response):
+        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:
+            request_qs = CloudVodSurveysAnswer.objects.all()
+            total = request_qs.count()
+            answer_page = request_qs.filter().order_by('-created_time')[(page - 1) * line:page * line]
+            result_list = []
+            for answer in answer_page:
+                d_user = Device_User.objects.filter(userID=answer.user_id)
+                if not all(d_user):
+                    return response.json(173)
+                d_user = d_user[0]
+                created_time = time.localtime(answer.created_time)
+                result_list.append({
+                    'id': answer.id,
+                    'uId': d_user.userID,
+                    'uName': d_user.username,
+                    'nickName': d_user.NickName,
+                    'answer1': answer.answer1,
+                    'answer2': answer.answer2,
+                    'answer3': answer.answer3,
+                    'answer4': answer.answer4,
+                    'answer5': answer.answer5,
+                    'answer6': answer.answer6,
+                    'country': answer.country_name,
+                    'createdTime': time.strftime("%Y-%m-%d %H:%M:%S", created_time),
+                })
+            return response.json(0, {'list': result_list, 'total': total})
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))

+ 90 - 0
Controller/SurveysUserLogController.py

@@ -0,0 +1,90 @@
+#!/usr/bin/python3.6
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2022 #
+# @Time    : 2022/3/9 9:20
+# @Author  : ming
+# @Email   : zhangdongming@asj6.wecom.work
+# @File    : SurveysController.py
+# @Software: PyCharm
+import time
+import json
+from django.utils.decorators import method_decorator
+from django.views.decorators.csrf import csrf_exempt
+from django.views.generic.base import View
+from Object.TokenObject import TokenObject
+from Object.ResponseObject import ResponseObject
+from Model.models import Surveys, Device_User, Order_Model, SurveysUserLog
+from django.db import connection
+
+
+class SurveysUserLogView(View):
+    @method_decorator(csrf_exempt)
+    def dispatch(self, *args, **kwargs):
+        return super(SurveysUserLogView, self).dispatch(*args, **kwargs)
+
+    def get(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation')
+        return self.validation(request.GET, request, operation)
+
+    def post(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation')
+        return self.validation(request.POST, request, operation)
+
+    def validation(self, request_dict, request, operation):
+        token = TokenObject(request.META.get('HTTP_AUTHORIZATION'))
+        response = ResponseObject(returntype='pc')
+        if token.code != 0:
+            return response.json(token.code)
+        if operation == 'page':
+            return self.get_page(request_dict, response)
+        return response.json(0)
+
+    def get_page(self, request_dict, response):
+        pageNo = request_dict.get('pageNo', None)
+        pageSize = request_dict.get('pageSize', None)
+        if not all([pageNo, pageSize]):
+            return response.json(444)
+        try:
+            page = int(pageNo)
+            size = int(pageSize)
+            cursor = connection.cursor()
+            sql = 'SELECT o.orderID,o.userID_id,ca.id,ca.country_name as countryName '
+            sql += 'FROM orders o LEFT JOIN cloud_vod_surveys_answer ca ON o.userID_id = ca.user_id '
+            sql += ' WHERE o.status = %s AND o.order_type = %s GROUP BY o.userID_id '
+            cursor.execute(sql, [1, 0, ])
+            cloud_count = cursor.fetchall()
+            total = len(cloud_count)
+            sql += 'order by ca.created_time DESC,orderID DESC LIMIT %s,%s '
+            cursor.execute(sql, [1, 0, ((page - 1) * size), size, ])
+            data_obj = cursor.fetchall()
+            cursor.close()  # 执行完,关闭
+            connection.close()
+            result_list = []
+            col_names = [desc[0] for desc in cursor.description]
+            for item in data_obj:
+                tMap = dict(zip(col_names, item))
+                user_id = tMap['userID_id']
+                d_user = Device_User.objects.filter(userID=user_id)
+                tMap['uName'] = d_user[0].username
+                tMap['nickName'] = d_user[0].NickName
+                tMap.update({"type": 1})
+                survey_log_qs = SurveysUserLog.objects.filter(user_id=user_id)
+                if survey_log_qs.exists():
+                    survey_log = survey_log_qs[0]
+                    created_time = time.localtime(survey_log.created_time)
+                    tMap.update({"type": survey_log.type})
+                    tMap.update({"isFilled": survey_log.is_filled})
+                    tMap['createdTime'] = time.strftime("%Y-%m-%d %H:%M:%S", created_time),
+                    tMap.update({"isUpgrade": 1})
+                else:
+                    tMap.update({"isFilled": 0})
+                    tMap.update({"createdTime": ''})
+                    tMap.update({"isUpgrade": 0})
+                result_list.append(tMap)
+            return response.json(0, {'list': result_list, 'total': total})
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))