import logging import traceback from django.db import models from django.conf import settings class LikeDeviceTagStat(models.Model): class Meta: verbose_name = u"30天内设备的tag的stat" db_table = "like_device_tag_stat" unique_together = ("device_id", "tag_id") id = models.IntegerField(primary_key=True, verbose_name=u"主键ID") create_time = models.DateTimeField(verbose_name=u'统计创建时间') update_time = models.DateTimeField(verbose_name=u'统计更新时间') device_id = models.CharField(verbose_name=u'设备id', max_length=100) tag_id = models.IntegerField(verbose_name=u'标签id') tag_click_30 = models.IntegerField(verbose_name=u'30天内的点击数') tag_impress_30 = models.IntegerField(verbose_name=u"30天内的曝光数") tag_ctr_30 = models.FloatField(verbose_name=u"30天内的ctr") class LikeTopicStat(models.Model): class Meta: verbose_name = u"30天内回答的stat" db_table = "like_topic_stat" id = models.IntegerField(primary_key=True, verbose_name=u"主键ID") create_time = models.DateTimeField(verbose_name=u'统计创建时间') update_time = models.DateTimeField(verbose_name=u'统计更新时间') topic_id = models.IntegerField(verbose_name=u'回答id', unique=True) is_new_topic = models.IntegerField(verbose_name=u"是否是新帖") topic_ctr_30 = models.FloatField(verbose_name=u"30天内回答的ctr") like_rate_30 = models.FloatField(verbose_name=u"30天内回答的点赞率") class LikePictorialStat(models.Model): class Meta: verbose_name = u"30天内问题的stat" db_table = "like_pictorial_stat" id = models.IntegerField(primary_key=True, verbose_name=u"主键ID") create_time = models.DateTimeField(verbose_name=u'统计创建时间') update_time = models.DateTimeField(verbose_name=u'统计更新时间') pictorial_id = models.IntegerField(verbose_name=u'问题id', unique=True) is_new_pictorial = models.IntegerField(verbose_name=u"是否是新问题") pictorial_ctr_30 = models.FloatField(verbose_name=u"30天内问题的ctr") like_rate_30 = models.FloatField(verbose_name=u"30天内问题的点赞率") pictorial_ctr_all = models.FloatField(verbose_name=u"历史该问题的ctr") like_rate_all = models.FloatField(verbose_name=u"历史该问题的点赞率") @classmethod def get_pictorial_is_new(cls, pictorial_id): try: is_new_pictorial = LikePictorialStat.objects.using(settings.SLAVE1_DB_NAME).filter(pictorial_id=pictorial_id).values_list( "is_new_pictorial", flat=True).first() if is_new_pictorial == 0: return False else: return True except: logging.error("catch exception,err_msg:%s" % traceback.format_exc()) return True @classmethod def get_pictorial_ctr_30(cls, pictorial_id): try: pictorial_ctr_30 = LikePictorialStat.objects.using(settings.SLAVE1_DB_NAME).filter(pictorial_id=pictorial_id).values_list( "pictorial_ctr_30", flat=True).first() return pictorial_ctr_30 except: logging.error("catch exception,err_msg:%s" % traceback.format_exc()) return 0.0 @classmethod def get_pictorial_like_rate_30(cls, pictorial_id): try: like_rate_30 = LikePictorialStat.objects.using(settings.SLAVE1_DB_NAME).filter(pictorial_id=pictorial_id).values_list( "like_rate_30", flat=True).first() return like_rate_30 except: logging.error("catch exception,err_msg:%s" % traceback.format_exc()) return 0.0 @classmethod def get_pictorial_ctr_all(cls, pictorial_id): try: pictorial_ctr_all = LikePictorialStat.objects.using(settings.SLAVE1_DB_NAME).filter(pictorial_id=pictorial_id).values_list( "pictorial_ctr_all", flat=True).first() return pictorial_ctr_all except: logging.error("catch exception,err_msg:%s" % traceback.format_exc()) return 0.0 @classmethod def get_pictorial_like_rate_all(cls, pictorial_id): try: like_rate_all = LikePictorialStat.objects.using(settings.SLAVE1_DB_NAME).filter(pictorial_id=pictorial_id).values_list( "like_rate_all", flat=True).first() return like_rate_all except: logging.error("catch exception,err_msg:%s" % traceback.format_exc()) return 0.0