Authored by wangqing

Merge branch 'develop' of http://git.dev.yoho.cn/web/yohobuy into develop

... ... @@ -77,17 +77,21 @@ class HelperSearch
unset(self::$params['page']);
self::$filter = isset($data['product']['filter']) ? $data['product']['filter'] : array();
//产品列表
$result['goods'] = isset($data['product']['product_list']) ? self::getProductList($data['product']['product_list'], $options['imgSize']) : array();
$result['goods'] = isset($data['product']['product_list']) ? self::getProductList($data['product']['product_list'], $options) : array();
//总页数
$result['page_total'] = isset($data['product']['page_total']) ? $data['product']['page_total'] : '';
self::$pageTotal = $result['page_total'];
self::$total = isset($data['product']['total']) ? $data['product']['total'] : 0;
if (isset($data['product']['page_total'])) {
$result['page_total'] = $data['product']['page_total'];
self::$pageTotal = $result['page_total'];
}
if (isset($data['product']['total'])) {
self::$total = $data['product']['total'];
}
//当前页
self::$page = $result['page'] = isset($data['product']['page']) ? $data['product']['page'] : '';
//筛选条件
$result['filters'] = isset($data['product']['filter']) ? self::filter() : array();
//排序方式、显示数量等其他选项
$result['opts'] = isset($data['product']['filter']) ? self::getOpts() : array();
$result['opts'] = self::getOpts();
//下一页
if (isset($data['product']['page_total'])) {
$result['hasNextPage'] = self::next($data['product']['page_total']);
... ... @@ -148,7 +152,7 @@ class HelperSearch
* @author sefon 2015-12-21 17:24:04
* @return array
*/
public static function getProductList($product, $imgSize)
public static function getProductList($product, $options)
{
$params = self::$params;
$goods = array();
... ... @@ -168,6 +172,15 @@ class HelperSearch
//再到着
//年终大促
// 年中大促
if ($options['controller'] == 'List' && $options['action'] == 'new') {
$isNew = false;
$isSale = false;
//TODO再到着不显示
}
if ($options['controller'] == 'List' && $options['action'] == 'sale') {
$isNew = false;
$isSale = false;
}
$gender = 0;
if (isset(self::$options['gender'])) {
$genderArr = explode(',', self::$options['gender']);
... ... @@ -190,7 +203,7 @@ class HelperSearch
}
}
if (!empty($val['default_images'])) {
$val['default_images'] = Images::getImageUrl($val['default_images'],$imgSize[0],$imgSize[1]);
$val['default_images'] = Images::getImageUrl($val['default_images'],$options['imgSize'][0],$options['imgSize'][1]);
}
//搜索关键字高亮
if (isset(self::$params['query']) && !empty(self::$params['query']) && preg_match("/".self::$params['query']."/i", $val['product_name'], $match)) {
... ... @@ -623,7 +636,7 @@ class HelperSearch
//设置已选中价格
if (!empty($priceId)) {
$price = explode(',' ,$priceId);
$customName = self::$params['price'] == '2000,99999' ? '¥2000以上' : '¥' . (int)$price[0] . '-' . (int)$price[1];
$customName = isset($price[1]) && $price[1] == 99999 ? '¥'.$price[0].'以上' : '¥' . intval($price[0]-1) . '-' . intval($price[1]);
$name = isset($filter['price'][$priceId]) ? $filter['price'][$priceId] : $customName;
self::$selected['price'] = array(
'name' => $name,
... ...
... ... @@ -623,6 +623,22 @@ handlebars.registerHelper('timestamp', function() {
return new Date().getTime();
});
/**
* 头像
* @param {[type]} v1 [description]
* @param {[type]} options) { if (v1 [description]
* @return {[type]} [description]
*/
handlebars.registerHelper('headerimg', function(headerimg) {
if (headerimg === '') {
return 'http://img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif' +
'?imageView/2/w/100/h/100';
} else {
return headerimg;
}
});
/**
* 判断等级为3的helper
* @param {[type]} v1 [description]
* @param {[type]} options) { if (v1 [description]
... ... @@ -1542,7 +1558,7 @@ function actionGetBannerAndNotice() {
if (url.indexOf('kids') !== -1) {
code = bannerMap[INDEXKIDS];
}
if (url.indexOf('woman') !== -1) {
if (url.indexOf('woman') !== -1 || url.indexOf('girls') !== -1) {
code = bannerMap[INDEXWOMAN];
}
if (url.indexOf('lifestyle') !== -1) {
... ... @@ -1808,8 +1824,7 @@ function init() {
actionCover(); //初次登录弹框
actionAddKeyWords(); //增加关键字
}
init();
init();
});
define("js/simple-header", ["jquery"], function(require, exports, module){
var $ = require("jquery");
... ... @@ -2577,18 +2592,14 @@ $goodInfoMain.on('click', '.col-btn', function() {
if (res.code === 200) {
$this.toggleClass('coled');
} else if (res.code === 403) {
location.href = '/signin.html?refer=' + encodeURIComponent(location.href);
location.href = 'http://www.yohobuy.com/signin.html?refer=' + encodeURIComponent(location.href);
}
});
});
// 左侧导航
$productListNav.click(function(event) {
var $this = $(this);
if (!$this.hasClass('product-list-nav')) {
return;
}
$productListNav.find('h3').click(function(event) {
var $this = $(this).closest('.product-list-nav');
if ($this.hasClass('active')) {
... ... @@ -2746,7 +2757,7 @@ $('#brand-favor').on('click', function() {
$this.find('i').removeClass('coled');
}
} else if (res.code === 403) {
location.href = '/signin.html?refer=' + encodeURIComponent(location.href);
location.href = 'http://www.yohobuy.com/signin.html?refer=' + encodeURIComponent(location.href);
}
});
});
... ...
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
... ... @@ -25,7 +25,7 @@ $('#brand-favor').on('click', function() {
$this.find('i').removeClass('coled');
}
} else if (res.code === 403) {
location.href = '/signin.html?refer=' + encodeURIComponent(location.href);
location.href = 'http://www.yohobuy.com/signin.html?refer=' + encodeURIComponent(location.href);
}
});
});
... ...
... ... @@ -180,18 +180,14 @@ $goodInfoMain.on('click', '.col-btn', function() {
if (res.code === 200) {
$this.toggleClass('coled');
} else if (res.code === 403) {
location.href = '/signin.html?refer=' + encodeURIComponent(location.href);
location.href = 'http://www.yohobuy.com/signin.html?refer=' + encodeURIComponent(location.href);
}
});
});
// 左侧导航
$productListNav.click(function(event) {
var $this = $(this);
if (!$this.hasClass('product-list-nav')) {
return;
}
$productListNav.find('h3').click(function(event) {
var $this = $(this).closest('.product-list-nav');
if ($this.hasClass('active')) {
... ...
... ... @@ -31,6 +31,7 @@ class SearchModel
/* 过滤请求参数 */
$condition = filter_input_array(INPUT_GET, array(
'query' => FILTER_SANITIZE_STRING,
'keyword' => FILTER_SANITIZE_STRING,
'brand' => FILTER_SANITIZE_STRING,
'sort' => FILTER_VALIDATE_INT,
'msort' => FILTER_SANITIZE_STRING,
... ... @@ -49,6 +50,10 @@ class SearchModel
'viewNum' => FILTER_VALIDATE_INT,
'rowNum' => FILTER_VALIDATE_INT,
'page' => FILTER_VALIDATE_INT), false);
//keyword=>query关键字
if (isset($condition['keyword']) && !empty($condition['keyword'])) {
$condition['query'] = rawurldecode($condition['keyword']);
}
//关键字
if (isset($condition['query']) && !empty($condition['query'])) {
$condition['query'] = rawurldecode($condition['query']);
... ...
... ... @@ -87,18 +87,14 @@ class AutosignController extends WebAction
}
//判定是否需要绑定手机号
if (isset($result['data']['mobile']) && $result['data']['mobile'] == '') {
$token = Helpers::makeToken($result['data']['uid']);
$this->setSession('_TOKEN', $token);
$this->setSession('_LOGIN_UID', $result['data']['uid']);
$this->setCookie('_TOKEN', $token);
$fillHerf = rawurlencode(Helpers::url('/passport/autouserinfo/userinfo', array('openId' => $userId, 'sourceType' => 'alipay', 'nickname' => $realName)));
$this->go(Helpers::syncUserSession($result['data']['uid'], $fillHerf));
if (isset($result['data']['is_bind']) && $result['data']['is_bind'] == 'N') {
$fillHerf = Helpers::url('/passport/thirdlogin/index', array('openId' => $userId, 'sourceType' => 'alipay', 'nickname' => $realName));
$this->go($fillHerf);
}
$refer = $this->getCookie('refer');
if (empty($refer)) {
$refer = SITE_MAIN . '/?go=1';
$refer = SITE_MAIN;
}
else {
$refer = rawurldecode($refer);
... ... @@ -174,18 +170,14 @@ class AutosignController extends WebAction
}
//判定是否需要绑定手机号
if (isset($result['data']['mobile']) && $result['data']['mobile'] == '') {
$token = Helpers::makeToken($result['data']['uid']);
$this->setSession('_TOKEN', $token);
$this->setSession('_LOGIN_UID', $result['data']['uid']);
$this->setCookie('_TOKEN', $token);
$fillHerf = rawurlencode(Helpers::url('/passport/autouserinfo/userinfo', array('openId' => $access['uid'], 'sourceType' => 'sina', 'nickname' => $partnerInfo['screen_name'])));
$this->go(Helpers::syncUserSession($result['data']['uid'], $fillHerf));
if (isset($result['data']['is_bind']) && $result['data']['is_bind'] == 'N') {
$fillHerf = Helpers::url('/passport/thirdlogin/index', array('openId' => $access['uid'], 'sourceType' => 'sina', 'nickname' => $partnerInfo['screen_name']));
$this->go($fillHerf);
}
$refer = $this->getCookie('refer');
if (empty($refer)) {
$refer = SITE_MAIN . '/?go=1';
$refer = SITE_MAIN;
}
else {
$refer = rawurldecode($refer);
... ... @@ -218,6 +210,10 @@ class AutosignController extends WebAction
}
//判定是否需要绑定手机号
if (isset($result['data']['is_bind']) && $result['data']['is_bind'] == 'N') {
$fillHerf = Helpers::url('/passport/thirdlogin/index', array('openId' => $access['uid'], 'sourceType' => 'sina', 'nickname' => $partnerInfo['screen_name']));
$this->go($fillHerf);
}
if (isset($result['data']['mobile']) && $result['data']['mobile'] == '') {
$token = Helpers::makeToken($result['data']['uid']);
$this->setSession('_TOKEN', $token);
... ... @@ -229,7 +225,7 @@ class AutosignController extends WebAction
$refer = $this->getCookie('refer');
if (empty($refer)) {
$refer = SITE_MAIN . '/?go=1';
$refer = SITE_MAIN;
}
else {
$refer = rawurldecode($refer);
... ... @@ -264,18 +260,13 @@ class AutosignController extends WebAction
}
//判定是否需要绑定手机号
if (isset($result['data']['mobile']) && $result['data']['mobile'] == '') {
$token = Helpers::makeToken($result['data']['uid']);
$this->setSession('_TOKEN', $token);
$this->setSession('_LOGIN_UID', $result['data']['uid']);
$this->setCookie('_TOKEN', $token);
$fillHerf = rawurlencode(Helpers::url('/passport/autouserinfo/userinfo', array('openId' => $access['douban_user_id'], 'sourceType' => 'douban', 'nickname' => $partnerInfo['name'])));
$this->go(Helpers::syncUserSession($result['data']['uid'], $fillHerf));
if (isset($result['data']['is_bind']) && $result['data']['is_bind'] == 'N') {
$fillHerf = Helpers::url('/passport/thirdlogin/index', array('openId' => $access['douban_user_id'], 'sourceType' => 'douban', 'nickname' => $partnerInfo['name']));
$this->go($fillHerf);
}
$refer = $this->getCookie('refer');
if (empty($refer)) {
$refer = SITE_MAIN . '/?go=1';
$refer = SITE_MAIN;
}
else {
$refer = rawurldecode($refer);
... ... @@ -311,18 +302,14 @@ class AutosignController extends WebAction
}
//判定是否需要绑定手机号
if (isset($result['data']['mobile']) && $result['data']['mobile'] == '') {
$token = Helpers::makeToken($result['data']['uid']);
$this->setSession('_TOKEN', $token);
$this->setSession('_LOGIN_UID', $result['data']['uid']);
$this->setCookie('_TOKEN', $token);
$fillHerf = rawurlencode(Helpers::url('/passport/autouserinfo/userinfo', array('openId' => $partnerInfo['openid'], 'sourceType' => 'wechat', 'nickname' => $partnerInfo['nickname'])));
$this->go(Helpers::syncUserSession($result['data']['uid'], $fillHerf));
if (isset($result['data']['is_bind']) && $result['data']['is_bind'] == 'N') {
$fillHerf = Helpers::url('/passport/thirdlogin/index', array('openId' => $partnerInfo['openid'], 'sourceType' => 'wechat', 'nickname' => $partnerInfo['nickname']));
$this->go($fillHerf);
}
$refer = $this->getCookie('refer');
if (empty($refer)) {
$refer = SITE_MAIN . '/?go=1';
$refer = SITE_MAIN;
}
else {
$refer = rawurldecode($refer);
... ...
... ... @@ -3,6 +3,8 @@
use Action\WebAction;
use LibModels\Web\Passport\RegData;
use LibModels\Wap\Passport\BindData;
use LibModels\Web\Home\UserData;
use WebPlugin\Images;
use Passport\PassportModel as PassportModel;
use WebPlugin\Helpers;
... ... @@ -10,7 +12,7 @@ class AutouserinfoController extends WebAction
{
/**
* 第三方登录完善个人信息
* 第三方登录完善个人信息(旧)
* 绑定手机号
*/
public function indexAction()
... ... @@ -29,16 +31,6 @@ class AutouserinfoController extends WebAction
$refer = rawurldecode($refer);
}
//获取用户
$uid = $this->getUid(true);
if (!$uid) {
$isLogin = false;
$username = '';
}
else {
$isLogin = true;
$username = $this->_uname;
}
$simpleHeader = PassportModel::getSimpleHeader();
$cover = PassportModel::getLeftBanner(PassportModel::AUTOUSERINFO_LEFT_BANNER_CODE);
... ... @@ -66,12 +58,10 @@ class AutouserinfoController extends WebAction
}
/**
* 完善信息页面
* 完善信息页面(中间跳转页-旧)
*/
public function userInfoAction()
{
//获取用户
$uid = $this->getUid(false);
$nickname = $this->get('nickname');
$openId = $this->get('openId');
$sourceType = $this->get('sourceType');
... ... @@ -94,6 +84,8 @@ class AutouserinfoController extends WebAction
/**
* 绑定前手机号校验
* 若已注册,则查询用户头像,昵称信息
*
*/
public function bindCheckAction()
{
... ... @@ -105,22 +97,34 @@ class AutouserinfoController extends WebAction
break;
}
$phoneNum = trim($this->post('mobile'));
$mobile = trim($this->post('mobile'));
$openId = trim($this->post('openId'));
$areaCode = trim($this->post('area', '86'));
$area = trim($this->post('area', '86'));
$sourceType = trim($this->post('sourceType'));
if (!is_numeric($phoneNum) || !$openId || !$areaCode || !$sourceType) {
if (!is_numeric($mobile) || !$openId || !$area || !$sourceType) {
break;
}
$res = BindData::bindCheck($phoneNum, $openId, $sourceType, $areaCode);
$res = BindData::bindCheck($mobile, $openId, $sourceType, $area);
if (!isset($res['code'])) {
break;
}
//未注册 未绑定
if ($res['code'] == 200) {
$data = array('code' => $res['code'], 'message' => $res['message'], 'data' => array('isReg' => $res['data']['is_register']));
$next = Helpers::url('/thirdlogin/index', array(
'openId' => $openId,
'sourceType' => $sourceType,
'area' => $area,
'mobile' => $mobile,
));
$data = array('code' => $res['code'], 'message' => $res['message'], 'data' => array('next' => $next));
}
//506 - 已注册 未绑定 / 505 - 已注册 已绑定
elseif ($res['code'] == 506 || $res['code'] == 505) {
$user = self::getUserInfo($area, $mobile);
$data = array('code' => $res['code'], 'message' => $res['message'], 'data' => array('user' => $user));
}
else {
$data = array('code' => $res['code'], 'message' => $res['message'], 'data' => isset($res['data']) ? $res['data'] : '');
... ... @@ -131,6 +135,20 @@ class AutouserinfoController extends WebAction
$this->echoJson($data);
}
public static function getUserInfo($area, $mobile)
{
$userInfo = UserData::getUserInfoByMobile($area, $mobile);
$user = array('username' => '', 'headImg' => '');
$userTmp = current($userInfo['data']);
if ($userTmp) {
$user = array(
'username' => $userTmp['profile_name'],
'headImg' => (!empty($userTmp['head_ico'])) ? Images::getImageUrl($userTmp['head_ico'], 100, 100, 2, 'headimg') : '',
);
}
return $user;
}
/**
* 发送验证码
*/
... ... @@ -146,8 +164,6 @@ class AutouserinfoController extends WebAction
$phoneNum = trim($this->post('mobile'));
$areaCode = trim($this->post('area'));
$verifyCode = trim($this->post('verifyCode'));
//校验手机号格式
if (!is_numeric($phoneNum) || !is_numeric($areaCode)) {
$data['code'] = 400;
... ... @@ -155,13 +171,6 @@ class AutouserinfoController extends WebAction
break;
}
//检测验证码不正确
if (!PassportModel::verifyCode($verifyCode)) {
$data['code'] = 400;
$data['message'] = '图形验证码不正确';
break;
}
$data = BindData::sendBindMsg($areaCode, $phoneNum);
if (!isset($data['code'])) {
break;
... ... @@ -172,32 +181,6 @@ class AutouserinfoController extends WebAction
$this->echoJson($data);
}
/*
* 校验图形验证码
*/
public function checkPicCodeAction()
{
$data = array('code' => 400, 'message' => '', 'data' => '');
do {
/* 判断是不是AJAX请求 */
if (!$this->isAjax()) {
break;
}
$verifyCode = trim($this->post('verifyCode'));
$picFlag = PassportModel::verifyCode($verifyCode);
if ($picFlag) {
$data = array('code' => 200, 'message' => '验证码正确', 'data' => '');
}
else {
$data = array('code' => 400, 'message' => '验证码错误', 'data' => '');
}
}
while (false);
$this->echoJson($data);
}
/**
* 校验短信验证码
*/
... ... @@ -249,8 +232,6 @@ class AutouserinfoController extends WebAction
$openId = trim($this->post('openId'));
$sourceType = trim($this->post('sourceType'));
$code = trim($this->post('code')); //短信验证码
$verifyCode = trim($this->post('verifyCode')); //图形验证码
// $nickname = trim($this->post('nickname'));//nickname不同步信息
$password = trim($this->post('password'));
$password = empty($password) ? '' : $password;
... ... @@ -260,13 +241,6 @@ class AutouserinfoController extends WebAction
$data['message'] = '手机号码格式不正确';
break;
}
//校验图形验证码
$picFlag = PassportModel::verifyCode($verifyCode);
if (!$picFlag) {
$data['code'] = 400;
$data['message'] = '图形验证码不正确';
break;
}
//校验手机验证码
$bindMsgFlag = BindData::checkBindCode($areaCode, $phoneNum, $code);
if (isset($bindMsgFlag['code']) && $bindMsgFlag['code'] != 200) {
... ...
... ... @@ -8,24 +8,14 @@ class ThirdloginController extends WebAction
{
/**
* 第三方联合登录手机绑定流程页
* 第三方联合登录手机绑定流程页1
*/
public function indexAction()
{
$this->setTitle('联合登录补全信息');
// $nickname = $this->get('nickname');
$openId = trim($this->get('openId'));
$sourceType = trim($this->get('sourceType'));
//登录后跳转页面
$refer = $this->getCookie('refer');
if (empty($refer)) {
$refer = SITE_MAIN;
}
else {
$refer = rawurldecode($refer);
}
$simpleHeader = PassportModel::getSimpleHeader();
//整合
... ... @@ -40,11 +30,43 @@ class ThirdloginController extends WebAction
$this->_view->display('index', $data);
}
/*
* 首次登录绑定流程-新会员
*/
public function noregistAction()
{
$mobile = trim($this->post('mobile'));
$data = array('mobile' => $mobile);
$sourceType = trim($this->post('sourceType'));
$openId = trim($this->post('openId'));
$area = trim($this->post('area'));
$simpleHeader = PassportModel::getSimpleHeader();
$data = array(
'thirdLogin' => true,
'simpleHeader' => $simpleHeader,
'mobile' => $mobile,
'sourceType' => $sourceType,
'openId' => $openId,
'area' => $area
);
$this->_view->display('noregist', $data);
}
/*
* 绑定成功
*
*/
public function bindSuccessAction()
{
$simpleHeader = PassportModel::getSimpleHeader();
$data = array(
'thirdLogin' => true,
'simpleHeader' => $simpleHeader,
'goShopping' => SITE_MAIN,
);
$this->_view->display(' bindsuccess', $data);
}
}
... ...
... ... @@ -56,4 +56,35 @@ class SearchController extends WebAction
$this->echoJson($size);
}
}
/**
* 搜索错误页
*/
public function errorAction()
{
$keyword = $this->get('query');
$data = array(
//初始化js
'searchListPage' => true,
'search' => array(
'keyWord' => $keyword,
'searchActionUrl' => 'http:://search.yohobuy.com',
'latestWalk' => 7,
'pathNav' => Array(
'0'=>array(
'href' => '/',
'name' => '首页'
),
'1'=>array(
'name' => '搜索“<span id="nav_keyword">'.$keyword.'</span>”共<span id="nav_keyword_count">0</span>个结果'
)
)
)
);
$this->setTitle('潮流商品搜索 | YOHO!有货');
$this->setKeywords('Yoho! 有货,潮流,时尚,流行,购物,B2C,正品,购物网站,网上购物,货到付款,品牌服饰,男士护肤,黑框眼镜,匡威,板鞋,i.t,izzue,5cm,eastpak,vans,lylescott,g-shock,new balance,lacoste,melissa,casio,卡西欧手表,舒雅,jasonwood,odm,AAAA,香港购物,日本潮流');
$this->setDescription('潮流商品搜索,上衣,衬衫,TEE,卫衣,冲锋衣,风衣,羽绒服,裤子,休闲鞋,板鞋,配饰,复古眼镜');
$this->setWebNavHeader();
$this->_view->display('search', $data);
}
}
\ No newline at end of file
... ...
... ... @@ -32,4 +32,4 @@ routes.brandabout.type = "rewrite"
routes.brandabout.match = "/about"
routes.brandabout.route.module = Product
routes.brandabout.route.controller = Index
routes.brandabout.route.action = brandIntro
\ No newline at end of file
routes.brandabout.route.action = about
\ No newline at end of file
... ...