<?php
class indexAction extends baseAction
{
	function index()
	{
		
	}

	/**
	 * @method 获取百度统计的token
	 * @http  get
	 * @param site     string [必填]   PJL
	 * @author soul 2018/10/30
	 * @return
	 	成功：{"status":true,"data":{"app_key":"0cb112fb24","access_token":"21.9725e33290e8e6da0594a4ed0fd1f6bb.2592000.1554866452.2118827734-15726599"},"code":0}
		失败：{"status":false,"data":"错误信息","code":"错误代码"}
	 */
	public function getBaiduTjToken()
	{
		$params = mvc::$URL_PARAMS;
		$LibCurl = new LibCurl();
		$access_token = '';
		$cacheFile = mvc::$cfg['PATH_ROOT'].'cache/BaiduTjToken.php';
		$arr = file_exists($cacheFile)? include($cacheFile): [];
		switch($params['site'])
		{
			case 'PJL':
				$cfg = mvc::$cfg['WEBTJ']['PJL'];
				if(empty($arr['PJL']))
				{
					$redirect_uri = urlencode('http://hub.paojd.cn/go/baiduTjRedirect');
					$url = 'http://openapi.baidu.com/oauth/2.0/authorize?response_type=code&client_id='.$cfg['API_KEY'].'&redirect_uri='.$redirect_uri.'&scope=basic&display=popup';
					LibFc::ReturnJson(false, $url);
				}
				if(time() < $arr['PJL']['expires_in'])
				{
					LibFc::ReturnJson(true, ['app_key'=>$cfg['APP_KEY_TJ'], 'access_token'=>$arr['PJL']['access_token']]);
				}
				else
				{
					$cfg['REFRESH_TOKEN'] = empty($arr['PJL']['refresh_token'])? $cfg['REFRESH_TOKEN']: $arr['PJL']['refresh_token'];
					$url = 'http://openapi.baidu.com/oauth/2.0/token?grant_type=refresh_token&refresh_token='.$cfg['REFRESH_TOKEN'].'&client_id='.$cfg['API_KEY'].'&client_secret='.$cfg['SECRET_KEY'];
					$res = $LibCurl->fetch($url);
					$res = json_decode($res, true);
					if(!empty($res['access_token']))
					{
						$res['expires_in'] = time()+$res['expires_in']-3600;
						$arr['PJL'] = $res;
						LibFc::ArraySave($arr, $cacheFile);
						LibFc::ReturnJson(true, ['app_key'=>$cfg['APP_KEY_TJ'], 'access_token'=>$res['access_token']]);
					}
					else
					{
						LibFc::ReturnJson(false, $res['error_description']);
					}
				}
			break;
		}
		LibFc::ReturnJson(false, 'getBaiduTjToken获取失败！');
	}

	/**
	 * @method 获取统计报表的访问链接
	 * @http  get
	 * @param site     string [必填]   PJL
	 * @param uid     string [选填]   宜配会员ID
	 * @author soul 2018/10/30
	 * @return
	 	成功：{"status":true,"data":"http:\/\/zxsys.paojd.cn\/tj\/report?code=bFowTE1UeEFaak4zc0dwNnN2cHVlQ01VYTN2dFZVd3l4NVp4ZUE9PQ==","code":0}
		失败：{"status":false,"data":"错误信息","code":"错误代码"}
	 */
	public function getTjReportUrl()
	{
		$params = mvc::$URL_PARAMS;
		switch($params['site'])
		{
			case 'PJL': 
				$LibEncry = new LibEncry();
				//5分钟
			    $str = sprintf("%d@%d@%d", time(), time()+300, $params['uid']);
				$url = mvc::$cfg['urls']['zx'].'tongJi/index?code='.urlencode($LibEncry->encode($str));
				LibFc::ReturnJson(true, $url);
			break;
		}
		LibFc::ReturnJson(false, 'getTjReportUri获取失败！');
	}


