<?php

namespace app\common\model;

use think\Model;

/**
 * 期望对象模型
 */
class Expect Extends Model
{

    // 表名
    protected $name = 'expect';
    // 开启自动写入时间戳字段
    protected $autoWriteTimestamp = 'int';

    /**
     * 获取用户期望对象对应标签列表
     * $expect 格式 1,2,3
     * return $user_ids;用户ID集合
     */
    public static function getTagsByExpect($expect) {
        if(!$expect) return false;
        $user_ids = [];
        $where = [];
        $where['id'] = ["in",$expect];
        $list = self::where($where)->select();
        $tag_ids = [];
        if($list) foreach($list as $k => $v) {
            $ids = explode(',',$v['tag_ids']);
            if($ids) foreach($ids as $m => $n) {
                $tag_ids[] = $n;
            }
        }
        $tag_ids = array_unique($tag_ids);
        if($tag_ids) {
            $tag_ids_str = implode(",",$tag_ids);
            $tagCanbeSearch = config('site.tagCanbeSearch');
            // 获取对应用户ID
            $where = [];
            $where['tag_id'] = ['in',$tag_ids_str];
            $where['number'] = ['gt',$tagCanbeSearch];
            $user_ids = \app\common\model\TagUser::where($where)->column("user_id");
            $user_ids = array_unique($user_ids);
        }

        return $user_ids;
    }

    public static function getExpectNames($expect_ids) {
        if($expect_ids) {
            $expect_ids = explode(',',$expect_ids);
            $expect_names = self::where(['id'=>['in',$expect_ids]])->column('name');
        } else {
            $expect_names = [];
        }
        return $expect_names;
    }
}