|
@@ -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))
|
|
|
+
|