#!/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 django.db import models import datetime from .topic import Topic manager = lambda: models.Manager().db_manager(using='face') class ContrastSimilar(models.Model): class Meta: verbose_name = u"用户脸相似度表" db_table = "face_user_contrast_similar" objects = manager() id = models.IntegerField(verbose_name="主键ID", primary_key=True) is_online = models.BooleanField(verbose_name="是否上线") is_deleted = models.BooleanField(verbose_name="是否删除") participant_user_id = models.IntegerField(verbose_name=u'参与者用户ID') contrast_user_id = models.IntegerField(verbose_name="对照者用户ID") similarity = models.FloatField(verbose_name=u'相似度', default=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)) def get_similar_user_id(self): try: similar_user_id_list = list() if self.similarity > 0.3: query_list = Topic.objects.filter(user_id=self.participant_user_id, is_deleted=False, is_online=True, content_level__in=("3", "4", "5")) for item in query_list: if item.user_id != self.participant_user_id: similar_user_id_list.append(item.id) return similar_user_id_list except: logging.error("catch exception,err_msg:%s" % traceback.format_exc()) return []