Commit 7f2cb548 authored by zhanglu's avatar zhanglu

Merge branch 'feature/op_topic' into 'master'

Feature/op topic

See merge request !123
parents a3f5dbf9 ee322a13
......@@ -10,27 +10,90 @@ from utils.logger import error_logger
class TopicListView(APIView):
def get(self, request):
pictorial_id = request.GET.get('pictorial_id', '')
user_id = request.GET.get('user_id', '')
group_id = request.GET.get('group_id', '')
offset = int(request.GET.get('page', 0))
page = int(request.GET.get('page', 1))
limit = int(request.GET.get('limit', 10))
filter = self.handle_filter(request.GET.get('filter', ""))
sort_params = request.GET.getlist('sort[]')
filters = json.loads(request.GET.get('filter', "{}"))
sorts_by = list(map(lambda i: int(i), request.GET.getlist('sort_params[]', [3])))
if user_id:
filter.update({'user_id': user_id})
if group_id:
filter.update({'group_id': group_id})
filters.update({'user_id': user_id})
if pictorial_id:
filters.update({"pictorial_id": int(pictorial_id)})
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/sun/topic/list'](
offset=(offset - 1) * limit,
limit=limit,
filters=filter,
sort_params=sort_params
topic_ids=topic_ids
).unwrap()
except Exception as e:
error_logger.error(u'获取帖子列表失败%s', e)
raise
return data
result = {
"data": data.get("data", []),
"total": total_count,
}
return result
class TopicImageListView(APIView):
def get(self, request):
pictorial_id = request.GET.get('pictorial_id', '')
page = int(request.GET.get('page', 1))
limit = int(request.GET.get('limit', 50))
filters = json.loads(request.GET.get('filter', "{}"))
sorts_by = list(map(lambda i: int(i), request.GET.getlist('sort_params[]', [3])))
filters.update({"has_image": True})
if pictorial_id:
filters.update({"pictorial_id": int(pictorial_id)})
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(str(topic_id), [])
if not imgs_info:
continue
result.append({
"id": topic_id,
"img_url": imgs_info[0].get("url", "") + '-w'
})
result = {
"data": result,
"total": total_count,
}
return result
class TopicUpdateOrCreateView(APIView):
......
......@@ -54,6 +54,7 @@ urlpatterns = [
# topic相关
url(r'^topic/list$', TopicListView.as_view()),
url(r'^topic/img/list$', TopicImageListView.as_view()),
url(r'^topic/detail$', TopicUpdateOrCreateView.as_view()),
url(r'^topic/create$', TopicUpdateOrCreateView.as_view()),
url(r'^topic/batch_update$', TopicListBatchUpdate.as_view()),
......
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