	/**
	 * @method 获取扫码登录 二维码信息 （有效期5分钟）
	 * @http  get
	 * @param from    string [必填]   来源
	 * @author soul 2018/10/30
	 * @return
	 	{"status":true,"data":{"code":"lZ0LMTxAYjN0oGoysepueCMUa3vtRUx6x5ZlMNidFVFGLC13dX1Ed6ZAanm0R2cwTHB0MLRpYnrPTEwwlOPUMUYYejKVjQc0PEB2Mw%3D%3D","ewm":"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkgAAAJIAQMAAACg0InsAAAABlBMVEX\/\/\/8AAABVwtN+AAAEmElEQVR4nO2VQXIcMQwD8f9PIxUTAKmNc8kpVYZ2dkeiyKYPXTTQ1dXV9d8uzvLmvPAV\/f383mzmx3eqSyppSPoND\/6dDFGej19bXVJJh7EkXdBEC+ouNlW6urqkkj5IwEoJl6gO7sErKlhSSX8j0cUxTzp6g\/RiDiWV9EmKarw78VSDQeBEyFNdUkn6lXn\/+LG3JZWE75bVG\/eIHXD+p+o7\/IVQ0s8m0XpmzPFGx1urOHwNQRKPmCWVNImwaPwmGW6iLjfgxJJKQsaWQRHQSRY2Lfi0mbySSloSSN5EXUzAM0zPNJWtD6+kkkz6QohoUz3i3GT15eYAKSuppGjn8BZJvEvAVdUS+1hSSTRoOZd6gpzEVXEVvi1LKmnVegyEKXFzXJw13Y7GJZUEm6kUJQ8tOCyMFH\/6fRJLKilJOGFeIGUsbKoT5eSeSiopzllM+QZXR04lE0lRUeQtqSTnppJOEX4VVHFk5K0qqaQgMsw2RUBpiExBrqa0v9w\/qaSSbOJOO0NcxYccYy3nTrySStI2qXvpg79KUxnpYQjcP6mkH0+ygcjM015e2sIY6m478UoqacXEE1XpFPp2wlx+nCyppA\/SBlMELJy+4tlBtsrpkko6Zip8ojj4+CiNgYV6OpZUkouwKCvpk+STtGTE5EqLkkq6FjI1SoHr5hLHUSkJv0FjSiopnPFxX0uzf3tvhS3sOZRUEjLYIMaxU5c8XcWnXEVJJb0kA2kIXGHoOhtSTgKUVJJhZOp4G8i+U0u3ZBYOq6QfT6K\/tJILcJrrLyXGXrlL+vEk+6aqGXG6sLG5Tfs0urOupJKk40Hk4tS7axrHVxldUkkpkIEq5npnObdiflKTtJJK4oeZewlPvYnByc5LBZxRUkkhwT7Cd+ebqTYNYisyCEsqCacQ3j3pkVDH2clcbK\/FlFSSObq3oHHUKuI2c5qHIEsq6ZAmz+kLDcj3uuSpS4+SSlLExum7GDspBhKkkelXUkmvmcAqp2qVqz4fEEtS85JKsph20df2VIYyaSKEGWhJJcVMbL65x9lpMbFj6L0sqaQlQaFbo2GnkTd4eXsOa2tJJR0XJ+QchLwcy6iQHc5tSSWJZBVzcSOaY5YYToio2FVSSQnJvUeyGJnXFnsuys2SSvozxEw4b7KDLHV6qksq6SXBYdcqZu3MjLVnz518JZUEDzcPMnivXOd9ZZFWURRXlFRSSHd6WcatVTZ92I5Mz6NpSSUhvjnVV1O1+ZpraZWnpJKUjkwrI61rMvnImu0hlFTSJanOMg52lZSglJ30dOQnsaQfT1I+XcTgfeC2c+Q2db+SSkqAkcwlETNpNhYng29KSSXBL0pHKOfE1861OWCwpJIOidYurtnSqfflOdlnNy+pJLkHK2gJSSbRNJyRRj\/wXUklxUy6FKspbF8chMfbNZH5lFSSSI7RXCxzGFj4w4y1JZW0JHu5wr08uv4rkVKRe4OSSvqOlHxMKDLej59X6ZJKekgD2AMXrofRFguOnSWVNKT9tWgeX1IRdjNieq9eKKkk1x63kmtDY5+HXgpiquAllYSurq6u\/3b9AueswF4jskXIAAAAAElFTkSuQmCC"},"code":0}
		失败：{"status":false,"data":"错误信息","code":"错误代码"}
	 */
	public function getLoginEwmInfo()
	{
		$Params = mvc::$URL_PARAMS;
		switch($Params['from'])
		{
			case 'PJDSUPER': 
			case 'PJLPC':
			case 'PJLREP':
			case 'YP': 
			case 'B2C':
			    $code = sprintf("%s@%d%d%d", $Params['from'], rand(10, 99), time(), rand(100, 999));
				$LibEncry = new LibEncry();
				$code = base64_encode($LibEncry->encode($code));
				$url = mvc::$cfg['urls']['yp'].'Pjls/Index?f=LoginEwm&code='.$code;
				$OthQrcode = new OthQrcode();
				$ewm = $OthQrcode->png($url,false);
				LibFc::ReturnJson(true, ['code'=>$code, 'ewm'=>$ewm]);
			break;
		}
		LibFc::ReturnJson(false, 'from参数获取失败，无法生存二维码信息！');
	}

	/**
	 * @method 设置扫码成功
	 * @http  post
	 * @param code    string [必填]   从扫码信息中匹配code=xxx
	 * @author soul 2019/3/12
	 * @return
	 	成功：{"status":true,"data": [],"code":0}
		失败：{"status":false,"data":"错误信息","code":"错误代码"}
		EXPIRE：表示当前的code已过期
	 */
	public function setLoginEwmOk()
	{
		if(!empty($_POST['code']))
		{
			$code = $_POST['code'];
			$LibEncry = new LibEncry();
			$decode = $LibEncry->decode(base64_decode($code));
			$codeArr = explode('@', $decode);
			if(count($codeArr) == 2 && time() >= substr($codeArr[1], 2, -3) && time() <= (substr($codeArr[1], 2, -3)+300) && !empty($codeArr[0]))
			{
				$setArr = [
					'ule_status'=>1,	
					'ule_code'=>$code,
					'ule_login_from'=>$codeArr[0],	
					'ule_build_time'=>substr($codeArr[1], 2, -3),
					'ule_expire_time'=>substr($codeArr[1], 2, -3)+300,
					'ule_stime'=>time()
				];
				$YpwBase = new YpwBase();
				$res = $YpwBase->Get('yp_user_login_ewm', ['ule_id'], sprintf(" and ule_code='%s' limit 1", LibFc::Escape($code)), true);
				if(empty($res['data']))
				{
					$YpwBase->Add('yp_user_login_ewm', $setArr);
				}
				else
				{
					$YpwBase->Set('yp_user_login_ewm', $setArr, sprintf(" and ule_id=%d", $res['data']['ule_id']));
				}
				LibFc::ReturnJson(true, []);
			}
		}
		LibFc::ReturnJson(false,  '二维码已过期，请重新获取！', 'EXPIRE');
	}

	
	/**
	 * @method 确认登录
	 * @http  post
	 * @param code    string [必填]   getLoginEwmInfo返回的 code
	 * @param uid     string [必填]   用户ID
	 * @author soul 2019/3/12
	 * @return
	 	成功：{"status":true,"data":[],"code":0}
		失败：{"status":false,"data":"错误信息","code":"错误代码"}
	 */
	public function setLoginEwmUserId()
	{
		if(!empty($_POST['code']) && !empty($_POST['uid']))
		{
			$code = $_POST['code'];
			$uid = $_POST['uid'];

			$YpwBase = new YpwBase();
			$res = $YpwBase->Get('yp_user', ['u_id'], sprintf(" and u_id='%d' limit 1", $uid), true);
			if(empty($res['data'])) LibFc::ReturnJson(false, '此用户不存在！');

			$LibEncry = new LibEncry();
			$decode = $LibEncry->decode(base64_decode($code));
			$codeArr = explode('@', $decode);
			if(count($codeArr) == 2 && time() >= substr($codeArr[1], 2, -3) && time() <= (substr($codeArr[1], 2, -3)+300) && !empty($codeArr[0]))
			{
				$res = $YpwBase->Get('yp_user_login_ewm', ['ule_id'], sprintf(" and ule_code='%s' limit 1", LibFc::Escape($code)), true);
				if(empty($res['data']))
				{
					$setArr = [
						'ule_status'=>2,	
						'ule_code'=>$code,
						'ule_login_from'=>$codeArr[0],	
						'ule_build_time'=>substr($codeArr[1], 2, -3),
						'ule_expire_time'=>substr($codeArr[1], 2, -3)+300,
						'ule_stime'=>time(),
						'ule_oktime'=>time(),
						'ule_uid'=>$uid
					];
					$YpwBase->Add('yp_user_login_ewm', $setArr);
				}
				else
				{
					$setArr = [
						'ule_status'=>2,	
						'ule_oktime'=>time(),
						'ule_uid'=>$uid
					];
					$YpwBase->Set('yp_user_login_ewm', $setArr, sprintf(" and ule_id=%d", $res['data']['ule_id']));
				}
				LibFc::ReturnJson(true, []);
			}
		}
		LibFc::ReturnJson(false, '二维码已过期，请重新获取！', 'EXPIRE');
	}


