Commit 9542695e authored by zhanglu's avatar zhanglu

Merge branch 'feature/op_topic' into 'dev'

帖子列表迁移es

See merge request alpha/sun!105
parents 52c22b6a 4a4f9e59
...@@ -11,26 +11,82 @@ from utils.logger import error_logger ...@@ -11,26 +11,82 @@ from utils.logger import error_logger
class TopicListView(APIView): class TopicListView(APIView):
def get(self, request): def get(self, request):
user_id = request.GET.get('user_id', '') user_id = request.GET.get('user_id', '')
group_id = request.GET.get('group_id', '')
offset = int(request.GET.get('page', 0)) offset = int(request.GET.get('page', 0))
limit = int(request.GET.get('limit', 10)) limit = int(request.GET.get('limit', 10))
filter = self.handle_filter(request.GET.get('filter', "")) filters = json.loads(request.GET.get('filter', "{}"))
sort_params = request.GET.getlist('sort[]') sorts_by = '2' # request.GET.getlist('sort[]')
if user_id: if user_id:
filter.update({'user_id': user_id}) filters.update({'user_id': user_id})
if group_id:
filter.update({'group_id': group_id}) res = self.rpc['physical/search/business/topic'](
offset=offset * limit,
size=limit,
filters=filters,
sorts_by=sorts_by
).unwrap()
topic_ids = res.get("topic_ids", [])
total_count = res.get("total_count", 0)
try: try:
data = self.rpc['venus/sun/topic/list']( data = self.rpc['venus/sun/topic/list'](
offset=(offset - 1) * limit, topic_ids=topic_ids
limit=limit,
filters=filter,
sort_params=sort_params
).unwrap() ).unwrap()
except Exception as e: except Exception as e:
error_logger.error(u'获取帖子列表失败%s', e) error_logger.error(u'获取帖子列表失败%s', e)
raise raise
return data
result = {
"data": data.get("data", []),
"total": total_count,
}
return result
class TopicImageListView(APIView):
def get(self, request):
page = int(request.GET.get('page', 1))
limit = int(request.GET.get('limit', 50))
filters = json.loads(request.GET.get('filter', "{}"))
sorts_by = '2' # request.GET.getlist('sort[]')
res = self.rpc['physical/search/business/topic'](
offset=(page-1) * limit,
size=limit,
filters=filters,
sorts_by=sorts_by
).unwrap()
topic_ids = res.get("topic_ids", [])
total_count = res.get("total_count", 0)
try:
data = self.rpc['venus/community/topic/images_info_dict'](
topic_ids=topic_ids
).unwrap()
except Exception as e:
error_logger.error(u'获取帖子列表失败%s', e)
raise
result = []
for topic_id in topic_ids:
imgs_info = data.get(topic_id, [])
if not imgs_info:
continue
result.append({
"id": topic_id,
"img_url": imgs_info[0].get("url", "")
})
result = {
"data": data.get("data", []),
"total": total_count,
}
return result
class TopicUpdateOrCreateView(APIView): class TopicUpdateOrCreateView(APIView):
...@@ -49,7 +105,7 @@ class TopicUpdateOrCreateView(APIView): ...@@ -49,7 +105,7 @@ class TopicUpdateOrCreateView(APIView):
topic_images = list(map(lambda x: x[:-2], json.loads(request.POST.get('topic_images', [])))) topic_images = list(map(lambda x: x[:-2], json.loads(request.POST.get('topic_images', []))))
tag_ids = list(map(lambda x: x.split(':')[0], json.loads(request.POST.get('tags', '[]')))) tag_ids = list(map(lambda x: x.split(':')[0], json.loads(request.POST.get('tags', '[]'))))
collection_tag_ids = list(map(lambda x: x.split(':')[0], json.loads(request.POST.get('collection_tags', '[]')))) collection_tag_ids = list(map(lambda x: x.split(':')[0], json.loads(request.POST.get('collection_tags', '[]'))))
data = { data = {
'topic_images': topic_images, 'topic_images': topic_images,
'video_url': request.POST.get('video_url', ''), 'video_url': request.POST.get('video_url', ''),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment