group.py 2.31 KB
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from django.conf import settings
from django.core.management.base import BaseCommand, CommandError
import traceback
import logging
from libs.es import ESPerform
from django.db import models
import datetime


class Group(models.Model):
    class Meta:
        verbose_name = u'小组'
        db_table = 'group'

    id = models.IntegerField(verbose_name=u"小组ID", primary_key=True)
    name = models.CharField(verbose_name=u'名称', max_length=100, default='')
    description = models.CharField(verbose_name=u'描述', max_length=200, default='')
    creator_id = models.IntegerField(verbose_name=u'创建者ID')
    # icon = ImgUrlField('图标', max_length=255, img_type=IMG_TYPE.WATERMARK, default='')
    icon = models.CharField(verbose_name=u'图标', max_length=128, default='')
    topic_num = models.IntegerField(verbose_name=u'帖子数', default=0)
    is_online = models.BooleanField(verbose_name=u"是否有效", default=True)
    is_deleted = models.BooleanField(verbose_name="是否删除")
    is_recommend = models.BooleanField(verbose_name=u"是否推荐", default=False)
    create_time = models.DateTimeField(verbose_name=u'创建时间', default=datetime.datetime.fromtimestamp(0))
    update_time = models.DateTimeField(verbose_name=u'更新时间', default=datetime.datetime.fromtimestamp(0))

    # 获取前一天4,5星发帖数
    def get_high_quality_topic_num(self):
        yesterday = datetime.datetime.now() - datetime.timedelta(days=1)
        yesterday_begin_time = "%s-%s-%s 00:00:00" % (yesterday.year, yesterday.month, yesterday.day)
        yesterday_end_time = "%s-%s-%s 23:59:59" % (yesterday.year, yesterday.month, yesterday.day)

        topic_num = self.group_topics.filter(content_level__in=("4", "5"), create_time__gte=yesterday_begin_time,
                                             create_time__lte=yesterday_end_time).count()

        return topic_num

    def detail(self):
        result = {
            'id': self.id,
            'name': self.name,
            'description': self.description,
            'creator_id': self.creator_id,
            'icon': self.icon,
            'topic_num': self.topic_num,
            'create_time': self.create_time.timestamp(),
            'update_time': self.update_time.timestamp(),
        }
        return result