	/**
	 * @method 获取扫码登录的状态
	 * @http  post
	 * @param code    string [必填]   getLoginEwmInfo返回的 code
	 * @author soul 2019/3/12
	 * @return
	 	成功：{"status":true,"data":{"ule_status":"0待扫码 1扫码成功待确认 2已完成","ule_uid":"1001","unitag":"aaaanp5stVMeiAqc3jxe2Fq0KhmbcexHjVaLyF6dlNHbKRubne3fmxrWHBWd6NHbjDNcnp4g\/D9aQ=="},"code":0}
		失败：{"status":false,"data":"错误信息","code":"错误代码"}
		EXPIRE：表示当前的code已过期
	 */
	public function getLoginEwmStatus()
	{
		$arr = ['ule_status'=>0, 'ule_uid'=>0, 'unitag'=>''];
		if(!empty($_POST['code']))
		{
			$code = $_POST['code'];
			$LibEncry = new LibEncry();
			$decode = $LibEncry->decode(base64_decode($code));
			$codeArr = explode('@', $decode);
			if(count($codeArr) == 2 && time() >= substr($codeArr[1], 2, -3) && time() <= (substr($codeArr[1], 2, -3)+300) && !empty($codeArr[0]))
			{
				$YpwBase = new YpwBase();
				$res = $YpwBase->Get('yp_user_login_ewm', ['ule_status', 'ule_uid', 'ule_expire_time'], sprintf(" and ule_code='%s' limit 1", LibFc::Escape($code)), true);
				if(!empty($res['data']))
				{
					$eArr = $res['data'];
					if($eArr['ule_expire_time'] <= time())
						LibFc::ReturnJson(false, '二维码已过期，请重新获取！', 'EXPIRE');

					$arr = ['ule_status'=>$eArr['ule_status'], 'ule_uid'=>$eArr['ule_uid'], 'unitag'=>''];
					if(!empty($eArr['ule_uid']))
					{
						$res = $YpwBase->Get('yp_user', ['u_id', 'u_password'], sprintf(" and u_id='%d' limit 1", $eArr['ule_uid']), true);
						if(!empty($res['data']))
						{
							$arr['unitag'] = $LibEncry->encode($res['data']['u_id'].'@'.time().'@'.md5('yp'.$res['data']['u_password']));
						}
					}
				}
			}
			else
			{
				LibFc::ReturnJson(false, '二维码已过期，请重新获取！', 'EXPIRE');
			}	
		}
		LibFc::ReturnJson(true, $arr);
	}

	/**
	  * @method 翻译
	  * @http  post
	  * @param  words   array [必填] 需要翻译的词 ['happy',...]
	  * @param  flang   array [必填] 原语言 cn en...
	  * @param  tlang   array [必填] 翻译成 cn en...
	  * @author soul
	  * @copyright 2019/7/1
	  * @return {"status":true,"data":[{"src":"happy","dst":"\u5e78\u798f\u7684"}],"code":0}
	  */
	public function fanyi()
	{
		$OthFanYi = new OthFanYi();
		$res = $OthFanYi->fanyi($_POST['words'], $_POST['flang'], $_POST['tlang']);
		echo json_encode($res);
	}

	/**
	  * @method 根据经纬度获取地址信息
	  * @http  get
	  * @param  token           string [必填] 调用接口凭证 (post|get)
	  * @param  lng             float [必填] 精度 Wgs84
	  * @param  lat             float [必填] 纬度 Wgs84
	  * @author soul
	  * @copyright 2017/8/16
	  * @return 
		{"status":true,"data":{"pctids":["19","1901","14423","14436"],"pcts":["广东省","广州市","白云区","石井街道"],"full_addr":"广东省,广州市,白云区,石井街道,潭村北社区居委会","mini_addr":"潭村北","distance":"0.6704350977314392"},"code":0,"runtime":244}
	  */
	public function getGpsInfo()
	{
		$params = mvc::$URL_PARAMS;
		$OthPct = new OthPct();
		$res=$OthPct->getGpsInfo($params['lng'], $params['lat']);
		LibFc::EchoJson($res);
	}

