<?php
/**
  * @class 基类
  * @author soul
  */
class baseAction
{
	public function __construct()
	{
		if(!empty($_COOKIE['perPage'])) $_COOKIE['perPage'] = (int) $_COOKIE['perPage'];
		LibFc::useMainDb();
		mvc::$cfg['login_user_ip'] = LibFc::GetClientIp();
		//专线使用内网IP
		if(mvc::$cfg['login_user_ip'] == '112.94.6.182'){
			mvc::$cfg['HOST']['vinimg_2real'] = mvc::$cfg['HOST']['vinimg_2'];
			mvc::$cfg['HOST']['vinimg_2'] = 'http://192.168.1.67:83/vinimg/';
		}
		
		// 临时开发者登录跳过（仅用于开发环境）
		// if(!empty($_GET['dev_login']) && $_GET['dev_login'] === 'skip') {
		// 	$_SESSION['admin_userid'] = 1;  // 临时用户ID
		// 	$_SESSION['admin_username'] = 'developer';
		// 	$_SESSION['admin_uname'] = '开发者';
		// 	$_SESSION['ad_user_name'] = 'yiparts';  // 超级管理员权限
		// 	$_SESSION['admin_rule'] = [];  
		// 	$_SESSION['admin_rulename'] = [];
		// 	$_SESSION['_unitag'] = 'dev_' . time();
		// }
		
		//登录校验
		$nowFun = mvc::$URL_CLASS.'/'.mvc::$URL_METHOD;
		//忽略登录的接口
		$ignoreLoginFunArr = ['index/test', 'user/login', 'user/logout', 'user/ajaxLogin', 'user/loginByQQ', 'user/loginByWx', 'ypcCar/catchHuanbaoScqdVin', 'ypcCar/initUniqueByGxbCode', 'shop/initModelByOthModType','ypcCar/updateYpcarGxbcode'];
		if(empty($_SESSION['admin_userid']))
		{
			//自动登录
			if(!empty($_COOKIE['_unitag']))
			{
				$LibYpApi = new LibYpApi();
				$PostData = [
					'type'=>'unitag',
					'data'=>['unitag'=>$_COOKIE['_unitag']],
					'ip'=>mvc::$cfg['login_user_ip'],
					'from'=>mvc::$cfg['FROM'],
					'lang'=>'cn'
				];
				$res = $LibYpApi->Get('user/login', [], $PostData, true);
				if($res['status'] && !empty($res['data']['u_id']) && $this->initLogin($res['data'], 1) === true)
				{
				}
			}
		}
		if(empty($_SESSION['admin_userid']) && !in_array($nowFun, $ignoreLoginFunArr))
			Header("Location: ".mvc::$cfg['ADMIN_URI'].'user/login?goto='.urlencode(LibFc::nowUrl()));

		if(!empty($_SESSION['admin_userid']))
		{
			if($nowFun == 'user/login') Header("Location: ".mvc::$cfg['ADMIN_URI']);
		}
	}
	

	//初始化用户登录数据
	protected function initLogin($userData, $remember)
	{
		$B2cBase = new B2cBase();
		$res = $B2cBase->get('an_user', ['*'], sprintf(" and au_uid=%d and au_status=1", $userData['u_id']), true);
		if(!empty($res['data']))
		{
			$auArr = $res['data'];
			if(empty($auArr['au_pjsys'])) return false;
			
			$_SESSION['_unitag'] = $userData['unitag'];
			$_SESSION['admin_userid'] = $userData['u_id'];
			$_SESSION['admin_username'] = $userData['u_name'];
			$_SESSION['admin_uname'] = $res['data']['au_name'];
			$_SESSION['admin_rule'] = [];
			//权限
			$res = $B2cBase->get('an_rule',['arule_id', 'arule_name']);
			foreach($res['data'] as $v)
			{
				$_SESSION['admin_rulename'][$v['arule_id']] = $v['arule_name'];
			}
			$res = $B2cBase->get('an_user_rule',['aur_arule_id'], 'and aur_au_uid='.$_SESSION['admin_userid']);
			$_SESSION['admin_rule'] = array_column($res['data'], 'aur_arule_id');
			$time = !empty($remember)? time()+86400*30: null;
			setcookie('_unitag', $_SESSION['_unitag'], $time, '/');
			return true;
		}
		else
		{
			return false;
		}
	}
	
	protected function clearLogin()
	{
		unset($_SESSION['admin_userid']);
		unset($_SESSION['admin_username']);
		unset($_SESSION['admin_uname']);
		unset($_SESSION['admin_rule']);
		unset($_SESSION['_unitag']);
		unset($_SESSION['admin_userid']);
		setcookie('_unitag', '', time()-3600, '/');
		return true;
	}
}