|
@@ -477,21 +477,21 @@ class UserManagement(View):
|
|
fileType = request_dict.get('fileType', None) # 导出参数
|
|
fileType = request_dict.get('fileType', None) # 导出参数
|
|
pageNo = request_dict.get('pageNo', None)
|
|
pageNo = request_dict.get('pageNo', None)
|
|
pageSize = request_dict.get('pageSize', None)
|
|
pageSize = request_dict.get('pageSize', None)
|
|
-
|
|
|
|
if not all([pageNo, pageSize]):
|
|
if not all([pageNo, pageSize]):
|
|
return response.json(444)
|
|
return response.json(444)
|
|
-
|
|
|
|
page = int(pageNo)
|
|
page = int(pageNo)
|
|
line = int(pageSize)
|
|
line = int(pageSize)
|
|
try:
|
|
try:
|
|
filter_data = {}
|
|
filter_data = {}
|
|
- if status or username or collect_status:
|
|
|
|
|
|
+ if status or username or collect_status or fileType:
|
|
if status:
|
|
if status:
|
|
filter_data['status'] = int(status)
|
|
filter_data['status'] = int(status)
|
|
if username:
|
|
if username:
|
|
filter_data['userID_id'] = ModelService.get_userID_byname(username)
|
|
filter_data['userID_id'] = ModelService.get_userID_byname(username)
|
|
if collect_status:
|
|
if collect_status:
|
|
filter_data['collect_status'] = int(collect_status)
|
|
filter_data['collect_status'] = int(collect_status)
|
|
|
|
+ if fileType: # 判断是否导出
|
|
|
|
+ return self.download(status, collect_status, response)
|
|
feed_back_qs = FeedBackModel.objects.filter()
|
|
feed_back_qs = FeedBackModel.objects.filter()
|
|
if filter_data:
|
|
if filter_data:
|
|
feed_back_qs = feed_back_qs.filter(**filter_data).values()
|
|
feed_back_qs = feed_back_qs.filter(**filter_data).values()
|
|
@@ -514,10 +514,7 @@ class UserManagement(View):
|
|
'score',
|
|
'score',
|
|
'collect_status'
|
|
'collect_status'
|
|
)
|
|
)
|
|
- if fileType: # 判断是否导出
|
|
|
|
- feed_backs = feed_backs
|
|
|
|
- else:
|
|
|
|
- feed_backs = feed_backs[(page - 1) * line: page * line]
|
|
|
|
|
|
+ feed_backs = feed_backs[(page - 1) * line: page * line]
|
|
feed_back_id_list = [feed_back['id'] for feed_back in feed_backs]
|
|
feed_back_id_list = [feed_back['id'] for feed_back in feed_backs]
|
|
stat_res_qs = StatResModel.objects.filter(
|
|
stat_res_qs = StatResModel.objects.filter(
|
|
feedbackmodel__id__in=feed_back_id_list).values(
|
|
feedbackmodel__id__in=feed_back_id_list).values(
|
|
@@ -693,3 +690,56 @@ class UserManagement(View):
|
|
else:
|
|
else:
|
|
FeedBackModel.objects.filter(id=feedBackID).update(collect_status=collect_status)
|
|
FeedBackModel.objects.filter(id=feedBackID).update(collect_status=collect_status)
|
|
return response.json(0)
|
|
return response.json(0)
|
|
|
|
+
|
|
|
|
+ def download(self, status, collect_status, response):
|
|
|
|
+ try:
|
|
|
|
+ with transaction.atomic():
|
|
|
|
+ filter_data = {}
|
|
|
|
+ if status or collect_status:
|
|
|
|
+ if status:
|
|
|
|
+ filter_data['status'] = int(status)
|
|
|
|
+ if collect_status:
|
|
|
|
+ filter_data['collect_status'] = int(collect_status)
|
|
|
|
+ feed_back_qs = FeedBackModel.objects.filter()
|
|
|
|
+ if filter_data:
|
|
|
|
+ feed_back_qs = feed_back_qs.filter(**filter_data)
|
|
|
|
+ feed_backs = feed_back_qs.values(
|
|
|
|
+ 'id',
|
|
|
|
+ 'userID__username',
|
|
|
|
+ 'userID__phone',
|
|
|
|
+ 'userID__userEmail',
|
|
|
|
+ 'content',
|
|
|
|
+ 'addTime',
|
|
|
|
+ 'status',
|
|
|
|
+ 'type',
|
|
|
|
+ 'app',
|
|
|
|
+ 'app_version',
|
|
|
|
+ 'phone_model',
|
|
|
|
+ 'os_version',
|
|
|
|
+ 'uid',
|
|
|
|
+ 'appBundleId',
|
|
|
|
+ 'score',
|
|
|
|
+ 'collect_status'
|
|
|
|
+ )
|
|
|
|
+ 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})
|
|
|
|
+ except Exception as e:
|
|
|
|
+ print(e)
|