	/**
	  * @method 获取手机号码信息
	  * @param  mobile   [必填] 手机号
	  * @author soul
	  * @copyright 2023/3/29
	  * @return {"status":true,"data":{"pctids":["19","1901"],"pcts":["广东省","广州市"],"new":"","full":"广东省广州市","lng":0,"lat":0,"type":"移动","quhao":"020"},"code":0,"runtime":73}
	  */
	public function getMobileInfo()
	{
		$params = mvc::$URL_PARAMS;
		$OthPct = new OthPct();
		$res=$OthPct->getMobileInfo($params['mobile']);
		LibFc::EchoJson($res);
	}

	/**
	 * @method 获取公司信息
	 * @http  get
	 * @param  token           string [必填] 调用接口凭证 (post|get)
	 * @param  keyword         string [必填] 关键字  公司名或者统一社会信用代码
	 * @param  type           int [选填] 0|1  0获取数据库的数据 1获取最新数据
	 * @author zhengweihua 
	 * @copyright 2022-07-19
	 * @return 
	    {"status":true,"data":{"com_id":"3","com_name":"广州强胜汽车配件有限公司","com_code":"91440101MA5D5YX32K","com_faren":"苏灼强","com_status":"-1","com_status_remark":"企业已依法注销营业执照，丧失法人资格。,注销日期：2022-05-25,注销原因：-","com_tel":"1324272****","com_addr":"广州市天河区黄村北路26号D区二楼6688房之112（仅限办公）","com_build":"2020-03-20","com_bdate":"2020-03-20","com_edate":"2022-05-25","com_jyfw":"润滑油零售;汽车零配件零售;汽车零配件批发;润滑油批发;"},"code":0,"runtime":49}
	    com_code 统一社会信用代码,
		com_status 企业状态 1 开业 -1注销,
		com_status_remark 状态备注
		com_build 成立时间
		com_jyfw 经营范围
	*/
	public function getCompanyInfo()
	{
		$params = mvc::$URL_PARAMS;
		$YpwCompanyInfo = new YpwCompanyInfo();
		if (empty($params['keyword'])) LibFc::ReturnJson(false, '参数错误');
		$type =	isset($params['type']) ? $params['type'] : 0;
		$res = $YpwCompanyInfo->getCompanyInfo($params['keyword'], $type);
		LibFc::EchoJson($res);
	}
	
	/**
	 * @method 短网址转换
	 * @http  post
	 * @param  token           string [必填] 调用接口凭证 (post|get)
	 * @param  urls            string [必填] 多个;分号分隔  https:\/\/gzh.paojd.cn\/227483\/index.php\/item\/searchVin?type=vin&keyword=LGXCE6DB9K0145797;https:\/\/gzh.paojd.cn\/227483\/index.php\/item\/search?type=model&mod3_id=17854&vin=LGXCE6DB9K0145797
	 * @author soul
	 * @copyright 2023/9/5
	 * @return {"status":true,"data":[{"url":"http:\/\/www.yiparts.com\/","dwz":"https:\/\/paojd.cn\/r2FzJ2"},{"url":"http:\/\/www.yiparts.com","dwz":"https:\/\/paojd.cn\/QB2p12"}],"code":0,"runtime":119}
	*/
	public function dwz()
	{
		$arr = [];
		$urlArr = explode(';', $_POST['urls']);
		if(!empty($urlArr))
		{
			$OthDwz = new OthDwz();
			$res = $OthDwz->dwz($urlArr);
			LibFc::EchoJson($res);
		}
		LibFc::ReturnJson(true, $arr);
	}

	/**
	 * @method 系统消息邮件通知
	 * @http  post
	 * @param  token           string [必填] 调用接口凭证 (post|get)
	 * @param  title           string [必填] 标题
	 * @param  txt           string [必填] 内容
	 * @author soul
	 * @copyright 2023/9/5
	 * @return {"status":true,"data":[{"url":"http:\/\/www.yiparts.com\/","dwz":"https:\/\/paojd.cn\/r2FzJ2"},{"url":"http:\/\/www.yiparts.com","dwz":"https:\/\/paojd.cn\/QB2p12"}],"code":0,"runtime":119}
	*/
	public function sysNotice()
	{
		$SendEmail = new SendEmail();
		$res = $SendEmail->send(['ema_type'=>'紧急','ema_from'=>'B2C', 'ema_to_email'=>'472211059@qq.com', 'ema_title'=>$_POST['title'], 'ema_text'=>$_POST['txt']]);
		LibFc::EchoJson($res);
	}

	
	/**
	 * @method 重启机器人【2分钟内重启完成，不检测是否重启成功】
	 * @http  get
	 * @param  token           string [必填] 调用接口凭证 (post|get)
	 * @param  wrt_id         string [必填] wx_robot_token 
	 * @return 
	*/
	public function restartRobot()
	{
		$params = mvc::$URL_PARAMS;
		$B2cBase = new B2cBase();
		$res = $B2cBase->get('wx_robot_token', ['*'], sprintf(" and wrt_id=%d", $params['wrt_id']), true);
		if($res['data']){
			$tokenInfo = $res['data'];
			if(time() - $tokenInfo['wrt_restart_last'] < 120){
				LibFc::ReturnJson(false, '重启时间间隔不能低于2分钟，请稍后重试');
			}else{
				$set = ['wrt_restart_last'=>time()];
				if($tokenInfo['wrt_token_type'] == 'padlocal'){
					$url = 'http://'.$tokenInfo['wrt_server_ip'].':8001/restart?wrt_id='.$tokenInfo['wrt_id'].'&type='.$tokenInfo['wrt_token_type'];
				}else if($tokenInfo['wrt_token_type'] == 'eyapi'){
					$url = 'http://hub.paojd.cn:75/wechatEy/restart?wrt_id='.$tokenInfo['wrt_id'].'&type='.$tokenInfo['wrt_token_type'];
					$set['wrt_sleeptime'] = date('Y-m-d H:i:s', time() - 24*3600);
				}else if($tokenInfo['wrt_token_type'] == 'geapi'){
					$url = 'http://hub.paojd.cn:75/wechatGe/restart?wrt_id='.$tokenInfo['wrt_id'].'&type='.$tokenInfo['wrt_token_type'];
					$set['wrt_sleeptime'] = date('Y-m-d H:i:s', time() - 24*3600);
				}else if($tokenInfo['wrt_token_type'] == 'qiweapi'){
					$url = 'http://hub.paojd.cn:75/wechatQw/restart?wrt_id='.$tokenInfo['wrt_id'].'&type='.$tokenInfo['wrt_token_type'];
					$set['wrt_sleeptime'] = date('Y-m-d H:i:s', time() - 24*3600);
				}
				$B2cBase->set('wx_robot_token', $set, sprintf(" and wrt_id=%d", $tokenInfo['wrt_id']));
				$LibCurl = new LibCurl();
				$html = $LibCurl->fetch($url);
				LibFc::ReturnJson(true, $html);
			}
		}
		LibFc::ReturnJson(false, '机器人token不存在');
	}


