<?php
/**
*MBSTR
*/
class mbstrAction extends baseAction
{
	/**
	  * @method 发送短信
	  * @http  POST
	  * @param  token              string [必填] 调用接口凭证 (post|get)
	  * @param  sms_type           enum   [必填] 发送速度：'普通','紧急','延时'
	  * @param  sms_from           enum   [必填] 来源：'B2C','主站','客户网','CRM'
	  * @param  sms_to_mobile      string [必填] 接收人手机号码，多个逗号分隔
	  * @param  sms_text           string [必填] 旧平台： 验证码为724847（手机绑定功能），请在页面中输入以完成验证。
												 阿里：{"code":"724847","act":"手机绑定功能"}
	  * @param  sms_style          string [可选] bind|unbind|password
	  * @param  sms_expire_time    int    [可选] 过期时间戳，超过此时间即使失败也不再发送
	  * @param  again              bool   [可选] 是否为重发 flse|true， 如果是重发会优先阿里平台
	  * @author soul
	  * @copyright 2017/4/13
	  * @return 
	  {"status":true,"data":{"sms_id":"32","sms_status":"ok","sms_error_msg":"","sms_last_time":1492165666},"code":0}
	  {"status":false,"data":'失败原因',"code":0}
	  */
	function sendSms()
	{
		$MustArr = ['sms_type', 'sms_from', 'sms_to_mobile', 'sms_text'];
		foreach($MustArr as $V)
		{
			if(!isset($_POST[$V]))
			{
				LibFc::ReturnJson(false, $V.'参数必填');
				exit;
			}
		}
		$MobileArr = [];
		if(preg_match_all('/(1\d{10})\S?/', $_POST['sms_to_mobile'], $Match))
		{
			$MobileArr = $Match[1];
		}
		if(empty($MobileArr))
		{
			LibFc::ReturnJson(false, '手机号码不正确');
			exit;
		}

		$SendBase = new SendBase();

		$DataArr = [
			'sms_type'=>trim($_POST['sms_type']),	
			'sms_from'=>trim($_POST['sms_from']),
			'sms_to_mobile'=>implode(',', $MobileArr),
			'sms_text'=>$_POST['sms_text'],
			'sms_add_time'=>time(),
			'again'=>$_POST['again']
		];
		$DataArr['sms_sign'] = empty($_POST['sms_sign'])? 'BMTSR': trim($_POST['sms_sign']);
		if(isset($_POST['sms_expire_time'])) $DataArr['sms_expire_time'] = (int) $_POST['sms_expire_time'];
		if(isset($_POST['sms_style'])) $DataArr['sms_style'] = $_POST['sms_style'];

		$Res = $SendBase->GetEnum('sc_sms', 'sms_type');
		if(!in_array($DataArr['sms_type'], $Res['data']))
		{
			LibFc::ReturnJson(false, '提供的sms_type参数值不存在');
			exit;
		}
		
		$Res = $SendBase->GetEnum('sc_sms', 'sms_from');
		if(!in_array($DataArr['sms_from'], $Res['data']))
		{
			LibFc::ReturnJson(false, '提供的sms_from参数值不存在');
			exit;
		}
		
		$SendSms = new SendSms();
		$Res = $SendSms->send($DataArr);
		echo json_encode($Res);
	}
	
