<?php

/**
 * +----------------------------------------------------------------------
 * | Created By PhpStorm
 * +----------------------------------------------------------------------
 * | DATE: 2021/7/29
 * +----------------------------------------------------------------------
 * | TIME: 9:12
 * +----------------------------------------------------------------------
 * | Author: YangXing(925032253@qq.com)
 * +----------------------------------------------------------------------
 * | Class: userLinkModel
 * +----------------------------------------------------------------------
 */

namespace model\user;


use model\collocation;


/**
 * Class userLinkRole
 * @package model\user
 */
class userLinkRole extends \model
{

    /**
     * @param $arId
     * @param $filters
     * @return array|false
     */
    public function getArIdByUserList($arId,$filters)
    {
        if($arId <= 0) return false;
        $where = [];
        if(!empty($filters)){
            $where = $this->filter2medoo($filters);
        }
        $where['au_id[!]'] = 'gsp.admin';
        $list = $this->db->select('adm_user',[
            "[>]object(a)" => ["au_depa" => "o_id"],
            "[>]object(b)" => ["au_area" => "o_id"],
        ],[
            'au_id',
            'au_name',
            'a.'.LG_NAME.'(depa_name)',
            'b.'.LG_NAME.'(area_name)',
        ],$where);
        if(!empty($list) && is_array($list))
        {
            $userLinkRole = $this->db->select('adm_user_link_role','*',[
                'ault_ar_id' => $arId
            ]);
            $userLinkRole = !empty($userLinkRole) && is_array($userLinkRole) ? array_column($userLinkRole,'aulr_id','ault_au_id') : [];
            $i = 0;
            foreach ($list as &$value)
            {
                $i++;
                $value['id'] = $i;
                $value['is_check'] = isset($userLinkRole[$value['au_id']]) ? true : false;
            }
        }
        return is_array($list) && !empty($list) ? $list : [];
    }

    public function operation($data)
    {

        $arId = (int) $data['ar_id'];
        $auId = is_string($data['au_id']) ? [$data['au_id']] : $data['au_id'];
        if(is_string($arId)) $arId = [$arId];

        if($data['statue'] === 'true')
        {
            $addData = [];
            foreach ($auId as $id)
            {
                $addData[] = [
                    'ault_au_id' => $id,
                    'ault_ar_id' => $arId,
                ];
            }
            $this->db->delete('adm_user_link_role',['ault_ar_id' => $arId,'ault_au_id' => $auId]);
            $result = $this->db->insert('adm_user_link_role',$addData);
            return $result ? true : false;
        }else{
            $this->db->begin();
            foreach ($auId as $id)
            {
                $this->db->delete('adm_user_link_role',[
                    'ault_au_id' => $id,
                    'ault_ar_id' => $arId,
                ]);
            }
            $result = $this->db->end();
            return true;
        }
    }
}