	/**
	 * @method 检测机器人状态
	 * @http  get
	 * @param  token           string [必填] 调用接口凭证 (post|get)
	 * @param  wrt_id         string [必填] wx_robot_token 
	 * @return 
	*/
	public function chkRobotStatus()
	{
		$params = mvc::$URL_PARAMS;
		$B2cBase = new B2cBase();
		$res = $B2cBase->get('wx_robot_token', ['*'], sprintf(" and wrt_id=%d", $params['wrt_id']), true);
		if($res['data']){
			$tokenInfo = $res['data'];
			$LibHttp = new LibHttp();
			if($tokenInfo['wrt_token_type'] == 'eyapi'){
				$html = $LibHttp->fetch('http://hub.paojd.cn:75/wechatEy/chkRobot?wrt_id='.$tokenInfo['wrt_id'].'&count=1');
			}else if($tokenInfo['wrt_token_type'] == 'geapi'){
				$html = $LibHttp->fetch('http://hub.paojd.cn:75/wechatGe/chkRobot?wrt_id='.$tokenInfo['wrt_id'].'&count=1');
			}else{
				$html = '';
			}
			LibFc::ReturnJson(true, $html);
		}
		LibFc::ReturnJson(false, '机器人token不存在');
	}
		


	/**
	 * @method 获取企业名称
	 * @param  link  string [必填] 爱企查/天眼查详情页 https://aiqicha.baidu.com/company_detail_28676206903744?from=s
	 * @author zhengweihua 
	 * @copyright 2024-09-02
	 * @retrurn {"status": true,"data": {"com_name": "中国平安保险（集团）股份有限公司","com_code": "91440300100012316L"},"code": 0,"runtime": 4928}
	 */
	public function getCompanyName()
	{
		$params = mvc::$URL_PARAMS;
		$YpwCompanyInfo = new YpwCompanyInfo();
		if (empty($params['link'])) LibFc::ReturnJson(false, '参数错误');
		$params['link'] = urldecode($params['link']);
		$res = $YpwCompanyInfo->getCompanyName($params['link']);
		LibFc::EchoJson($res);	
	}


