#!/usr/bin/env python # -*- coding: utf-8 -*- import os import sys import logging import traceback import time from libs.tools import tzlc from trans2es.models.user import User from django.conf import settings class UserTransfer(object): @classmethod def get_follow_user_id_list(cls, userInstance): follow_user_id_list = list() user_follows = userInstance.userfollow.filter(is_online=True) for user_follow in user_follows: follow_user_id_list.append(user_follow.follow_id) follow_user_detail_list = list() for i in range(0, len(follow_user_id_list), 1000): sql_data_list = User.objects.using(settings.SLAVE_DB_NAME).filter( user_id__in=follow_user_id_list[i:i + 1000], is_online=True, is_deleted=False) for detail_data in sql_data_list: item = { "user_id": detail_data.user_id, "country_id": detail_data.country_id } follow_user_detail_list.append(item) return follow_user_detail_list @classmethod def get_user_data(cls, instance): try: res = dict() res["id"] = instance.id res["user_id"] = instance.user_id res["nick_name"] = instance.nick_name res["nick_name_pre"] = instance.nick_name res["nick_pre"] = instance.nick_name res["profile_pic"] = instance.profile_pic res["gender"] = instance.gender res["city_id"] = instance.city_id res["country_id"] = instance.country_id res["is_online"] = instance.is_online res["is_deleted"] = instance.is_deleted res["count_topic"] = instance.get_topic_number() try: (is_recommend, is_shadow) = instance.get_is_recommend_flag() res["is_recommend"] = is_recommend res["is_shadow"] = is_shadow except: logging.error("catch exception,err_msg:%s" % traceback.format_exc()) res["is_recommend"] = False res["is_shadow"] = False try: latest_topic_time_val = instance.get_latest_topic_time_val() res["latest_topic_time_val"] = latest_topic_time_val except: logging.error("catch exception,err_msg:%s" % traceback.format_exc()) res["latest_topic_time_val"] = -1 tzlc_create_time = tzlc(instance.create_time) res["create_time"] = tzlc_create_time res["create_time_val"] = int(time.mktime(tzlc_create_time.timetuple())) tzlc_update_time = tzlc(instance.update_time) res["update_time"] = tzlc_update_time res["update_time_val"] = int(time.mktime(tzlc_update_time.timetuple())) try: res["tag_list"] = instance.get_user_tag_id_list() res["useful_tag_list"] = instance.get_user_useful_tag_id_list() res["attention_user_id_list"] = cls.get_follow_user_id_list(userInstance=instance) # res["attention_group_id_list"] = instance.get_attention_group_id_list() res["pick_user_id_list"] = instance.get_pick_user_id_list() res["attention_pictorial_id_list"] = instance.get_attention_pictorial_id_list() # res["same_group_user_id_list"] = instance.get_same_group_user_id_list() res["same_pictorial_user_id_list"] = instance.get_same_pictorial_user_id_list() except: logging.error("catch exception,err_msg:%s" % traceback.format_exc()) res["tag_list"] = [] res["attention_user_id_list"] = [] # res["attention_group_id_list"] = [] res["pick_user_id_list"] = [] # res["same_group_user_id_list"] = [] res["attention_pictorial_id_list"] = [] res["same_pictorial_user_id_list"] = [] return res except: logging.error("catch exception,err_msg:%s" % traceback.format_exc()) return {}