Passport.php 5.03 KB
<?php

namespace Passport;

use WebPlugin\Helpers;
use LibModels\Web\Home\IndexData;
use LibModels\Web\Home\UserData;
use WebPlugin\Images;
use WebPlugin\Captcha;
use WebPlugin\Cache;

/**
 * web登录注册等相关数据构建
 *
 * @name PassportModel
 * @package models
 * @copyright yoho.inc
 * @version 1.0 (2015-12-29 14:38:00)
 * @author xiaowei <xiaowei.gong@yoho.cn>
 */
class PassportModel
{

    const REGISTER_LEFT_BANNER_CODE = 'c479ec90120cae7f96e52922b4917064'; //注册左边的banner
    const BACK_LFFT_BANNER_CODE = '3bbaf502c447a2ddad60879042e286d8'; //找回密码左边的banner
    const SIGNIN_LEFT_BANNER_CODE = 'db350894e01e90eac55cd3a13ad77331'; //登录页左边的banner
    const AUTOUSERINFO_LEFT_BANNER_CODE = 'c62d5da06d843b6ed78d8d27e87fa143'; //完善信息页左边的banner
    const BACK_FIND_SECRET_KEY = '_+@#$%^';

    //默认简单头部(不带登录信息 请登录/注册)
    public static function getSimpleHeader()
    {
        //拼接简单头部
        $radomNum = time();
        $tool = array(
            'favoriteHref' => Helpers::url('/home/favorite?t=' . $radomNum), //我的收藏链接
            'couponHref' => Helpers::url('/home/coupons?t=' . $radomNum), //我的优惠券链接
            'orderHref' => Helpers::url('/home/orders?t=' . $radomNum), //订单中心连接
            'userCenter' => Helpers::url('/home?t=' . $radomNum),
            'helpHref' => Helpers::url('/help'),
        );
        $tool+=array(
            'loginHref' => Helpers::url('/signin.html'), //登录链接,已登录不传
            'registerHref' => Helpers::url('/reg.html'), //注册链接,已登录不传
        );
        $simpleHeader = array(
            'logo' => array(
                'img' => 'http://static.yohobuy.com/newheader/img/logo_e.png',
                'url' => SITE_MAIN
            ),
            'tool' => $tool,
            'simpleHeader' => true,
        );
        return $simpleHeader;
    }

    /**
     * 获取左侧banner
     *
     * @param string $code
     * @return array
     */
    public static function getLeftBanner($code)
    {
        $ret = array('img' => '', 'url' => '');
        $resource = IndexData::getResourceData($code);
        if (isset($resource['data'][0])) {
            if ($resource['data'][0]['template_name'] == 'single_image') {
                $val = current($resource['data'][0]['data']);
            }
            else if ($resource['data'][0]['template_name'] == 'single_name_image') {
                $val = $resource['data'][0]['data'];
            }
            $ret['img'] = Images::getImageUrl($val['src'], 252, 190);
            $ret['url'] = $val['url'];
        }
        else {
            $ret['img'] = 'http://img12.static.yhbimg.com/yhb-img01/2015/12/01/07/020a0b6e7ff908d0c2bc4045b4fef42b9f.png?imageView/2/w/252/h/190';
            $ret['url'] = '';
        }
        return $ret;
    }

    /**
     * 校验验证码
     *
     * @param string $verifyCode
     * @return boolean
     */
    public static function verifyCode($verifyCode)
    {
        $verifyCode = strtolower($verifyCode);
        $ret = true;
        //检测验证码不正确
        if ($verifyCode != strtolower(Captcha::getFromSession('passport_istration'))) {
            $ret = false;
        }
        return $ret;
    }

    /**
     * 根据手机号获取用户信息
     *
     * @param string $area
     * @param string $mobile
     * @return array
     */
    public static function getUserInfoByMobile($area, $mobile)
    {
        $ret = array();
        $data = UserData::getUserInfoByMobile($area, $mobile);
        if ($data['code'] == 200) {
            if (!empty($data['data'])) {
                $ret = current($data['data']);
            }
        }
        return $ret;
    }

    /**
     * 根据邮箱获取用户信息
     * 
     * @param string $email
     * @return array
     */
    public static function getUserInfoByEmail($email)
    {
        $ret = array();
        $data = UserData::getUserInfoByEmail($email);
        if ($data['code'] == 200) {
            if (!empty($data['data'])) {
                $ret = current($data['data']);
            }
        }
        return $ret;
    }

    /*
     * 重写递增计数 cache方法
     * $key cache-key,递增存放变量
     * $offset 递增偏移量
     * $initValue 初始化值
     * $expiry 缓存时间
     */

    public static function increment($key, $timeKey, $offset = 1, $initValue = 0, $expire = 1800)
    {
        //有效期之外清除key
        if (!Cache::get($timeKey) && Cache::get($key)) {
            Cache::delete($key);
        }
        //初始化计时
        if (!Cache::get($timeKey) && !Cache::get($key)) {
            Cache::set($timeKey, TRUE, $expire);
            Cache::set($key, $initValue);
        }
        //未过期则递增
        $cacheValue = intval(Cache::get($key)) + $offset;
        Cache::set($key, $cacheValue);
    }

}