	/**
	  * @method 通过关键词获取企业列表
	  * @param  word 关键词
	  * @author soul
	  * @copyright 2026/6/17
	  * @return 
	  */
	public function searchCompanyList()
	{
		$arr = [];
		$Params = mvc::$URL_PARAMS;
		$word = $Params['word'];
		if(strlen($word) < 2) return LibFc::ReturnData(true, $arr);
		$YpwCompanyInfo = new YpwCompanyInfo();
		$orgArr = $YpwCompanyInfo->tycApi('search/2.0?word='.urlencode($word));
		if($orgArr['result']['items']) $arr = $orgArr['result']['items'];
		LibFc::ReturnJson(true, $arr);
	}

	
	/**
	  * @method 查询公司[返回详细信息]
	  * @http  get
	  * @param  word  [必填] 关键字 公司名称或者统一社会信用代码
	  * @author soul
	  * @copyright 2025/6/10
	  * @return {"status":true,"data":[{"com_id":"4","com_alias":"宜配跑街","com_credit_code":"91440101MA5D396151","com_regstatus":"开业","com_name":"宜配跑街（广州）网络科技有限公司","com_name_en":"Yipai Paojie (Guangzhou) Network Technology Co., Ltd","com_name_olds":"","com_ismicroent":"1","com_type":"1","com_orgtype":"有限责任公司(法人独资)","com_bond_num":"","com_bond_name":"","com_legal_person":"文丰","com_business":"电子产品批发;信息电子技术服务;电子产品设计服务;电子、通信与自动控制技术研究、开发;网络技术的研究、开发;计算机技术开发、技术服务;科技信息咨询服务;信息技术咨询服务;数据处理和存储服务;计算机技术转让服务;软件开发;软件批发;软件服务;软件技术推广服务;网络信息技术推广服务;互联网商品销售（许可审批类商品除外）;互联网商品零售（许可审批类商品除外）;电子商务信息咨询;商品信息咨询服务;美术图案设计服务;","com_industry":"软件和信息技术服务业","com_estiblish_time":"1576771200","com_from_time":"1576771200","com_to_time":"0","com_cancel_date":"0","com_social_staff":"31","com_city":"广州市","com_distric":"白云区","com_location":"广州市白云区石槎路363号A806室","com_capital":"100万人民币","com_currency":"人民币","com_tags":"存续;小微企业","com_score":"5839","com_etime":"1749607453"}],"code":"","runtime":395}

	  多个企业需要传返回的（com_name或者com_credit_code）二次调取接口，只有一个企业时返回详细信息
			'com_id', //企业ID
			'com_alias',//简称                              
			'com_credit_code',//统一社会信用代码            
			'com_regstatus',//企业状态                        
			'com_name',//公司名称                        
			'com_name_en',//公司名称英文                  
			'com_name_olds',//曾用名                           
			'com_ismicroent',//是否是小微企业 0不是 1是  
			'com_type',//法人类型，1个人 2公司      
			'com_orgtype',//企业类型                        
			'com_bond_num',//股票号                           
			'com_bond_name',//股票名                           
			'com_legal_person',//法人姓名                        
			'com_business',//经营范围                        
			'com_industry',//行业                              
			'com_estiblish_time',//成立日期                        
			'com_from_time',//经营开始时间                  
			'com_to_time',//经营结束时间                  
			'com_cancel_date',//注销日期                  
			'com_social_staff',//参保人数   
			'com_province',//省      
			'com_city',//市                                 
			'com_distric',//区 
			'com_pct_ids',//YP省市区逗号分隔      
			'com_location',//注册地址                        
			'com_capital',//注册资本                                               
			'com_currency',//注册资本币种  
			'com_regnum',//工商注册号                  
			'com_staff',//人员规模 
			'com_tags',//标签                              
			'com_score',//万分制 企业评分                                         
			'com_etime',//最后更新时间  
	  */
	public function searchCompany()
	{
		$params = mvc::$URL_PARAMS;
		$cachetime = strtotime('-6 month');
		$arr = [];
		if(strlen($params['word']) > 2){
			$word = $params['word'];
			$YpwCompanyInfo = new YpwCompanyInfo();
			$whereArr = [
				sprintf(" and (com_name='%s' or com_name_en='%s' or com_credit_code='%s')", $word, $word, $word),
				sprintf(" and (com_alias='%s' or com_name_olds like ';%s;')", $word, $word),
				sprintf(" and com_keyword like ';%s;'", $word),
			];
			foreach($whereArr as $where){
				$res = $YpwCompanyInfo->get('company_info', ['com_id', 'com_name', 'com_regstatus', 'com_name_en', 'com_credit_code', 'com_alias', 'com_business', 'com_industry', 'com_tags', 'com_etime'], $where);
				$arr = $res['data'];
				if($arr) break;
			}
			//无结果，调取接口
			if(empty($arr)){
				$res = $YpwCompanyInfo->companyByApi($word);
				if($res['data']) $arr = [['com_id'=>$res['data']]];
			}else if(count($arr) == 1 && $arr[0]['com_etime'] < $cachetime){
				//更新
				$res = $YpwCompanyInfo->companyByApi($arr[0]['com_name']);
				if($res['data']) $arr = [['com_id'=>$res['data']]];
			}
			//只有一个公司，返回详细信息
			if(count($arr) == 1){
				$fields = [
					'com_id', //企业ID
					'com_alias',//简称                              
					'com_credit_code',//统一社会信用代码            
					'com_regstatus',//企业状态                        
					'com_name',//公司名称                        
					'com_name_en',//公司名称英文                  
					'com_name_olds',//曾用名                           
					'com_ismicroent',//是否是小微企业 0不是 1是  
					'com_type',//法人类型，1个人 2公司      
					'com_orgtype',//企业类型                        
					'com_bond_num',//股票号                           
					'com_bond_name',//股票名                           
					'com_legal_person',//法人姓名                        
					'com_business',//经营范围                        
					'com_industry',//行业                              
					'com_estiblish_time',//成立日期                        
					'com_from_time',//经营开始时间                  
					'com_to_time',//经营结束时间                  
					'com_cancel_date',//注销日期                  
					'com_social_staff',//参保人数                       
					'com_province',//省                                 
					'com_city',//市                                 
					'com_distric',//区                                         
					'com_pct_ids',//YP省市区逗号分隔                                     
					'com_location',//注册地址                        
					'com_capital',//注册资本                                               
					'com_currency',//注册资本币种 
					'com_regnum',//工商注册号                  
					'com_staff',//人员规模 
					'com_tags',//标签                              
					'com_score',//万分制 企业评分                                         
					'com_etime',//最后更新时间  
				];
				$res = $YpwCompanyInfo->get('company_info', $fields, sprintf(' and com_id=%d', $arr[0]['com_id']));
				$arr = $res['data'];
			}
		}
		LibFc::ReturnJson(true, $arr);
	}



