فهرست منبع

用户反馈列表

locky 3 سال پیش
والد
کامیت
96ede266a5
1فایلهای تغییر یافته به همراه70 افزوده شده و 2 حذف شده
  1. 70 2
      AdminController/UserManageController.py

+ 70 - 2
AdminController/UserManageController.py

@@ -16,6 +16,7 @@ import traceback
 import time
 import logging
 import jwt
+import oss2
 import simplejson
 import simplejson as json
 import requests
@@ -29,10 +30,11 @@ from django.views.generic import TemplateView
 from jwt.algorithms import RSAAlgorithm
 from ratelimit.decorators import ratelimit
 
-from Ansjer.config import AuthCode_Expire, SERVER_DOMAIN, APNS_CONFIG, JPUSH_CONFIG, FCM_CONFIG, TUTK_PUSH_DOMAIN
+from Ansjer.config import AuthCode_Expire, SERVER_DOMAIN, APNS_CONFIG, JPUSH_CONFIG, FCM_CONFIG, TUTK_PUSH_DOMAIN, \
+    OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET
 from Controller.CheckUserData import DataValid, date_handler, RandomStr
 from Model.models import Device_User, Role, UidPushModel, UserOauth2Model, UserExModel, Device_Info, UidSetModel, \
-    UserAppFrequencyModel, CountryIPModel, CountryModel, UidChannelSetModel, MenuModel
+    UserAppFrequencyModel, CountryIPModel, CountryModel, UidChannelSetModel, MenuModel, FeedBackModel, StatResModel
 from Object.AWS.SesClassObject import SesClassObject
 from Object.AliSmsObject import AliSmsObject
 from Object.RedisObject import RedisObject
@@ -317,6 +319,8 @@ class UserManagement(View):
                 return self.doDelete(userID, request_dict, response)
             elif operation == 'resetPassword':
                 return self.resetPassword(request_dict, response)
+            elif operation == 'getFeedbackList':
+                return self.getFeedbackList(request_dict, response)
             else:
                 return response.json(404)
 
@@ -452,3 +456,67 @@ class UserManagement(View):
         except Exception as e:
             print(e)
             return response.json(500, repr(e))
+
+    def getFeedbackList(self, request_dict, response):
+        status = request_dict.get('status', 0)
+        username = request_dict.get('username', None)
+        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:
+            filter_data = {}
+            if status or username:
+                if status:
+                    filter_data['status'] = int(status)
+                if username:
+                    filter_data['userID_id'] = ModelService.get_userID_byname(username)
+            feed_back_qs = FeedBackModel.objects.filter()
+            if filter_data:
+                feed_back_qs = feed_back_qs.filter(**filter_data)
+            total = feed_back_qs.count()
+            feed_backs = feed_back_qs[(page - 1) * line:page * line]. values(
+                'id',
+                'userID__username',
+                'userID__phone',
+                'userID__userEmail',
+                'content',
+                'addTime',
+                'status',
+                'type',
+                'app',
+                'app_version',
+                'phone_model',
+                'os_version',
+                'uid',
+                'appBundleId',
+                'score')
+
+            feed_back_id_list = [feed_back['id'] for feed_back in feed_backs]
+            stat_res_qs = StatResModel.objects.filter(
+                feedbackmodel__id__in=feed_back_id_list).values(
+                'name', 'feedbackmodel__id')
+            auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
+            bucket = oss2.Bucket(
+                auth, 'oss-cn-hongkong.aliyuncs.com', 'statres')
+            feed_back_list = []
+            for feed_back in feed_backs:
+                feed_back['img_url'] = []
+                for stat_res in stat_res_qs:
+                    if stat_res['feedbackmodel__id'] == feed_back['id']:
+                        obj = 'feedback/' + stat_res['name']
+                        img_url = bucket.sign_url('GET', obj, 3600)
+                        feed_back['img_url'].append(img_url)
+                        if not feed_back['userID__username']:
+                            feed_back['userID__username'] = feed_back['userID__userEmail'] if feed_back[
+                                'userID__userEmail'] else feed_back['userID__phone']
+                feed_back_list.append(feed_back)
+            return response.json(0, {'list': feed_back_list, 'total': total})
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))
+