<?php
namespace App\Model;
use Illuminate\Database\Eloquent\Model;
use App\Model\OrderModel;

class CrmModel extends Model
{
    protected $connection = 'crm';
    protected $table = 'user';
    protected $primaryKey = 'user_id';
    public $timestamps = false;

    // 获取用户绑定的业务员ID
    public function getSaleId($user_id)
    {
        $user = $this->where('outter_uid', $user_id)->select('user_id')->first();

        if (!$user) return false;

        $sales = $this->from('salesman')->where('user_id', $user->user_id)->select('sale_id')->first();

        return $sales ? $sales->sale_id : 0;  
    }

    // 判断用户与客服是否存在关联关系
    public function isBind($user_id, $sale_id)
    {
        $map = [];
        $map['user_id'] = $user_id;
        $map['sale_id'] = $sale_id;
        $map['status']  = 0;

        return $this->from('invoice_com_user')->where($map)->value('id');
    }

    // 获取用户跟进的销售
    public function getUserSaleId($user_id)
    {
        return $this->from('invoice_com_user')->where('user_id', $user_id)->value('sale_id');
    }

    // 获取当前销售的成交用户上限
    public function getOrderUserLimit($sale_id)
    {
        return $this->from('employee_card')->where('sale_id', $sale_id)->value('order_user_limit');
    }

    // 获取当前销售 已下单用户数量
    public function getSaleOrderUserCount($sale_id)
    {
        $users = $this->from('invoice_com_user')->where('user_id', '<>', 0)->where('sale_id', $sale_id)->lists('user_id');

        if (empty($users)) return 0;

        return OrderModel::whereIn('user_id', $users)->where('status', '<>', -1)->where('sale_id', $sale_id)->groupBy('user_id')->get()->count(); // 去重+统计 laravel需要先get()
    }


}