浏览代码

整合问卷代码

zhangdongming 3 年之前
父节点
当前提交
ef6f0584d4
共有 3 个文件被更改,包括 71 次插入112 次删除
  1. 19 22
      Ansjer/urls.py
  2. 52 0
      Controller/SurveysController.py
  3. 0 90
      Controller/SurveysUserLogController.py

+ 19 - 22
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, SurveysController, SurveysUserLogController
+    DeviceLogController, CouponController, AiController, SurveysController
 from AdminController import UserManageController, RoleController, MenuController, TestServeController, \
     ServeManagementController, LogManagementController, DeviceManagementController, VersionManagementController, \
     AiServeController
@@ -31,7 +31,7 @@ urlpatterns = [
     url(r'^v3/account/imageCodeRegister/$', UserController.Image_Code_RegisterView.as_view()),
     url(r'^account/register$', UserController.registerView.as_view()),
     url(r'^account/login$', UserController.v2LoginView.as_view()),
-	url(r'^account/logout$', UserController.LogoutView.as_view()),
+    url(r'^account/logout$', UserController.LogoutView.as_view()),
     url(r'^account/noPasslogin$', UserController.noPasslogin.as_view()),
     url(r'^account/changePwd$', UserController.ChangePwdView.as_view()),
     url(r'^account/forget$', UserController.ForgetPwdView.as_view()),
@@ -141,10 +141,10 @@ urlpatterns = [
     url(r'^account/oneClickLogin$', UserController.oneClickLoginView.as_view()),
     url(r'^account/createPwd$', UserController.createPwd.as_view()),
 
-    #用户删除/注销
+    # 用户删除/注销
     url(r'^account/delete$', UserController.deleteAccount),
 
-    #确认地区
+    # 确认地区
     url(r'^user/confirmRegion$', UserController.confirmRegion),
 
     # 验证码登录
@@ -155,7 +155,7 @@ urlpatterns = [
     url(r'^v3/account/loginByFingerprint$', UserController.v3LoginByFingerprintView.as_view()),
     url(r'^v3/account/setFingerprint$', UserController.v3SetFingerprintView.as_view()),
 
-    url(r'^detect/detect_group_push$',DetectController.NotificationView.detect_group_push),
+    url(r'^detect/detect_group_push$', DetectController.NotificationView.detect_group_push),
     url(r'^detect/add$', DetectController.PushNotificationView.as_view()),
     # 推送项目接口
     url(r'^detect/(?P<operation>.*)$', DetectController.DetectControllerView.as_view()),
@@ -237,17 +237,17 @@ urlpatterns = [
     url(r'^login/oauth/(?P<operation>.*)$', ApplicationController.AuthView.as_view()),
     url(r'^grant/code/(?P<operation>.*)$', ApplicationController.GrantCodeView.as_view()),
     url(r'^user/ex/(?P<operation>.*)$', UserExController.UserExView.as_view()),
-	url(r'^v3/equipment/(?P<operation>.*)$', EquipmentManagerV3.EquipmentManagerV3.as_view()),
-	url(r'^cloudstorage/(?P<operation>.*)$', CloudStorage.CloudStorageView.as_view()),
-    url(r'^payCycle/(?P<operation>.*)$', PaymentCycle.PaypalCycleNotify.as_view()), #周期扣款
-	url(r'^paypalCycleNotify/(?P<operation>.*)$', PaymentCycle.PaypalCycleNotify.as_view()), #paypal周期扣款订阅通知
-	url(r'^paymentCycle/(?P<operation>.*)$', PaymentCycle.payCycle.as_view()), #paypal周期扣款
+    url(r'^v3/equipment/(?P<operation>.*)$', EquipmentManagerV3.EquipmentManagerV3.as_view()),
+    url(r'^cloudstorage/(?P<operation>.*)$', CloudStorage.CloudStorageView.as_view()),
+    url(r'^payCycle/(?P<operation>.*)$', PaymentCycle.PaypalCycleNotify.as_view()),  # 周期扣款
+    url(r'^paypalCycleNotify/(?P<operation>.*)$', PaymentCycle.PaypalCycleNotify.as_view()),  # paypal周期扣款订阅通知
+    url(r'^paymentCycle/(?P<operation>.*)$', PaymentCycle.payCycle.as_view()),  # paypal周期扣款
 
-    #AI服务
+    # AI服务
     url(r'^AiService/(?P<operation>.*)$', AiController.AiView.as_view()),
     url('^ai/updateUnusedAi', AiController.updateUnusedAi),
 
-    #新增解密的接口
+    # 新增解密的接口
     url(r'^v3/account/changePwd$', UserController.v3ChangePwdView.as_view()),
     url(r'^v3/account/resetPwdByCode$', UserController.v3resetPwdByCodeView.as_view()),
     url(r'^v3/account/register$', UserController.v3registerView.as_view()),
@@ -264,7 +264,7 @@ urlpatterns = [
     url(r'^statistcs/pushDay$', StatisticsController.statistcsPushDay),
     url(r'^statistcs/pushMonth$', StatisticsController.statistcsPushMonth),
 
-    #统计alexa连接数
+    # 统计alexa连接数
     url(r'^alexa/(?P<operation>.*)$', Alexa.AlexaConnectNum.as_view()),
 
     # FAQ
@@ -297,23 +297,23 @@ urlpatterns = [
     # 云存转移功能
     url(r'^cloudTransfer/(?P<operation>.*)$', CloudTransfer.cloudTestView.as_view()),
 
-    #优惠券
+    # 优惠券
     url(r'^coupon/(?P<operation>.*)$', CouponController.CouponView.as_view()),
 
     # app 设备消息模板
     # 路由加参数参考
     # url(r'^(?P<path>.*)/(?P<UID>.*)/lls$', Test.Test.as_view(), name=u'gg'),
-    #testing....................
+    # testing....................
 
-    #云存服务统计
+    # 云存服务统计
     url(r'^Cloudsum/(?P<operation>.*)$', Cloudsum.Cloudsum.as_view()),
     # 设备ip地区统计
     url(r'^device/StatisticsIpRegion$', DeviceConfirmRegion.StatisticsIpRegion.as_view()),
 
-    #Iot Core
+    # Iot Core
     url(r'iot/(?P<operation>.*)$', IotCoreController.IotCoreView.as_view()),
 
-    #S3预签名
+    # S3预签名
     url(r's3_getsts/(?P<operation>.*)$', S3GetStsController.S3GetStsView.as_view()),
 
     # 云分配UID
@@ -334,7 +334,6 @@ urlpatterns = [
     path('vpgUid/uid', VPGController.do_upload_uid),
     re_path('language/(?P<operation>.*)', LanguageController.LanguageView.as_view()),
 
-
     re_path('test/(?P<operation>.*)', TestController.TestView.as_view()),
     # 日志管理系统
     url(r'^OperatingLogs/(?P<operation>.*)$', OperatingLogs.OperatingLogsView.as_view()),
@@ -346,7 +345,7 @@ urlpatterns = [
     # 验证验证码
     url(r'verifyCode/(?P<operation>.*$)', VerifyCodeController.VerifyCodeView.as_view()),
 
-    #设备确定分配地区
+    # 设备确定分配地区
     url(r'^device/confirmRegion$', DeviceConfirmRegion.ConfirmRegion.as_view()),
     url(r'^device/ConfirmRegionV2$', DeviceConfirmRegion.ConfirmRegionV2.as_view()),
     url(r'^device/confirmCountry$', DeviceConfirmRegion.confirm_country_with_ip),
@@ -390,10 +389,8 @@ urlpatterns = [
     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()),
     # 后台界面接口 -----------------------------------------------------
 
-
     re_path('(?P<path>.*)', LogManager.errorPath),
 
 ]

+ 52 - 0
Controller/SurveysController.py

@@ -17,6 +17,7 @@ from Object.ResponseObject import ResponseObject
 from Model.models import Surveys, SurveysTitle, Order_Model, CloudVodSurveysAnswer, Device_User, SurveysUserLog
 from Service.CommonService import CommonService
 import logging
+from django.db import connection
 
 
 class SurveysView(View):
@@ -68,6 +69,8 @@ class SurveysView(View):
             return self.title_del(request_dict, response)
         if operation == 'cloud/vod/answer/page':
             return self.cloud_surveys_answer_page(request_dict, response)
+        if operation == 'cloud/storage/log/page':
+            return self.cloud_storage_user_log_page(request_dict, response)
         return response.json(0)
 
     def check_stock_user(self, user_id, request_dict, response):
@@ -316,3 +319,52 @@ class SurveysView(View):
         except Exception as e:
             print(e)
             return response.json(500, repr(e))
+
+    ''' 云存用户问卷调查统计 '''
+
+    def cloud_storage_user_log_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))

+ 0 - 90
Controller/SurveysUserLogController.py

@@ -1,90 +0,0 @@
-#!/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))