<?php
namespace app\modules\logic\services;
use app\modules\common\Helper;
use app\modules\logic\model\UsersModel;
use app\modules\logic\model\UsersShopInfoModel;
use app\modules\logic\services\AssignService;
use Yii;
use yii\db\Query;
/**
 * 公用服务
 */
class CommonService {
	/**
	 * [verifyMobile 校验账号是否存在]
	 * @author JOHN.W
	 * @version [1.0]
	 * @return  [type]          [description]
	 */
	public static function verifyUsername($username = '',$user_id = 0){
		$Users = new UsersModel();
		$where = ['cols'=>['user_id'],'username'=>$username];
		if(!empty($user_id)){
			$where['scope']['neq'] = ['user_id'=>$user_id];
		}
		$res = $Users->getWidgetRow($where);
		if($res){
			return true;
		}else{
			return false;
		}
	}
	/**
	 * [verifyMobile 校验手机号是否存在]
	 * @author JOHN.W
	 * @version [1.0]
	 * @return  [type]          [description]
	 */
	public static function verifyMobile($username = '',$user_id = 0){
		$Users = new UsersModel();
		$where = ['cols'=>['user_id'],'mobile'=>$username];
		if(!empty($user_id)){
			$where['scope']['neq'] = ['user_id'=>$user_id];
		}
		$res = $Users->getWidgetRow($where);
		if($res){
			return true;
		}else{
			return false;
		}
	}
	/**
	 * [formatUserinfo 格式化门店/技师详情]
	 * @author JOHN.W
	 * @version [1.0]
	 * @return  [type]          [description]
	 */
	public static function formatUserInfo($row = []){
		if(isset($row['avatar'])){
			$row['avatar_show'] = Helper::getImageUrl($row['avatar']);
		}
		if(isset($row['positive_card'])){
			$row['positive_card_show'] = Helper::getImageUrl($row['positive_card']);
		}
		if(isset($row['counter_card'])){
			$row['counter_card_show'] = Helper::getImageUrl($row['counter_card']);
		}
		if(isset($row['license'])){
			$row['license_show'] = Helper::getImageUrl($row['license']);
		}
		if(isset($row['door_pic'])){
			$row['door_pic_show'] = Helper::getImageUrl($row['door_pic']);
		}
		if(!empty($row['yw_id'])){
			$row['yw_id_show'] = Helper::getProNameById($row['yw_id']);
		}
		if(!empty($row['pro_extra'])){
			$row['pro_extra_show'] = Helper::getProNameById($row['pro_extra']);
		}
		if(!empty($row['merch_type_id'])){
			$row['merch_type_id_show'] = Helper::getMerchNameById($row['merch_type_id']);
		}
		if(isset($row['verify_status'])){
			$row['verify_status_show'] = Helper::getVerifyStatusName($row['verify_status']);
		}
		if(isset($row['work_nature'])){
			$row['work_nature_show'] = Helper::getWorkNatureName($row['work_nature']);
		}
		
		return $row;
	}

	/**
	 * @name   部分隐藏
	 * @desc   接口描述
	 * @author john.chuan
	 * @param  [type]          $type [description]
	 * @param  string          $str  [description]
	 * @return [type]                [description]
	 */
	public static function partHide($type, $str = '') {
		if (empty($str)) {
			return '';
		}

		$ret = '';
		switch ($type) {
		case 'vin':
			$ret = substr_replace($str, '******', 9, -2);
			break;
		case 'borrower_name':
			$strlen = mb_strlen($str, 'utf-8');
			$firstStr = mb_substr($str, -1, 1, 'utf-8');
			$ret = str_repeat("*", $strlen - 1) . $firstStr;
			break;
		case 'borrower_id':
			$ret = substr_replace($str, '**********', 4, -4);
			break;
		case 'borrower_tel':
			$ret = substr_replace($str, '****', 3, -4);
			break;
		default:
			$ret = NULL;
		}
		return $ret;
	}
	/**
	 * @name   识别版本号2.99
	 * @author john.chuan
	 * @return [type]          [description]
	 */
	public static function version() {
		return version_compare(Yii::$app->frontParam->getData('version'), '2.99', '>=');
	}
	
	 /**
     * /
     * @param  integer $user_id   [获取当前位置到门店的距离]
     * @param  [type]  $longitude [description]
     * @param  [type]  $latitude  [description]
     * @return [type]             [description]
     */
    public static  function getShopDistance($user_id = 0,$longitude,$latitude){
        if(empty($user_id) || empty($longitude) || empty($latitude)){
            return '-';
        }
        $shop_place = AssignService::getShopPlace($user_id);
        $distance = Helper::calcDistance($shop_place['latitude'],$shop_place['longitude'],$latitude,$longitude);
        $km = round($distance/1000,2);
        return ($km<5)?'<5km':$km.'km';
    }
    /**
     * [getShopAddress 获取门店地址]
     * @param  integer $user_id [description]
     * @return [type]           [description]
     */
    public static function getShopAddress($user_id = 0){
    	if(empty($user_id)){
            return '-';
        }
        $UsersShopInfo = new UsersShopInfoModel();
        $row = $UsersShopInfo->getWidgetRow(['cols'=>['name','address'],'user_id'=>$user_id]);
        return (isset($row))?$row:[]; 
    }
}