from utils import con_sql
from datetime import datetime


# 获取当下一分钟内活跃用户
def get_active_users():
    now = datetime.now()
    now_start = str(now)[:16] + ":00"
    now_end = str(now)[:16] + ":59"
    sql = "select device_id from user_active_time " \
          "where active_time <= '{}' and active_time >= '{}'".format(now_end,now_start)
    device_id_df = con_sql(sql)
    if device_id_df.empty:
        print("当下这一分钟没有活跃用户,不需要预测")
        # 为了debug supervisor,修改了下面的return参数
        return 1,[1,2]
    else:
        device_id_list = device_id_df[0].values.tolist()
        # 对device_id 进行去重
        device_id_list = list(set(device_id_list))
        print("成功获取当下一分钟内活跃用户")
        # 为了debug supervisor,修改了下面的return参数
        return "0",device_id_list


def fetch_user_profile(device_id):
        sql = "select device_id,city_id from data_feed_click where device_id = '{0}' limit 1".format(device_id)
        user_profile = con_sql(sql)
        if user_profile.empty:
            print("没有获取到该用户对应的city_id")
            # 为了debug supervisor,修改了下面的return参数
            return {1:2}, 1
        else:
            user_profile = user_profile.rename(columns={0:"device_id",1:"city_id"})
            print("成功获取该用户对应的city_id")
            user_profile_dict = {}
            for i in user_profile.columns:
                user_profile_dict[i] = user_profile.loc[0, i]
                # 为了debug supervisor,修改了下面的return参数
            return user_profile_dict, "0"