Commit 81563379 authored by lixiaofang's avatar lixiaofang

update contrast_similar

parent 965b35a6
...@@ -30,13 +30,15 @@ class ContrastSimilar(models.Model): ...@@ -30,13 +30,15 @@ class ContrastSimilar(models.Model):
def get_similar_user_id(self): def get_similar_user_id(self):
similar_user_id_list = 0
try: try:
if self.similarity > 0.3: if self.similarity > 0.3:
logging.info("participant_user_id:%d------------self.contrast_user_id:%d" % ( logging.info("participant_user_id:%d------------self.contrast_user_id:%d" % (
self.participant_user_id, self.contrast_user_id)) self.participant_user_id, self.contrast_user_id))
similar_user_id_list = 0
query_list = Topics.objects.filter(user_id=self.contrast_user_id, is_deleted=False, query_list = Topics.objects.filter(user_id=self.contrast_user_id, is_deleted=False,
is_online=True, is_online=True,
content_level__in=("3", "4", "5")) content_level__in=("3", "4", "5"))
...@@ -57,7 +59,7 @@ class ContrastSimilar(models.Model): ...@@ -57,7 +59,7 @@ class ContrastSimilar(models.Model):
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return None return similar_user_id_list
class Topics(models.Model): class Topics(models.Model):
......
...@@ -10,34 +10,35 @@ from django.db import models ...@@ -10,34 +10,35 @@ from django.db import models
import datetime import datetime
from .pick_topic import PickTopic from .pick_topic import PickTopic
from .tag import TopicTag,Tag 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"帖子埋点数据汇总"
db_table="action_sum_about_topic" db_table = "action_sum_about_topic"
partiton_date = models.CharField(verbose_name=u"日期",max_length=20) partiton_date = models.CharField(verbose_name=u"日期", max_length=20)
device_id = models.CharField(verbose_name=u"用户设备号",max_length=50) device_id = models.CharField(verbose_name=u"用户设备号", max_length=50)
topic_id = models.CharField(verbose_name=u"帖子ID",max_length=50) topic_id = models.CharField(verbose_name=u"帖子ID", max_length=50)
user_id = models.CharField(verbose_name=u"用户ID",max_length=50) user_id = models.CharField(verbose_name=u"用户ID", max_length=50)
data_type = models.IntegerField(verbose_name=u"动作类型") data_type = models.IntegerField(verbose_name=u"动作类型")
data_value = models.BigIntegerField(verbose_name=u"值") data_value = models.BigIntegerField(verbose_name=u"值")
class TopicImage(models.Model): class TopicImage(models.Model):
class Meta: class Meta:
verbose_name = u'日记图片' verbose_name = u'日记图片'
db_table = 'topic_image' db_table = 'topic_image'
id = models.IntegerField(verbose_name='日记图片ID',primary_key=True) id = models.IntegerField(verbose_name='日记图片ID', primary_key=True)
topic_id = models.IntegerField(verbose_name=u'日记ID') topic_id = models.IntegerField(verbose_name=u'日记ID')
url = models.CharField(verbose_name=u'图片URL',max_length=300) url = models.CharField(verbose_name=u'图片URL', max_length=300)
is_online = models.BooleanField(verbose_name='是否上线') is_online = models.BooleanField(verbose_name='是否上线')
is_deleted = models.BooleanField(verbose_name='是否删除') is_deleted = models.BooleanField(verbose_name='是否删除')
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))
...@@ -47,33 +48,33 @@ class Topic(models.Model): ...@@ -47,33 +48,33 @@ class Topic(models.Model):
verbose_name = u'日记' verbose_name = u'日记'
db_table = 'topic' db_table = 'topic'
id = models.IntegerField(verbose_name=u'日记ID',primary_key=True) id = models.IntegerField(verbose_name=u'日记ID', primary_key=True)
name = models.CharField(verbose_name=u'日记名称',max_length=100) name = models.CharField(verbose_name=u'日记名称', max_length=100)
#group_id = models.IntegerField(verbose_name='用户所在组ID',default=-1) # group_id = models.IntegerField(verbose_name='用户所在组ID',default=-1)
group = models.ForeignKey( group = models.ForeignKey(
Group, verbose_name=u"关联的小组", related_name=u"group_topics",null=True, blank=True, default=None, on_delete=models.CASCADE) Group, verbose_name=u"关联的小组", related_name=u"group_topics", null=True, blank=True, default=None,
on_delete=models.CASCADE)
user_id = models.IntegerField(verbose_name=u'用户ID') user_id = models.IntegerField(verbose_name=u'用户ID')
drop_score = models.IntegerField(verbose_name=u'人工赋分',default=0) drop_score = models.IntegerField(verbose_name=u'人工赋分', default=0)
description = models.CharField(verbose_name=u'日记本描述',max_length=200) description = models.CharField(verbose_name=u'日记本描述', max_length=200)
content = models.CharField(verbose_name=u'日记本内容',max_length=1000) content = models.CharField(verbose_name=u'日记本内容', max_length=1000)
share_num = models.IntegerField(verbose_name='') share_num = models.IntegerField(verbose_name='')
vote_num = models.IntegerField(verbose_name=u'点赞数') vote_num = models.IntegerField(verbose_name=u'点赞数')
reply_num = models.IntegerField(verbose_name=u'回复数') reply_num = models.IntegerField(verbose_name=u'回复数')
cover = models.CharField(verbose_name='',max_length=200) cover = models.CharField(verbose_name='', max_length=200)
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'是否删除')
content_level = models.CharField(verbose_name=u'内容等级',max_length=3) content_level = models.CharField(verbose_name=u'内容等级', max_length=3)
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))
def topic_has_image(self): def topic_has_image(self):
try: try:
has_image = False has_image = False
query_list = TopicImage.objects.filter(topic_id=self.id,is_deleted=False,is_online=True) query_list = TopicImage.objects.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
return has_image return has_image
except: except:
...@@ -83,7 +84,7 @@ class Topic(models.Model): ...@@ -83,7 +84,7 @@ class Topic(models.Model):
def get_pick_id_info(self): def get_pick_id_info(self):
try: try:
pick_id_list = list() pick_id_list = list()
query_list = PickTopic.objects.filter(topic_id=self.id,is_deleted=False) query_list = PickTopic.objects.filter(topic_id=self.id, is_deleted=False)
for item in query_list: for item in query_list:
pick_id_list.append(item.pick_id) pick_id_list.append(item.pick_id)
...@@ -105,10 +106,10 @@ class Topic(models.Model): ...@@ -105,10 +106,10 @@ 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 [] 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()
query_results = Tag.objects.filter(id__in=tag_id_list).values_list("name",flat=True) query_results = Tag.objects.filter(id__in=tag_id_list).values_list("name", flat=True)
for item in query_results: for item in query_results:
tag_name_list.append(item) tag_name_list.append(item)
...@@ -122,7 +123,7 @@ class Topic(models.Model): ...@@ -122,7 +123,7 @@ class Topic(models.Model):
offline_score = 0.0 offline_score = 0.0
user_is_shadow = False user_is_shadow = False
#是否官方推荐用户 # 是否官方推荐用户
user_query_results = UserExtra.objects.filter(user_id=self.user_id) user_query_results = UserExtra.objects.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:
...@@ -134,7 +135,7 @@ class Topic(models.Model): ...@@ -134,7 +135,7 @@ class Topic(models.Model):
if self.group and self.group.is_recommend: if self.group and self.group.is_recommend:
offline_score += 4.0 offline_score += 4.0
#帖子等级 # 帖子等级
if self.content_level == '5': if self.content_level == '5':
offline_score += 5.0 offline_score += 5.0
elif self.content_level == '4': elif self.content_level == '4':
...@@ -142,20 +143,20 @@ class Topic(models.Model): ...@@ -142,20 +143,20 @@ class Topic(models.Model):
elif self.content_level == '3': elif self.content_level == '3':
offline_score += 2.0 offline_score += 2.0
exposure_count = ActionSumAboutTopic.objects.filter(topic_id=self.id,data_type=1).count() exposure_count = ActionSumAboutTopic.objects.filter(topic_id=self.id, data_type=1).count()
click_count = ActionSumAboutTopic.objects.filter(topic_id=self.id, data_type=2).count() click_count = ActionSumAboutTopic.objects.filter(topic_id=self.id, data_type=2).count()
uv_num = ActionSumAboutTopic.objects.filter(topic_id=self.id,data_type=3).count() uv_num = ActionSumAboutTopic.objects.filter(topic_id=self.id, data_type=3).count()
if exposure_count>0: if exposure_count > 0:
offline_score += click_count/exposure_count offline_score += click_count / exposure_count
if uv_num>0: if uv_num > 0:
offline_score += (self.vote_num/uv_num + self.reply_num/uv_num) offline_score += (self.vote_num / uv_num + self.reply_num / uv_num)
""" """
1:马甲账号是否对总分降权? 1:马甲账号是否对总分降权?
""" """
if user_is_shadow: if user_is_shadow:
offline_score = offline_score*0.5 offline_score = offline_score * 0.5
return offline_score return offline_score
except: except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
......
...@@ -24,7 +24,6 @@ class Contrast_Similar_Transfer(object): ...@@ -24,7 +24,6 @@ class Contrast_Similar_Transfer(object):
tzlc_update_time = tzlc(update_time) tzlc_update_time = tzlc(update_time)
res["update_time"] = tzlc_update_time res["update_time"] = tzlc_update_time
res["similarity"] = instance.similarity res["similarity"] = instance.similarity
res["contrast_user_id_list"] = instance.get_similar_user_id() res["contrast_user_id_list"] = instance.get_similar_user_id()
return res return res
except: except:
......
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