	/**
	  * @method get  RCA通过品牌ID获取所有车型
	  * @http  GET
	  * @param  token              string [必填] 调用接口凭证 (post|get)
	  * @param  brandId            string [必填] 品牌ID  例如大众
	  * @author soul
	  * @copyright 2017/10/31
	  * @return 
	    'b_id', 'b_name', 品牌
		'm_id','m_name',生产商
		'm1_id','m1_name', 一级车型
		'm2_id','m2_name', 二级车型
		'm2_start_year','m2_end_year',二级车型年份
		'm3_id','m3_name', 末级车型
		'm3_start_year','m3_end_year',末级车型年份
		'm3_kw',功率
		'm3_cc',排量
		'm3_engine'发动机,
		'pl_transmission', 变速器
		'pl_fuel', 燃料
			'pl_body', 车身形式
		'pl_front_brake',前制动器
		'pl_rear_brake',后制动器
		'pl_parking_brake', 驻车制动
		'pl_drive	驱动方式
	  {"status":true,"data": ["6491"=>{"m3_id":"6491", "b_id":"63", .....},.... ],"code":""}
	  {"status":false,"data":'失败原因',"code":''}
	  */
	public function getModelByBrandId()
	{
		$modelArr = [];
		$brandId = (int) $_GET['brandId'];
		
		if(!in_array($brandId, mvc::$cfg['RQTOKEN']['brandIds']))
		{
			LibFc::ReturnJson(false, '无权限查询此品牌车型'); exit;
		}

		$langId = 1;
		if($brandId > 0)
		{
			$YpcBase = new YpcBase();
			$YpcModel = new YpcModel();
			$res = $YpcModel->getModel(3, ['*'], sprintf(" AND m1_b_id=%d", $brandId));
			if(!empty($res['data']))
			{
				$labelArr = ['m3_transmission'=>'pl_transmission', 'm3_fuel'=>'pl_fuel', 'm3_body'=>'pl_body', 'm3_front_brake'=>'pl_front_brake', 'm3_rear_brake'=>'pl_rear_brake', 'm3_parking_brake'=>'pl_parking_brake', 'm3_drive'=>'pl_drive'];
				foreach($res['data'] as $v) 
				{
					foreach($labelArr as $KK=>$vv)
					{
						$v[$vv] = $v[$KK]? $v[$KK]: '';
					}
					$modelArr[$v['m3_id']] = $v;
				}
				$returnFiledArr = ['b_id', 'b_name', 'm_id','m_name','m1_id','m1_name','m2_id','m2_name','m2_start_year','m2_end_year','m3_id','m3_name','m3_start_year','m3_end_year','m3_kw','m3_cc','m3_engine'];
				foreach($modelArr as $K=>$V)
				{
					foreach($V as $KK=>$VV)
					{
						if(!in_array($KK, $returnFiledArr) && !in_array($KK, $labelArr))
						{
							unset($V[$KK]);
						}
					}
					$modelArr[$K] = $V;
				}
			}
		}
		$arr = [];
		foreach($modelArr as $v)
		{
			$arr[] = $v;
		}
		LibFc::ReturnJson(true, $arr);
	}


	/**
	  * @method get VIN解码 
	  * @http  GET
	  * @param  token              string [必填] 调用接口凭证 (post|get)
	  * @param  vin                string [必填] 17位车架号
	  * @author soul
	  * @copyright 2017/10/31
	  * @return 末级车型ID
	  {"status":true,"data": [6491,63,.... ],"code":""}
	  {"status":false,"data":'失败原因',"code":''}
	  */
	public function decodeVin()
	{
		$Params = mvc::$URL_PARAMS;
		$vin = LibFc::FormatVin($Params['vin']);
		$YpcVin = new YpcVin();
		$res = $YpcVin->decodeVin($vin, 'm3ids');
		$arr = $res['data']['model'];
		$YpcVin->tongjiVin($vin, $res['data']['from']);
		LibFc::ReturnJson(true, $arr);
	}

	/**
	  * @method 获取车型的ETK代码
	  * @http  post
	  * @param  token              string [必填] 调用接口凭证 (post|get)
	  * @param  type               string [必填] 类型 model || code
	  * @param  values             array [必填] 值
	  * @author soul
	  * @copyright 2017/10/31
	  * @return 末级车型ID
	  {"status":true,"data": [{"mec_m3_id":111, "mec_code":"112.312"}....],"code":""}
	  {"status":false,"data":'失败原因',"code":''}
	  */
	public function getModelCode()
    {
		$type = $_POST['type'];
		$values = $_POST['values'];
        if (empty($type) || empty($values) || !is_array($values)) {
            return LibFc::ReturnData(false, '传参错误');
        }
		$arr = [];
		$YpcBase = new YpcBase();
        switch ($type)
        {
            case 'model':
				$ids = [];
				foreach($values as $val)
				{
					$ids[] = (int) $val;
				}
				$res = $YpcBase->get('yp_model3_etk_code', ['mec_m3_id', 'mec_code'], sprintf('and mec_m3_id in (%s)', implode(',', $ids)));
				$arr = $res['data'];
            break;
			 case 'code':
				$ids = [];
				foreach($values as $val)
				{
					$ids[] = sprintf("'%s'", LibFc::Escape($val));
				}
				$res = $YpcBase->get('yp_model3_etk_code', ['mec_m3_id', 'mec_code'], sprintf('and mec_code in (%s)', implode(',', $ids)));
				$arr = $res['data'];
            break;
        }
		LibFc::ReturnJson(true, $arr);
    }

}