	/**
	  * @method 获取供应商资源库
	  * @http	get
	  * @param  cominfo        int [选填] 0|1 是否返回天眼查缓存数据 默认不返回
	  * @param  utime          int [选填] 指定时间戳后的数据
	  * @param  page           int [选填] 第几页 默认 1
	  * @param  per            int [选填] 每页数量 默认 20
	  * @author soul
	  * @copyright 2025/6/16
	  * @return {"status":true,"data":{"total":"6854","items":[{"sl_id":"1","sl_shuihao":"91320411076317776R","sl_shuihao_last_time":"2025-06-11 11:47:06","sl_name":"江苏胜蓝车业有限公司","sl_name_alias":"胜蓝车业","sl_capital":"3600万人民币","sl_type":"未知","sl_country":"中国","sl_province":"江苏省","sl_city":"常州市","sl_linkman":"叶长青(天眼查补充法人, 非联系人)","sl_staff":"法人","sl_zipno":"213100","sl_mb":"","sl_tel":"+8651983506698","sl_fax":"","sl_email":"sales@truck-light.cn","sl_website":"www.truck-light.cn","sl_address":"江苏省常州市新北区春江镇青岗路19号","sl_pro_cate":"车灯、塑料件及电镀件。","sl_pro_brand":"C ZYZ, JSSL","sl_tags":"存续;小微企业","sl_ctime":"2025-06-10 15:54:02","sl_utime":"2025-06-12 11:22:27"},{"sl_id":"2","sl_shuihao":"91320411MACRUF4621","sl_shuihao_last_time":"2025-06-11 11:47:08","sl_name":"常州大昕贸易有限公司","sl_name_alias":"大昕贸易","sl_capital":"50万人民币","sl_type":"未知","sl_country":"中国","sl_province":"江苏省","sl_city":"常州市","sl_linkman":"范博(天眼查补充法人, 非联系人)","sl_staff":"法人","sl_zipno":"213000","sl_mb":"","sl_tel":"+8651161218800","sl_fax":"","sl_email":"","sl_website":"","sl_address":"江苏省常州市新北区孟河镇九龙路","sl_pro_cate":"索纳塔中网格栅、伊兰特中网格栅、锐欧中网格栅、圣达菲中网格栅。","sl_pro_brand":"","sl_tags":"存续;小微企业","sl_ctime":"2025-06-10 15:54:02","sl_utime":"2025-06-12 11:22:27"}]},"code":"","runtime":84}

	  {"status":true,"data":{"total":"6854","items":[{"sl_id":"1","sl_shuihao":"91320411076317776R","sl_shuihao_last_time":"2025-06-11 11:47:06","sl_name":"江苏胜蓝车业有限公司","sl_name_alias":"胜蓝车业","sl_capital":"3600万人民币","sl_type":"未知","sl_country":"中国","sl_province":"江苏省","sl_city":"常州市","sl_linkman":"叶长青(天眼查补充法人, 非联系人)","sl_staff":"法人","sl_zipno":"213100","sl_mb":"","sl_tel":"+8651983506698","sl_fax":"","sl_email":"sales@truck-light.cn","sl_website":"www.truck-light.cn","sl_address":"江苏省常州市新北区春江镇青岗路19号","sl_pro_cate":"车灯、塑料件及电镀件。","sl_pro_brand":"C ZYZ, JSSL","sl_tags":"存续;小微企业","sl_ctime":"2025-06-10 15:54:02","sl_utime":"2025-06-12 11:22:27","cominfo":{"com_id":"6","com_alias":"胜蓝车业","com_credit_code":"91320411076317776R","com_regstatus":"存续","com_name":"江苏胜蓝车业有限公司","com_name_en":"Jiangsu Shenglan Automobile Industry Co., Ltd","com_name_olds":"","com_ismicroent":"1","com_type":"1","com_orgtype":"有限责任公司(自然人投资或控股)","com_bond_num":"","com_bond_name":"","com_legal_person":"叶长青","com_business":"电动车、汽车部件、车辆配件、机械零部件、模具、五金件的制造及加工；自营和代理各类商品和技术的进出口业务，但国家限定公司经营或禁止进出口的商品和技术除外。（依法须经批准的项目，经相关部门批准后方可开展经营活动）","com_industry":"汽车制造业","com_estiblish_time":"1376841600","com_from_time":"1376841600","com_to_time":"2007907200","com_cancel_date":"0","com_social_staff":"10","com_province":"江苏省","com_city":"常州市","com_distric":"新北区","com_pct_ids":"12,1211,31365","com_location":"常州市新北区春江镇青岗路19号","com_capital":"3600万人民币","com_currency":"人民币","com_regnum":"320407000224220","com_staff":"小于50人","com_tags":"存续;小微企业","com_score":"8047","com_etime":"1749613626"}},{"sl_id":"2","sl_shuihao":"91320411MACRUF4621","sl_shuihao_last_time":"2025-06-11 11:47:08","sl_name":"常州大昕贸易有限公司","sl_name_alias":"大昕贸易","sl_capital":"50万人民币","sl_type":"未知","sl_country":"中国","sl_province":"江苏省","sl_city":"常州市","sl_linkman":"范博(天眼查补充法人, 非联系人)","sl_staff":"法人","sl_zipno":"213000","sl_mb":"","sl_tel":"+8651161218800","sl_fax":"","sl_email":"","sl_website":"","sl_address":"江苏省常州市新北区孟河镇九龙路","sl_pro_cate":"索纳塔中网格栅、伊兰特中网格栅、锐欧中网格栅、圣达菲中网格栅。","sl_pro_brand":"","sl_tags":"存续;小微企业","sl_ctime":"2025-06-10 15:54:02","sl_utime":"2025-06-12 11:22:27","cominfo":{"com_id":"7","com_alias":"大昕贸易","com_credit_code":"91320411MACRUF4621","com_regstatus":"存续","com_name":"常州大昕贸易有限公司","com_name_en":"Changzhou Daxin Trading Co., Ltd","com_name_olds":"","com_ismicroent":"1","com_type":"1","com_orgtype":"有限责任公司(自然人独资)","com_bond_num":"","com_bond_name":"","com_legal_person":"范博","com_business":"一般项目：汽车零配件批发；新能源汽车电附件销售；新能源汽车整车销售；新能源汽车换电设施销售；新能源汽车生产测试设备销售；汽车零配件零售；汽车装饰用品销售；摩托车及零配件批发；摩托车及零配件零售；货物进出口；技术进出口（除依法须经批准的项目外，凭营业执照依法自主开展经营活动）","com_industry":"批发业","com_estiblish_time":"1690819200","com_from_time":"1690819200","com_to_time":"0","com_cancel_date":"0","com_social_staff":"0","com_province":"江苏省","com_city":"常州市","com_distric":"新北区","com_pct_ids":"12,1211,31365","com_location":"江苏省常州市新北区孟河镇世豪商业广场3幢10号","com_capital":"50万人民币","com_currency":"人民币","com_regnum":"320407000895349","com_staff":"-","com_tags":"存续;小微企业","com_score":"5335","com_etime":"1749613628"}}]},"code":"","runtime":148}
		
		'sl_id',//供应商资源库ID
		'sl_shuihao',//统一社会编码/税号-来自天眼查
		'sl_shuihao_last_time',//最后查税号时间
		'sl_name',//公司名称
		'sl_name_alias',//天眼查补充别名
		'sl_capital',//注册资本
		'sl_type',//公司类型
		'sl_country',//国家
		'sl_province',//省份
		'sl_city',//城市
		'sl_linkman',//联系人
		'sl_staff',//职位
		'sl_zipno',//邮编
		'sl_mb',//手机
		'sl_tel',//电话
		'sl_fax',//传真
		'sl_email',//邮箱
		'sl_website',//网址
		'sl_address',//地址
		'sl_pro_cate',//经营范围
		'sl_pro_brand',//经营的品牌
		'sl_tags',//标签
		'sl_ctime',//创建时间
		'sl_utime',//更新时间
		'sl_ver',//版本ID
		'dv_year',//来源年份
		'dv_date',//来源数据日期
		'dv_title',//来源标题
	  */
	public function getCrmSupper()
	{
		$Params = mvc::$URL_PARAMS;
		$Params['page'] = empty($Params['page'])? 1: (int)$Params['page'];
		$perPage = empty($Params['per'])? 20: (int) $Params['per'];
		$where = '';
		if($Params['utime']) $where .= sprintf(" and sl_utime>='%s'", date('Y-m-d H:i:s', $Params['utime']));
		$arr = [];
		$YpwBase = new YpwBase();
		$table = 'crm_src_supper.supper_list left join crm_src_supper.data_ver on dv_id=sl_ver';
		$fields = [
			'sl_id',//供应商资源库ID
			'sl_shuihao',//统一社会编码/税号-来自天眼查
			'sl_shuihao_last_time',//最后查税号时间
			'sl_name',//公司名称
			'sl_name_alias',//天眼查补充别名
			'sl_capital',//注册资本
			'sl_type',//公司类型
			'sl_country',//国家
			'sl_province',//省份
			'sl_city',//城市
			'sl_linkman',//联系人
			'sl_staff',//职位
			'sl_zipno',//邮编
			'sl_mb',//手机
			'sl_tel',//电话
			'sl_fax',//传真
			'sl_email',//邮箱
			'sl_website',//网址
			'sl_address',//地址
			'sl_pro_cate',//经营范围
			'sl_pro_brand',//经营的品牌
			'sl_tags',//标签
			'sl_ctime',//创建时间
			'sl_utime',//更新时间
			'sl_ver',//版本ID
			'dv_year',//来源年份
			'dv_date',//来源数据日期
			'dv_title',//来源标题
			'sl_picture',//图片
			'sl_description',//公司描述
		];

		$fieldsLink2 = [
			'com_id', //企业ID
			'com_alias',//简称                              
			'com_credit_code',//统一社会信用代码            
			'com_regstatus',//企业状态                        
			'com_name',//公司名称                        
			'com_name_en',//公司名称英文                  
			'com_name_olds',//曾用名                           
			'com_ismicroent',//是否是小微企业 0不是 1是  
			'com_type',//法人类型，1个人 2公司      
			'com_orgtype',//企业类型                        
			'com_bond_num',//股票号                           
			'com_bond_name',//股票名                           
			'com_legal_person',//法人姓名                        
			'com_business',//经营范围                        
			'com_industry',//行业                              
			'com_estiblish_time',//成立日期                        
			'com_from_time',//经营开始时间                  
			'com_to_time',//经营结束时间                  
			'com_cancel_date',//注销日期                  
			'com_social_staff',//参保人数                       
			'com_province',//省                                 
			'com_city',//市                                 
			'com_distric',//区                                         
			'com_pct_ids',//YP省市区逗号分隔                                     
			'com_location',//注册地址                        
			'com_capital',//注册资本                                               
			'com_currency',//注册资本币种 
			'com_regnum',//工商注册号                  
			'com_staff',//人员规模 
			'com_tags',//标签                              
			'com_score',//万分制 企业评分                                         
			'com_etime',//最后更新时间  
		];
		if($Params['cominfo']){
			$fields = array_merge($fields, $fieldsLink2);
			$table .= ' left join company_info on sl_shuihao= com_credit_code';
		}
		$res = $YpwBase->get($table, ['count(distinct(sl_id)) count'], $where, true);
		$arr['total'] = $res['data']['count'];
		$arr['items'] = [];
		if($arr['total'] > 0){
			$res = $YpwBase->get($table, $fields, $where.sprintf(" order by sl_id limit %d, %d", ($Params['page']-1)*$perPage, $perPage));
			foreach($res['data'] as $k=>$v){
				foreach($v as $kk=>$vv){
					if(in_array($kk, $fieldsLink2)){
						$v['cominfo'][$kk] = $vv;
						unset($v[$kk]);
					}
				}
				$arr['items'][] = $v;
			}
		}
		LibFc::ReturnJson(true, $arr);
	}
}