Commit 16b74f47 authored by 段英荣's avatar 段英荣

Merge branch 'master' of git.wanmeizhensuo.com:alpha/physical

parents 5256d14e 2bcf8726
...@@ -14,7 +14,6 @@ from trans2es.models.pictorial import PictorialTopics ...@@ -14,7 +14,6 @@ from trans2es.models.pictorial import PictorialTopics
from libs.cache import redis_client from libs.cache import redis_client
class TopicUtils(object): class TopicUtils(object):
@classmethod @classmethod
...@@ -35,7 +34,7 @@ class TopicUtils(object): ...@@ -35,7 +34,7 @@ class TopicUtils(object):
} }
q["_source"] = { q["_source"] = {
"include": ["tag_list","attention_user_id_list", "pick_user_id_list", "same_pictorial_user_id_list"] "include": ["tag_list", "attention_user_id_list", "pick_user_id_list", "same_pictorial_user_id_list"]
} }
result_dict = ESPerform.get_search_results(ESPerform.get_cli(), "user", q, offset, size) result_dict = ESPerform.get_search_results(ESPerform.get_cli(), "user", q, offset, size)
...@@ -174,18 +173,18 @@ class TopicUtils(object): ...@@ -174,18 +173,18 @@ class TopicUtils(object):
} }
] ]
if user_id and user_id>0: if user_id and user_id > 0:
redis_key_prefix = "physical:user_similar:participant_user_id:" redis_key_prefix = "physical:user_similar:participant_user_id:"
similar_redis_key = redis_key_prefix + str(user_id) similar_redis_key = redis_key_prefix + str(user_id)
redis_user_similar_data = redis_client.get(similar_redis_key) redis_user_similar_data = redis_client.get(similar_redis_key)
user_similar_list = json.loads(redis_user_similar_data) if redis_user_similar_data else [] user_similar_list = json.loads(redis_user_similar_data) if redis_user_similar_data else []
if len(user_similar_list)>0: if len(user_similar_list) > 0:
functions_list.extend(user_similar_list) functions_list.extend(user_similar_list)
if len(attention_user_id_list) > 0: if len(attention_user_id_list) > 0:
functions_list.append( functions_list.append(
{ {
"filter": {"constant_score":{"filter":{"terms": {"user_id": attention_user_id_list}}}}, "filter": {"constant_score": {"filter": {"terms": {"user_id": attention_user_id_list}}}},
"weight": 100, "weight": 100,
} }
) )
...@@ -272,7 +271,7 @@ class TopicUtils(object): ...@@ -272,7 +271,7 @@ class TopicUtils(object):
] ]
query_function_score["query"]["bool"]["minimum_should_match"] = 1 query_function_score["query"]["bool"]["minimum_should_match"] = 1
query_function_score["query"]["bool"]["filter"].append( query_function_score["query"]["bool"]["filter"].append(
{"range": {"content_level": {"gte":3,"lte":6}}} {"range": {"content_level": {"gte": 3, "lte": 6}}}
) )
else: else:
if "must_not" in query_function_score["query"]["bool"]: if "must_not" in query_function_score["query"]["bool"]:
...@@ -421,7 +420,7 @@ class TopicUtils(object): ...@@ -421,7 +420,7 @@ class TopicUtils(object):
@classmethod @classmethod
def userful_tag_topic_list(cls, user_id, have_read_topic_list, size, def userful_tag_topic_list(cls, user_id, have_read_topic_list, size,
index_type="topic-high-star",routing=None,useful_tag_list =[]): index_type="topic-high-star", routing=None, useful_tag_list=[]):
""" """
:remark 帖子详情页推荐列表,缺少按时间衰减 :remark 帖子详情页推荐列表,缺少按时间衰减
:param user_id: :param user_id:
...@@ -455,20 +454,20 @@ class TopicUtils(object): ...@@ -455,20 +454,20 @@ class TopicUtils(object):
else: else:
q = dict() q = dict()
q["query"] = { q["query"] = {
"bool": { "bool": {
"must": [ "must": [
{"term": {"is_online": True}}, {"term": {"is_online": True}},
{"term": {"is_deleted": False}}, {"term": {"is_deleted": False}},
{"terms": {"useful_tag_list": useful_tag_list}}, {"terms": {"useful_tag_list": useful_tag_list}},
{"term":{"content_level":6}} {"term": {"content_level": 6}}
], ],
"must_not": { "must_not": {
"terms": { "terms": {
"id": have_read_topic_list "id": have_read_topic_list
}
}
} }
} }
}
}
# logging.warning("topic_tag_list:%s"%str(topic_tag_list)) # logging.warning("topic_tag_list:%s"%str(topic_tag_list))
# query_function_score = { # query_function_score = {
# "query": { # "query": {
...@@ -490,7 +489,8 @@ class TopicUtils(object): ...@@ -490,7 +489,8 @@ class TopicUtils(object):
"includes": ["id"] "includes": ["id"]
} }
result_dict = ESPerform.get_search_results(es_cli_obj, sub_index_name=index_type, query_body=q, size=size, result_dict = ESPerform.get_search_results(es_cli_obj, sub_index_name=index_type, query_body=q,
size=size,
routing=routing) routing=routing)
topic_id_list = list() topic_id_list = list()
...@@ -959,7 +959,7 @@ class TopicUtils(object): ...@@ -959,7 +959,7 @@ class TopicUtils(object):
return nf return nf
@classmethod @classmethod
def process_sort(cls, sorts_by): def process_sort(cls, sorts_by, pictorial_id):
"""处理排序部分。""" """处理排序部分。"""
sort_rule = [] sort_rule = []
...@@ -1012,6 +1012,62 @@ class TopicUtils(object): ...@@ -1012,6 +1012,62 @@ class TopicUtils(object):
"order": "desc" "order": "desc"
}, },
}) })
elif sort_by == TOPIC_SEARCH_SORT.REAL_VOTE_AEC:
sort_rule.append({
"related_billboard.real_vote_cnt": {
"order": "asc",
"nested_path": "related_billboard",
"missing": "_last",
"nested_filter": {
"term": {
"related_billboard.pictorial_id": pictorial_id
}
}
},
})
elif sort_by == TOPIC_SEARCH_SORT.REAL_VOTE_DESC:
sort_rule.append({
"related_billboard.real_vote_cnt": {
"order": "desc",
"nested_path": "related_billboard",
# "missing": "_last",
"nested_filter": {
"term": {
"related_billboard.pictorial_id": pictorial_id
}
}
},
})
elif sort_by == TOPIC_SEARCH_SORT.VIRT_VOTE_AEC:
sort_rule.append({
"related_billboard.virt_vote_cnt": {
"order": "asc",
"nested_path": "related_billboard",
# "missing": "_last",
"nested_filter": {
"term": {
"related_billboard.pictorial_id": pictorial_id
}
}
},
})
elif sort_by == TOPIC_SEARCH_SORT.VIRT_VOTE_DESC:
sort_rule.append({
"related_billboard.virt_vote_cnt": {
"order": "desc",
"nested_path": "related_billboard",
# "missing": "_last",
"nested_filter": {
"term": {
"related_billboard.pictorial_id": pictorial_id
}
}
},
})
logging.info("get picotirial:%s" % sort_rule)
return sort_rule return sort_rule
...@@ -1029,7 +1085,7 @@ class TopicUtils(object): ...@@ -1029,7 +1085,7 @@ class TopicUtils(object):
} }
if sorts_by: if sorts_by:
sorts = cls.process_sort(sorts_by) sorts = cls.process_sort(sorts_by, pictorial_id=None)
if sorts: if sorts:
q["sort"] = sorts q["sort"] = sorts
...@@ -1060,7 +1116,6 @@ class TopicUtils(object): ...@@ -1060,7 +1116,6 @@ class TopicUtils(object):
def business_topic_ids(cls, filters, nfilters, sorts_by, offset=0, size=10, index_name="topic", filter_online=True): def business_topic_ids(cls, filters, nfilters, sorts_by, offset=0, size=10, index_name="topic", filter_online=True):
must = cls.business_filters(filters, filter_online=filter_online) must = cls.business_filters(filters, filter_online=filter_online)
logging.info("get must:%s" % must)
q = { q = {
"query": { "query": {
"bool": { "bool": {
...@@ -1070,11 +1125,16 @@ class TopicUtils(object): ...@@ -1070,11 +1125,16 @@ class TopicUtils(object):
} }
} }
if 'pictorial_id' in filters.keys():
if sorts_by: if sorts_by:
sorts = cls.process_sort(sorts_by) sorts = cls.process_sort(sorts_by, filters["pictorial_id"])
if sorts: if sorts:
q["sort"] = sorts q["sort"] = sorts
else:
if sorts_by:
sorts = cls.process_sort(sorts_by, pictorial_id=None)
if sorts:
q["sort"] = sorts
try: try:
result_dict = ESPerform.get_search_results( result_dict = ESPerform.get_search_results(
...@@ -1156,6 +1216,25 @@ class TopicUtils(object): ...@@ -1156,6 +1216,25 @@ class TopicUtils(object):
} }
} }
}) })
# elif k == "pictorial_id":
# f.append({
# "nested": {
# "path": "related_billboard",
# "query": {
# "bool": {
# "must": [
# {
# "term": {
# "related_billboard.pictorial_id": v
# }
# }
# ]
# }
# }
# }
# })
else: else:
if isinstance(v, list): if isinstance(v, list):
......
...@@ -105,23 +105,23 @@ def pictorial_topic(topic_id=-1, offset=0, size=10): ...@@ -105,23 +105,23 @@ def pictorial_topic(topic_id=-1, offset=0, size=10):
q = {} q = {}
# 获取帖子从属的画报 # 获取帖子从属的画报
q["query"] = { q["query"] = {
"bool":{ "bool": {
"must":[ "must": [
{ {
"term": { "term": {
"id": topic_id "id": topic_id
} }
}, },
{ {
"term":{ "term": {
"is_online":True "is_online": True
} }
} }
], ],
"must_not":[ "must_not": [
{ {
"term":{ "term": {
"is_history":True "is_history": True
} }
} }
] ]
...@@ -237,6 +237,7 @@ def pictorial_topic(topic_id=-1, offset=0, size=10): ...@@ -237,6 +237,7 @@ def pictorial_topic(topic_id=-1, offset=0, size=10):
def pictorial_topic_sort(pictorial_id=-1, offset=0, size=10): def pictorial_topic_sort(pictorial_id=-1, offset=0, size=10):
""" """
:remark 画报排序 人气 部分 :remark 画报排序 人气 部分
人气按照票数从大到小排序,相同票数按照图片票数更新时间由旧到新排序
:param user_id: :param user_id:
:param sort_type: :param sort_type:
:param offset: :param offset:
...@@ -251,18 +252,45 @@ def pictorial_topic_sort(pictorial_id=-1, offset=0, size=10): ...@@ -251,18 +252,45 @@ def pictorial_topic_sort(pictorial_id=-1, offset=0, size=10):
"query": { "query": {
"bool": { "bool": {
"must": [ "must": [
{"term": {"pictorial_id": pictorial_id}},
{"term": {"is_online": True}}, {"term": {"is_online": True}},
{"term": {"is_deleted": False}}, {"term": {"is_deleted": False}},
{"term": {"pictorial_id": pictorial_id}}
# {
# "nested": {
# "path": "related_billboard",
# "query": {
# "bool": {
# "must": [
# {
# "term": {
# "related_billboard.pictorial_id": pictorial_id
# }
# }
# ]
# }
# }
# }
# }
] ]
} }
}, },
"sort": [ "sort": [
{"total_vote_num": {"order": "desc"}}, {"related_billboard.total_vote_cnt": {
"order": "desc",
"nested_path": "related_billboard",
"missing": "_last",
"nested_filter": {
"term": {
"related_billboard.pictorial_id": pictorial_id
}
}
}},
{"create_time": {"order": "desc"}} {"create_time": {"order": "desc"}}
] ]
} }
logging.info("get qqqqqq:%s" % q)
pict_pictorial_ids_list = [] pict_pictorial_ids_list = []
# 获取es链接对象 # 获取es链接对象
es_cli_obj = ESPerform.get_cli() es_cli_obj = ESPerform.get_cli()
......
...@@ -55,6 +55,15 @@ ...@@ -55,6 +55,15 @@
}, },
"is_excellent":{"type": "long"}, "is_excellent":{"type": "long"},
"is_operation_home_recommend": {"type": "boolean"}, //是否首页运营推荐 "is_operation_home_recommend": {"type": "boolean"}, //是否首页运营推荐
"is_history": {"type": "boolean"} //是否历史数据 "is_history": {"type": "boolean"}, //是否历史数据
"related_billboard":{
"type":"nested",
"properties":{
"pictorial_id":{"type":"long"},
"real_vote_cnt":{"type":"long"},
"virt_vote_cnt":{"type":"long"},
"total_vote_cnt":{"type":"long"}
}
}
} }
} }
...@@ -55,6 +55,18 @@ ...@@ -55,6 +55,18 @@
}, },
"is_excellent":{"type": "long"}, "is_excellent":{"type": "long"},
"is_operation_home_recommend": {"type": "boolean"}, //是否首页运营推荐 "is_operation_home_recommend": {"type": "boolean"}, //是否首页运营推荐
"is_history": {"type": "boolean"} //是否历史数据 "is_history": {"type": "boolean"}, //是否历史数据
"related_billboard":{
"type":"nested",
"properties":{
"pictorial_id":{"type":"long"},
"real_vote_cnt":{"type":"long"},
"virt_vote_cnt":{"type":"long"},
"total_vote_cnt":{"type":"long"}
}
}
} }
} }
...@@ -17,6 +17,7 @@ from .tag import TopicTag, Tag ...@@ -17,6 +17,7 @@ from .tag import TopicTag, Tag
from .user_extra import UserExtra from .user_extra import UserExtra
from .group import Group from .group import Group
class ActionSumAboutTopic(models.Model): class ActionSumAboutTopic(models.Model):
class Meta: class Meta:
verbose_name = u"帖子埋点数据汇总" verbose_name = u"帖子埋点数据汇总"
...@@ -43,6 +44,7 @@ class TopicImage(models.Model): ...@@ -43,6 +44,7 @@ class TopicImage(models.Model):
create_time = models.DateTimeField(verbose_name=u'创建时间', default=datetime.datetime.fromtimestamp(0)) create_time = models.DateTimeField(verbose_name=u'创建时间', default=datetime.datetime.fromtimestamp(0))
update_time = models.DateTimeField(verbose_name=u'更新时间', default=datetime.datetime.fromtimestamp(0)) update_time = models.DateTimeField(verbose_name=u'更新时间', default=datetime.datetime.fromtimestamp(0))
class ExcellentTopic(models.Model): class ExcellentTopic(models.Model):
"""优质帖子""" """优质帖子"""
...@@ -51,13 +53,14 @@ class ExcellentTopic(models.Model): ...@@ -51,13 +53,14 @@ class ExcellentTopic(models.Model):
db_table = "excellent_topic" db_table = "excellent_topic"
id = models.IntegerField(verbose_name=u'ID', primary_key=True) id = models.IntegerField(verbose_name=u'ID', primary_key=True)
topic_id = models.IntegerField(verbose_name=u"帖子ID",db_index=True) topic_id = models.IntegerField(verbose_name=u"帖子ID", db_index=True)
is_online = models.BooleanField(verbose_name=u'是否上线') is_online = models.BooleanField(verbose_name=u'是否上线')
is_deleted = models.BooleanField(verbose_name=u'是否删除') is_deleted = models.BooleanField(verbose_name=u'是否删除')
excellent_type = models.IntegerField(verbose_name=u"优质类型",db_index=True) excellent_type = models.IntegerField(verbose_name=u"优质类型", db_index=True)
create_time = models.DateTimeField(verbose_name=u'创建时间', default=datetime.datetime.fromtimestamp(0)) create_time = models.DateTimeField(verbose_name=u'创建时间', default=datetime.datetime.fromtimestamp(0))
update_time = models.DateTimeField(verbose_name=u'更新时间', default=datetime.datetime.fromtimestamp(0)) update_time = models.DateTimeField(verbose_name=u'更新时间', default=datetime.datetime.fromtimestamp(0))
class Topic(models.Model): class Topic(models.Model):
class Meta: class Meta:
verbose_name = u'日记' verbose_name = u'日记'
...@@ -101,7 +104,7 @@ class Topic(models.Model): ...@@ -101,7 +104,7 @@ class Topic(models.Model):
try: try:
topic_extra = TopicExtra.objects.filter(topic_id=self.id).first() topic_extra = TopicExtra.objects.filter(topic_id=self.id).first()
virtual_vote_num = topic_extra.virtual_vote_num if topic_extra else 0 virtual_vote_num = topic_extra.virtual_vote_num if topic_extra else 0
return virtual_vote_num return virtual_vote_num
except: except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
...@@ -109,8 +112,8 @@ class Topic(models.Model): ...@@ -109,8 +112,8 @@ class Topic(models.Model):
def get_pictorial_id(self): def get_pictorial_id(self):
try: try:
pictorial_id_list =[] pictorial_id_list = []
pictorial_id = PictorialTopic.objects.filter(topic_id=self.id).values_list("pictorial_id",flat=True) pictorial_id = PictorialTopic.objects.filter(topic_id=self.id).values_list("pictorial_id", flat=True)
for i in pictorial_id: for i in pictorial_id:
pictorial_id_list.append(i) pictorial_id_list.append(i)
return pictorial_id_list return pictorial_id_list
...@@ -131,14 +134,16 @@ class Topic(models.Model): ...@@ -131,14 +134,16 @@ class Topic(models.Model):
return False return False
@classmethod @classmethod
def get_topic_image_num(cls,topic_id): def get_topic_image_num(cls, topic_id):
""" """
:remark 获取指定帖子的图片数量 :remark 获取指定帖子的图片数量
:param topic_id: :param topic_id:
:return: :return:
""" """
try: try:
query_list = list(TopicImage.objects.using(settings.SLAVE_DB_NAME).filter(topic_id=topic_id, is_deleted=False, is_online=True).values_list("url",flat=True)) query_list = list(
TopicImage.objects.using(settings.SLAVE_DB_NAME).filter(topic_id=topic_id, is_deleted=False,
is_online=True).values_list("url", flat=True))
return len(query_list) return len(query_list)
except: except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
...@@ -148,7 +153,8 @@ class Topic(models.Model): ...@@ -148,7 +153,8 @@ class Topic(models.Model):
try: try:
has_image = False has_image = False
query_list = TopicImage.objects.using(settings.SLAVE_DB_NAME).filter(topic_id=self.id, is_deleted=False, is_online=True) query_list = TopicImage.objects.using(settings.SLAVE_DB_NAME).filter(topic_id=self.id, is_deleted=False,
is_online=True)
if len(query_list) > 0: if len(query_list) > 0:
has_image = True has_image = True
...@@ -174,12 +180,13 @@ class Topic(models.Model): ...@@ -174,12 +180,13 @@ class Topic(models.Model):
topic_tag_id_list = list() topic_tag_id_list = list()
edit_tag_id_list = list() edit_tag_id_list = list()
tag_id_list = TopicTag.objects.using(settings.SLAVE_DB_NAME).filter(topic_id=self.id).values_list("tag_id", flat=True) tag_id_list = TopicTag.objects.using(settings.SLAVE_DB_NAME).filter(topic_id=self.id).values_list("tag_id",
flat=True)
tag_query_results = Tag.objects.using(settings.SLAVE_DB_NAME).filter(id__in=tag_id_list) tag_query_results = Tag.objects.using(settings.SLAVE_DB_NAME).filter(id__in=tag_id_list)
for tag_item in tag_query_results: for tag_item in tag_query_results:
is_online=tag_item.is_online is_online = tag_item.is_online
is_deleted=tag_item.is_deleted is_deleted = tag_item.is_deleted
collection=tag_item.collection collection = tag_item.collection
if is_online and not is_deleted: if is_online and not is_deleted:
topic_tag_id_list.append(tag_item.id) topic_tag_id_list.append(tag_item.id)
...@@ -189,25 +196,37 @@ class Topic(models.Model): ...@@ -189,25 +196,37 @@ class Topic(models.Model):
return (topic_tag_id_list, edit_tag_id_list) return (topic_tag_id_list, edit_tag_id_list)
except: except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return ([],[]) return ([], [])
def get_edit_tag_id_list(self):
try:
tag_id_list = TopicTag.objects.using(settings.SLAVE_DB_NAME).filter(topic_id=self.id,
is_collection=1).values_list("tag_id",
flat=True)
return tag_id_list
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return []
def get_topic_useful_tag_id_list(self): def get_topic_useful_tag_id_list(self):
try: try:
topic_useful_tag_id_list = list() topic_useful_tag_id_list = list()
tag_id_list = TopicTag.objects.using(settings.SLAVE_DB_NAME).filter(topic_id=self.id,is_online =True,is_body_esthetics = 1) tag_id_list = TopicTag.objects.using(settings.SLAVE_DB_NAME).filter(topic_id=self.id, is_online=True,
is_body_esthetics=1)
for tag_item in tag_id_list: for tag_item in tag_id_list:
topic_useful_tag_id_list.append(tag_item.tag_id) topic_useful_tag_id_list.append(tag_item.tag_id)
return topic_useful_tag_id_list return topic_useful_tag_id_list
except: except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return [] return []
def get_tag_name_list(self, tag_id_list): def get_tag_name_list(self, tag_id_list):
try: try:
tag_name_list = list() tag_name_list = list()
for i in range(0, len(tag_id_list), 100): for i in range(0, len(tag_id_list), 100):
query_terms_list = list(Tag.objects.using(settings.SLAVE_DB_NAME).filter(id__in=tag_id_list[i:i + 100],is_online=True,is_deleted=False).values_list("name",flat=True)) query_terms_list = list(
Tag.objects.using(settings.SLAVE_DB_NAME).filter(id__in=tag_id_list[i:i + 100], is_online=True,
is_deleted=False).values_list("name", flat=True))
tag_name_list.extend(query_terms_list) tag_name_list.extend(query_terms_list)
return tag_name_list return tag_name_list
except: except:
...@@ -234,17 +253,17 @@ class Topic(models.Model): ...@@ -234,17 +253,17 @@ class Topic(models.Model):
user_query_results = UserExtra.objects.using(settings.SLAVE_DB_NAME).filter(user_id=self.user_id) user_query_results = UserExtra.objects.using(settings.SLAVE_DB_NAME).filter(user_id=self.user_id)
if user_query_results.count() > 0: if user_query_results.count() > 0:
if user_query_results[0].is_recommend: if user_query_results[0].is_recommend:
offline_score += 2.0 *10 offline_score += 2.0 * 10
elif user_query_results[0].is_shadow: elif user_query_results[0].is_shadow:
user_is_shadow = True user_is_shadow = True
# 帖子等级 # 帖子等级
if self.content_level == '5': if self.content_level == '5':
offline_score += 100.0 *3 offline_score += 100.0 * 3
elif self.content_level == '4': elif self.content_level == '4':
offline_score += 60.0 *3 offline_score += 60.0 * 3
elif self.content_level == '6': elif self.content_level == '6':
offline_score += 200.0 *3 offline_score += 200.0 * 3
if self.language_type == 1: if self.language_type == 1:
offline_score += 60.0 offline_score += 60.0
...@@ -261,6 +280,37 @@ class Topic(models.Model): ...@@ -261,6 +280,37 @@ class Topic(models.Model):
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return 0.0 return 0.0
def get_related_billboard(self):
try:
pictorial_ids = Topic.get_pictorial_id(self)
related_billboard_list = list()
for pictorial_id in pictorial_ids:
query_result = TopicBillBoard.objects.filter(pictorial_id=pictorial_id,
topic_id=self.id).values().first()
if query_result == None:
related_billboard_list.append({"pictorial_id": pictorial_id, "real_vote_cnt": 0,
"virt_vote_cnt": 0, "total_vote_cnt": 0})
else:
total_vote_cnt = int(query_result["virt_vote_cnt"]) + int(query_result["real_vote_cnt"])
related_billboard_list.append(
{"pictorial_id": query_result["pictorial_id"], "real_vote_cnt": query_result["real_vote_cnt"],
"virt_vote_cnt": query_result["virt_vote_cnt"], "total_vote_cnt": total_vote_cnt})
logging.info("product_brand_info" % related_billboard_list)
return related_billboard_list
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return []
class TopicComplaint(models.Model): class TopicComplaint(models.Model):
"""帖子举报""" """帖子举报"""
...@@ -273,7 +323,8 @@ class TopicComplaint(models.Model): ...@@ -273,7 +323,8 @@ class TopicComplaint(models.Model):
id = models.IntegerField(verbose_name='日记图片ID', primary_key=True) id = models.IntegerField(verbose_name='日记图片ID', primary_key=True)
user_id = models.BigIntegerField(verbose_name=u'用户ID', db_index=True) user_id = models.BigIntegerField(verbose_name=u'用户ID', db_index=True)
topic = models.ForeignKey( topic = models.ForeignKey(
Topic, verbose_name=u"关联的帖子", null=True, blank=True, default=None, on_delete=models.CASCADE, related_name='complaints') Topic, verbose_name=u"关联的帖子", null=True, blank=True, default=None, on_delete=models.CASCADE,
related_name='complaints')
is_online = models.BooleanField(verbose_name=u"是否有效", default=True) is_online = models.BooleanField(verbose_name=u"是否有效", default=True)
...@@ -302,7 +353,7 @@ class TopicExtra(models.Model): ...@@ -302,7 +353,7 @@ class TopicExtra(models.Model):
db_table = 'topic_extra' db_table = 'topic_extra'
id = models.IntegerField(verbose_name=u'ID', primary_key=True) id = models.IntegerField(verbose_name=u'ID', primary_key=True)
topic_id = models.IntegerField(verbose_name=u"帖子ID",db_index=True) topic_id = models.IntegerField(verbose_name=u"帖子ID", db_index=True)
virtual_vote_num = models.IntegerField(verbose_name="帖子虚拟点赞") virtual_vote_num = models.IntegerField(verbose_name="帖子虚拟点赞")
...@@ -312,7 +363,21 @@ class TopicHomeRecommend(models.Model): ...@@ -312,7 +363,21 @@ class TopicHomeRecommend(models.Model):
class Meta: class Meta:
verbose_name = "运营位帖子" verbose_name = "运营位帖子"
db_table = "topic_home_recommend" db_table = "topic_home_recommend"
id = models.IntegerField(verbose_name=u"id",primary_key=True)
id = models.IntegerField(verbose_name=u"id", primary_key=True)
topic_id = models.IntegerField(verbose_name=u"帖子ID") topic_id = models.IntegerField(verbose_name=u"帖子ID")
is_online = models.BooleanField(verbose_name=u'是否上线') is_online = models.BooleanField(verbose_name=u'是否上线')
is_deleted = models.BooleanField(verbose_name=u'是否删除') is_deleted = models.BooleanField(verbose_name=u'是否删除')
class TopicBillBoard(models.Model):
"""榜单投票"""
class Meta:
verbose_name = "榜单投票"
db_table = "topic_vote_cnt"
topic_id = models.IntegerField(verbose_name=u"帖子ID")
pictorial_id = models.IntegerField(verbose_name=u"榜单ID")
real_vote_cnt = models.IntegerField(verbose_name=u"真实赞")
virt_vote_cnt = models.IntegerField(verbose_name=u"虚拟赞")
...@@ -9,12 +9,13 @@ import time ...@@ -9,12 +9,13 @@ import time
import re import re
import datetime import datetime
from trans2es.models.user import User from trans2es.models.user import User
from trans2es.models.topic import ExcellentTopic,TopicHomeRecommend from trans2es.models.topic import ExcellentTopic, TopicHomeRecommend
class TopicTransfer(object): class TopicTransfer(object):
@classmethod @classmethod
def get_topic_data(cls,instance,is_excellect=False): def get_topic_data(cls, instance, is_excellect=False):
try: try:
res = dict() res = dict()
...@@ -47,25 +48,24 @@ class TopicTransfer(object): ...@@ -47,25 +48,24 @@ class TopicTransfer(object):
begin = time.time() begin = time.time()
res["pick_id_list"] = instance.get_pick_id_info() res["pick_id_list"] = instance.get_pick_id_info()
end = time.time() end = time.time()
time0 = (end-begin) time0 = (end - begin)
begin = time.time() begin = time.time()
(topic_tag_id_list, edit_tag_id_list) = instance.get_topic_tag_id_list() (topic_tag_id_list, edit_tag_id_list) = instance.get_topic_tag_id_list()
res["tag_list"] = topic_tag_id_list res["tag_list"] = topic_tag_id_list
res["edit_tag_list"] = edit_tag_id_list res["edit_tag_list"] = instance.get_edit_tag_id_list()
end = time.time() end = time.time()
time1 = (end-begin) time1 = (end - begin)
begin = time.time() begin = time.time()
res["tag_name_list"] = instance.get_tag_name_list(res["tag_list"]) res["tag_name_list"] = instance.get_tag_name_list(res["tag_list"])
end = time.time() end = time.time()
time2 = (end-begin) time2 = (end - begin)
begin = time.time() begin = time.time()
res["offline_score"] = instance.get_topic_offline_score() res["offline_score"] = instance.get_topic_offline_score()
end = time.time() end = time.time()
time3 = (end-begin) time3 = (end - begin)
begin = time.time() begin = time.time()
res["manual_score"] = instance.drop_score res["manual_score"] = instance.drop_score
...@@ -73,10 +73,10 @@ class TopicTransfer(object): ...@@ -73,10 +73,10 @@ class TopicTransfer(object):
res["has_video"] = instance.has_video res["has_video"] = instance.has_video
res["language_type"] = instance.language_type res["language_type"] = instance.language_type
end = time.time() end = time.time()
time4 = (end-begin) time4 = (end - begin)
# begin = time.time() # begin = time.time()
topic_useful_tag_id_list= instance.get_topic_useful_tag_id_list() topic_useful_tag_id_list = instance.get_topic_useful_tag_id_list()
res["useful_tag_list"] = topic_useful_tag_id_list res["useful_tag_list"] = topic_useful_tag_id_list
# end = time.time() # end = time.time()
# time5 = (end - begin) # time5 = (end - begin)
...@@ -99,7 +99,7 @@ class TopicTransfer(object): ...@@ -99,7 +99,7 @@ class TopicTransfer(object):
res["virtual_content_level"] = instance.virtual_content_level res["virtual_content_level"] = instance.virtual_content_level
res["like_num_crawl"] = instance.like_num_crawl res["like_num_crawl"] = instance.like_num_crawl
res["comment_num_crawl"]= instance.comment_num_crawl res["comment_num_crawl"] = instance.comment_num_crawl
res["is_crawl"] = instance.is_crawl res["is_crawl"] = instance.is_crawl
res["platform"] = instance.platform res["platform"] = instance.platform
...@@ -113,7 +113,6 @@ class TopicTransfer(object): ...@@ -113,7 +113,6 @@ class TopicTransfer(object):
res["create_time"] = tzlc_create_time res["create_time"] = tzlc_create_time
res["create_time_val"] = int(time.mktime(tzlc_create_time.timetuple())) res["create_time_val"] = int(time.mktime(tzlc_create_time.timetuple()))
update_time = instance.update_time update_time = instance.update_time
tzlc_update_time = tzlc(update_time) tzlc_update_time = tzlc(update_time)
res["update_time"] = tzlc_update_time res["update_time"] = tzlc_update_time
...@@ -137,7 +136,12 @@ class TopicTransfer(object): ...@@ -137,7 +136,12 @@ class TopicTransfer(object):
if operation_home_recommend and operation_home_recommend.is_online and not operation_home_recommend.is_deleted: if operation_home_recommend and operation_home_recommend.is_online and not operation_home_recommend.is_deleted:
res["is_operation_home_recommend"] = True res["is_operation_home_recommend"] = True
logging.info("test topic transfer time cost,time0:%d,time1:%d,time2:%d,time3:%d,time4:%d" % (time0,time1,time2,time3,time4)) logging.info("test topic transfer time cost,time0:%d,time1:%d,time2:%d,time3:%d,time4:%d" % (
time0, time1, time2, time3, time4))
# 榜单关联的投票
res["related_billboard"] = instance.get_related_billboard()
return res return res
except: except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
......
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