You've already forked qlg.tsgz.moe
							
							Init Repo
This commit is contained in:
		
							
								
								
									
										23
									
								
								hyhproject/home2/behavior/InitConfig.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										23
									
								
								hyhproject/home2/behavior/InitConfig.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\behavior;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 初始化基础数据
 | 
			
		||||
 */
 | 
			
		||||
class InitConfig 
 | 
			
		||||
{
 | 
			
		||||
    public function run(&$params){
 | 
			
		||||
        WSTConf('protectedUrl',model('HomeMenus')->getMenusUrl());
 | 
			
		||||
        // 检测手机端访问
 | 
			
		||||
        $request = request();
 | 
			
		||||
        $currModel = $request->module();
 | 
			
		||||
        
 | 
			
		||||
        hook('initConfigHook',['getParams'=>input()]);
 | 
			
		||||
   
 | 
			
		||||
        if($request->isMobile() &&  $currModel=='home'){
 | 
			
		||||
        	$url = url('mobile/index/index');
 | 
			
		||||
        	header("location:$url");
 | 
			
		||||
        	die;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										49
									
								
								hyhproject/home2/behavior/ListenProtectedUrl.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										49
									
								
								hyhproject/home2/behavior/ListenProtectedUrl.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,49 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\behavior;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 检测用户有没有登录和访问权限
 | 
			
		||||
 */
 | 
			
		||||
class ListenProtectedUrl 
 | 
			
		||||
{
 | 
			
		||||
    public function run(&$params){
 | 
			
		||||
	    $request = request();
 | 
			
		||||
	    $urls = WSTConf('protectedUrl');
 | 
			
		||||
        $visit = strtolower($request->module()."/".$request->controller()."/".$request->action());
 | 
			
		||||
 | 
			
		||||
        //受保护资源进来检测身份
 | 
			
		||||
        if(isset($urls[$visit])){
 | 
			
		||||
        	$menuType = (int)$urls[$visit];
 | 
			
		||||
        	$userType = -1;
 | 
			
		||||
        	if((int)session('WST_USER.userId')>0)$userType = 0;
 | 
			
		||||
        	//if((int)session('WST_USER.shopId')>0)$userType = 1;
 | 
			
		||||
            if((int)session('WST_USER.userType')>0)$userType = 1;
 | 
			
		||||
        	//未登录不允许访问受保护的资源
 | 
			
		||||
        	if($userType==-1){
 | 
			
		||||
		        if($request->isAjax()){
 | 
			
		||||
		        	echo json_encode(['status'=>-999,'msg'=>'对不起,您还没有登录,请先登录']);
 | 
			
		||||
		        }else{
 | 
			
		||||
		        	header("Location:".url('home/users/login'));
 | 
			
		||||
		        }
 | 
			
		||||
		        exit();
 | 
			
		||||
        	}
 | 
			
		||||
        	//已登录但不是商家 则不允许访问受保护的商家资源
 | 
			
		||||
        	if($userType==0 && $menuType==1){
 | 
			
		||||
        	    if($request->isAjax()){
 | 
			
		||||
		        	echo json_encode(['status'=>-999,'msg'=>'对不起,您不是商家,请先申请为商家再访问']);
 | 
			
		||||
		        }else{
 | 
			
		||||
		        	header("Location:".url('home/shops/login'));
 | 
			
		||||
		        }
 | 
			
		||||
		        exit();
 | 
			
		||||
        	}
 | 
			
		||||
            //商家角色权限
 | 
			
		||||
            if(((int)session('WST_USER.roleId')>0) && $userType==1 && $menuType==1){
 | 
			
		||||
                $shopMenuUrls = model('HomeMenus')->getShopMenusUrl();
 | 
			
		||||
                if(!in_array($visit,$shopMenuUrls)){
 | 
			
		||||
                    header("Location:".url('home/error/index'));
 | 
			
		||||
                    exit();
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										171
									
								
								hyhproject/home2/common/function.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										171
									
								
								hyhproject/home2/common/function.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,171 @@
 | 
			
		||||
<?php
 | 
			
		||||
use think\Db;
 | 
			
		||||
use think\Session;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 */
 | 
			
		||||
/**
 | 
			
		||||
 * 查询网站帮助
 | 
			
		||||
 * @param $pnum 父级记录数
 | 
			
		||||
 * @param $cnum 子记录数
 | 
			
		||||
 */
 | 
			
		||||
function WSTHelps($pnum = 5,$cnum = 5){
 | 
			
		||||
	$cats = Db::table('__ARTICLE_CATS__')->where(['catType'=>1, 'dataFlag'=>1, 'isShow' => 1, 'parentId'=>7])
 | 
			
		||||
	            ->field("catName,catId")->order('catSort asc')->limit($pnum)->select();
 | 
			
		||||
	if(!empty($cats)){
 | 
			
		||||
	    foreach($cats as $key =>$v){
 | 
			
		||||
	        $cats[$key]['articlecats'] = Db::table('__ARTICLES__')->where(['dataFlag'=>1,'isShow' => 1,'catId'=>$v['catId']])
 | 
			
		||||
	            ->field("articleId, catId, articleTitle")->order('createTime asc')->limit($cnum)->select(); 
 | 
			
		||||
	    }   
 | 
			
		||||
	}
 | 
			
		||||
	return $cats;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 获取前台菜单
 | 
			
		||||
 */
 | 
			
		||||
function WSTHomeMenus($menuType){
 | 
			
		||||
	$m1 = array();
 | 
			
		||||
	if($menuType==1){
 | 
			
		||||
		$m1 = model('home/HomeMenus')->getShopMenus();	
 | 
			
		||||
	}else{
 | 
			
		||||
		$m1 = model('home/HomeMenus')->getMenus();	
 | 
			
		||||
	}
 | 
			
		||||
	$menuId1 = (int)input("get.homeMenuId");
 | 
			
		||||
	$menus = [];
 | 
			
		||||
	$menus['menus'] = $m1[$menuType];
 | 
			
		||||
	//判断menuId1是否有效
 | 
			
		||||
	if($menuId1==0){
 | 
			
		||||
		$menuId1 = (int)session('WST_MENID'.$menuType);
 | 
			
		||||
	}else{
 | 
			
		||||
		session('WST_MENID'.$menuType,$menuId1);
 | 
			
		||||
	}
 | 
			
		||||
	//检测第一级菜单是否有效
 | 
			
		||||
	$tmpMenuId1 = 0;
 | 
			
		||||
	$isFind = false;
 | 
			
		||||
	foreach ($menus['menus'] as $key => $v){
 | 
			
		||||
		if($tmpMenuId1==0)$tmpMenuId1 = $key;
 | 
			
		||||
		if($key==$menuId1)$isFind = true;
 | 
			
		||||
	}
 | 
			
		||||
	if($isFind){
 | 
			
		||||
		$menus['menuId1'] = $menuId1;
 | 
			
		||||
	}else{
 | 
			
		||||
		$menus['menuId1'] = $tmpMenuId1;
 | 
			
		||||
	}
 | 
			
		||||
	$menus['menuId3'] = session('WST_MENUID3'.$menuType);
 | 
			
		||||
	return $menus;
 | 
			
		||||
}
 | 
			
		||||
/**
 | 
			
		||||
 * 获取指定父级的商家店铺分类
 | 
			
		||||
 */
 | 
			
		||||
function WSTShopCats($parentId){
 | 
			
		||||
	$shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
	$dbo = Db::table('__SHOP_CATS__')->where(['dataFlag'=>1, 'isShow' => 1,'parentId'=>$parentId,'shopId'=>$shopId]);
 | 
			
		||||
	// return $dbo->field("catName,catId")->order('catSort asc')->select();
 | 
			
		||||
	// mark 20180518 by zl
 | 
			
		||||
	return $dbo->field("catName,catId,provName")->order('catSort asc')->select();
 | 
			
		||||
}
 | 
			
		||||
/**
 | 
			
		||||
 * 获取商城搜索关键字
 | 
			
		||||
 */
 | 
			
		||||
function WSTSearchKeys(){
 | 
			
		||||
	$keys = WSTConf("CONF.hotWordsSearch");
 | 
			
		||||
	if($keys!='')$keys = explode(',',$keys);
 | 
			
		||||
	return $keys;
 | 
			
		||||
}
 | 
			
		||||
/**
 | 
			
		||||
 * 获取首页左侧分类、推荐品牌和广告
 | 
			
		||||
 */
 | 
			
		||||
function WSTSideCategorys(){
 | 
			
		||||
	$data = cache('WST_SIDE_CATS');
 | 
			
		||||
	if(!$data){
 | 
			
		||||
		$cats1 = Db::table('__GOODS_CATS__')->where(['dataFlag'=>1, 'isShow' => 1,'parentId'=>0])->field("catName,catId,catImg")->order('catSort asc')->select();
 | 
			
		||||
		if(count($cats1)>0){
 | 
			
		||||
			$ids1 = [];$ids2 = [];$cats2 = [];$cats3 = [];$mcats3 = [];$mcats2 = [];
 | 
			
		||||
			foreach ($cats1 as $key =>$v){
 | 
			
		||||
				$ids1[] = $v['catId'];
 | 
			
		||||
			}
 | 
			
		||||
			$tmp2 = Db::table('__GOODS_CATS__')->where(['dataFlag'=>1, 'isShow' => 1,'parentId'=>['in',$ids1]])->field("catName,catId,parentId,catImg")->order('catSort asc')->select();
 | 
			
		||||
			if(count($tmp2)>0){
 | 
			
		||||
				foreach ($tmp2 as $key =>$v){
 | 
			
		||||
				    $ids2[] = $v['catId'];
 | 
			
		||||
			    }
 | 
			
		||||
			    $tmp3 = Db::table('__GOODS_CATS__')->where(['dataFlag'=>1, 'isShow' => 1,'parentId'=>['in',$ids2]])->field("catName,catId,parentId,catImg")->order('catSort asc')->select();
 | 
			
		||||
			    if(count($tmp3)>0){
 | 
			
		||||
			    	//组装第三级
 | 
			
		||||
				    foreach ($tmp3 as $key =>$v){
 | 
			
		||||
					    $mcats3[$v['parentId']][] = $v;
 | 
			
		||||
				    }
 | 
			
		||||
			    }
 | 
			
		||||
			    //组装第二级
 | 
			
		||||
			    foreach ($tmp2 as $key =>$v){
 | 
			
		||||
			    	if(isset($mcats3[$v['catId']]))$v['list'] = $mcats3[$v['catId']];
 | 
			
		||||
					$mcats2[$v['parentId']][] = $v;
 | 
			
		||||
				}
 | 
			
		||||
				//组装第一级
 | 
			
		||||
		        foreach ($cats1 as $key =>$v){
 | 
			
		||||
		        	if(isset($mcats2[$v['catId']]))$cats1[$key]['list'] = $mcats2[$v['catId']];
 | 
			
		||||
		        }
 | 
			
		||||
			}	
 | 
			
		||||
			unset($ids1,$ids2,$cats2,$cats3,$mcats3,$mcats2);
 | 
			
		||||
		}
 | 
			
		||||
		cache('WST_SIDE_CATS',$cats1);
 | 
			
		||||
		return $cats1;
 | 
			
		||||
	}
 | 
			
		||||
	return $data;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 获取导航菜单
 | 
			
		||||
 */
 | 
			
		||||
function WSTNavigations($navType){
 | 
			
		||||
	$data = cache('WST_NAVS');
 | 
			
		||||
	if(!$data){
 | 
			
		||||
		$rs = Db::table('__NAVS__')->where(['isShow'=>1,'navType'=>$navType])->order('navSort asc')->select();
 | 
			
		||||
		foreach ($rs as $key => $v){
 | 
			
		||||
			if(stripos($v['navUrl'],'https://')===false &&  stripos($v['navUrl'],'http://')===false){
 | 
			
		||||
				$rs[$key]['navUrl'] = str_replace('/index.php','',\think\Request::instance()->root())."/".$v['navUrl'];
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		cache('WST_NAVS',$data);
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
	return $data;
 | 
			
		||||
}
 | 
			
		||||
/**
 | 
			
		||||
 * 根据指定的商品分类获取其路径
 | 
			
		||||
 */
 | 
			
		||||
function WSTPathGoodsCat($catId,$data = array()){
 | 
			
		||||
	$rs = Db::table('__GOODS_CATS__')->where(['isShow'=>1,'dataFlag'=>1,'catId'=>$catId])->field("parentId,catName,catId")->find();
 | 
			
		||||
	$data[] = $rs;
 | 
			
		||||
	if($rs['parentId']==0){;
 | 
			
		||||
		krsort($data);
 | 
			
		||||
		return $data;
 | 
			
		||||
	}else{
 | 
			
		||||
		return WSTPathGoodsCat($rs['parentId'],$data);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
/**
 | 
			
		||||
 * 处理商家结算信息提示
 | 
			
		||||
 */
 | 
			
		||||
function WSTShopMessageBox(){
 | 
			
		||||
	$USER = session('WST_USER');
 | 
			
		||||
	$msg = [];
 | 
			
		||||
	if($USER['shopMoney']<0){
 | 
			
		||||
		$msg[] = '您的账户欠费¥'.$USER['shopMoney'].',请及时充值。';
 | 
			
		||||
	}
 | 
			
		||||
	if(($USER['noSettledOrderFee']+$USER['paymentMoney'])<0 && (($USER['shopMoney']+$USER['noSettledOrderFee']+$USER['paymentMoney'])<0)){
 | 
			
		||||
		$msg[] = '您的账户余额【¥'.$USER['shopMoney'].'】不足以缴纳订单佣金【¥'.(-1*($USER['noSettledOrderFee']+$USER['paymentMoney'])).'】,请及时充值。';
 | 
			
		||||
	}
 | 
			
		||||
	return implode('||',$msg);
 | 
			
		||||
}
 | 
			
		||||
/**
 | 
			
		||||
* 根据商品id,返回是否已关注商品
 | 
			
		||||
*/
 | 
			
		||||
function WSTCheckFavorite($goodsId,$type=0){
 | 
			
		||||
	$userId = (int)session('WST_USER.userId');
 | 
			
		||||
	if($userId>0){
 | 
			
		||||
		return model('common/favorites')->checkFavorite($goodsId,$type);
 | 
			
		||||
	}
 | 
			
		||||
	return false;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										19
									
								
								hyhproject/home2/conf/config.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										19
									
								
								hyhproject/home2/conf/config.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
<?php
 | 
			
		||||
// +----------------------------------------------------------------------
 | 
			
		||||
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
 | 
			
		||||
// +----------------------------------------------------------------------
 | 
			
		||||
// | Copyright (c) 2006~2016 http://thinkphp.cn All rights reserved.
 | 
			
		||||
// +----------------------------------------------------------------------
 | 
			
		||||
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
 | 
			
		||||
// +----------------------------------------------------------------------
 | 
			
		||||
// | Author: liu21st <liu21st@gmail.com>
 | 
			
		||||
// +----------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
return [
 | 
			
		||||
    //分页配置
 | 
			
		||||
    'paginate'               => [
 | 
			
		||||
        'type'      => 'bootstrap',
 | 
			
		||||
        'var_page'  => 'p',
 | 
			
		||||
        'list_rows' => 15,
 | 
			
		||||
    ],
 | 
			
		||||
];
 | 
			
		||||
							
								
								
									
										16
									
								
								hyhproject/home2/controller/Ads.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										16
									
								
								hyhproject/home2/controller/Ads.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\common\model\Ads as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 广告控制器
 | 
			
		||||
 */
 | 
			
		||||
class Ads extends Base{
 | 
			
		||||
	/**
 | 
			
		||||
	* 记录点击次数
 | 
			
		||||
	*/
 | 
			
		||||
    public function recordClick(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        return $m->recordClick();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										283
									
								
								hyhproject/home2/controller/Alipays.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										283
									
								
								hyhproject/home2/controller/Alipays.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,283 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\common\model\Payments as M;
 | 
			
		||||
use wstmart\common\model\Orders as OM;
 | 
			
		||||
use wstmart\common\model\LogMoneys as LM;
 | 
			
		||||
use wstmart\common\model\ChargeItems as CM;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 阿里支付控制器
 | 
			
		||||
 */
 | 
			
		||||
class Alipays extends Base{
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 初始化
 | 
			
		||||
	 */
 | 
			
		||||
	private $aliPayConfig;
 | 
			
		||||
	public function _initialize() {
 | 
			
		||||
		$this->aliPayConfig = array();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$this->aliPayConfig = $m->getPayment("alipays");
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 生成支付代码
 | 
			
		||||
	 */
 | 
			
		||||
	function getAlipaysUrl(){
 | 
			
		||||
		$payObj = input("payObj/s");
 | 
			
		||||
		$m = new OM();
 | 
			
		||||
		$obj = array();
 | 
			
		||||
		$data = array();
 | 
			
		||||
		$orderAmount = 0;
 | 
			
		||||
		$out_trade_no = "";
 | 
			
		||||
		$extra_common_param = "";
 | 
			
		||||
		$subject = "";
 | 
			
		||||
		$body = "";
 | 
			
		||||
		if($payObj=="recharge"){//充值
 | 
			
		||||
			$itmeId = (int)input("itmeId/d");
 | 
			
		||||
			$orderAmount = 0;
 | 
			
		||||
			if($itmeId>0){
 | 
			
		||||
				$cm = new CM();
 | 
			
		||||
				$item = $cm->getItemMoney($itmeId);
 | 
			
		||||
				$orderAmount = isSet($item["chargeMoney"])?$item["chargeMoney"]:0;
 | 
			
		||||
			}else{
 | 
			
		||||
				$orderAmount = (int)input("needPay/d");
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
			$shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
    		$targetType = ($shopId>0)?1:0;
 | 
			
		||||
			$targetId = (int)session('WST_USER.userId');
 | 
			
		||||
			if($targetType==1){//商家
 | 
			
		||||
				$targetId = $shopId;
 | 
			
		||||
			}
 | 
			
		||||
			$data["status"] = $orderAmount>0?1:-1;
 | 
			
		||||
			$out_trade_no = WSTOrderNo();
 | 
			
		||||
			$extra_common_param = $payObj."@".$targetId."@".$targetType."@".$itmeId;
 | 
			
		||||
			$subject = '钱包充值 ¥'.$orderAmount.'元';
 | 
			
		||||
			$body = '钱包充值';
 | 
			
		||||
		}else{
 | 
			
		||||
			$obj["orderNo"] = input("orderNo/s");
 | 
			
		||||
			$obj["isBatch"] = (int)input("isBatch/d");
 | 
			
		||||
			$data = $m->checkOrderPay($obj);
 | 
			
		||||
			if($data["status"]==1){
 | 
			
		||||
				$userId = (int)session('WST_USER.userId');
 | 
			
		||||
				$obj["userId"] = $userId;
 | 
			
		||||
				$order = $m->getPayOrders($obj);
 | 
			
		||||
				$orderAmount = $order["needPay"];
 | 
			
		||||
				$payRand = $order["payRand"];
 | 
			
		||||
				$out_trade_no = $obj["orderNo"]."a".$payRand;
 | 
			
		||||
				$extra_common_param = $payObj."@".$userId."@".$obj["isBatch"];
 | 
			
		||||
				$subject = '支付购买商品费用'.$orderAmount.'元';
 | 
			
		||||
				$body = '支付订单费用';
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		if($data["status"]==1){
 | 
			
		||||
			$return_url = url("home/alipays/response","",true,true);
 | 
			
		||||
			$notify_url = url("home/alipays/aliNotify","",true,true);
 | 
			
		||||
			$parameter = array(
 | 
			
		||||
					'extra_common_param'=> $extra_common_param,
 | 
			
		||||
					'service'           => 'create_direct_pay_by_user',
 | 
			
		||||
					'partner'           => $this->aliPayConfig['parterID'],
 | 
			
		||||
					'_input_charset'    => "utf-8",
 | 
			
		||||
					'notify_url'        => $notify_url,
 | 
			
		||||
					'return_url'        => $return_url,
 | 
			
		||||
					/* 业务参数 */
 | 
			
		||||
					'subject'           => $subject,
 | 
			
		||||
					'body'  	        => $body,
 | 
			
		||||
					'out_trade_no'      => $out_trade_no,
 | 
			
		||||
					'total_fee'         => $orderAmount,
 | 
			
		||||
					'quantity'          => 1,
 | 
			
		||||
					'payment_type'      => 1,
 | 
			
		||||
					/* 物流参数 */
 | 
			
		||||
					'logistics_type'    => 'EXPRESS',
 | 
			
		||||
					'logistics_fee'     => 0,
 | 
			
		||||
					'logistics_payment' => 'BUYER_PAY_AFTER_RECEIVE',
 | 
			
		||||
					/* 买卖双方信息 */
 | 
			
		||||
					'seller_email'      => $this->aliPayConfig['payAccount']
 | 
			
		||||
			);
 | 
			
		||||
			ksort($parameter);
 | 
			
		||||
			reset($parameter);
 | 
			
		||||
			$param = '';
 | 
			
		||||
			$sign  = '';
 | 
			
		||||
			foreach ($parameter AS $key => $val){
 | 
			
		||||
				$param .= "$key=" .urlencode($val). "&";
 | 
			
		||||
				$sign  .= "$key=$val&";
 | 
			
		||||
			}
 | 
			
		||||
			$param = substr($param, 0, -1);
 | 
			
		||||
			$sign  = substr($sign, 0, -1). $this->aliPayConfig['parterKey'];
 | 
			
		||||
			$url = 'https://mapi.alipay.com/gateway.do?'.$param. '&sign='.md5($sign).'&sign_type=MD5';
 | 
			
		||||
			$data["url"] = $url;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return $data;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 支付结果同步回调
 | 
			
		||||
	 */
 | 
			
		||||
	function response(){
 | 
			
		||||
		$m = new OM();
 | 
			
		||||
		$request = $_GET;
 | 
			
		||||
		unset($request['_URL_']);
 | 
			
		||||
		$payRes = self::notify($request);
 | 
			
		||||
		if($payRes['status']){
 | 
			
		||||
			$extras = explode("@",$_GET['extra_common_param']);
 | 
			
		||||
			if($extras[0]=="recharge"){//充值
 | 
			
		||||
				if($extras[2]==1){
 | 
			
		||||
					$this->redirect(url("home/logmoneys/shopmoneys"));
 | 
			
		||||
				}else{
 | 
			
		||||
					$this->redirect(url("home/logmoneys/usermoneys"));
 | 
			
		||||
				}
 | 
			
		||||
			}else{
 | 
			
		||||
				$this->redirect(url("home/alipays/paysuccess"));
 | 
			
		||||
			}
 | 
			
		||||
		}else{
 | 
			
		||||
			$this->error('支付失败');
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 支付结果异步回调
 | 
			
		||||
	 */
 | 
			
		||||
	function aliNotify(){
 | 
			
		||||
		$m = new OM();
 | 
			
		||||
		$request = $_POST;
 | 
			
		||||
		$payRes = self::notify($request);
 | 
			
		||||
		if($payRes['status']){
 | 
			
		||||
			
 | 
			
		||||
			$extras = explode("@",$_POST['extra_common_param']);
 | 
			
		||||
			$rs = array();
 | 
			
		||||
			if($extras[0]=="recharge"){//充值
 | 
			
		||||
				$targetId = (int)$extras [1];
 | 
			
		||||
				$targetType = (int)$extras [2];
 | 
			
		||||
				$itemId = (int)$extras [3];
 | 
			
		||||
				$obj = array ();
 | 
			
		||||
				$obj["trade_no"] = $_POST['trade_no'];
 | 
			
		||||
				$obj["out_trade_no"] = $_POST["out_trade_no"];;
 | 
			
		||||
				$obj["targetId"] = $targetId;
 | 
			
		||||
				$obj["targetType"] = $targetType;
 | 
			
		||||
				$obj["itemId"] = $itemId;
 | 
			
		||||
				$obj["total_fee"] = $_POST['total_fee'];
 | 
			
		||||
				$obj["payFrom"] = 'alipays';
 | 
			
		||||
				// 支付成功业务逻辑
 | 
			
		||||
				$m = new LM();
 | 
			
		||||
				$rs = $m->complateRecharge ( $obj );
 | 
			
		||||
			}else{
 | 
			
		||||
				//商户订单号
 | 
			
		||||
				$obj = array();
 | 
			
		||||
				$tradeNo = explode("a",$_POST['out_trade_no']);
 | 
			
		||||
				$obj["trade_no"] = $_POST['trade_no'];
 | 
			
		||||
				$obj["out_trade_no"] = $tradeNo[0];
 | 
			
		||||
				$obj["total_fee"] = $_POST['total_fee'];
 | 
			
		||||
					
 | 
			
		||||
				$obj["userId"] = $extras[1];
 | 
			
		||||
				$obj["isBatch"] = $extras[2];
 | 
			
		||||
				$obj["payFrom"] = 'alipays';
 | 
			
		||||
				//支付成功业务逻辑
 | 
			
		||||
				$rs = $m->complatePay($obj);
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
			if($rs["status"]==1){
 | 
			
		||||
				echo 'success';
 | 
			
		||||
			}else{
 | 
			
		||||
				echo 'fail';
 | 
			
		||||
			}
 | 
			
		||||
		}else{
 | 
			
		||||
			echo 'fail';
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 支付回调接口
 | 
			
		||||
	 */
 | 
			
		||||
	function notify($request){
 | 
			
		||||
		$returnRes = array('info'=>'','status'=>false);
 | 
			
		||||
		$request = $this->argSort($request);
 | 
			
		||||
		// 检查数字签名是否正确 
 | 
			
		||||
		$isSign = $this->getSignVeryfy($request);
 | 
			
		||||
		if (!$isSign){//签名验证失败
 | 
			
		||||
			$returnRes['info'] = '签名验证失败';
 | 
			
		||||
			return $returnRes;
 | 
			
		||||
		}
 | 
			
		||||
		if ($request['trade_status'] == 'TRADE_SUCCESS' || $request['trade_status'] == 'TRADE_FINISHED'){
 | 
			
		||||
			$returnRes['status'] = true;
 | 
			
		||||
		}
 | 
			
		||||
		return $returnRes;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取返回时的签名验证结果
 | 
			
		||||
	 */
 | 
			
		||||
	function getSignVeryfy($para_temp) {
 | 
			
		||||
		$parterKey = $this->aliPayConfig["parterKey"];
 | 
			
		||||
		//除去待签名参数数组中的空值和签名参数
 | 
			
		||||
		$para_filter = $this->paraFilter($para_temp);
 | 
			
		||||
		//对待签名参数数组排序
 | 
			
		||||
		$para_sort = $this->argSort($para_filter);
 | 
			
		||||
		//把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
 | 
			
		||||
		$prestr = $this->createLinkstring($para_sort);
 | 
			
		||||
	
 | 
			
		||||
		$isSgin = false;
 | 
			
		||||
		$isSgin = $this->md5Verify($prestr, $para_temp['sign'], $parterKey);
 | 
			
		||||
		return $isSgin;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 验证签名
 | 
			
		||||
	 */
 | 
			
		||||
	function md5Verify($prestr, $sign, $key) {
 | 
			
		||||
		$prestr = $prestr . $key;
 | 
			
		||||
		$mysgin = md5($prestr);
 | 
			
		||||
		if($mysgin == $sign) {
 | 
			
		||||
			return true;
 | 
			
		||||
		}else {
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
 | 
			
		||||
	 */
 | 
			
		||||
	function createLinkstring($para) {
 | 
			
		||||
		$arg  = "";
 | 
			
		||||
		while (list ($key, $val) = each ($para)) {
 | 
			
		||||
			$arg.=$key."=".$val."&";
 | 
			
		||||
		}
 | 
			
		||||
		//去掉最后一个&字符
 | 
			
		||||
		$arg = substr($arg,0,count($arg)-2);
 | 
			
		||||
		//如果存在转义字符,那么去掉转义
 | 
			
		||||
		if(get_magic_quotes_gpc()){$arg = stripslashes($arg);}
 | 
			
		||||
	
 | 
			
		||||
		return $arg;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 除去数组中的空值和签名参数
 | 
			
		||||
	 */
 | 
			
		||||
	function paraFilter($para) {
 | 
			
		||||
		$para_filter = array();
 | 
			
		||||
		while (list ($key, $val) = each ($para)) {
 | 
			
		||||
			if($key == "sign" || $key == "sign_type" || $val == "")continue;
 | 
			
		||||
			else    $para_filter[$key] = $para[$key];
 | 
			
		||||
		}
 | 
			
		||||
		return $para_filter;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 对数组排序
 | 
			
		||||
	 */
 | 
			
		||||
	function argSort($para) {
 | 
			
		||||
		ksort($para);
 | 
			
		||||
		reset($para);
 | 
			
		||||
		return $para;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 检查支付结果
 | 
			
		||||
	 */
 | 
			
		||||
	public function paySuccess() {
 | 
			
		||||
		return $this->fetch('order_pay_step3');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										17
									
								
								hyhproject/home2/controller/Areas.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										17
									
								
								hyhproject/home2/controller/Areas.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\common\model\Areas as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 地区控制器
 | 
			
		||||
 */
 | 
			
		||||
class Areas extends Base{
 | 
			
		||||
	/**
 | 
			
		||||
	* 获取地区信息
 | 
			
		||||
	*/
 | 
			
		||||
    public function listQuery(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        $rs = $m->listQuery();
 | 
			
		||||
        return WSTReturn('', 1,$rs);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										76
									
								
								hyhproject/home2/controller/Base.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										76
									
								
								hyhproject/home2/controller/Base.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,76 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 基础控制器
 | 
			
		||||
 */
 | 
			
		||||
use think\Controller;
 | 
			
		||||
class Base extends Controller {
 | 
			
		||||
    protected $is_icp = 1;
 | 
			
		||||
	public function __construct(){
 | 
			
		||||
		
 | 
			
		||||
		parent::__construct();
 | 
			
		||||
		$this->assign("v",WSTConf('CONF.wstVersion')."_".WSTConf('CONF.wstPCStyleId'));
 | 
			
		||||
		
 | 
			
		||||
		hook('homeControllerBase');
 | 
			
		||||
		
 | 
			
		||||
		if(WSTConf('CONF.seoMallSwitch')==0){
 | 
			
		||||
			$this->redirect('home/switchs/index');
 | 
			
		||||
			exit;
 | 
			
		||||
		}
 | 
			
		||||
        $this->assign('is_icp',$this->is_icp);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	protected function fetch($template = '', $vars = [], $replace = [], $config = [])
 | 
			
		||||
    {
 | 
			
		||||
    	$style = WSTConf('CONF.wsthomeStyle')?WSTConf('CONF.wsthomeStyle'):'default';
 | 
			
		||||
    	$replace['__STYLE__'] = str_replace('/index.php','',\think\Request::instance()->root()).'/hyhproject/home/view/'.WSTConf('CONF.wsthomeStyle');
 | 
			
		||||
        return $this->view->fetch($style."/".$template, $vars, $replace, $config);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 上传图片
 | 
			
		||||
	 */
 | 
			
		||||
	public function uploadPic(){
 | 
			
		||||
		return WSTUploadPic(0);
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
    * 编辑器上传文件
 | 
			
		||||
    */
 | 
			
		||||
    public function editorUpload(){
 | 
			
		||||
           return WSTEditUpload(0);
 | 
			
		||||
    }
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取验证码
 | 
			
		||||
	 */
 | 
			
		||||
	public function getVerify(){
 | 
			
		||||
		WSTVerify();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 登录验证方法--用户
 | 
			
		||||
    protected function checkAuth(){
 | 
			
		||||
       	$USER = session('WST_USER');
 | 
			
		||||
        if(empty($USER)){
 | 
			
		||||
        	if(request()->isAjax()){
 | 
			
		||||
        		die('{"status":-999,"msg":"您还未登录"}');
 | 
			
		||||
        	}else{
 | 
			
		||||
        		$this->redirect('home/users/login');
 | 
			
		||||
        		exit;
 | 
			
		||||
        	}
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    //登录验证方法--商家
 | 
			
		||||
    protected function checkShopAuth(){
 | 
			
		||||
       	$USER = session('WST_USER');
 | 
			
		||||
        if(empty($USER) || $USER['userType']!=1){
 | 
			
		||||
        	if(request()->isAjax()){
 | 
			
		||||
        		die('{"status":-999,"msg":"您还未登录"}');
 | 
			
		||||
        	}else{
 | 
			
		||||
        		$this->redirect('home/shops/login');
 | 
			
		||||
        		exit;
 | 
			
		||||
        	}
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										34
									
								
								hyhproject/home2/controller/Brands.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										34
									
								
								hyhproject/home2/controller/Brands.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\common\model\Brands as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 品牌控制器
 | 
			
		||||
 */
 | 
			
		||||
class Brands extends Base{
 | 
			
		||||
	/**
 | 
			
		||||
	 * 品牌街
 | 
			
		||||
	 */
 | 
			
		||||
	public function index(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$pagesize = 25;
 | 
			
		||||
		$brandsList = $m->pageQuery($pagesize);
 | 
			
		||||
		$this->assign('list',$brandsList);
 | 
			
		||||
 | 
			
		||||
		$g = model('goodsCats');
 | 
			
		||||
		$goodsCats = $g->listQuery(0);
 | 
			
		||||
    	$this->assign('goodscats',$goodsCats);
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
    	$selectedId = (int)input("id");
 | 
			
		||||
    	$this->assign('selectedId',$selectedId);
 | 
			
		||||
		return $this->fetch('brands_list');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取品牌列表
 | 
			
		||||
	 */
 | 
			
		||||
    public function listQuery(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        return ['status'=>1,'list'=>$m->listQuery(input('post.catId/d'))];
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										318
									
								
								hyhproject/home2/controller/Carts.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										318
									
								
								hyhproject/home2/controller/Carts.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,318 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
 | 
			
		||||
use wstmart\common\model\Carts as M;
 | 
			
		||||
 | 
			
		||||
use wstmart\common\model\Payments as PM;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 | 
			
		||||
 * 购物车控制器
 | 
			
		||||
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
class Carts extends Base{
 | 
			
		||||
 | 
			
		||||
	protected $beforeActionList = ['checkAuth'];
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
 | 
			
		||||
    * 加入购物车
 | 
			
		||||
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
	public function addCart(){
 | 
			
		||||
 | 
			
		||||
		$m = new M();
 | 
			
		||||
 | 
			
		||||
		$rs = $m->addCart();
 | 
			
		||||
 | 
			
		||||
		return $rs;
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
 | 
			
		||||
	 * 查看购物车列表
 | 
			
		||||
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
	public function index(){
 | 
			
		||||
 | 
			
		||||
		$m = new M();
 | 
			
		||||
 | 
			
		||||
		$carts = $m->getCarts(false);
 | 
			
		||||
 | 
			
		||||
		$this->assign('carts',$carts);
 | 
			
		||||
 | 
			
		||||
		return $this->fetch('carts');
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
 | 
			
		||||
	 * 删除购物车里的商品
 | 
			
		||||
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
	public function delCart(){
 | 
			
		||||
 | 
			
		||||
		$m = new M();
 | 
			
		||||
 | 
			
		||||
		$rs= $m->delCart();
 | 
			
		||||
 | 
			
		||||
		return $rs;
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
 | 
			
		||||
	 * 虚拟商品下单
 | 
			
		||||
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
	public function quickSettlement(){
 | 
			
		||||
 | 
			
		||||
		$m = new M();
 | 
			
		||||
 | 
			
		||||
		//获取支付方式
 | 
			
		||||
 | 
			
		||||
		$pm = new PM();
 | 
			
		||||
 | 
			
		||||
		$payments = $pm->getByGroup('1',1);
 | 
			
		||||
 | 
			
		||||
        $carts = $m->getQuickCarts();
 | 
			
		||||
 | 
			
		||||
        if(empty($carts['carts'])){
 | 
			
		||||
 | 
			
		||||
        	$this->assign('message','Sorry~您还未选择商品。。。');
 | 
			
		||||
 | 
			
		||||
			return $this->fetch('error_msg');
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        hook("homeControllerCartsSettlement",["carts"=>$carts,"payments"=>&$payments]);
 | 
			
		||||
 | 
			
		||||
        //获取用户惠宝
 | 
			
		||||
 | 
			
		||||
        $user = model('users')->getFieldsById((int)session('WST_USER.userId'),'userScore');
 | 
			
		||||
 | 
			
		||||
        //计算可用惠宝和金额
 | 
			
		||||
 | 
			
		||||
        $goodsTotalMoney = $carts['goodsTotalMoney']-$carts['promotionMoney'];
 | 
			
		||||
 | 
			
		||||
        $goodsTotalScore = WSTScoreToMoney($goodsTotalMoney,true);
 | 
			
		||||
 | 
			
		||||
        $useOrderScore =0;
 | 
			
		||||
 | 
			
		||||
        $useOrderMoney = 0;
 | 
			
		||||
 | 
			
		||||
        if($user['userScore']>$goodsTotalScore){
 | 
			
		||||
 | 
			
		||||
            $useOrderScore = $goodsTotalScore;
 | 
			
		||||
 | 
			
		||||
            $useOrderMoney = $goodsTotalMoney;
 | 
			
		||||
 | 
			
		||||
        }else{
 | 
			
		||||
 | 
			
		||||
        	$useOrderScore = $user['userScore'];
 | 
			
		||||
 | 
			
		||||
            $useOrderMoney = WSTScoreToMoney($useOrderScore);
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $this->assign('userOrderScore',$useOrderScore);
 | 
			
		||||
 | 
			
		||||
        $this->assign('userOrderMoney',$useOrderMoney);
 | 
			
		||||
 | 
			
		||||
        $this->assign('payments',$payments);
 | 
			
		||||
 | 
			
		||||
        $this->assign('carts',$carts);
 | 
			
		||||
 | 
			
		||||
        return $this->fetch('settlement_quick');
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
 | 
			
		||||
	 * 跳去购物车结算页面
 | 
			
		||||
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
    public function settlement(){
 | 
			
		||||
 | 
			
		||||
		$m = new M();
 | 
			
		||||
 | 
			
		||||
		//获取一个用户地址
 | 
			
		||||
 | 
			
		||||
		$userAddress = model('UserAddress')->getDefaultAddress();
 | 
			
		||||
 | 
			
		||||
		$this->assign('userAddress',$userAddress);
 | 
			
		||||
 | 
			
		||||
		//获取省份
 | 
			
		||||
 | 
			
		||||
		$areas = model('Areas')->listQuery();
 | 
			
		||||
 | 
			
		||||
		$this->assign('areaList',$areas);
 | 
			
		||||
 | 
			
		||||
		//获取支付方式
 | 
			
		||||
 | 
			
		||||
		$pm = new PM();
 | 
			
		||||
 | 
			
		||||
		$payments = $pm->getByGroup('1');
 | 
			
		||||
 | 
			
		||||
		$carts = $m->getCarts(true);
 | 
			
		||||
 | 
			
		||||
		if(empty($carts['carts'])){
 | 
			
		||||
 | 
			
		||||
        	$this->assign('message','Sorry~您还未选择商品。。。');
 | 
			
		||||
 | 
			
		||||
			return $this->fetch('error_msg');
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		hook("homeControllerCartsSettlement",["carts"=>$carts,"payments"=>&$payments]);
 | 
			
		||||
 | 
			
		||||
        //获取用户惠宝
 | 
			
		||||
 | 
			
		||||
        $user = model('users')->getFieldsById((int)session('WST_USER.userId'),'userScore');
 | 
			
		||||
 | 
			
		||||
        //计算可用惠宝和金额
 | 
			
		||||
        $goodsTotalMoney = (($carts['goodsTotalMoney']-$carts['allShippingMoney']-$carts['promotionMoney']) * HuiScale());//$carts['goodsTotalMoney']-$carts['promotionMoney'];//惠宝最多可抵用20% mark 20170907 
 | 
			
		||||
 | 
			
		||||
        $goodsTotalScore = WSTScoreToMoney($goodsTotalMoney,true);
 | 
			
		||||
 | 
			
		||||
        $useOrderScore =0;
 | 
			
		||||
 | 
			
		||||
        $useOrderMoney = 0;
 | 
			
		||||
 | 
			
		||||
        if($user['userScore']>$goodsTotalScore){
 | 
			
		||||
 | 
			
		||||
            $useOrderScore = $goodsTotalScore;
 | 
			
		||||
 | 
			
		||||
            $useOrderMoney = $goodsTotalMoney;
 | 
			
		||||
 | 
			
		||||
        }else{
 | 
			
		||||
 | 
			
		||||
        	$useOrderScore = $user['userScore'];
 | 
			
		||||
 | 
			
		||||
            $useOrderMoney = WSTScoreToMoney($useOrderScore);
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $this->assign('userOrderScore',$useOrderScore);
 | 
			
		||||
 | 
			
		||||
        $this->assign('userOrderMoney',$useOrderMoney);
 | 
			
		||||
 | 
			
		||||
		$this->assign('carts',$carts);
 | 
			
		||||
		// dump($carts);die;
 | 
			
		||||
		$this->assign('payments',$payments);
 | 
			
		||||
 | 
			
		||||
		return $this->fetch('settlement');
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
 | 
			
		||||
	 * 计算运费、惠宝和总商品价格
 | 
			
		||||
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
	public function getCartMoney(){
 | 
			
		||||
 | 
			
		||||
		$m = new M();
 | 
			
		||||
 | 
			
		||||
		$data = $m->getCartMoney();
 | 
			
		||||
		// dump($data);die;
 | 
			
		||||
		return $data;
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
 | 
			
		||||
	 * 计算运费、惠宝和总商品价格
 | 
			
		||||
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
	public function getQuickCartMoney(){
 | 
			
		||||
 | 
			
		||||
		$m = new M();
 | 
			
		||||
 | 
			
		||||
		$data = $m->getQuickCartMoney();
 | 
			
		||||
 | 
			
		||||
		return $data;
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
 | 
			
		||||
	 * 修改购物车商品状态
 | 
			
		||||
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
	public function changeCartGoods(){
 | 
			
		||||
 | 
			
		||||
		$m = new M();
 | 
			
		||||
 | 
			
		||||
		$rs = $m->changeCartGoods();
 | 
			
		||||
 | 
			
		||||
		return $rs;
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
 | 
			
		||||
	 * 批量修改购物车商品状态
 | 
			
		||||
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
	public function batchChangeCartGoods(){
 | 
			
		||||
 | 
			
		||||
		$m = new M();
 | 
			
		||||
 | 
			
		||||
		$rs = $m->batchChangeCartGoods();
 | 
			
		||||
 | 
			
		||||
		return $rs;
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
 | 
			
		||||
	 * 获取购物车商品
 | 
			
		||||
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
    public function getCart(){
 | 
			
		||||
 | 
			
		||||
		$m = new M();
 | 
			
		||||
 | 
			
		||||
		$carts = $m->getCarts(false);
 | 
			
		||||
 | 
			
		||||
		return WSTReturn("", 1,$carts);
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
 | 
			
		||||
	 * 获取购物车信息
 | 
			
		||||
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
	public function getCartInfo(){
 | 
			
		||||
 | 
			
		||||
		$m = new M();
 | 
			
		||||
 | 
			
		||||
		$rs = $m->getCartInfo();
 | 
			
		||||
 | 
			
		||||
		return WSTReturn("", 1,$rs);
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										58
									
								
								hyhproject/home2/controller/Cashconfigs.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										58
									
								
								hyhproject/home2/controller/Cashconfigs.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,58 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\common\model\CashConfigs as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 提现账号控制器
 | 
			
		||||
 */
 | 
			
		||||
class Cashconfigs extends Base{
 | 
			
		||||
    protected $beforeActionList = ['checkAuth'];
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取用户数据
 | 
			
		||||
     */
 | 
			
		||||
    public function pageQuery(){
 | 
			
		||||
        $userId = (int)session('WST_USER.userId');
 | 
			
		||||
        $data = model('CashConfigs')->pageQuery(0,$userId);
 | 
			
		||||
        return WSTReturn("", 1,$data);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 跳转新增/编辑页面
 | 
			
		||||
     */
 | 
			
		||||
    public function toEdit(){
 | 
			
		||||
        $id = (int)input('id');
 | 
			
		||||
        $object = [];
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        if($id>0){
 | 
			
		||||
            $object = $m->getById($id);
 | 
			
		||||
        }else{
 | 
			
		||||
            $object = $m->getEModel('cash_configs');
 | 
			
		||||
            $object['accAreaIdPath'] = '';
 | 
			
		||||
        }
 | 
			
		||||
        $this->assign('object',$object);
 | 
			
		||||
        $this->assign('areas',model('areas')->listQuery(0));
 | 
			
		||||
        $this->assign('banks',model('banks')->listQuery(0));
 | 
			
		||||
        return $this->fetch('users/cashdraws/box_config');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 新增
 | 
			
		||||
     */
 | 
			
		||||
    public function add(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        return $m->add();
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 编辑
 | 
			
		||||
     */
 | 
			
		||||
    public function edit(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        return $m->edit();
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 删除
 | 
			
		||||
     */
 | 
			
		||||
    public function del(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        return $m->del();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										83
									
								
								hyhproject/home2/controller/Cashdraws.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										83
									
								
								hyhproject/home2/controller/Cashdraws.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,83 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\common\model\CashDraws as M;
 | 
			
		||||
use wstmart\common\model\Users as MUsers;
 | 
			
		||||
use wstmart\common\model\Shops as MShops;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 提现记录控制器
 | 
			
		||||
 */
 | 
			
		||||
class Cashdraws extends Base{
 | 
			
		||||
    protected $beforeActionList = [
 | 
			
		||||
       'checkAuth'=>['only'=>'index,pagequery,toedit,drawmoney'],
 | 
			
		||||
       'checkShopAuth'=>['only'=>'shopindex,pagequerybyshop,toeditbyshop,drawmoneybyshop']
 | 
			
		||||
    ];
 | 
			
		||||
    /**
 | 
			
		||||
     * 查看用户资金流水
 | 
			
		||||
     */
 | 
			
		||||
	public function index(){
 | 
			
		||||
		return $this->fetch('users/cashdraws/list');
 | 
			
		||||
	}
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取用户数据
 | 
			
		||||
     */
 | 
			
		||||
    public function pageQuery(){
 | 
			
		||||
        $userId = (int)session('WST_USER.userId');
 | 
			
		||||
        $data = model('CashDraws')->pageQuery(0,$userId);
 | 
			
		||||
        return WSTReturn("", 1,$data);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 跳转提现页面
 | 
			
		||||
     */
 | 
			
		||||
    public function toEdit(){
 | 
			
		||||
        $userId = (int)session('WST_USER.userId');
 | 
			
		||||
        $this->assign('accs',model('CashConfigs')->listQuery(0,$userId));
 | 
			
		||||
        $m = new MUsers();
 | 
			
		||||
        $user = $m->getFieldsById($userId,["userMoney","rechargeMoney"]);
 | 
			
		||||
        $this->assign('user',$user);
 | 
			
		||||
        return $this->fetch('users/cashdraws/box_draw');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 提现
 | 
			
		||||
     */ 
 | 
			
		||||
    public function drawMoney(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        return $m->drawMoney();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查看用户资金流水
 | 
			
		||||
     */
 | 
			
		||||
    public function shopIndex(){
 | 
			
		||||
        return $this->fetch('shops/cashdraws/list');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取用户数据
 | 
			
		||||
     */
 | 
			
		||||
    public function pageQueryByShop(){
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $data = model('CashDraws')->pageQuery(1,$shopId);
 | 
			
		||||
        return WSTReturn("", 1,$data);
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 申请提现
 | 
			
		||||
     */
 | 
			
		||||
    public function toEditByShop(){
 | 
			
		||||
        $this->assign('object',model('shops')->getShopAccount());
 | 
			
		||||
        $m = new MShops();
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $shop = $m->getFieldsById($shopId,["shopMoney","rechargeMoney"]);
 | 
			
		||||
        $this->assign('shop',$shop);
 | 
			
		||||
        return $this->fetch('shops/cashdraws/box_draw');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 提现
 | 
			
		||||
     */ 
 | 
			
		||||
    public function drawMoneyByShop(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        return $m->drawMoneyByShop();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										29
									
								
								hyhproject/home2/controller/Error.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										29
									
								
								hyhproject/home2/controller/Error.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 错误处理控制器
 | 
			
		||||
 */
 | 
			
		||||
class Error extends Base{
 | 
			
		||||
    public function index(){
 | 
			
		||||
    	header("HTTP/1.0 404 Not Found");
 | 
			
		||||
        return $this->fetch('error_sys');
 | 
			
		||||
    }
 | 
			
		||||
    public function goods(){
 | 
			
		||||
    	$this->assign('message','很抱歉,您要找的商品已经找不到了~');
 | 
			
		||||
        return $this->fetch('error_msg');
 | 
			
		||||
    }
 | 
			
		||||
    public function shop(){
 | 
			
		||||
    	$this->assign('message','很抱歉,您要找的店铺已经找不到了~');
 | 
			
		||||
        return $this->fetch('error_msg');
 | 
			
		||||
    }
 | 
			
		||||
    public function message(){
 | 
			
		||||
        $code = input('code');
 | 
			
		||||
        if(!empty($code) && session($code)!=''){
 | 
			
		||||
            $this->assign('message',session($code));
 | 
			
		||||
        }else{
 | 
			
		||||
            $this->assign('message','操作错误,请联系商城管理员');
 | 
			
		||||
        }
 | 
			
		||||
        return $this->fetch('error_msg');
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										54
									
								
								hyhproject/home2/controller/Favorites.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										54
									
								
								hyhproject/home2/controller/Favorites.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,54 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\common\model\Favorites as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 收藏控制器
 | 
			
		||||
 */
 | 
			
		||||
class Favorites extends Base{
 | 
			
		||||
	protected $beforeActionList = ['checkAuth'];
 | 
			
		||||
	/**
 | 
			
		||||
	 * 关注的商品
 | 
			
		||||
	 */
 | 
			
		||||
	public function goods(){
 | 
			
		||||
		return $this->fetch('users/favorites/list_goods');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 关注的店铺
 | 
			
		||||
	 */
 | 
			
		||||
	public function shops(){
 | 
			
		||||
		return $this->fetch('users/favorites/list_shops');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 关注的商品列表
 | 
			
		||||
	 */
 | 
			
		||||
	public function listGoodsQuery(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$data = $m->listGoodsQuery();
 | 
			
		||||
		return WSTReturn("", 1,$data);
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 关注的店铺列表
 | 
			
		||||
	 */
 | 
			
		||||
	public function listShopQuery(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$data = $m->listShopQuery();
 | 
			
		||||
		return WSTReturn("", 1,$data);
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 取消关注
 | 
			
		||||
	 */
 | 
			
		||||
	public function cancel(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->del();
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 增加关注
 | 
			
		||||
	 */
 | 
			
		||||
	public function add(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->add();
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										706
									
								
								hyhproject/home2/controller/Goods.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										706
									
								
								hyhproject/home2/controller/Goods.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,706 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\home\model\Goods as M;
 | 
			
		||||
use wstmart\common\model\Goods as CM;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 商品控制器
 | 
			
		||||
 */
 | 
			
		||||
class Goods extends Base{
 | 
			
		||||
    protected $beforeActionList = [
 | 
			
		||||
          'checkShopAuth' =>  ['except'=>'search,lists,detail,historybygoods,contrastgoods,contrastdel,contrast']
 | 
			
		||||
    ];
 | 
			
		||||
    /**
 | 
			
		||||
      * 批量删除商品
 | 
			
		||||
      */
 | 
			
		||||
     public function batchDel(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        return $m->batchDel();
 | 
			
		||||
     }
 | 
			
		||||
    /**
 | 
			
		||||
     * 修改商品库存/价格
 | 
			
		||||
     */
 | 
			
		||||
    public function editGoodsBase(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        return $m->editGoodsBase();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 修改商品状态
 | 
			
		||||
	 */
 | 
			
		||||
	public function changSaleStatus(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		return $m->changSaleStatus();
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 修改商品店长推荐状态
 | 
			
		||||
	 */
 | 
			
		||||
	public function changStoreRecom(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		return $m->changStoreRecom();
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 批量修改商品状态 新品/精品/热销/推荐
 | 
			
		||||
	 */
 | 
			
		||||
	public function changeGoodsStatus(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		return $m->changeGoodsStatus();
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 批量修改商品状态 店长推荐
 | 
			
		||||
	 */
 | 
			
		||||
	public function changeStoreStatus(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		return $m->changeStoreStatus();
 | 
			
		||||
	}
 | 
			
		||||
    /**
 | 
			
		||||
    *   批量上(下)架
 | 
			
		||||
    */
 | 
			
		||||
    public function changeSale(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        return $m->changeSale();
 | 
			
		||||
    }
 | 
			
		||||
   /**
 | 
			
		||||
    *  上架商品列表
 | 
			
		||||
    */
 | 
			
		||||
	public function sale(){
 | 
			
		||||
		return $this->fetch('shops/goods/list_sale');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取上架商品列表
 | 
			
		||||
	 */
 | 
			
		||||
	public function saleByPage(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->saleByPage();
 | 
			
		||||
		$rs['status'] = 1;
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 仓库中商品
 | 
			
		||||
	 */
 | 
			
		||||
    public function store(){
 | 
			
		||||
		return $this->fetch('shops/goods/list_store');
 | 
			
		||||
	}
 | 
			
		||||
    /**
 | 
			
		||||
	 * 审核中的商品
 | 
			
		||||
	 */
 | 
			
		||||
    public function audit(){
 | 
			
		||||
		return $this->fetch('shops/goods/list_audit');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取审核中的商品
 | 
			
		||||
	 */
 | 
			
		||||
    public function auditByPage(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->auditByPage();
 | 
			
		||||
		$rs['status'] = 1;
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取仓库中的商品
 | 
			
		||||
	 */
 | 
			
		||||
    public function storeByPage(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->storeByPage();
 | 
			
		||||
		$rs['status'] = 1;
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 违规商品
 | 
			
		||||
	 */
 | 
			
		||||
    public function illegal(){
 | 
			
		||||
		return $this->fetch('shops/goods/list_illegal');
 | 
			
		||||
	}
 | 
			
		||||
	/*
 | 
			
		||||
     * 设置商品特定价格
 | 
			
		||||
     * */
 | 
			
		||||
	public function limitPrice(){
 | 
			
		||||
		$shopId=(int)session('WST_USER.shopId');
 | 
			
		||||
		$where['shopId'] = $shopId;
 | 
			
		||||
		$where['goodsStatus'] = 1;
 | 
			
		||||
		$where['dataFlag'] = 1;
 | 
			
		||||
		$where['isSale'] = 1;
 | 
			
		||||
		if (Request()->isPost()) {
 | 
			
		||||
			$goodsType = input('goodsType');
 | 
			
		||||
			if ($goodsType != '') $where['goodsType'] = (int)$goodsType;
 | 
			
		||||
			$c1Id = (int)input('cat1');
 | 
			
		||||
			$c2Id = (int)input('cat2');
 | 
			
		||||
			$goodsName = input('goodsName');
 | 
			
		||||
			if ($goodsName != '') {
 | 
			
		||||
				$where['goodsName'] = ['like', "%$goodsName%"];
 | 
			
		||||
			}
 | 
			
		||||
			if ($c2Id != 0 && $c1Id != 0) {
 | 
			
		||||
				$where['shopCatId2'] = $c2Id;
 | 
			
		||||
			} else if ($c1Id != 0) {
 | 
			
		||||
				$where['shopCatId1'] = $c1Id;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		$lists=db('goods')->where($where)->field('goodsId,goodsName,goodsType')->select();
 | 
			
		||||
		//dump($lists);
 | 
			
		||||
		if (Request()->isAjax()) {
 | 
			
		||||
			//dump($lists);
 | 
			
		||||
			exit(json_encode(WSTReturn('',1,$lists)));
 | 
			
		||||
		}
 | 
			
		||||
		$this->assign('lists',$lists);
 | 
			
		||||
		return $this->fetch('shops/goods/list_limitprice');
 | 
			
		||||
	}
 | 
			
		||||
	//获取商品货号
 | 
			
		||||
	public function getGoodsProduct(){
 | 
			
		||||
		$goodsId = (int)input('goodsId');
 | 
			
		||||
		$res['specs'] = db('goods_specs')->where(['goodsId'=>$goodsId])->field('productNo,specIds')->select();
 | 
			
		||||
		$res['goods'] = db('goods')->where(['goodsId'=>$goodsId])->field('marketPrice')->find();
 | 
			
		||||
		// dump($res);die;
 | 
			
		||||
		exit(json_encode($res));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//获取商品规格
 | 
			
		||||
	public function getGoodsSpecs(){
 | 
			
		||||
		$productNo = input('productNo');
 | 
			
		||||
		$res = db('goods_specs')->where(['productNo'=>$productNo])->field('specIds,marketPrice')->find();
 | 
			
		||||
		$specs = explode(':',$res['specIds']);
 | 
			
		||||
		$data = db('spec_items')->where(['itemId'=>['in',$specs]])->select();
 | 
			
		||||
		$rs['itemName'] = implode(',',array_column($data,'itemName'));
 | 
			
		||||
		$rs['marketPrice'] = $res['marketPrice'];
 | 
			
		||||
		exit(json_encode($rs));
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取违规的商品
 | 
			
		||||
	 */
 | 
			
		||||
	public function illegalByPage(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->illegalByPage();
 | 
			
		||||
		$rs['status'] = 1;
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取已设置限时价格的商品
 | 
			
		||||
	 */
 | 
			
		||||
	public function limitPriceByPage(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->limitPriceByPage();
 | 
			
		||||
		$rs['status'] = 1;
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取指定显示价格的商品的商品
 | 
			
		||||
	 */
 | 
			
		||||
	public function getLimitGoods(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->getLimitGoods();
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 跳去新增限时价格商品页面
 | 
			
		||||
	 */
 | 
			
		||||
	public function addLimitGoods(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->addLimitGoods();
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 跳去编辑限时价格商品页面
 | 
			
		||||
	 */
 | 
			
		||||
	public function editLimitGoods(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->editLimitGoods();
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 删除显示价格商品
 | 
			
		||||
	 */
 | 
			
		||||
	public function delLimitGoods(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->delLimitGoods();
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 跳去新增页面
 | 
			
		||||
	 */
 | 
			
		||||
    public function add(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	$object = $m->getEModel('goods');
 | 
			
		||||
        $shopId=(int)session('WST_USER.shopId');
 | 
			
		||||
  //       $object['pay']=db('shop_pay')->where(['shopId'=>$shopId,'status'=>1])->find();
 | 
			
		||||
		// $object['isEct']=0;
 | 
			
		||||
        $object['ectPayRatio'] = db('payments')->where(['payCode'=>'ect'])->value('payRatio');
 | 
			
		||||
    	$object['goodsSn'] = WSTGoodsNo();
 | 
			
		||||
    	$object['productNo'] = WSTGoodsNo();
 | 
			
		||||
    	$object['goodsImg'] = WSTConf('CONF.goodsLogo');
 | 
			
		||||
		$object['ectPay']=0;//db('goods')->alias('g')->join('goods_ectpay ge','ge.goodsId=g.goodsId','left')->value('ectPay');
 | 
			
		||||
        $object['alone'] =0;
 | 
			
		||||
        $object['basicsMoney'] = 0;
 | 
			
		||||
        $aloneShop = db('alone_shops')->alias('as')->join('__SHOPS__ s','as.shopId=s.shopId')->where(['as.dataFlag'=>'1','as.shopId'=>$shopId])->value('as.shopId');
 | 
			
		||||
        if($aloneShop){
 | 
			
		||||
            $object['alone'] =1;
 | 
			
		||||
        }
 | 
			
		||||
		//dump($object); 
 | 
			
		||||
    	$data = ['object'=>$object,'src'=>'add'];
 | 
			
		||||
    	return $this->fetch('shops/goods/edit',$data);
 | 
			
		||||
    } 
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     * 新增商品
 | 
			
		||||
     */
 | 
			
		||||
    public function toAdd(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	return $m->add();
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     * 跳去编辑页面
 | 
			
		||||
     */
 | 
			
		||||
    public function edit(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	$object = $m->getById(input('get.id'));
 | 
			
		||||
		$shopId=(int)session('WST_USER.shopId');
 | 
			
		||||
		// $object['pay']=db('shop_pay')->where(['shopId'=>$shopId,'status'=>1])->find();
 | 
			
		||||
		// //$object['pay']=1;
 | 
			
		||||
		// if($object['pay']){
 | 
			
		||||
		// 	$object['isEct']=db('goods_pay')->where('goodsId',$object['goodsId'])->value('ectPay');
 | 
			
		||||
		// 	//$object['isOnline']=db('goods_pay')->where('goodsId',$object['goodsId'])->value('onlinePay');
 | 
			
		||||
		// }
 | 
			
		||||
        $object['ectPayRatio'] = db('payments')->where(['payCode'=>'ect'])->value('payRatio');
 | 
			
		||||
    	if($object['goodsImg']=='')$object['goodsImg'] = WSTConf('CONF.goodsLogo');
 | 
			
		||||
        $object['ectPay']=0;
 | 
			
		||||
        if($object['basicsMoney'] == '') $object['basicsMoney'] = 0;
 | 
			
		||||
        $object['alone'] =0;
 | 
			
		||||
        $aloneShop = db('alone_shops')->alias('as')->join('__SHOPS__ s','as.shopId=s.shopId')->where(['as.dataFlag'=>'1','as.shopId'=>$shopId])->value('as.shopId');
 | 
			
		||||
        if($aloneShop){
 | 
			
		||||
            $object['alone'] =1;
 | 
			
		||||
        }
 | 
			
		||||
    	$data = ['object'=>$object,'src'=>input('src')];
 | 
			
		||||
    	return $this->fetch('shops/goods/edit',$data);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     * 编辑商品
 | 
			
		||||
     */
 | 
			
		||||
    public function toEdit(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	return $m->edit();
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 删除商品
 | 
			
		||||
     */
 | 
			
		||||
    public function del(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	return $m->del();
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取商品规格属性
 | 
			
		||||
     */
 | 
			
		||||
    public function getSpecAttrs(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	return $m->getSpecAttrs();
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 进行商品搜索
 | 
			
		||||
     */
 | 
			
		||||
    public function search(){
 | 
			
		||||
    	//获取商品记录
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	$data = [];
 | 
			
		||||
    	$data['isStock'] = Input('isStock/d');
 | 
			
		||||
    	$data['isNew'] = Input('isNew/d');
 | 
			
		||||
        $data['isFreeShipping'] = input('isFreeShipping/d');
 | 
			
		||||
    	$data['orderBy'] = Input('orderBy/d');
 | 
			
		||||
    	$data['order'] = Input('order/d',1);
 | 
			
		||||
    	$data['keyword'] = input('keyword');
 | 
			
		||||
    	$data['sprice'] = Input('sprice/d');
 | 
			
		||||
    	$data['eprice'] = Input('eprice/d');
 | 
			
		||||
 | 
			
		||||
        $data['areaId'] = (int)Input('areaId');
 | 
			
		||||
        $aModel = model('home/areas');
 | 
			
		||||
 | 
			
		||||
        // 获取地区
 | 
			
		||||
        $data['area1'] = $data['area2'] = $data['area3'] = $aModel->listQuery(); // 省级
 | 
			
		||||
 | 
			
		||||
        // 如果有筛选地区 获取上级地区信息
 | 
			
		||||
        if($data['areaId']!==0){
 | 
			
		||||
            $areaIds = $aModel->getParentIs($data['areaId']);
 | 
			
		||||
            /*
 | 
			
		||||
              2 => int 440000
 | 
			
		||||
              1 => int 440100
 | 
			
		||||
              0 => int 440106
 | 
			
		||||
            */
 | 
			
		||||
            $selectArea = [];
 | 
			
		||||
            $areaName = '';
 | 
			
		||||
            foreach($areaIds as $k=>$v){
 | 
			
		||||
                $a = $aModel->getById($v);
 | 
			
		||||
                $areaName .=$a['areaName'];
 | 
			
		||||
                $selectArea[] = $a;
 | 
			
		||||
            }
 | 
			
		||||
            // 地区完整名称
 | 
			
		||||
            $selectArea['areaName'] = $areaName;
 | 
			
		||||
            // 当前选择的地区
 | 
			
		||||
            $data['areaInfo'] = $selectArea;
 | 
			
		||||
 | 
			
		||||
            $data['area2'] = $aModel->listQuery($areaIds[2]); // 广东的下级
 | 
			
		||||
 
 | 
			
		||||
            $data['area3'] = $aModel->listQuery($areaIds[1]); // 广州的下级
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
    	$data['goodsPage'] = $m->pageQuery();
 | 
			
		||||
    	return $this->fetch("goods_search",$data);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取商品列表
 | 
			
		||||
     */
 | 
			
		||||
    public function lists(){
 | 
			
		||||
    	$catId = Input('cat/d');
 | 
			
		||||
    	$goodsCatIds = model('GoodsCats')->getParentIs($catId);
 | 
			
		||||
    	reset($goodsCatIds);
 | 
			
		||||
    	//填充参数
 | 
			
		||||
    	$data = [];
 | 
			
		||||
    	$data['catId'] = $catId;
 | 
			
		||||
    	$data['isStock'] = Input('isStock/d');
 | 
			
		||||
    	$data['isNew'] = Input('isNew/d');
 | 
			
		||||
        $data['isFreeShipping'] = input('isFreeShipping/d');
 | 
			
		||||
    	$data['orderBy'] = Input('orderBy/d');
 | 
			
		||||
    	$data['order'] = Input('order/d',1);
 | 
			
		||||
    	$data['sprice'] = Input('sprice');
 | 
			
		||||
    	$data['eprice'] = Input('eprice');
 | 
			
		||||
    	$data['attrs'] = [];
 | 
			
		||||
 | 
			
		||||
        $data['areaId'] = (int)Input('areaId');
 | 
			
		||||
        $aModel = model('home/areas');
 | 
			
		||||
 | 
			
		||||
        // 获取地区
 | 
			
		||||
        $data['area1'] = $data['area2'] = $data['area3'] = $aModel->listQuery(); // 省级
 | 
			
		||||
 | 
			
		||||
        // 如果有筛选地区 获取上级地区信息
 | 
			
		||||
        if($data['areaId']!==0){
 | 
			
		||||
            $areaIds = $aModel->getParentIs($data['areaId']);
 | 
			
		||||
            /*
 | 
			
		||||
              2 => int 440000
 | 
			
		||||
              1 => int 440100
 | 
			
		||||
              0 => int 440106
 | 
			
		||||
            */
 | 
			
		||||
            $selectArea = [];
 | 
			
		||||
            $areaName = '';
 | 
			
		||||
            foreach($areaIds as $k=>$v){
 | 
			
		||||
                $a = $aModel->getById($v);
 | 
			
		||||
                $areaName .=$a['areaName'];
 | 
			
		||||
                $selectArea[] = $a;
 | 
			
		||||
            }
 | 
			
		||||
            // 地区完整名称
 | 
			
		||||
            $selectArea['areaName'] = $areaName;
 | 
			
		||||
            // 当前选择的地区
 | 
			
		||||
            $data['areaInfo'] = $selectArea;
 | 
			
		||||
 | 
			
		||||
            $data['area2'] = $aModel->listQuery($areaIds[2]); // 广东的下级
 | 
			
		||||
 
 | 
			
		||||
            $data['area3'] = $aModel->listQuery($areaIds[1]); // 广州的下级
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
    	$vs = input('vs');
 | 
			
		||||
    	$vs = ($vs!='')?explode(',',$vs):[];
 | 
			
		||||
    	foreach ($vs as $key => $v){
 | 
			
		||||
    		if($v=='' || $v==0)continue;
 | 
			
		||||
    		$v = (int)$v;
 | 
			
		||||
    		$data['attrs']['v_'.$v] = input('v_'.$v);
 | 
			
		||||
    	}
 | 
			
		||||
    	$data['vs'] = $vs;
 | 
			
		||||
 | 
			
		||||
    	$brandIds = Input('brand');
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        $bgIds = [];// 品牌下的商品Id
 | 
			
		||||
        if(!empty($vs)){
 | 
			
		||||
            // 存在筛选条件,取出符合该条件的商品id,根据商品id获取可选品牌
 | 
			
		||||
            $goodsId = model('goods')->filterByAttributes();
 | 
			
		||||
            $data['brandFilter'] = model('Brands')->canChoseBrands($goodsId);
 | 
			
		||||
        }else{
 | 
			
		||||
           // 取出分类下包含商品的品牌
 | 
			
		||||
           $data['brandFilter'] = model('Brands')->goodsListQuery((int)current($goodsCatIds));
 | 
			
		||||
        }
 | 
			
		||||
        if(!empty($brandIds))$bgIds = model('Brands')->getGoodsIds($brandIds);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    	$data['price'] = Input('price');
 | 
			
		||||
    	//封装当前选中的值
 | 
			
		||||
    	$selector = [];
 | 
			
		||||
    	//处理品牌
 | 
			
		||||
        $brandIds = explode(',',$brandIds);
 | 
			
		||||
        $bIds = $brandNames = [];
 | 
			
		||||
        foreach($brandIds as $bId){
 | 
			
		||||
        	if($bId>0){
 | 
			
		||||
        		foreach ($data['brandFilter'] as $key =>$v){
 | 
			
		||||
        			if($v['brandId']==$bId){
 | 
			
		||||
                        array_push($bIds, $v['brandId']);
 | 
			
		||||
                        array_push($brandNames, $v['brandName']);
 | 
			
		||||
                    }
 | 
			
		||||
        		}
 | 
			
		||||
                $selector[] = ['id'=>join(',',$bIds),'type'=>'brand','label'=>"品牌","val"=>join('、',$brandNames)];
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        // 当前是否有品牌筛选
 | 
			
		||||
        if(!empty($selector)){
 | 
			
		||||
            $_s[] = $selector[count($selector)-1];
 | 
			
		||||
            $selector = $_s;
 | 
			
		||||
            unset($data['brandFilter']);
 | 
			
		||||
        }
 | 
			
		||||
        $data['brandId'] = Input('brand');
 | 
			
		||||
 | 
			
		||||
    	//处理价格
 | 
			
		||||
    	if($data['sprice']!='' && $data['eprice']!=''){
 | 
			
		||||
    		$selector[] = ['id'=>0,'type'=>'price','label'=>"价格","val"=>$data['sprice']."-".$data['eprice']];
 | 
			
		||||
    	}
 | 
			
		||||
        if($data['sprice']!='' && $data['eprice']==''){
 | 
			
		||||
        	$selector[] = ['id'=>0,'type'=>'price','label'=>"价格","val"=>$data['sprice']."以上"];
 | 
			
		||||
    	}
 | 
			
		||||
        if($data['sprice']=='' && $data['eprice']!=''){
 | 
			
		||||
        	$selector[] = ['id'=>0,'type'=>'price','label'=>"价格","val"=>"0-".$data['eprice']];
 | 
			
		||||
    	}
 | 
			
		||||
    	//处理已选属性
 | 
			
		||||
    	$goodsFilter = model('Attributes')->listQueryByFilter($catId);
 | 
			
		||||
    	$ngoodsFilter = [];
 | 
			
		||||
        if(!empty($vs)){
 | 
			
		||||
            // 存在筛选条件,取出符合该条件的商品id,根据商品id获取可选属性进行拼凑
 | 
			
		||||
            $goodsId = model('goods')->filterByAttributes();
 | 
			
		||||
                // 如果同时有筛选品牌,则与品牌下的商品Id取交集
 | 
			
		||||
            if(!empty($bgIds))$goodsId = array_intersect($bgIds,$goodsId);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            $attrs = model('Attributes')->getAttribute($goodsId);
 | 
			
		||||
            // 去除已选择属性
 | 
			
		||||
            foreach ($attrs as $key =>$v){
 | 
			
		||||
                if(!in_array($v['attrId'],$vs))$ngoodsFilter[] = $v;
 | 
			
		||||
            }
 | 
			
		||||
        }else{
 | 
			
		||||
            if(!empty($bgIds))$goodsFilter = model('Attributes')->getAttribute($bgIds);// 存在品牌筛选
 | 
			
		||||
            // 当前无筛选条件,取出分类下所有属性
 | 
			
		||||
        	foreach ($goodsFilter as $key =>$v){
 | 
			
		||||
        		if(!in_array($v['attrId'],$vs))$ngoodsFilter[] = $v;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        if(count($vs)>0){
 | 
			
		||||
            $_vv = [];
 | 
			
		||||
            $_attrArr = [];
 | 
			
		||||
    		foreach ($goodsFilter as $key =>$v){
 | 
			
		||||
    			if(in_array($v['attrId'],$vs)){
 | 
			
		||||
    				foreach ($v['attrVal'] as $key2 =>$vv){
 | 
			
		||||
    					if(strstr(input('v_'.$v['attrId']),$vv)!==false){
 | 
			
		||||
                            array_push($_vv, $vv);
 | 
			
		||||
                            $_attrArr[$v['attrId']]['attrName'] = $v['attrName'];
 | 
			
		||||
                            $_attrArr[$v['attrId']]['val'] = $_vv;
 | 
			
		||||
                        }
 | 
			
		||||
    				}
 | 
			
		||||
                    $_vv = [];
 | 
			
		||||
    			}
 | 
			
		||||
    		}
 | 
			
		||||
            foreach($_attrArr as $k1=>$v1){
 | 
			
		||||
                $selector[] = ['id'=>$k1,'type'=>'v_'.$k1,'label'=>$v1['attrName'],"val"=>join('、',$v1['val'])];
 | 
			
		||||
            }
 | 
			
		||||
    	}
 | 
			
		||||
    	$data['selector'] = $selector;
 | 
			
		||||
    	$data['goodsFilter'] = $ngoodsFilter;
 | 
			
		||||
    	//获取商品记录
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	$data['priceGrade'] = $m->getPriceGrade($goodsCatIds);
 | 
			
		||||
    	$data['goodsPage'] = $m->pageQuery($goodsCatIds);
 | 
			
		||||
        $catPaths = model('goodsCats')->getParentNames($catId);
 | 
			
		||||
        $data['catNamePath'] = '全部商品分类';
 | 
			
		||||
        if(!empty($catPaths))$data['catNamePath'] = implode(' - ',$catPaths);
 | 
			
		||||
        // 商品分类下级
 | 
			
		||||
        $where = ['parentId'=>0,'dataFlag'=>1];
 | 
			
		||||
        if($catId!='')$where['parentId']=$catId;
 | 
			
		||||
        $goodsCats = model('goodsCats')->field('catId,catName')->where($where)->select();
 | 
			
		||||
        $this->assign('goodsCats',$goodsCats);
 | 
			
		||||
    	return $this->fetch("goods_list",$data);
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 查看商品详情
 | 
			
		||||
     */
 | 
			
		||||
    public function detail(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	$goods = $m->getBySale(input('id/d',0));
 | 
			
		||||
        $key=input('key');
 | 
			
		||||
    	if(!empty($goods)){
 | 
			
		||||
            //判断是否药品
 | 
			
		||||
            $goods_cat=strpos($goods['goodsCatIdPath'],'389');
 | 
			
		||||
            if($goods_cat!==false && $key==''){
 | 
			
		||||
                return $this->fetch("error_lost");
 | 
			
		||||
            }
 | 
			
		||||
            if((int)session('WST_USER.userId')!=""){
 | 
			
		||||
            $history_data['userId']=(int)session('WST_USER.userId');
 | 
			
		||||
            $history_data['goodsId']=$goods['goodsId'];
 | 
			
		||||
            $history_data['path']='1';
 | 
			
		||||
            $history_data['create_time']=time();
 | 
			
		||||
            $result=db('page_view')->insert($history_data);
 | 
			
		||||
        }
 | 
			
		||||
    	    $history = cookie("history_goods");
 | 
			
		||||
    	    $history = is_array($history)?$history:[];
 | 
			
		||||
            array_unshift($history, (string)$goods['goodsId']);
 | 
			
		||||
            $history = array_values(array_unique($history));
 | 
			
		||||
            
 | 
			
		||||
			if(!empty($history)){
 | 
			
		||||
				cookie("history_goods",$history,25920000);
 | 
			
		||||
			}
 | 
			
		||||
            // 商品详情延迟加载
 | 
			
		||||
            $goods['goodsDesc']=htmlspecialchars_decode($goods['goodsDesc']);
 | 
			
		||||
            //修改匹配规则 适应oss 地址 mark 20180615 by zl
 | 
			
		||||
            // $rule = '/<img src="\/(upload.*?)"/';
 | 
			
		||||
            $rule = '/<img src=".*?\/(upload.*?)"/';
 | 
			
		||||
            preg_match_all($rule, $goods['goodsDesc'], $images);
 | 
			
		||||
            foreach($images[0] as $k=>$v){
 | 
			
		||||
                //mark by cheng商品详情换成远程oss图片20180313
 | 
			
		||||
                //$goods['goodsDesc'] = str_replace($v, "<img class='goodsImg' data-original=\"__ROOT__/".WSTImg($images[1][$k],3)."\"", $goods['goodsDesc']);
 | 
			
		||||
                $goods['goodsDesc'] = str_replace($v, "<img class='goodsImg' data-original=\"__IMGURL__/".WSTImg($images[1][$k],0)."\"", $goods['goodsDesc']);
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            hook('afterGetGoods',['params'=>&$goods]);
 | 
			
		||||
            $goods['is_seckilling']=isset($goods['is_seckilling'])?$goods['is_seckilling']:0;
 | 
			
		||||
			$this->assign('goods',$goods);
 | 
			
		||||
            $this->assign('shop',$goods['shop']);
 | 
			
		||||
	    	return $this->fetch("goods_detail");
 | 
			
		||||
    	}else{
 | 
			
		||||
    		return $this->fetch("error_lost");
 | 
			
		||||
    	}
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 预警库存
 | 
			
		||||
     */
 | 
			
		||||
    public function stockwarnbypage(){
 | 
			
		||||
    	return $this->fetch("shops/stockwarn/list");
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取预警库存列表
 | 
			
		||||
     */
 | 
			
		||||
    public function stockByPage(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	$rs = $m->stockByPage();
 | 
			
		||||
    	$rs['status'] = 1;
 | 
			
		||||
    	return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 修改预警库存
 | 
			
		||||
     */
 | 
			
		||||
    public function editwarnStock(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	return $m->editwarnStock();
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取商品浏览记录
 | 
			
		||||
	 */
 | 
			
		||||
	public function historyByGoods(){
 | 
			
		||||
		$rs = model('Tags')->historyByGoods(8);
 | 
			
		||||
		return WSTReturn('',1,$rs);
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 *  记录对比商品
 | 
			
		||||
	 */
 | 
			
		||||
	public function contrastGoods(){
 | 
			
		||||
		$id = (int)input('post.id');
 | 
			
		||||
		$contras = cookie("contras_goods");
 | 
			
		||||
		if($id>0){
 | 
			
		||||
			$m = new M();
 | 
			
		||||
			$goods = $m->getBySale($id);
 | 
			
		||||
			$catId = explode('_',$goods['goodsCatIdPath']);
 | 
			
		||||
			$catId = $catId[0];
 | 
			
		||||
			if(isset($contras['catId']) && $catId!=$contras['catId'])return WSTReturn('请选择同分类对比',-1);
 | 
			
		||||
			if(isset($contras['list']) && count($contras['list'])>3)return WSTReturn('对比栏已满',-1);
 | 
			
		||||
			if(!isset($contras['catId']))$contras['catId'] = $catId;
 | 
			
		||||
			$contras['list'][$id] = $id;
 | 
			
		||||
			cookie("contras_goods",$contras,25920000);
 | 
			
		||||
		}
 | 
			
		||||
		if(isset($contras['list'])){
 | 
			
		||||
			$m = new M();
 | 
			
		||||
			$list = [];
 | 
			
		||||
			foreach($contras['list'] as $k=>$v){
 | 
			
		||||
				$list[] = $m->getBySale($v);
 | 
			
		||||
			}
 | 
			
		||||
			return WSTReturn('',1,$list);
 | 
			
		||||
		}else{
 | 
			
		||||
			return WSTReturn('',1);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 *  删除对比商品
 | 
			
		||||
	 */
 | 
			
		||||
	public function contrastDel(){
 | 
			
		||||
		$id = (int)input('post.id');
 | 
			
		||||
		$contras = cookie("contras_goods");
 | 
			
		||||
		if($id>0 && isset($contras['list'])){
 | 
			
		||||
			unset($contras['list'][$id]);
 | 
			
		||||
			cookie("contras_goods",$contras,25920000);
 | 
			
		||||
		}else{
 | 
			
		||||
			cookie("contras_goods", null);
 | 
			
		||||
		}
 | 
			
		||||
		return WSTReturn('删除成功',1);
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 *  商品对比
 | 
			
		||||
	 */
 | 
			
		||||
	public function contrast(){
 | 
			
		||||
		$contras = cookie("contras_goods");
 | 
			
		||||
		$list = [];
 | 
			
		||||
		$list = $lists= $saleSpec = $shop = $score = $brand = $spec = [];
 | 
			
		||||
		if(isset($contras['list'])){
 | 
			
		||||
			$m = new M();
 | 
			
		||||
			foreach($contras['list'] as $key=>$value){
 | 
			
		||||
				$dara = $m->getBySale($value);
 | 
			
		||||
				if(isset($dara['saleSpec'])){
 | 
			
		||||
					foreach($dara['saleSpec'] as $ks=>$vs){
 | 
			
		||||
						if($vs['isDefault']==1){
 | 
			
		||||
							$dara['defaultSpec'] = $vs;
 | 
			
		||||
							$dara['defaultSpec']['ids'] = explode(':',$ks);
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
					$saleSpec[$value] = $dara['saleSpec'];
 | 
			
		||||
				}
 | 
			
		||||
				$list[] = $dara;
 | 
			
		||||
			}
 | 
			
		||||
			//第一个商品信息
 | 
			
		||||
			$goods = $list[0];
 | 
			
		||||
			//对比处理
 | 
			
		||||
			$shops['identical'] = $scores['identical'] = $brands['identical'] = 1;
 | 
			
		||||
			foreach($list as $k=>$v){
 | 
			
		||||
				$shop[$v['goodsId']] = $v['shop']['shopName'];
 | 
			
		||||
				if($goods['shop']['shopId']!=$v['shop']['shopId'])$shops['identical'] = 0;
 | 
			
		||||
				$score[$v['goodsId']] = $v['scores']['totalScores'];
 | 
			
		||||
				if($goods['scores']['totalScores']!=$v['scores']['totalScores'])$scores['identical'] = 0;
 | 
			
		||||
				$brand[$v['goodsId']] = $v['brandName'];
 | 
			
		||||
				if($goods['brandId']!=$v['brandId'])$brands['identical'] = 0;
 | 
			
		||||
				if(isset($v['spec'])){
 | 
			
		||||
					foreach($v['spec'] as $k2=>$v2){
 | 
			
		||||
						$spec[$k2]['identical'] = 0;
 | 
			
		||||
						$spec[$k2]['type'] = 'spec';
 | 
			
		||||
						$spec[$k2]['name'] = $v2['name'];
 | 
			
		||||
						$spec[$k2]['catId'] = $k2;
 | 
			
		||||
						foreach($v2['list'] as $ks22=>$vs22){
 | 
			
		||||
							$v['spec'][$k2]['list'][$ks22]['isDefault'] = (in_array($vs22['itemId'],$v['defaultSpec']['ids']))?1:0;
 | 
			
		||||
						}
 | 
			
		||||
						$spec[$k2]['info'][$v['goodsId']] = $v['spec'][$k2];
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			$shops['name'] = '店铺';
 | 
			
		||||
			$shops['type'] = 'shop';
 | 
			
		||||
			$shops['info'] =  $shop;
 | 
			
		||||
			$lists[] = $shops;
 | 
			
		||||
			$scores['name'] = '商品评分';
 | 
			
		||||
			$scores['type'] = 'score';
 | 
			
		||||
			$scores['info'] =  $score;
 | 
			
		||||
			$lists[] = $scores;
 | 
			
		||||
			$brands['name'] = '品牌';
 | 
			
		||||
			$brands['type'] = 'brand';
 | 
			
		||||
			$brands['info'] =  $brand;
 | 
			
		||||
			$lists[] = $brands;
 | 
			
		||||
			foreach($spec as $k3=>$v3){
 | 
			
		||||
				$lists[] = $v3;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		$data['list'] = $list;
 | 
			
		||||
		$data['lists'] = $lists;
 | 
			
		||||
		$data['saleSpec'] = $saleSpec;
 | 
			
		||||
		$this->assign('data',$data);
 | 
			
		||||
		return $this->fetch("goods_contrast");
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										60
									
								
								hyhproject/home2/controller/Goodsappraises.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										60
									
								
								hyhproject/home2/controller/Goodsappraises.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,60 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\common\model\GoodsAppraises as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 评价控制器
 | 
			
		||||
 */
 | 
			
		||||
class GoodsAppraises extends Base{
 | 
			
		||||
	protected $beforeActionList = [
 | 
			
		||||
          'checkAuth' =>  ['except'=>'userappraise,getbyid'],
 | 
			
		||||
          'checkShopAuth'=>['only'=>'index,querybypage,shopreply']
 | 
			
		||||
    ];
 | 
			
		||||
	/**
 | 
			
		||||
	* 获取评价列表 商家
 | 
			
		||||
	*/
 | 
			
		||||
	public function index(){
 | 
			
		||||
		return $this->fetch('shops/goodsappraises/list');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	* 获取评价列表 用户
 | 
			
		||||
	*/
 | 
			
		||||
	public function myAppraise(){
 | 
			
		||||
		return $this->fetch('users/orders/appraise_manage');
 | 
			
		||||
	}
 | 
			
		||||
	// 获取评价列表 商家
 | 
			
		||||
	public function queryByPage(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		return $m->queryByPage();
 | 
			
		||||
	}
 | 
			
		||||
	// 获取评价列表 用户
 | 
			
		||||
	public function userAppraise(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		return $m->userAppraise();
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	* 添加评价
 | 
			
		||||
	*/
 | 
			
		||||
	public function add(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->add();
 | 
			
		||||
		return $rs;
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	* 根据商品id取评论
 | 
			
		||||
	*/
 | 
			
		||||
	public function getById(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->getById();
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	* 商家回复评价
 | 
			
		||||
	*/
 | 
			
		||||
	public function shopReply(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		return $m->shopReply();
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										18
									
								
								hyhproject/home2/controller/Goodscats.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										18
									
								
								hyhproject/home2/controller/Goodscats.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\common\model\GoodsCats as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 商品分类控制器
 | 
			
		||||
 */
 | 
			
		||||
class Goodscats extends Base{
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取列表
 | 
			
		||||
     */
 | 
			
		||||
    public function listQuery(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	$rs = $m->listQuery(input('parentId/d',0));
 | 
			
		||||
    	return WSTReturn("", 1,$rs);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										61
									
								
								hyhproject/home2/controller/Goodsconsult.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										61
									
								
								hyhproject/home2/controller/Goodsconsult.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,61 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\common\model\GoodsConsult as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 商品咨询控制器
 | 
			
		||||
 */
 | 
			
		||||
class GoodsConsult extends Base{
 | 
			
		||||
    protected $beforeActionList = [
 | 
			
		||||
          'checkShopAuth'=>['only'=>'pageQuery,shopReplyConsult,reply']
 | 
			
		||||
    ];
 | 
			
		||||
	/**
 | 
			
		||||
	* 根据商品id获取商品咨询
 | 
			
		||||
	*/
 | 
			
		||||
    public function listQuery(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        $rs = $m->listQuery();
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
    * 新增
 | 
			
		||||
    */
 | 
			
		||||
    public function add(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	return $m->add();
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
	* 根据店铺id获取商品咨询
 | 
			
		||||
	*/
 | 
			
		||||
    public function pageQuery(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        $rs = $m->pageQuery();
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
	* 获取商品咨询 商家
 | 
			
		||||
	*/
 | 
			
		||||
	public function shopReplyConsult(){
 | 
			
		||||
		return $this->fetch('shops/goodsconsult/list');
 | 
			
		||||
	}
 | 
			
		||||
    /**
 | 
			
		||||
    * 商家回复
 | 
			
		||||
    */
 | 
			
		||||
    public function reply(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	return $m->reply();
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
    * 用户-商品咨询
 | 
			
		||||
    */
 | 
			
		||||
    public function myConsult(){
 | 
			
		||||
        return $this->fetch('users/my_consult');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
    * 用户-商品咨询列表查询
 | 
			
		||||
    */
 | 
			
		||||
    public function myConsultByPage(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        return $m->myConsultByPage();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										81
									
								
								hyhproject/home2/controller/Goodsvirtuals.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										81
									
								
								hyhproject/home2/controller/Goodsvirtuals.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,81 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\home\model\GoodsVirtuals as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 虚拟商品卡券控制器
 | 
			
		||||
 */
 | 
			
		||||
class Goodsvirtuals extends Base{
 | 
			
		||||
    protected $beforeActionList = ['checkShopAuth'];
 | 
			
		||||
	/**
 | 
			
		||||
     * 查看虚拟商品库存
 | 
			
		||||
     */
 | 
			
		||||
    public function stock(){
 | 
			
		||||
    	$src = input('src','sale');
 | 
			
		||||
    	if(!in_array($src,['sale','audit','store','stockWarnByPage','illegal']))$src = 'sale';
 | 
			
		||||
    	$this->assign('src',$src);
 | 
			
		||||
        $this->assign('id',(int)input('id'));
 | 
			
		||||
        return $this->fetch("shops/goodsvirtuals/list");
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取虚拟商品库存列表
 | 
			
		||||
     */
 | 
			
		||||
    public function stockByPage(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        $rs = $m->stockByPage();
 | 
			
		||||
        $rs['status'] = 1;
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     *  跳去新增页
 | 
			
		||||
     */
 | 
			
		||||
    public function toAdd(){
 | 
			
		||||
        $this->assign('object',['cardNo'=>'','cardPwd'=>'','id'=>0]);
 | 
			
		||||
        return $this->fetch('shops/goodsvirtuals/edit');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     *  跳去编辑页
 | 
			
		||||
     */
 | 
			
		||||
    public function toEdit(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        $rs = $m->get((int)input('id'));
 | 
			
		||||
        $this->assign('object',$rs);
 | 
			
		||||
        return $this->fetch('shops/goodsvirtuals/edit');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 生成卡券
 | 
			
		||||
     */
 | 
			
		||||
    public function add(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
        $rs = $m->add();
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 删除
 | 
			
		||||
     */
 | 
			
		||||
    public function del(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
        $rs = $m->del();
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 编辑
 | 
			
		||||
     */
 | 
			
		||||
    public function edit(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
        $rs = $m->edit();
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 导入卡券
 | 
			
		||||
     */
 | 
			
		||||
    public function importCards(){
 | 
			
		||||
        $rs = WSTUploadFile();
 | 
			
		||||
        if(json_decode($rs)->status==1){
 | 
			
		||||
            $m = new M();
 | 
			
		||||
            $rss = $m->importCards($rs);
 | 
			
		||||
            return $rss;
 | 
			
		||||
        }
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										40
									
								
								hyhproject/home2/controller/Helpcenter.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										40
									
								
								hyhproject/home2/controller/Helpcenter.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 */
 | 
			
		||||
class Helpcenter extends Base{
 | 
			
		||||
    public function index(){
 | 
			
		||||
    	return $this->view();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
	public function view(){
 | 
			
		||||
		//获取左侧列表
 | 
			
		||||
		$m = model('home/Articles');
 | 
			
		||||
		$list = $m->helpList();
 | 
			
		||||
		$data = $m->getHelpById();
 | 
			
		||||
		$this->assign('data',$data);
 | 
			
		||||
		$this->assign('list',$list);
 | 
			
		||||
		//面包屑导航
 | 
			
		||||
		$bcNav = [];
 | 
			
		||||
		if(!empty($data)){
 | 
			
		||||
			$bcNav = $this->bcNav();
 | 
			
		||||
		}
 | 
			
		||||
		$this->assign('bcNav',$bcNav);
 | 
			
		||||
		return $this->fetch('articles/help');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	*  记录解决情况
 | 
			
		||||
	*/
 | 
			
		||||
	public function recordSolve(){
 | 
			
		||||
		$m = model('home/Articles');
 | 
			
		||||
		return $m->recordSolve();
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	* 面包屑导航
 | 
			
		||||
	*/
 | 
			
		||||
	public function bcNav(){
 | 
			
		||||
		$m = model('home/Articles');
 | 
			
		||||
		return $m->bcNav();
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										29
									
								
								hyhproject/home2/controller/Imports.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										29
									
								
								hyhproject/home2/controller/Imports.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\home\model\Imports as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 默认控制器
 | 
			
		||||
 */
 | 
			
		||||
class Imports extends Base{
 | 
			
		||||
	protected $beforeActionList = ['checkShopAuth'];
 | 
			
		||||
	/**
 | 
			
		||||
	 * 数据导入首页
 | 
			
		||||
	 */
 | 
			
		||||
	public function index(){
 | 
			
		||||
		return $this->fetch('shops/import');
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
    /**
 | 
			
		||||
     * 上传商品数据
 | 
			
		||||
     */
 | 
			
		||||
    public function importGoods(){
 | 
			
		||||
    	$rs = WSTUploadFile();
 | 
			
		||||
		if(json_decode($rs)->status==1){
 | 
			
		||||
			$m = new M();
 | 
			
		||||
    	    $rss = $m->importGoods($rs);
 | 
			
		||||
    	    return $rss;
 | 
			
		||||
		}
 | 
			
		||||
    	return $rs;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										69
									
								
								hyhproject/home2/controller/Index.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										69
									
								
								hyhproject/home2/controller/Index.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,69 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 默认控制器
 | 
			
		||||
 */
 | 
			
		||||
class Index extends Base{
 | 
			
		||||
	protected $beforeActionList = [
 | 
			
		||||
          'checkAuth' =>  ['only'=>'getsysmessages']
 | 
			
		||||
    ];
 | 
			
		||||
    public function index(){    
 | 
			
		||||
    	$categorys = model('GoodsCats')->getFloors();
 | 
			
		||||
    	$this->assign('floors',$categorys);
 | 
			
		||||
        $this->assign('hideCategory',1);
 | 
			
		||||
 | 
			
		||||
        // 店铺街数据
 | 
			
		||||
        $shopStreet = model('shops')->indexShopQuery();
 | 
			
		||||
    	$this->assign('shopStreet',$shopStreet);
 | 
			
		||||
            //首页优惠券数据
 | 
			
		||||
      $m = new \addons\hyhcouponrec\model\Hyhcouponrec();
 | 
			
		||||
      $indexCouponsList = $m->indexCouponsList();
 | 
			
		||||
      //$indexCouponsList = model('/addons/hyhcouponrec/mode/hyhcouponrec')->indexCouponsList();
 | 
			
		||||
      $this->assign('indexCouponsList',$indexCouponsList);
 | 
			
		||||
      // dump(coupon_list());
 | 
			
		||||
    	return $this->fetch('index');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 保存目录ID
 | 
			
		||||
     */
 | 
			
		||||
    public function getMenuSession(){
 | 
			
		||||
    	$menuId = input("post.menuId");
 | 
			
		||||
    	$menuType = session('WST_USER.loginTarget');
 | 
			
		||||
    	session('WST_MENUID3'.$menuType,$menuId);
 | 
			
		||||
    } 
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取用户信息
 | 
			
		||||
     */
 | 
			
		||||
    public function getSysMessages(){
 | 
			
		||||
    	$rs = model('Systems')->getSysMessages();
 | 
			
		||||
    	return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 定位菜单以及跳转页面
 | 
			
		||||
     */
 | 
			
		||||
    public function position(){
 | 
			
		||||
    	$menuId = (int)input("post.menuId");
 | 
			
		||||
    	$menuType = ((int)input("post.menuType")==1)?1:0;
 | 
			
		||||
        $menus = model('HomeMenus')->getParentId($menuId);
 | 
			
		||||
        session('WST_MENID'.$menus['menuType'],$menus['parentId']);
 | 
			
		||||
    	session('WST_MENUID3'.$menuType,$menuId);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 转换url
 | 
			
		||||
     */
 | 
			
		||||
    public function transfor(){
 | 
			
		||||
        $data = input('param.');
 | 
			
		||||
        $url = $data['url'];
 | 
			
		||||
        unset($data['url']);
 | 
			
		||||
        echo Url($url,$data);
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 保存url
 | 
			
		||||
     */
 | 
			
		||||
    public function currenturl(){
 | 
			
		||||
    	session('WST_HO_CURRENTURL',input('url'));
 | 
			
		||||
    	return WSTReturn("", 1);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										62
									
								
								hyhproject/home2/controller/Informs.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										62
									
								
								hyhproject/home2/controller/Informs.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\common\model\Informs as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 订单投诉控制器
 | 
			
		||||
 */
 | 
			
		||||
class Informs extends Base{
 | 
			
		||||
    protected $beforeActionList = [
 | 
			
		||||
       'checkAuth'=>['only'=>'index,queryusercomplainbypage,complain,savecomplain,getusercomplaindetail'],
 | 
			
		||||
       'checkShopAuth'=>['only'=>'shopcomplain,queryshopcomplainbypage,getshopcomplaindetail,respond,saverespond']
 | 
			
		||||
    ];
 | 
			
		||||
    /******************************** 用户 ******************************************/
 | 
			
		||||
    /**
 | 
			
		||||
    * 查看举报列表
 | 
			
		||||
    */
 | 
			
		||||
	public function index(){
 | 
			
		||||
		return $this->fetch('users/informs/list_inform');
 | 
			
		||||
	}
 | 
			
		||||
    /**
 | 
			
		||||
    * 获取用户举报列表
 | 
			
		||||
    */    
 | 
			
		||||
    public function queryUserInformPage(){
 | 
			
		||||
        $m = model('Informs');
 | 
			
		||||
        return $m->queryUserInformByPage();
 | 
			
		||||
        
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 商品举报页面
 | 
			
		||||
     */
 | 
			
		||||
    public function inform(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
        $data = $m->inform();
 | 
			
		||||
        if($data['status'] == 1){
 | 
			
		||||
        $this->assign("data",$data);
 | 
			
		||||
        return $this->fetch("users/informs/informs");
 | 
			
		||||
        }else{
 | 
			
		||||
        $this->assign("message",$data['msg']);
 | 
			
		||||
        return $this->fetch("error_msg");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 保存举报信息
 | 
			
		||||
     */
 | 
			
		||||
    public function saveInform(){
 | 
			
		||||
        return model('Informs')->saveInform();
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 用户查举报详情
 | 
			
		||||
     */
 | 
			
		||||
    public function getUserInformDetail(){
 | 
			
		||||
        $data = model('Informs')->getUserInformDetail(0);
 | 
			
		||||
        $this->assign("data",$data);
 | 
			
		||||
        return $this->fetch("users/informs/inform_detail");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
   
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										48
									
								
								hyhproject/home2/controller/Invoices.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										48
									
								
								hyhproject/home2/controller/Invoices.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,48 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\common\model\Invoices as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 发票信息控制器
 | 
			
		||||
 */
 | 
			
		||||
class Invoices extends Base{
 | 
			
		||||
	/**
 | 
			
		||||
	* 
 | 
			
		||||
	*/
 | 
			
		||||
	public function index(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$data = $m->pageQuery();
 | 
			
		||||
		$this->assign('invoiceId',(int)input('invoiceId'));
 | 
			
		||||
		$this->assign('isInvoice',(int)input('isInvoice'));
 | 
			
		||||
		$this->assign('data',$data);
 | 
			
		||||
		return $this->fetch('invoices');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	* 查询
 | 
			
		||||
	*/
 | 
			
		||||
    public function pageQuery(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        return $m->pageQuery();
 | 
			
		||||
    }
 | 
			
		||||
	/**
 | 
			
		||||
	* 新增
 | 
			
		||||
	*/
 | 
			
		||||
    public function add(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        return $m->add();
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
	* 修改
 | 
			
		||||
	*/
 | 
			
		||||
    public function edit(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        return $m->edit();
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
	* 删除
 | 
			
		||||
	*/
 | 
			
		||||
    public function del(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        return $m->del();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										77
									
								
								hyhproject/home2/controller/Logmoneys.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										77
									
								
								hyhproject/home2/controller/Logmoneys.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,77 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\common\model\LogMoneys as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 资金流水控制器
 | 
			
		||||
 */
 | 
			
		||||
class Logmoneys extends Base{
 | 
			
		||||
    protected $beforeActionList = [
 | 
			
		||||
       'checkAuth'=>['only'=>'usermoneys,pageuserquery,touserrecharge'],
 | 
			
		||||
       'checkShopAuth'=>['only'=>'shopmoneys,pageshopquery,torecharge']
 | 
			
		||||
    ];
 | 
			
		||||
    /**
 | 
			
		||||
     * 查看用户资金流水
 | 
			
		||||
     */
 | 
			
		||||
	public function usermoneys(){
 | 
			
		||||
		$rs = model('Users')->getFieldsById((int)session('WST_USER.userId'),['lockMoney','userMoney','rechargeMoney']);
 | 
			
		||||
		$this->assign('object',$rs);
 | 
			
		||||
		return $this->fetch('users/logmoneys/list');
 | 
			
		||||
	}
 | 
			
		||||
    /**
 | 
			
		||||
     * 查看商户资金流水
 | 
			
		||||
     */
 | 
			
		||||
    public function shopmoneys(){
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $rs = model('Shops')->getFieldsById($shopId,['lockMoney','shopMoney','noSettledOrderFee','paymentMoney']);
 | 
			
		||||
        $rs['deposit'] = db('shops_deposit')->where(['shopId'=>$shopId])->field('payDeposit,cashDeposit,isFinish')->find();
 | 
			
		||||
        $this->assign('object',$rs);
 | 
			
		||||
        return $this->fetch('shops/logmoneys/list');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取用户数据
 | 
			
		||||
     */
 | 
			
		||||
    public function pageUserQuery(){
 | 
			
		||||
        $userId = (int)session('WST_USER.userId');
 | 
			
		||||
        $data = model('logMoneys')->pageQuery(0,$userId);
 | 
			
		||||
        return WSTReturn("", 1,$data);
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取商家数据
 | 
			
		||||
     */
 | 
			
		||||
    public function pageShopQuery(){
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $data = model('logMoneys')->pageQuery(1,$shopId);
 | 
			
		||||
        return WSTReturn("", 1,$data);
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取商家质保金流水
 | 
			
		||||
     */
 | 
			
		||||
    public function pageShopDeposit(){
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $data = model('logMoneys')->pageDeposit(1,$shopId);
 | 
			
		||||
        return WSTReturn("", 1,$data);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
	/**
 | 
			
		||||
	 * 充值[商家]
 | 
			
		||||
	 */
 | 
			
		||||
    public function toRecharge(){
 | 
			
		||||
    	$payments = model('common/payments')->recharePayments('1');
 | 
			
		||||
    	$this->assign('payments',$payments);
 | 
			
		||||
        $chargeItems = model('common/ChargeItems')->queryList();
 | 
			
		||||
        $this->assign('chargeItems',$chargeItems);
 | 
			
		||||
    	return $this->fetch('shops/recharge/pay_step1');
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     * 充值[用户]
 | 
			
		||||
     */
 | 
			
		||||
    public function toUserRecharge(){
 | 
			
		||||
    	$payments = model('common/payments')->recharePayments('1');
 | 
			
		||||
    	$this->assign('payments',$payments);
 | 
			
		||||
    	$chargeItems = model('common/ChargeItems')->queryList();
 | 
			
		||||
    	$this->assign('chargeItems',$chargeItems);
 | 
			
		||||
    	return $this->fetch('users/recharge/pay_step1');
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										66
									
								
								hyhproject/home2/controller/Messages.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										66
									
								
								hyhproject/home2/controller/Messages.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,66 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 商城消息控制器
 | 
			
		||||
 */
 | 
			
		||||
class Messages extends Base{
 | 
			
		||||
    protected $beforeActionList = ['checkAuth'];
 | 
			
		||||
    /**
 | 
			
		||||
    * 查看商城消息
 | 
			
		||||
    */
 | 
			
		||||
	public function index(){
 | 
			
		||||
		return $this->fetch('users/messages/list');
 | 
			
		||||
	}
 | 
			
		||||
   /**
 | 
			
		||||
    * 查看商城消息
 | 
			
		||||
    */
 | 
			
		||||
    public function shopMessage(){
 | 
			
		||||
        return $this->fetch('shops/messages/list');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
    * 获取数据
 | 
			
		||||
    */
 | 
			
		||||
    public function pageQuery(){
 | 
			
		||||
        $data = model('Messages')->pageQuery();
 | 
			
		||||
        return WSTReturn("", 1,$data);
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
    * 查看完整商城消息
 | 
			
		||||
    */
 | 
			
		||||
    public function showMsg(){
 | 
			
		||||
        $data = model('Messages')->getById();
 | 
			
		||||
        return $this->fetch('users/messages/show',['data'=>$data]);
 | 
			
		||||
    }
 | 
			
		||||
    public function showShopMsg(){
 | 
			
		||||
        $data = model('Messages')->getById();
 | 
			
		||||
        return $this->fetch('shops/messages/show',['data'=>$data]);
 | 
			
		||||
    }
 | 
			
		||||
	
 | 
			
		||||
    /**
 | 
			
		||||
    * 删除
 | 
			
		||||
    */
 | 
			
		||||
    public function del(){
 | 
			
		||||
    	$m = model('Home/Messages');
 | 
			
		||||
        $rs = $m->del();
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
    * 批量删除
 | 
			
		||||
    */
 | 
			
		||||
    public function batchDel(){
 | 
			
		||||
        $m = model('Home/Messages');
 | 
			
		||||
        $rs = $m->batchDel();
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
    * 标记为已读
 | 
			
		||||
    */
 | 
			
		||||
    public function batchRead(){
 | 
			
		||||
        $m = model('Home/Messages');
 | 
			
		||||
        $rs = $m->batchRead();
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										83
									
								
								hyhproject/home2/controller/News.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										83
									
								
								hyhproject/home2/controller/News.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,83 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 */
 | 
			
		||||
class News extends Base{
 | 
			
		||||
	/**
 | 
			
		||||
	*	根据分类id获取文章列表
 | 
			
		||||
	*/
 | 
			
		||||
	public function nList(){
 | 
			
		||||
		$m = model('home/articles');
 | 
			
		||||
		$pageObj = $m->nList();
 | 
			
		||||
		$news = $pageObj->toArray();
 | 
			
		||||
		// 分页页码
 | 
			
		||||
		$page = $pageObj->render();
 | 
			
		||||
		$this->assign('page',$page);
 | 
			
		||||
		//获取左侧列表
 | 
			
		||||
		$leftList = $m->NewsList();
 | 
			
		||||
		$this->assign('list',$leftList);
 | 
			
		||||
		$this->assign('newsList',$news['Rows']);
 | 
			
		||||
		$this->assign('catId',(int)input('catId'));
 | 
			
		||||
		//面包屑导航
 | 
			
		||||
		$bcNav = $this->bcNav();
 | 
			
		||||
		// 防止用户取出帮助中心分类
 | 
			
		||||
		foreach($bcNav as $k=>$v){
 | 
			
		||||
			if($v['catId']==7){
 | 
			
		||||
				$bcNav = [];
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		// 获取title
 | 
			
		||||
		$currTitle = '';
 | 
			
		||||
		foreach($bcNav as $k=>$v){
 | 
			
		||||
			if($v['catId']==(int)input('catId'))$currTitle = $v['catName'];
 | 
			
		||||
		}
 | 
			
		||||
		$this->assign('title',$currTitle);
 | 
			
		||||
		$this->assign('bcNav',$bcNav);
 | 
			
		||||
		// 防止没有数据时报错
 | 
			
		||||
		if(empty($bcNav))$this->redirect('home/News/view');
 | 
			
		||||
		return $this->fetch('articles/news_list');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public function view(){
 | 
			
		||||
		//获取左侧列表
 | 
			
		||||
		$m = model('home/Articles');
 | 
			
		||||
		$list = $m->NewsList();
 | 
			
		||||
		//当前分类id
 | 
			
		||||
		$content = $m->getNewsById();
 | 
			
		||||
		if(63 == $content['catId']) $this->error('请付费后查看!','/newscats-63.html');
 | 
			
		||||
		$this->assign('catId',(int)$content['catId']);
 | 
			
		||||
		$this->assign('list',$list);
 | 
			
		||||
		$this->assign('content',$content);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		//面包屑导航
 | 
			
		||||
		$bcNav = [];
 | 
			
		||||
		if(!empty($content)){
 | 
			
		||||
			$bcNav = $this->bcNav();
 | 
			
		||||
		}
 | 
			
		||||
		$this->assign('bcNav',$bcNav);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		if((int)input('id')==0){
 | 
			
		||||
			// 资讯列表下的新闻
 | 
			
		||||
			$pageObj = $m->getArticles();
 | 
			
		||||
			$news = $pageObj->toArray();
 | 
			
		||||
			// 分页页码
 | 
			
		||||
			$page = $pageObj->render();
 | 
			
		||||
			$this->assign('page',$page);
 | 
			
		||||
			$this->assign('index',$news['Rows']);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return $this->fetch('articles/news_view');
 | 
			
		||||
	}
 | 
			
		||||
	public function bcNav(){
 | 
			
		||||
		$m = model('home/Articles');
 | 
			
		||||
		return $m->bcNav();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public function index(){
 | 
			
		||||
		return $this->view();
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										94
									
								
								hyhproject/home2/controller/Ordercomplains.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										94
									
								
								hyhproject/home2/controller/Ordercomplains.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,94 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 订单投诉控制器
 | 
			
		||||
 */
 | 
			
		||||
class OrderComplains extends Base{
 | 
			
		||||
    protected $beforeActionList = [
 | 
			
		||||
       'checkAuth'=>['only'=>'index,queryusercomplainbypage,complain,savecomplain,getusercomplaindetail'],
 | 
			
		||||
       'checkShopAuth'=>['only'=>'shopcomplain,queryshopcomplainbypage,getshopcomplaindetail,respond,saverespond']
 | 
			
		||||
    ];
 | 
			
		||||
    /******************************** 用户 ******************************************/
 | 
			
		||||
    /**
 | 
			
		||||
    * 查看投诉列表
 | 
			
		||||
    */
 | 
			
		||||
	public function index(){
 | 
			
		||||
		return $this->fetch('users/orders/list_complain');
 | 
			
		||||
	}
 | 
			
		||||
    /**
 | 
			
		||||
    * 获取用户投诉列表
 | 
			
		||||
    */    
 | 
			
		||||
    public function queryUserComplainByPage(){
 | 
			
		||||
        $m = model('OrderComplains');
 | 
			
		||||
        return $m->queryUserComplainByPage();
 | 
			
		||||
        
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 订单投诉页面
 | 
			
		||||
     */
 | 
			
		||||
    public function complain(){
 | 
			
		||||
        $data = model('OrderComplains')->getOrderInfo();
 | 
			
		||||
        $this->assign("data",$data);
 | 
			
		||||
        return $this->fetch("users/orders/complain");
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 保存订单投诉信息
 | 
			
		||||
     */
 | 
			
		||||
    public function saveComplain(){
 | 
			
		||||
        return model('OrderComplains')->saveComplain();
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 用户查投诉详情
 | 
			
		||||
     */
 | 
			
		||||
    public function getUserComplainDetail(){
 | 
			
		||||
        $data = model('OrderComplains')->getComplainDetail(0);
 | 
			
		||||
        $this->assign("data",$data);
 | 
			
		||||
        return $this->fetch("users/orders/complain_detail");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /******************************* 商家  ****************************************/
 | 
			
		||||
    /**
 | 
			
		||||
    * 商家-查看投诉列表
 | 
			
		||||
    */
 | 
			
		||||
    public function shopComplain(){
 | 
			
		||||
        return $this->fetch("shops/orders/list_complain");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取商家被投诉订单列表
 | 
			
		||||
     */
 | 
			
		||||
    public function queryShopComplainByPage(){
 | 
			
		||||
        return model('OrderComplains')->queryShopComplainByPage();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查投诉详情
 | 
			
		||||
     */
 | 
			
		||||
    public function getShopComplainDetail(){
 | 
			
		||||
        $data = model('OrderComplains')->getComplainDetail(1);
 | 
			
		||||
        $this->assign("data",$data);
 | 
			
		||||
        return $this->fetch("shops/orders/complain_detail");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
     /**
 | 
			
		||||
     * 订单应诉页面
 | 
			
		||||
     */
 | 
			
		||||
    public function respond(){
 | 
			
		||||
        $data = model('OrderComplains')->getComplainDetail(1);
 | 
			
		||||
        $this->assign("data",$data);
 | 
			
		||||
        return $this->fetch("shops/orders/respond");
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 保存订单应诉
 | 
			
		||||
     */
 | 
			
		||||
    public function saveRespond(){
 | 
			
		||||
        return model('OrderComplains')->saveRespond();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										29
									
								
								hyhproject/home2/controller/Orderrefunds.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										29
									
								
								hyhproject/home2/controller/Orderrefunds.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\common\model\OrderRefunds as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 订单退款控制器
 | 
			
		||||
 */
 | 
			
		||||
class Orderrefunds extends Base{
 | 
			
		||||
	protected $beforeActionList = [
 | 
			
		||||
	    'checkAuth'=>['only'=>'refund'],
 | 
			
		||||
	    'checkShopAuth'=>['only'=>'shoprefund']
 | 
			
		||||
	];
 | 
			
		||||
    /**
 | 
			
		||||
	 * 用户申请退款
 | 
			
		||||
	 */
 | 
			
		||||
	public function refund(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->refund();
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 商家处理是否同意
 | 
			
		||||
	 */
 | 
			
		||||
	public function shopRefund(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->shopRefund();
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										415
									
								
								hyhproject/home2/controller/Orders.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										415
									
								
								hyhproject/home2/controller/Orders.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,415 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\common\model\Orders as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 订单控制器
 | 
			
		||||
 */
 | 
			
		||||
class Orders extends Base{
 | 
			
		||||
	/**
 | 
			
		||||
    * 提交虚拟订单
 | 
			
		||||
    */
 | 
			
		||||
	public function quickSubmit(){
 | 
			
		||||
		$this->checkAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->quickSubmit();
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
    /**
 | 
			
		||||
    * 提交订单
 | 
			
		||||
    */
 | 
			
		||||
	public function submit(){
 | 
			
		||||
		$this->checkAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->submit();
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 订单提交成功
 | 
			
		||||
	 */
 | 
			
		||||
	public function succeed(){
 | 
			
		||||
		$this->checkAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->getByUnique();
 | 
			
		||||
		$this->assign('object',$rs);
 | 
			
		||||
		if(!empty($rs['list'])){
 | 
			
		||||
			if($rs['payType']==1 && $rs['totalMoney']>0){
 | 
			
		||||
				$this->assign('orderNo',input("get.orderNo"));
 | 
			
		||||
				$this->assign('isBatch',(int)input("get.isBatch/d",1));
 | 
			
		||||
				$this->assign('rs',$rs);
 | 
			
		||||
				return $this->fetch('order_pay_step1');
 | 
			
		||||
			}else{
 | 
			
		||||
			    return $this->fetch('order_success');
 | 
			
		||||
			}
 | 
			
		||||
		}else{
 | 
			
		||||
			$this->assign('message','Sorry~您要找的页面丢失了。。。');
 | 
			
		||||
			return $this->fetch('error_msg');
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	* 用户-提醒发货
 | 
			
		||||
	*/
 | 
			
		||||
	public function noticeDeliver(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		return $m->noticeDeliver();
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 用户-待付款订单
 | 
			
		||||
	 */
 | 
			
		||||
	public function waitPay(){
 | 
			
		||||
		$this->checkAuth();
 | 
			
		||||
		return $this->fetch('users/orders/list_wait_pay');
 | 
			
		||||
	}
 | 
			
		||||
    /**
 | 
			
		||||
	 * 用户-获取待付款列表
 | 
			
		||||
	 */
 | 
			
		||||
    public function waitPayByPage(){
 | 
			
		||||
    	$this->checkAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->userOrdersByPage(-2);
 | 
			
		||||
		return WSTReturn("", 1,$rs);
 | 
			
		||||
	}
 | 
			
		||||
    /**
 | 
			
		||||
	 * 等待收货
 | 
			
		||||
	 */
 | 
			
		||||
	public function waitReceive(){
 | 
			
		||||
		$this->checkAuth();
 | 
			
		||||
		return $this->fetch('users/orders/list_wait_receive');
 | 
			
		||||
	}
 | 
			
		||||
    /**
 | 
			
		||||
	 * 获取收货款列表
 | 
			
		||||
	 */
 | 
			
		||||
    public function waitReceiveByPage(){
 | 
			
		||||
    	$this->checkAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->userOrdersByPage([0,1]);
 | 
			
		||||
		return WSTReturn("", 1,$rs);
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 用户-待评价
 | 
			
		||||
	 */
 | 
			
		||||
    public function waitAppraise(){
 | 
			
		||||
    	$this->checkAuth();
 | 
			
		||||
		return $this->fetch('users/orders/list_appraise');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 用户-待评价
 | 
			
		||||
	 */
 | 
			
		||||
	public function waitAppraiseByPage(){
 | 
			
		||||
		$this->checkAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->userOrdersByPage(2,0);
 | 
			
		||||
		return WSTReturn("", 1,$rs);
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 用户-已完成订单
 | 
			
		||||
	 */
 | 
			
		||||
    public function finish(){
 | 
			
		||||
    	$this->checkAuth();
 | 
			
		||||
		return $this->fetch('users/orders/list_finish');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 用户-已完成订单
 | 
			
		||||
	 */
 | 
			
		||||
	public function finishByPage(){
 | 
			
		||||
		$this->checkAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->userOrdersByPage(2,-1);
 | 
			
		||||
		return WSTReturn("", 1,$rs);
 | 
			
		||||
	}
 | 
			
		||||
   /**
 | 
			
		||||
	 * 用户-加载取消订单页面
 | 
			
		||||
	 */
 | 
			
		||||
	public function toCancel(){
 | 
			
		||||
		$this->checkAuth();
 | 
			
		||||
		return $this->fetch('users/orders/box_cancel');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 用户取消订单
 | 
			
		||||
	 */
 | 
			
		||||
	public function cancellation(){
 | 
			
		||||
		$this->checkAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->cancel();
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
    /**
 | 
			
		||||
	 * 用户-取消订单列表
 | 
			
		||||
	 */
 | 
			
		||||
	public function cancel(){
 | 
			
		||||
		$this->checkAuth();
 | 
			
		||||
		return $this->fetch('users/orders/list_cancel');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 用户-获取已取消订单
 | 
			
		||||
	 */
 | 
			
		||||
    public function cancelByPage(){
 | 
			
		||||
    	$this->checkAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->userOrdersByPage(-1);
 | 
			
		||||
		return WSTReturn("", 1,$rs);
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 用户-拒收订单
 | 
			
		||||
	 */
 | 
			
		||||
	public function toReject(){
 | 
			
		||||
		$this->checkAuth();
 | 
			
		||||
		return $this->fetch('users/orders/box_reject');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 用户拒收订单
 | 
			
		||||
	 */
 | 
			
		||||
	public function reject(){
 | 
			
		||||
		$this->checkAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->reject();
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 用户-申请退款
 | 
			
		||||
	 */
 | 
			
		||||
	public function toRefund(){
 | 
			
		||||
		$this->checkAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->getMoneyByOrder((int)input('id'));
 | 
			
		||||
		$this->assign('object',$rs);
 | 
			
		||||
		return $this->fetch('users/orders/box_refund');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 商家-操作退款
 | 
			
		||||
	 */
 | 
			
		||||
	public function toShopRefund(){
 | 
			
		||||
		$this->checkShopAuth();
 | 
			
		||||
		$rs = model('OrderRefunds')->getRefundMoneyByOrder((int)input('id'));
 | 
			
		||||
		$this->assign('object',$rs);
 | 
			
		||||
		return $this->fetch('shops/orders/box_refund');
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 用户-拒收/退款列表
 | 
			
		||||
	 */
 | 
			
		||||
	public function abnormal(){
 | 
			
		||||
		$this->checkAuth();
 | 
			
		||||
		return $this->fetch('users/orders/list_abnormal');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取用户拒收/退款列表
 | 
			
		||||
	 */
 | 
			
		||||
    public function abnormalByPage(){
 | 
			
		||||
    	$this->checkAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->userOrdersByPage([-3]);
 | 
			
		||||
		return WSTReturn("", 1,$rs);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
    /**
 | 
			
		||||
	 * 等待处理订单
 | 
			
		||||
	 */
 | 
			
		||||
	public function waitDelivery(){
 | 
			
		||||
		$this->checkShopAuth();
 | 
			
		||||
		$express = model('Express')->listQuery();
 | 
			
		||||
		$this->assign('express',$express);
 | 
			
		||||
		return $this->fetch('shops/orders/list_wait_delivery');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 待处理订单
 | 
			
		||||
	 */
 | 
			
		||||
	public function waitDeliveryByPage(){
 | 
			
		||||
		$this->checkShopAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->shopOrdersByPage([0]);
 | 
			
		||||
		return WSTReturn("", 1,$rs);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	* 商家-已发货订单
 | 
			
		||||
	*/
 | 
			
		||||
	public function delivered(){
 | 
			
		||||
		$this->checkShopAuth();
 | 
			
		||||
		$express = model('Express')->listQuery();
 | 
			
		||||
		$this->assign('express',$express);
 | 
			
		||||
		return $this->fetch('shops/orders/list_delivered');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 待处理订单
 | 
			
		||||
	 */
 | 
			
		||||
	public function deliveredByPage(){
 | 
			
		||||
		$this->checkShopAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->shopOrdersByPage(1);
 | 
			
		||||
		return WSTReturn("", 1,$rs);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
	 * 商家发货
 | 
			
		||||
	 */
 | 
			
		||||
	public function deliver(){
 | 
			
		||||
		$this->checkShopAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->deliver();
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 商家修改快递单号
 | 
			
		||||
	 */
 | 
			
		||||
	public function updateDeliver(){
 | 
			
		||||
		$this->checkShopAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$res = $m->updateDeliver();
 | 
			
		||||
		return $res;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 用户收货
 | 
			
		||||
	 */
 | 
			
		||||
	public function receive(){
 | 
			
		||||
		$this->checkAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->receive();
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 用户-延时收货
 | 
			
		||||
	 */
 | 
			
		||||
	public function delay(){
 | 
			
		||||
		$this->checkAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->delay();
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 商家-已完成订单
 | 
			
		||||
	 */
 | 
			
		||||
    public function finished(){
 | 
			
		||||
    	$this->checkShopAuth();
 | 
			
		||||
		$express = model('Express')->listQuery();
 | 
			
		||||
		return $this->fetch('shops/orders/list_finished');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 商家-已完成订单
 | 
			
		||||
	 */
 | 
			
		||||
	public function finishedByPage(){
 | 
			
		||||
		$this->checkShopAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->shopOrdersByPage(2);
 | 
			
		||||
		return WSTReturn("", 1,$rs);
 | 
			
		||||
	}
 | 
			
		||||
    /**
 | 
			
		||||
	 * 商家-取消/拒收订单
 | 
			
		||||
	 */
 | 
			
		||||
    public function failure(){
 | 
			
		||||
    	$this->checkShopAuth();
 | 
			
		||||
		return $this->fetch('shops/orders/list_failure');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 商家-取消/拒收订单
 | 
			
		||||
	 */
 | 
			
		||||
	public function failureByPage(){
 | 
			
		||||
		$this->checkShopAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->shopOrdersByPage([-1,-3]);
 | 
			
		||||
		return WSTReturn("", 1,$rs);
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取订单信息方便修改价格
 | 
			
		||||
	 */
 | 
			
		||||
	public function getMoneyByOrder(){
 | 
			
		||||
		$this->checkShopAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->getMoneyByOrder();
 | 
			
		||||
		return WSTReturn("", 1,$rs);
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 商家修改订单价格
 | 
			
		||||
	 */
 | 
			
		||||
	public function editOrderMoney(){
 | 
			
		||||
		$this->checkShopAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->editOrderMoney();
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 商家-订单详情
 | 
			
		||||
	 */
 | 
			
		||||
	public function view(){
 | 
			
		||||
		$this->checkShopAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->getByView((int)input('id'));
 | 
			
		||||
		$this->assign('object',$rs);
 | 
			
		||||
		return $this->fetch('shops/orders/view');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 订单打印
 | 
			
		||||
	 */
 | 
			
		||||
	public function orderPrint(){
 | 
			
		||||
		$this->checkShopAuth();
 | 
			
		||||
        $m = new M();
 | 
			
		||||
		$rs = $m->getByView((int)input('id'));
 | 
			
		||||
		$this->assign('object',$rs);
 | 
			
		||||
		return $this->fetch('shops/orders/print');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
	 * 用户-订单详情
 | 
			
		||||
	 */
 | 
			
		||||
	public function detail(){
 | 
			
		||||
		$this->checkAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->getByView((int)input('id'));
 | 
			
		||||
		$this->assign('object',$rs);
 | 
			
		||||
		return $this->fetch('users/orders/view');
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
   /**
 | 
			
		||||
	* 用户-评价页
 | 
			
		||||
	*/
 | 
			
		||||
	public function orderAppraise(){
 | 
			
		||||
		$this->checkAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		//根据订单id获取 商品信息跟商品评价
 | 
			
		||||
		$data = $m->getOrderInfoAndAppr();
 | 
			
		||||
		$this->assign(['data'=>$data['Rows'],
 | 
			
		||||
					   'count'=>$data['count'],
 | 
			
		||||
					   'alreadys'=>$data['alreadys']
 | 
			
		||||
						]);
 | 
			
		||||
		return $this->fetch('users/orders/list_order_appraise');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	* 设置完成评价
 | 
			
		||||
	*/
 | 
			
		||||
	public function complateAppraise($orderId){
 | 
			
		||||
		$this->checkAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		return $m->complateAppraise($orderId);
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 商家-待付款订单
 | 
			
		||||
	 */
 | 
			
		||||
	public function waituserPay(){
 | 
			
		||||
		$this->checkShopAuth();
 | 
			
		||||
		return $this->fetch('shops/orders/list_wait_pay');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 商家-获取待付款列表
 | 
			
		||||
	 */
 | 
			
		||||
	public function waituserPayByPage(){
 | 
			
		||||
		$this->checkShopAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->shopOrdersByPage(-2);
 | 
			
		||||
		return WSTReturn("", 1,$rs);
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 导出订单
 | 
			
		||||
	 */
 | 
			
		||||
	public function toExport(){
 | 
			
		||||
		$this->checkShopAuth();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$rs = $m->toExport();
 | 
			
		||||
		$this->assign('rs',$rs);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										47
									
								
								hyhproject/home2/controller/Reports.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										47
									
								
								hyhproject/home2/controller/Reports.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\home\model\Reports as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 报表控制器
 | 
			
		||||
 */
 | 
			
		||||
class Reports extends Base{
 | 
			
		||||
    protected $beforeActionList = ['checkShopAuth'];
 | 
			
		||||
	/**
 | 
			
		||||
     * 商品销售排行
 | 
			
		||||
     */
 | 
			
		||||
    public function topSaleGoods(){
 | 
			
		||||
    	$this->assign("startDate",date('Y-m-d',strtotime("-1month")));
 | 
			
		||||
        $this->assign("endDate",date('Y-m-d'));
 | 
			
		||||
    	return $this->fetch('shops/reports/top_sale_goods');
 | 
			
		||||
    }
 | 
			
		||||
    public function getTopSaleGoods(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
        return $m->getTopSaleGoods();
 | 
			
		||||
    } 
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取销售额
 | 
			
		||||
     */
 | 
			
		||||
    public function statSales(){
 | 
			
		||||
    	$this->assign("startDate",date('Y-m-d',strtotime("-1month")));
 | 
			
		||||
        $this->assign("endDate",date('Y-m-d'));
 | 
			
		||||
        return $this->fetch('shops/reports/stat_sales');
 | 
			
		||||
    }
 | 
			
		||||
    public function getStatSales(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
        return $m->getStatSales();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取销售订单
 | 
			
		||||
     */
 | 
			
		||||
    public function statOrders(){
 | 
			
		||||
        $this->assign("startDate",date('Y-m-d',strtotime("-1month")));
 | 
			
		||||
        $this->assign("endDate",date('Y-m-d'));
 | 
			
		||||
        return $this->fetch('shops/reports/stat_orders');
 | 
			
		||||
    }
 | 
			
		||||
    public function getStatOrders(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        return $m->getStatOrders();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										62
									
								
								hyhproject/home2/controller/Settlements.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										62
									
								
								hyhproject/home2/controller/Settlements.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\home\model\Settlements as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 结算控制器
 | 
			
		||||
 */
 | 
			
		||||
class Settlements extends Base{
 | 
			
		||||
	  protected $beforeActionList = ['checkShopAuth'];
 | 
			
		||||
    public function index(){
 | 
			
		||||
    	  return $this->fetch('shops/settlements/list');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取结算单
 | 
			
		||||
     */
 | 
			
		||||
    public function pageQuery(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        $rs = $m->pageQuery();
 | 
			
		||||
        return WSTReturn('',1,$rs);
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取待结算订单
 | 
			
		||||
     */
 | 
			
		||||
    public function pageUnSettledQuery(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        $rs = $m->pageUnSettledQuery();
 | 
			
		||||
        return WSTReturn('',1,$rs);
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 结算订单
 | 
			
		||||
     */
 | 
			
		||||
    public function settlement(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        return $m->settlement();
 | 
			
		||||
   } 
 | 
			
		||||
   /**
 | 
			
		||||
    * 获取已结算订单
 | 
			
		||||
    */
 | 
			
		||||
   public function pageSettledQuery(){
 | 
			
		||||
       $m = new M();
 | 
			
		||||
       $rs = $m->pageSettledQuery();
 | 
			
		||||
       return WSTReturn('',1,$rs);
 | 
			
		||||
   }
 | 
			
		||||
   /**
 | 
			
		||||
    * 查看结算详情
 | 
			
		||||
    */
 | 
			
		||||
   public function view(){
 | 
			
		||||
       $m = new M();
 | 
			
		||||
       $rs = $m->getById();
 | 
			
		||||
       $this->assign('object',$rs);
 | 
			
		||||
       return $this->fetch('shops/settlements/view');
 | 
			
		||||
   }
 | 
			
		||||
   /**
 | 
			
		||||
   * 导出订单
 | 
			
		||||
   */
 | 
			
		||||
  public function toExport(){
 | 
			
		||||
    $m = new M();
 | 
			
		||||
    $rs = $m->toExport();
 | 
			
		||||
    $this->assign('rs',$rs);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										98
									
								
								hyhproject/home2/controller/Shopcats.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										98
									
								
								hyhproject/home2/controller/Shopcats.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,98 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\common\model\ShopCats as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 门店分类控制器
 | 
			
		||||
 */
 | 
			
		||||
class Shopcats extends Base{
 | 
			
		||||
    protected $beforeActionList = ['checkShopAuth'];
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 列表
 | 
			
		||||
	 */
 | 
			
		||||
	public function index(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$list = $m->getCatAndChild(session('WST_USER.shopId'),input('post.parentId/d'));
 | 
			
		||||
        // mark 添加省份 20180518 by zl
 | 
			
		||||
        $areas = $m->getAreas();
 | 
			
		||||
        $this->assign('areas',$areas);
 | 
			
		||||
        // 判断是否是自营 如果是自营就显示省份
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');;
 | 
			
		||||
        $this->assign('shopId',$shopId);
 | 
			
		||||
        // end
 | 
			
		||||
		$this->assign('list',$list);
 | 
			
		||||
		return $this->fetch("shops/shopcats/list");
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
    /**
 | 
			
		||||
     * 修改名称
 | 
			
		||||
     */
 | 
			
		||||
    public function editName(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	$rs = array();
 | 
			
		||||
    	if(input('post.id/d')>0){
 | 
			
		||||
    		$rs = $m->editName();
 | 
			
		||||
    	}
 | 
			
		||||
    	return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 修改排序
 | 
			
		||||
     */
 | 
			
		||||
    public function editSort(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	$rs = array();
 | 
			
		||||
    	if(input('post.id/d')>0){
 | 
			
		||||
    		$rs = $m->editSort();
 | 
			
		||||
    	}
 | 
			
		||||
    	return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 批量保存商品分类
 | 
			
		||||
     */
 | 
			
		||||
    public function batchSaveCats(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	$rs = $m->batchSaveCats();
 | 
			
		||||
    	return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 删除操作
 | 
			
		||||
     */
 | 
			
		||||
    public function del(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	$rs = $m->del();
 | 
			
		||||
    	return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     * 列表查询
 | 
			
		||||
     */
 | 
			
		||||
    public function listQuery(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	$list = $m->listQuery((int)session('WST_USER.shopId'),input('post.parentId/d'));
 | 
			
		||||
    	$rs = array();
 | 
			
		||||
    	$rs['status'] = 1;
 | 
			
		||||
    	$rs['list'] = $list;
 | 
			
		||||
    	return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    public function changeCatStatus(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	$rs = $m->changeCatStatus();
 | 
			
		||||
    	return $rs;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 设置分类特产省份 mark 20180515
 | 
			
		||||
     */
 | 
			
		||||
    public function setSpecial(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        $rs = $m->setSpecial();
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										31
									
								
								hyhproject/home2/controller/Shopconfigs.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										31
									
								
								hyhproject/home2/controller/Shopconfigs.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 门店配置控制器
 | 
			
		||||
 */
 | 
			
		||||
class Shopconfigs extends Base{
 | 
			
		||||
    protected $beforeActionList = ['checkShopAuth'];
 | 
			
		||||
    /**
 | 
			
		||||
    * 店铺设置
 | 
			
		||||
    */
 | 
			
		||||
    public function toShopCfg(){
 | 
			
		||||
        //获取商品信息
 | 
			
		||||
        $m = model('ShopConfigs');
 | 
			
		||||
        $this->assign('object',$m->getShopCfg((int)session('WST_USER.shopId')));
 | 
			
		||||
        return $this->fetch('shops/shopconfigs/shop_cfg');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 新增/修改 店铺设置
 | 
			
		||||
     */
 | 
			
		||||
    public function editShopCfg(){
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $m = model('ShopConfigs');
 | 
			
		||||
        if($shopId>0){
 | 
			
		||||
            $rs = $m->editShopCfg($shopId);
 | 
			
		||||
        }
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										38
									
								
								hyhproject/home2/controller/Shopfreights.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										38
									
								
								hyhproject/home2/controller/Shopfreights.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,38 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\home\model\ShopFreights as M;
 | 
			
		||||
use wstmart\home\model\Areas;
 | 
			
		||||
use wstmart\home\model\Shops;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 运费控制器
 | 
			
		||||
 */
 | 
			
		||||
class Shopfreights extends Base{
 | 
			
		||||
	protected $beforeActionList = ['checkShopAuth'];
 | 
			
		||||
    /**
 | 
			
		||||
    * 查看运费设置
 | 
			
		||||
    */
 | 
			
		||||
	public function index(){
 | 
			
		||||
		$shops = new Shops();
 | 
			
		||||
		$shopId = session('WST_USER.shopId');
 | 
			
		||||
		$shFreight =  $shops->getShopsFreight($shopId);
 | 
			
		||||
		$this->assign('shFreight',$shFreight);//默认运费
 | 
			
		||||
		return $this->fetch('shops/freights/list');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 运费列表
 | 
			
		||||
	 */
 | 
			
		||||
	public function listProvince(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		return $m->listProvince();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 编辑
 | 
			
		||||
     */
 | 
			
		||||
    public function edit(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	$rs = $m->edit();
 | 
			
		||||
    	return $rs;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										74
									
								
								hyhproject/home2/controller/Shoproles.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										74
									
								
								hyhproject/home2/controller/Shoproles.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,74 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\home\model\ShopRoles as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 门店角色控制器
 | 
			
		||||
 */
 | 
			
		||||
class Shoproles extends Base{
 | 
			
		||||
    protected $beforeActionList = ['checkShopAuth'];
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 列表
 | 
			
		||||
	 */
 | 
			
		||||
	public function index(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$list = $m->pageQuery();
 | 
			
		||||
		$this->assign('list',$list);
 | 
			
		||||
		return $this->fetch("shops/shoproles/list");
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
    /**
 | 
			
		||||
    * 查询
 | 
			
		||||
    */
 | 
			
		||||
    public function pageQuery(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        return $m->pageQuery();
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     * 新增角色
 | 
			
		||||
     */
 | 
			
		||||
    public function add(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	$object = $m->getEModel('shop_roles');
 | 
			
		||||
		$data = ['object'=>$object];
 | 
			
		||||
    	return $this->fetch('shops/shoproles/edit',$data);
 | 
			
		||||
    }
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
     * 新增角色
 | 
			
		||||
     */
 | 
			
		||||
    public function toAdd(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	return $m->add();
 | 
			
		||||
    }
 | 
			
		||||
	
 | 
			
		||||
    /**
 | 
			
		||||
     * 修改角色
 | 
			
		||||
     */
 | 
			
		||||
    public function edit(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	$object = $m->getById((int)input('get.id'));
 | 
			
		||||
		$data = ['object'=>$object];
 | 
			
		||||
    	return $this->fetch('shops/shoproles/edit',$data);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
     * 修改角色
 | 
			
		||||
     */
 | 
			
		||||
    public function toEdit(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	return $m->edit();
 | 
			
		||||
    }
 | 
			
		||||
	
 | 
			
		||||
    /**
 | 
			
		||||
     * 删除操作
 | 
			
		||||
     */
 | 
			
		||||
    public function del(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	$rs = $m->del();
 | 
			
		||||
    	return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										358
									
								
								hyhproject/home2/controller/Shops.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										358
									
								
								hyhproject/home2/controller/Shops.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,358 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\home\model\Goods;
 | 
			
		||||
use wstmart\common\model\GoodsCats;
 | 
			
		||||
use think\Loader;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 门店控制器
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
class Shops extends Base{
 | 
			
		||||
    protected $beforeActionList = [
 | 
			
		||||
          'checkShopAuth' =>  ['only'=>'editinfo,getshopmoney'],
 | 
			
		||||
          'checkAuth'=>['only'=>'join,joinstep1,joinstep2,savestep2,joinstep3,savestep3,joinstep4,savestep4,joinstep5,savestep5,joinsuccess']
 | 
			
		||||
    ];
 | 
			
		||||
    /**
 | 
			
		||||
    * 店铺公告页
 | 
			
		||||
    */
 | 
			
		||||
    public function notice(){
 | 
			
		||||
        $notice = model('shops')->getNotice();
 | 
			
		||||
        $this->assign('notice',$notice);
 | 
			
		||||
        return $this->fetch('shops/shops/notice');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
    * 修改店铺公告
 | 
			
		||||
    */
 | 
			
		||||
    public function editNotice(){
 | 
			
		||||
        $s = model('shops');
 | 
			
		||||
        return $s->editNotice();
 | 
			
		||||
    }
 | 
			
		||||
	/**
 | 
			
		||||
	 * 商家登录
 | 
			
		||||
	 */
 | 
			
		||||
	public function login(){
 | 
			
		||||
		$USER = session('WST_USER');
 | 
			
		||||
		if(!empty($USER) && isset($USER['shopId'])){
 | 
			
		||||
			$this->redirect("shops/index");
 | 
			
		||||
		}
 | 
			
		||||
		$loginName = cookie("loginName");
 | 
			
		||||
		if(!empty($loginName)){
 | 
			
		||||
			$this->assign('loginName',cookie("loginName"));
 | 
			
		||||
		}else{
 | 
			
		||||
			$this->assign('loginName','');
 | 
			
		||||
		}
 | 
			
		||||
		return $this->fetch('shop_login');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 商家中心
 | 
			
		||||
	 */
 | 
			
		||||
	public function index(){
 | 
			
		||||
		session('WST_MENID1',null);
 | 
			
		||||
		session('WST_MENUID31',null);
 | 
			
		||||
		$s = model('shops');
 | 
			
		||||
		dump(session('WST_USER'));
 | 
			
		||||
		$data = $s->getShopSummary((int)session('WST_USER.shopId'));
 | 
			
		||||
		$this->assign('data',$data);
 | 
			
		||||
		return $this->fetch('shops/index');
 | 
			
		||||
	}
 | 
			
		||||
    /**
 | 
			
		||||
     * 店铺街
 | 
			
		||||
     */
 | 
			
		||||
    public function shopStreet(){
 | 
			
		||||
    	$g = new GoodsCats();
 | 
			
		||||
    	$goodsCats = $g->listQuery(0);
 | 
			
		||||
    	$this->assign('goodscats',$goodsCats);
 | 
			
		||||
    	//店铺街列表
 | 
			
		||||
    	$s = model('shops');
 | 
			
		||||
    	$pagesize = 10;
 | 
			
		||||
    	$selectedId = input("get.id/d");
 | 
			
		||||
    	$this->assign('selectedId',$selectedId);
 | 
			
		||||
    	$list = $s->pageQuery($pagesize);
 | 
			
		||||
    	$this->assign('list',$list);
 | 
			
		||||
    	$this->assign('keyword',input('keyword'));
 | 
			
		||||
    	$this->assign('keytype',1);
 | 
			
		||||
    	return $this->fetch('shop_street');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 店铺详情
 | 
			
		||||
     */
 | 
			
		||||
    public function home(){
 | 
			
		||||
    	$shopId = (int)input("param.shopId/d");
 | 
			
		||||
    	hook("homeBeforeGoShopHome",["shopId"=>$shopId]);
 | 
			
		||||
        hook("goShopAfterAddView",["shopId"=>$shopId,'path'=>1]);
 | 
			
		||||
        $s = model('shops');
 | 
			
		||||
    	$data['shop'] = $s->getShopInfo($shopId);
 | 
			
		||||
        $ct1 = input("param.ct1/d",0);
 | 
			
		||||
        $ct2 = input("param.ct2/d",0);
 | 
			
		||||
        $goodsName = input("param.goodsName");        
 | 
			
		||||
        if(1778 != $shopId && !empty($this->is_icp)) return $this->fetch('error_lost');
 | 
			
		||||
        if(($data['shop']['shopId']==1 || $shopId==0) && $ct1==0 && !isset($goodsName)){
 | 
			
		||||
        	$params = input();
 | 
			
		||||
        	unset($params["shopId"]);
 | 
			
		||||
            $this->redirect(Url('home/shops/selfShop'),$params);
 | 
			
		||||
        }
 | 
			
		||||
    	if(empty($data['shop']))return $this->fetch('error_lost');
 | 
			
		||||
    	$data['shopcats'] = $f = model('ShopCats','model')->getShopCats($shopId);
 | 
			
		||||
    	$g = model('goods');
 | 
			
		||||
    	$data['list'] = $g->shopGoods($shopId);
 | 
			
		||||
        //dump($data['list']);die;
 | 
			
		||||
    	$this->assign('msort',input("param.msort/d",0));//筛选条件
 | 
			
		||||
    	$this->assign('mdesc',input("param.mdesc/d",1));//升降序
 | 
			
		||||
    	$this->assign('sprice',input("param.sprice"));//价格范围
 | 
			
		||||
    	$this->assign('eprice',input("param.eprice"));
 | 
			
		||||
    	$this->assign('ct1',$ct1);//一级分类
 | 
			
		||||
    	$this->assign('ct2',$ct2);//二级分类
 | 
			
		||||
    	$this->assign('goodsName',urldecode($goodsName));//搜索
 | 
			
		||||
    	$this->assign('data',$data);
 | 
			
		||||
 | 
			
		||||
    	return $this->fetch('shop_home');
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     * 店铺分类
 | 
			
		||||
     */
 | 
			
		||||
    public function cat(){
 | 
			
		||||
    	$s = model('shops');
 | 
			
		||||
    	$shopId = (int)input("param.shopId/d");
 | 
			
		||||
    	$data['shop'] = $s->getShopInfo($shopId);
 | 
			
		||||
    
 | 
			
		||||
    	$ct1 = input("param.ct1/d",0);
 | 
			
		||||
    	$ct2 = input("param.ct2/d",0);
 | 
			
		||||
    	$goodsName = input("param.goodsName");
 | 
			
		||||
    	if(($data['shop']['shopId']==1 || $shopId==0) && $ct1==0 && !isset($goodsName)){
 | 
			
		||||
	    	 $params = input();
 | 
			
		||||
	    	 unset($params["shopId"]);
 | 
			
		||||
	    	 $this->redirect('shops/selfShop',$params);
 | 
			
		||||
    	}
 | 
			
		||||
    	if(empty($data['shop']))return $this->fetch('error_lost');
 | 
			
		||||
    	$data['shopcats'] = $f = model('ShopCats','model')->getShopCats($shopId);
 | 
			
		||||
    	$g = model('goods');
 | 
			
		||||
    	$data['list'] = $g->shopGoods($shopId);
 | 
			
		||||
    	$this->assign('msort',input("param.msort/d",0));//筛选条件
 | 
			
		||||
    	$this->assign('mdesc',input("param.mdesc/d",1));//升降序
 | 
			
		||||
    	$this->assign('sprice',input("param.sprice"));//价格范围
 | 
			
		||||
    	$this->assign('eprice',input("param.eprice"));
 | 
			
		||||
    	$this->assign('ct1',$ct1);//一级分类
 | 
			
		||||
    	$this->assign('ct2',$ct2);//二级分类
 | 
			
		||||
    	$this->assign('goodsName',urldecode($goodsName));//搜索
 | 
			
		||||
    	$this->assign('data',$data);
 | 
			
		||||
    	return $this->fetch('shop_home');
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     * 查看店铺设置
 | 
			
		||||
     */
 | 
			
		||||
    public function info(){
 | 
			
		||||
    	$s = model('shops');
 | 
			
		||||
    	$object = $s->getByView((int)session('WST_USER.shopId'));
 | 
			
		||||
        $bankList= model('banks')->listQuery();
 | 
			
		||||
        $this->assign('bankList',$bankList);
 | 
			
		||||
    	$this->assign('object',$object);
 | 
			
		||||
    	return $this->fetch('shops/shops/view');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
    * 自营店铺
 | 
			
		||||
    */
 | 
			
		||||
    public function selfShop(){
 | 
			
		||||
    	hook("homeBeforeGoSelfShop",["shopId"=>1]);
 | 
			
		||||
        $s = model('shops');
 | 
			
		||||
        $data['shop'] = $s->getShopInfo(1);
 | 
			
		||||
        if(empty($data['shop']))return $this->fetch('error_lost');
 | 
			
		||||
        $this->assign('selfShop',1);
 | 
			
		||||
	    $data['shopcats'] = model('ShopCats')->getShopCats(1);
 | 
			
		||||
	    $this->assign('goodsName',urldecode(input("param.goodsName")));//搜索
 | 
			
		||||
	    // 店长推荐
 | 
			
		||||
	    $data['rec'] = $s->getRecGoods('rec',6);
 | 
			
		||||
	    // 热销商品
 | 
			
		||||
	    $data['hot'] = $s->getRecGoods('hot',6);
 | 
			
		||||
	    $this->assign('data',$data);
 | 
			
		||||
	    return $this->fetch('self_shop');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 编辑店铺资料
 | 
			
		||||
     */
 | 
			
		||||
    public function editInfo(){
 | 
			
		||||
 | 
			
		||||
        $rs = model('shops')->editInfo();
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
   
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取店铺金额
 | 
			
		||||
     */
 | 
			
		||||
    public function getShopMoney(){
 | 
			
		||||
        $rs = model('shops')->getFieldsById((int)session('WST_USER.shopId'),'shopMoney,lockMoney,rechargeMoney');
 | 
			
		||||
        $urs = model('users')->getFieldsById((int)session('WST_USER.userId'),'payPwd');
 | 
			
		||||
        $rs['isSetPayPwd'] = ($urs['payPwd']=='')?0:1;
 | 
			
		||||
        $rs['isDraw'] = ((float)WSTConf('CONF.drawCashShopLimit')<=$rs['shopMoney'])?1:0;
 | 
			
		||||
        unset($urs);
 | 
			
		||||
        return WSTReturn('',1,$rs);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 跳去商家入驻
 | 
			
		||||
     */
 | 
			
		||||
    public function join(){
 | 
			
		||||
        $rs = model('shops')->checkApply();
 | 
			
		||||
        $this->assign('isApply',(!empty($rs) && $rs['applyStatus']>=1)?1:0);
 | 
			
		||||
        $this->assign('applyStep',empty($rs)?1:$rs['applyStep']);
 | 
			
		||||
        $articles = model('Articles')->getArticlesByCat(53);
 | 
			
		||||
        // 防止不存在入驻文章时报错
 | 
			
		||||
        if(!isset($articles['105']))$articles['105']['articleContent'] = '无相关说明,请咨询商城客服~';
 | 
			
		||||
        if(!isset($articles['106']))$articles['106']['articleContent'] = '无相关说明,请咨询商城客服~';
 | 
			
		||||
        if(!isset($articles['107']))$articles['107']['articleContent'] = '无相关说明,请咨询商城客服~';
 | 
			
		||||
        if(!isset($articles['108']))$articles['108']['articleContent'] = '无相关说明,请咨询商城客服~';
 | 
			
		||||
        $this->assign('artiles',$articles);
 | 
			
		||||
        return $this->fetch('shop_join');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function joinStep1(){
 | 
			
		||||
        session('apply_step',1);
 | 
			
		||||
        $rs = model('shops')->checkApply();
 | 
			
		||||
        $articles = model('Articles')->getArticlesByCat(53);
 | 
			
		||||
        // 防止不存在入驻文章时报错
 | 
			
		||||
        if(!isset($articles['109']))$articles['109']['articleContent'] = '无相关说明,请咨询商城客服~';
 | 
			
		||||
        $this->assign('artiles',$articles);
 | 
			
		||||
        return $this->fetch('shop_join_step1');
 | 
			
		||||
    }
 | 
			
		||||
    public function joinStep2(){
 | 
			
		||||
        $step = (int)session('apply_step');
 | 
			
		||||
        if($step<1){
 | 
			
		||||
            $this->redirect(Url('home/shops/joinStep1'));
 | 
			
		||||
            exit();
 | 
			
		||||
        }
 | 
			
		||||
        session('apply_step',2);
 | 
			
		||||
        $apply = model('shops')->getShopApply();
 | 
			
		||||
        $this->assign('apply',$apply);
 | 
			
		||||
        return $this->fetch('shop_join_step2');
 | 
			
		||||
    }
 | 
			
		||||
    public function saveStep2(){
 | 
			
		||||
        $step = (int)session('apply_step');
 | 
			
		||||
        if($step<2){
 | 
			
		||||
            return WSTReturn('请勿跳过申请步骤');
 | 
			
		||||
        }
 | 
			
		||||
        $data = input('post.');
 | 
			
		||||
        $validate = Loader::validate('Shops');
 | 
			
		||||
        if(!$validate->check($data,[],'applyStep1')){
 | 
			
		||||
            return WSTReturn($validate->getError());
 | 
			
		||||
        }else{
 | 
			
		||||
            return model('shops')->saveStep2($data);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    public function joinStep3(){
 | 
			
		||||
        $step = (int)session('apply_step');
 | 
			
		||||
        if($step<2){
 | 
			
		||||
            $this->redirect(Url('home/shops/joinStep1'));
 | 
			
		||||
            exit();
 | 
			
		||||
        }
 | 
			
		||||
        session('apply_step',3);
 | 
			
		||||
        $areas = model('Areas')->listQuery();
 | 
			
		||||
        $this->assign('areaList',$areas);
 | 
			
		||||
        $apply = model('shops')->getShopApply();
 | 
			
		||||
        $this->assign('apply',$apply);
 | 
			
		||||
        return $this->fetch('shop_join_step3');
 | 
			
		||||
    }
 | 
			
		||||
    public function saveStep3(){
 | 
			
		||||
        $step = (int)session('apply_step');
 | 
			
		||||
        if($step<3){
 | 
			
		||||
            return WSTReturn('请勿跳过申请步骤');
 | 
			
		||||
        }
 | 
			
		||||
        $data = input('post.');
 | 
			
		||||
        $validate = Loader::validate('Shops');
 | 
			
		||||
        if(!$validate->check($data,[],'applyStep2')){
 | 
			
		||||
            return WSTReturn($validate->getError());
 | 
			
		||||
        }else{
 | 
			
		||||
            return model('shops')->saveStep3($data);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    public function joinStep4(){
 | 
			
		||||
        $step = (int)session('apply_step');
 | 
			
		||||
        if($step<3){
 | 
			
		||||
            $this->redirect(Url('home/shops/joinStep4'));
 | 
			
		||||
            exit();
 | 
			
		||||
        }
 | 
			
		||||
        session('apply_step',4);
 | 
			
		||||
        $areas = model('Areas')->listQuery();
 | 
			
		||||
        $this->assign('areaList',$areas);
 | 
			
		||||
        $banks = model('banks')->listQuery();
 | 
			
		||||
        $this->assign('bankList',$banks);
 | 
			
		||||
        $apply = model('shops')->getShopApply();
 | 
			
		||||
        $this->assign('apply',$apply);
 | 
			
		||||
        return $this->fetch('shop_join_step4');
 | 
			
		||||
    }
 | 
			
		||||
    public function saveStep4(){
 | 
			
		||||
        $step = (int)session('apply_step');
 | 
			
		||||
        if($step<4){
 | 
			
		||||
            return WSTReturn('请勿跳过申请步骤');
 | 
			
		||||
        }
 | 
			
		||||
        $data = input('post.');
 | 
			
		||||
        $validate = Loader::validate('Shops');
 | 
			
		||||
        if(!$validate->check($data,[],'applyStep3')){
 | 
			
		||||
            return WSTReturn($validate->getError());
 | 
			
		||||
        }else{
 | 
			
		||||
            return model('shops')->saveStep4($data);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    public function joinStep5(){
 | 
			
		||||
        $step = (int)session('apply_step');
 | 
			
		||||
        if($step<4){
 | 
			
		||||
            $this->redirect(Url('home/shops/joinStep1'));
 | 
			
		||||
            exit();
 | 
			
		||||
        }
 | 
			
		||||
        session('apply_step',5);
 | 
			
		||||
        $shopLicense=db('shop_license')->alias('a')
 | 
			
		||||
        ->join('shops b','b.shopId= a.shopId')
 | 
			
		||||
        ->where('b.userId',(int)session("WST_USER.userId"))->find();
 | 
			
		||||
        $this->assign('shopLicense',$shopLicense);
 | 
			
		||||
        $goodsCatList = model('goodsCats')->listQuery(0);
 | 
			
		||||
        $this->assign('goodsCatList',$goodsCatList);
 | 
			
		||||
        $apply = model('shops')->getShopApply();
 | 
			
		||||
        $this->assign('apply',$apply);
 | 
			
		||||
        return $this->fetch('shop_join_step5');
 | 
			
		||||
    }
 | 
			
		||||
    public function saveStep5(){
 | 
			
		||||
        $step = (int)session('apply_step');
 | 
			
		||||
        if($step<5){
 | 
			
		||||
            return WSTReturn('请勿跳过申请步骤');
 | 
			
		||||
        }
 | 
			
		||||
        $data = input('post.');
 | 
			
		||||
        $validate = Loader::validate('Shops');
 | 
			
		||||
        if(!$validate->check($data,[],'applyStep4')){
 | 
			
		||||
            return WSTReturn($validate->getError());
 | 
			
		||||
        }else{
 | 
			
		||||
            return model('shops')->saveStep5($data);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    public function joinSuccess(){
 | 
			
		||||
        $step = (int)session('apply_step');
 | 
			
		||||
        if($step<5){
 | 
			
		||||
            $this->redirect(Url('home/shops/joinStep1'));
 | 
			
		||||
        }
 | 
			
		||||
        session('apply_step',5);
 | 
			
		||||
        $apply = model('shops')->getShopApply();
 | 
			
		||||
        $this->assign('apply',$apply);
 | 
			
		||||
        return $this->fetch('shop_join_success');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 入驻进度查询
 | 
			
		||||
     */
 | 
			
		||||
    public function checkapplystatus(){
 | 
			
		||||
        $apply = model('shops')->getShopApply();
 | 
			
		||||
        if(empty($apply)){
 | 
			
		||||
            $this->redirect(Url('home/shops/joinStep1'));
 | 
			
		||||
            exit();
 | 
			
		||||
        }else{
 | 
			
		||||
            if($apply['applyStatus']==0){
 | 
			
		||||
                session('apply_step',$apply['applyStep']);
 | 
			
		||||
                $this->redirect(Url('home/shops/joinStep'.$apply['applyStep']));
 | 
			
		||||
                exit();
 | 
			
		||||
            }else{
 | 
			
		||||
                $this->assign('apply',$apply);
 | 
			
		||||
                return $this->fetch('shop_join_success');
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										76
									
								
								hyhproject/home2/controller/Shopusers.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										76
									
								
								hyhproject/home2/controller/Shopusers.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,76 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\home\model\ShopUsers as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 门店角色控制器
 | 
			
		||||
 */
 | 
			
		||||
class Shopusers extends Base{
 | 
			
		||||
    protected $beforeActionList = ['checkShopAuth'];
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 列表
 | 
			
		||||
	 */
 | 
			
		||||
	public function index(){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$list = $m->pageQuery();
 | 
			
		||||
		$this->assign('list',$list);
 | 
			
		||||
		return $this->fetch("shops/shopusers/list");
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
    /**
 | 
			
		||||
    * 查询
 | 
			
		||||
    */
 | 
			
		||||
    public function pageQuery(){
 | 
			
		||||
        $m = new M();
 | 
			
		||||
        return $m->pageQuery();
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     * 新增店铺管理员
 | 
			
		||||
     */
 | 
			
		||||
    public function add(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	$object = $m->getEModel('shop_roles');
 | 
			
		||||
        $roles = model("ShopRoles")->listQuery();
 | 
			
		||||
		$data = ['object'=>$object,"roles"=>$roles];
 | 
			
		||||
    	return $this->fetch('shops/shopusers/add',$data);
 | 
			
		||||
    }
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
     * 新增店铺管理员
 | 
			
		||||
     */
 | 
			
		||||
    public function toAdd(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	return $m->add();
 | 
			
		||||
    }
 | 
			
		||||
	
 | 
			
		||||
    /**
 | 
			
		||||
     * 修改店铺管理员
 | 
			
		||||
     */
 | 
			
		||||
    public function edit(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	$object = $m->getById(input('get.id'));
 | 
			
		||||
		$roles = model("ShopRoles")->listQuery();
 | 
			
		||||
        $data = ['object'=>$object,"roles"=>$roles];
 | 
			
		||||
    	return $this->fetch('shops/shopusers/edit',$data);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
     * 编辑店铺管理员
 | 
			
		||||
     */
 | 
			
		||||
    public function toEdit(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	return $m->edit();
 | 
			
		||||
    }
 | 
			
		||||
	
 | 
			
		||||
    /**
 | 
			
		||||
     * 删除操作
 | 
			
		||||
     */
 | 
			
		||||
    public function del(){
 | 
			
		||||
    	$m = new M();
 | 
			
		||||
    	$rs = $m->del();
 | 
			
		||||
    	return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								hyhproject/home2/controller/Switchs.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										21
									
								
								hyhproject/home2/controller/Switchs.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 关闭提示处理控制器
 | 
			
		||||
 */
 | 
			
		||||
use think\Controller;
 | 
			
		||||
class Switchs extends Controller{
 | 
			
		||||
	public function __construct(){
 | 
			
		||||
		parent::__construct();
 | 
			
		||||
		$this->assign("v",WSTConf('CONF.wstVersion')."_".WSTConf('CONF.wstPCStyleId'));
 | 
			
		||||
	}
 | 
			
		||||
	protected function fetch($template = '', $vars = [], $replace = [], $config = []){
 | 
			
		||||
		$style = WSTConf('CONF.wsthomeStyle')?WSTConf('CONF.wsthomeStyle'):'default';
 | 
			
		||||
		$replace['__STYLE__'] = str_replace('/index.php','',\think\Request::instance()->root()).'/hyhproject/home/view/'.$style;
 | 
			
		||||
		return $this->view->fetch($style."/".$template, $vars, $replace, $config);
 | 
			
		||||
	}
 | 
			
		||||
    public function index(){
 | 
			
		||||
        return $this->fetch('error_switch');
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										183
									
								
								hyhproject/home2/controller/Tmp.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										183
									
								
								hyhproject/home2/controller/Tmp.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,183 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
Vendor('web3.vendor.autoload');    
 | 
			
		||||
use \PHPUnit\Framework\TestCase as BaseTestCase;
 | 
			
		||||
use Web3\Web3;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 默认控制器
 | 
			
		||||
 */
 | 
			
		||||
class Tmp extends Base{
 | 
			
		||||
  /**
 | 
			
		||||
     * web3
 | 
			
		||||
     * 
 | 
			
		||||
     * @var \Web3\Web3
 | 
			
		||||
     */
 | 
			
		||||
    protected $web3;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * testRinkebyHost
 | 
			
		||||
     * 
 | 
			
		||||
     * @var string
 | 
			
		||||
     */
 | 
			
		||||
    protected $testRinkebyHost = 'http://localhost';
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * testHost
 | 
			
		||||
     * 
 | 
			
		||||
     * @var string
 | 
			
		||||
     */
 | 
			
		||||
    protected $testHost = 'http://localhost:8545';
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * coinbase
 | 
			
		||||
     * 
 | 
			
		||||
     * @var string
 | 
			
		||||
     */
 | 
			
		||||
    protected $coinbase;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * setUp
 | 
			
		||||
     * 
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
    public function index(){
 | 
			
		||||
      //Loader::import('web3.src.Web3');
 | 
			
		||||
    
 | 
			
		||||
      $web3 = new Web3($this->testHost);
 | 
			
		||||
      $this->web3 = $web3;
 | 
			
		||||
      $personal = $web3->personal;
 | 
			
		||||
      // $personal->batch(true);
 | 
			
		||||
      // $personal->listAccounts();
 | 
			
		||||
      // $personal->newAccount('123456');
 | 
			
		||||
 | 
			
		||||
      // $personal->provider->execute(function ($err, $data) {
 | 
			
		||||
      //     if ($err !== null) {
 | 
			
		||||
      //         // do something
 | 
			
		||||
      //         return;
 | 
			
		||||
      //     }
 | 
			
		||||
      //     // do something
 | 
			
		||||
      // });
 | 
			
		||||
      //dump($personal);
 | 
			
		||||
      $web3->eth->coinbase(function ($err, $coinbase) {
 | 
			
		||||
          if ($err !== null) {
 | 
			
		||||
                 dump($this->fail($err->getMessage()));
 | 
			
		||||
          }
 | 
			
		||||
          $this->coinbase = $coinbase;
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
    $eth = $web3->eth;
 | 
			
		||||
    $eth->accounts(function ($err, $accounts) use ($eth) {
 | 
			
		||||
      if ($err !== null) {
 | 
			
		||||
          echo 'Error: ' . $err->getMessage();
 | 
			
		||||
          return;
 | 
			
		||||
      }
 | 
			
		||||
      dump($accounts);
 | 
			
		||||
    });
 | 
			
		||||
    //   $personal->unlockAccount($this->coinbase, '123456', function ($err, $unlocked) {
 | 
			
		||||
    //   if ($err !== null) {
 | 
			
		||||
    //     echo 'Error: ' . $err->getMessage();
 | 
			
		||||
    //     return;
 | 
			
		||||
    //   }
 | 
			
		||||
    //   if ($unlocked) {
 | 
			
		||||
    //         echo 'New account is unlocked!' . PHP_EOL;
 | 
			
		||||
    //   } else {
 | 
			
		||||
    //       echo 'New account isn\'t unlocked' . PHP_EOL;
 | 
			
		||||
    //   }
 | 
			
		||||
    // });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      
 | 
			
		||||
      $web3->eth->getBalance( $this->coinbase , function ($err, $balance) {
 | 
			
		||||
      if ($err !== null) {
 | 
			
		||||
        echo 'Error: ' . $err->getMessage();
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      echo 'Balance: ' . $balance->toString() . PHP_EOL;
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      $newAccount = '';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      $web3->personal->newAccount('123456', function ($err, $account) use (&$newAccount) {
 | 
			
		||||
        dump($err);
 | 
			
		||||
          if ($err !== null) {
 | 
			
		||||
              echo 'Error: ' . $err->getMessage();
 | 
			
		||||
              return;
 | 
			
		||||
          }
 | 
			
		||||
          $newAccount = $account;
 | 
			
		||||
          echo 'New account: ' . $account . PHP_EOL;
 | 
			
		||||
      });
 | 
			
		||||
      
 | 
			
		||||
      dump($this->coinbase);
 | 
			
		||||
      // $web3->eth->getWork(function ($err, $coinbase) {
 | 
			
		||||
      //     if ($err !== null) {
 | 
			
		||||
      //            dump($this->fail($err->getMessage()));
 | 
			
		||||
      //     }
 | 
			
		||||
      //     dump($coinbase);
 | 
			
		||||
      // });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      // $web3->clientVersion(function ($err, $version) {
 | 
			
		||||
      //     if ($err !== null) {
 | 
			
		||||
      //         // do something
 | 
			
		||||
      //         return;
 | 
			
		||||
      //     }
 | 
			
		||||
      //       dump($version);die;
 | 
			
		||||
      //     if (isset($client)) {
 | 
			
		||||
      //         echo 'Client version: ' . $version;
 | 
			
		||||
      //     }
 | 
			
		||||
      // });
 | 
			
		||||
     die;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      $web3 = new Web3('http://localhost:8545');
 | 
			
		||||
      //$getPersonal = $web3->getEth;
 | 
			
		||||
      
 | 
			
		||||
      $personal = $web3->personal;
 | 
			
		||||
 | 
			
		||||
      $newAccount = '';
 | 
			
		||||
 | 
			
		||||
      echo 'Personal Create Account and Unlock Account' . PHP_EOL;
 | 
			
		||||
 | 
			
		||||
      // create account
 | 
			
		||||
      $personal->newAccount('123456', function ($err, $account) use (&$newAccount) {
 | 
			
		||||
        if ($err !== null) {
 | 
			
		||||
            echo 'Error: ' . $err->getMessage();
 | 
			
		||||
          return;
 | 
			
		||||
        }
 | 
			
		||||
        $newAccount = $account;
 | 
			
		||||
        echo 'New account: ' . $account . PHP_EOL;
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
      $personal->unlockAccount($newAccount, '123456', function ($err, $unlocked) {
 | 
			
		||||
        if ($err !== null) {
 | 
			
		||||
          echo 'Error: ' . $err->getMessage();
 | 
			
		||||
          return;
 | 
			
		||||
        }
 | 
			
		||||
        if ($unlocked) {
 | 
			
		||||
              echo 'New account is unlocked!' . PHP_EOL;
 | 
			
		||||
        } else {
 | 
			
		||||
            echo 'New account isn\'t unlocked' . PHP_EOL;
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      // get balance
 | 
			
		||||
      $web3->eth->getBalance($newAccount, function ($err, $balance) {
 | 
			
		||||
        if ($err !== null) {
 | 
			
		||||
          echo 'Error: ' . $err->getMessage();
 | 
			
		||||
          return;
 | 
			
		||||
        }
 | 
			
		||||
        echo 'Balance: ' . $balance->toString() . PHP_EOL;
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
    die;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										230
									
								
								hyhproject/home2/controller/Unionpays.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										230
									
								
								hyhproject/home2/controller/Unionpays.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,230 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use think\Loader;
 | 
			
		||||
use wstmart\common\model\Payments as M;
 | 
			
		||||
use wstmart\common\model\Orders as OM;
 | 
			
		||||
use wstmart\common\model\LogMoneys as LM;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 银联支付控制器
 | 
			
		||||
 */
 | 
			
		||||
class Unionpays extends Base{
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 初始化
 | 
			
		||||
	 */
 | 
			
		||||
	private $unionConfig;
 | 
			
		||||
	public function _initialize() {
 | 
			
		||||
		header ("Content-type: text/html; charset=utf-8");
 | 
			
		||||
		Loader::import('unionpay.sdk.acp_service');
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$this->unionConfig = $m->getPayment("unionpays");
 | 
			
		||||
	
 | 
			
		||||
		$config = array();
 | 
			
		||||
		$config["signCertPwd"] = $this->unionConfig["unionSignCertPwd"];//"000000"
 | 
			
		||||
		$config["signMethod"] = "01";
 | 
			
		||||
		$config["frontUrl"] = url("home/unionpays/response","",true,true);
 | 
			
		||||
		$config["backUrl"] = url("home/unionpays/notify","",true,true);
 | 
			
		||||
		new \SDKConfig($config);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
	public function getUnionpaysUrl(){
 | 
			
		||||
		$m = new OM();
 | 
			
		||||
		$payObj = input("payObj/s");
 | 
			
		||||
		$data = array();
 | 
			
		||||
		if($payObj=="recharge"){
 | 
			
		||||
			$needPay = input("needPay/d");
 | 
			
		||||
			$data["status"] = $needPay>0?1:-1;
 | 
			
		||||
		}else{
 | 
			
		||||
			$userId = (int)session('WST_USER.userId');
 | 
			
		||||
			$data = $m->checkOrderPay();
 | 
			
		||||
		}
 | 
			
		||||
		return $data;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
     * 生成支付代码
 | 
			
		||||
     * @param   array   $order      订单信息
 | 
			
		||||
     * @param   array   $config_value    支付方式信息
 | 
			
		||||
     */
 | 
			
		||||
    public function toUnionpays(){
 | 
			
		||||
    	
 | 
			
		||||
    	$payObj = input("payObj/s");
 | 
			
		||||
    	$m = new OM();
 | 
			
		||||
    	$obj = array();
 | 
			
		||||
    	$data = array();
 | 
			
		||||
    	$orderAmount = 0;
 | 
			
		||||
    	$orderId = "";
 | 
			
		||||
    	$extra_param = "";
 | 
			
		||||
    	if($payObj=="recharge"){//充值
 | 
			
		||||
    		
 | 
			
		||||
    		$itmeId = (int)input("itmeId/d");
 | 
			
		||||
    		$orderAmount = 0;
 | 
			
		||||
    		if($itmeId>0){
 | 
			
		||||
    			$item = $cm->getItemMoney($itmeId);
 | 
			
		||||
    			$orderAmount = isSet($item["chargeMoney"])?$item["chargeMoney"]:0;
 | 
			
		||||
    		}else{
 | 
			
		||||
    			$orderAmount = (int)input("needPay/d");
 | 
			
		||||
    		}
 | 
			
		||||
    		$shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
    		$targetType = ($shopId>0)?1:0;
 | 
			
		||||
			$targetId = (int)session('WST_USER.userId');
 | 
			
		||||
			if($targetType==1){//商家
 | 
			
		||||
				$targetId = $shopId;
 | 
			
		||||
			}
 | 
			
		||||
    		
 | 
			
		||||
    		$data["status"] = $orderAmount>0?1:-1;
 | 
			
		||||
    		$orderId = WSTOrderNo();
 | 
			
		||||
    		$extra_param = $payObj."|".$targetId."|".$targetType."|".$itmeId;
 | 
			
		||||
    		
 | 
			
		||||
    	}else{
 | 
			
		||||
    		$obj["orderNo"] = input("orderNo/s");
 | 
			
		||||
    		$obj["isBatch"] = (int)input("isBatch/d");
 | 
			
		||||
    		$data = $m->checkOrderPay($obj);
 | 
			
		||||
    		if($data["status"]==1){
 | 
			
		||||
    			$userId = (int)session('WST_USER.userId');
 | 
			
		||||
    			$obj["userId"] = $userId;
 | 
			
		||||
    			$order = $m->getPayOrders($obj);
 | 
			
		||||
    			$orderAmount = $order["needPay"];
 | 
			
		||||
    			$payRand = $order["payRand"];
 | 
			
		||||
    			$orderId = $obj["orderNo"]."a".$payRand;
 | 
			
		||||
    			$extra_param = $payObj."|".$userId."|".$obj["isBatch"];
 | 
			
		||||
    		}
 | 
			
		||||
    	}
 | 
			
		||||
    	
 | 
			
		||||
    	if($data["status"]==1){
 | 
			
		||||
	    	$params = array(
 | 
			
		||||
	    		//以下信息非特殊情况不需要改动
 | 
			
		||||
	    		'version' => \SDKConfig::$version,                 //版本号
 | 
			
		||||
	    		'encoding' => 'utf-8',				  //编码方式
 | 
			
		||||
	    		'txnType' => '01',				      //交易类型
 | 
			
		||||
	    		'txnSubType' => '01',				  //交易子类
 | 
			
		||||
	    		'bizType' => '000201',				  //业务类型
 | 
			
		||||
	    		'frontUrl' =>  \SDKConfig::$frontUrl,  //前台通知地址
 | 
			
		||||
	    		'backUrl' => \SDKConfig::$backUrl,	  //后台通知地址
 | 
			
		||||
	    		'signMethod' => \SDKConfig::$signMethod,//签名方法
 | 
			
		||||
	    		'channelType' => '07',	              //渠道类型,07-PC,08-手机
 | 
			
		||||
	    		'accessType' => '0',		          //接入类型
 | 
			
		||||
	    		'currencyCode' => '156',	          //交易币种,境内商户固定156
 | 
			
		||||
	    		//TODO 以下信息需要填写
 | 
			
		||||
	    		'merId' => $this->unionConfig["unionMerId"], //"777290058110048",//商户代码
 | 
			
		||||
	    		'orderId' => $orderId,	//商户订单号,8-32位数字字母,不能含“-”或“_”
 | 
			
		||||
	    		'txnTime' => date('YmdHis'),	//订单发送时间,格式为YYYYMMDDhhmmss,取北京时间
 | 
			
		||||
	    		'txnAmt' => $orderAmount*100,	//交易金额,单位分,此处默认取demo演示页面传递的参数
 | 
			
		||||
	    		// 订单超时时间。
 | 
			
		||||
	    		//'payTimeout' => date('YmdHis', strtotime('+15 minutes')),
 | 
			
		||||
	    	
 | 
			
		||||
	    		'reqReserved' => $extra_param,
 | 
			
		||||
	    	);
 | 
			
		||||
	    	$acpService = new \AcpService();
 | 
			
		||||
	    	$acpService::sign ( $params );
 | 
			
		||||
	    	$uri = \SDKConfig::$frontTransUrl;
 | 
			
		||||
	    	$html_form = $acpService::createAutoFormHtml( $params, $uri );
 | 
			
		||||
	    	echo $html_form;
 | 
			
		||||
    	}else{
 | 
			
		||||
    		
 | 
			
		||||
    	}
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     * 异步回调接口
 | 
			
		||||
     */
 | 
			
		||||
    public function notify(){                
 | 
			
		||||
      
 | 
			
		||||
        //计算得出通知验证结果        
 | 
			
		||||
        $acpService = new \AcpService(); // 使用银联原生自带的累 和方法 这里只是引用了一下 而已
 | 
			
		||||
        $verify_result = $acpService->validate($_POST);
 | 
			
		||||
        
 | 
			
		||||
     	if($verify_result){//验证成功
 | 
			
		||||
         	$out_trade_no = $_POST['orderId']; //商户订单号                    
 | 
			
		||||
            $queryId = $_POST['queryId']; //银联支付流水号
 | 
			
		||||
            // 解释: 交易成功且结束,即不可再做任何操作。
 | 
			
		||||
           	if($_POST['respMsg'] == 'Success!'){                    
 | 
			
		||||
	           	$m = new OM();
 | 
			
		||||
				$extras = explode("|",$_POST['reqReserved']);
 | 
			
		||||
				$rs = array();
 | 
			
		||||
				if($extras[0]=="recharge"){//充值
 | 
			
		||||
					$targetId = (int)$extras [1];
 | 
			
		||||
					$targetType = (int)$extras [2];
 | 
			
		||||
					$itemId = (int)$extras [3];
 | 
			
		||||
					$obj = array ();
 | 
			
		||||
					$obj["trade_no"] = $_POST['trade_no'];
 | 
			
		||||
					$obj["out_trade_no"] = $_POST["out_trade_no"];;
 | 
			
		||||
					$obj["targetId"] = $targetId;
 | 
			
		||||
					$obj["targetType"] = $targetType;
 | 
			
		||||
					$obj["itemId"] = $itemId;
 | 
			
		||||
					$obj["total_fee"] = $_POST['total_fee'];
 | 
			
		||||
					$obj["payFrom"] = 'unionpays';
 | 
			
		||||
					// 支付成功业务逻辑
 | 
			
		||||
					$m = new LM();
 | 
			
		||||
					$rs = $m->complateRecharge ( $obj );
 | 
			
		||||
				}else{
 | 
			
		||||
					//商户订单号
 | 
			
		||||
					$obj = array();
 | 
			
		||||
					$tradeNo = explode("a",$out_trade_no);
 | 
			
		||||
					$obj["trade_no"] = $_POST['trade_no'];
 | 
			
		||||
					$obj["out_trade_no"] = $tradeNo[0];
 | 
			
		||||
					$obj["total_fee"] = $_POST['total_fee'];
 | 
			
		||||
						
 | 
			
		||||
					$obj["userId"] = $extras[1];
 | 
			
		||||
					$obj["isBatch"] = $extras[2];
 | 
			
		||||
					$obj["payFrom"] = 'unionpays';
 | 
			
		||||
					//支付成功业务逻辑
 | 
			
		||||
					$rs = $m->complatePay($obj);
 | 
			
		||||
				}
 | 
			
		||||
				if($rs["status"]==1){
 | 
			
		||||
					echo 'success';
 | 
			
		||||
				}else{
 | 
			
		||||
					echo 'fail';
 | 
			
		||||
				}
 | 
			
		||||
      		}
 | 
			
		||||
  		}else{                
 | 
			
		||||
      		echo "fail"; //验证失败                                
 | 
			
		||||
  		}
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     * 同步回调接口
 | 
			
		||||
     */
 | 
			
		||||
    public function response(){
 | 
			
		||||
        //计算得出通知验证结果        
 | 
			
		||||
        $acpService = new \AcpService(); // 使用银联原生自带的累 和方法 这里只是引用了一下 而已
 | 
			
		||||
        $verify_result = $acpService->validate($_POST);
 | 
			
		||||
        
 | 
			
		||||
   		if($verify_result){ //验证成功
 | 
			
		||||
       		$order_sn = $out_trade_no = $_POST['orderId']; //商户订单号
 | 
			
		||||
        	$queryId = $_POST['queryId']; //银联支付流水号                   
 | 
			
		||||
          	$respMsg = $_POST['respMsg']; //交易状态
 | 
			
		||||
                    
 | 
			
		||||
      		if($_POST['respMsg'] == 'success'){
 | 
			
		||||
      			$m = new OM();
 | 
			
		||||
      			$extras = explode("|",$_POST['extra_param']);
 | 
			
		||||
   				if($extras[0]=="recharge"){//充值
 | 
			
		||||
   					if($extras[2]==1){
 | 
			
		||||
   						$this->redirect(url("home/logmoneys/shopmoneys"));
 | 
			
		||||
   					}else{
 | 
			
		||||
   						$this->redirect(url("home/logmoneys/usermoneys"));
 | 
			
		||||
   					}
 | 
			
		||||
   				}else{
 | 
			
		||||
   					$obj = array();
 | 
			
		||||
   					$tradeNo = explode("a",$out_trade_no);
 | 
			
		||||
   					$obj["orderNo"] = $tradeNo[0];
 | 
			
		||||
   					$obj["userId"] = $extras[1];
 | 
			
		||||
   					$obj["isBatch"] = $extras[2];
 | 
			
		||||
   					$rs = $m->getOrderType($obj);
 | 
			
		||||
   					if((int)$rs["orderType"]==1){
 | 
			
		||||
   						$this->redirect(url("home/orders/waitAppraise"));
 | 
			
		||||
   					}else{
 | 
			
		||||
   						$this->redirect(url("home/orders/waitReceive"));
 | 
			
		||||
   					}
 | 
			
		||||
   				}
 | 
			
		||||
       		}else {                        
 | 
			
		||||
           		$this->error('支付失败');
 | 
			
		||||
   			}
 | 
			
		||||
     	}else {                     
 | 
			
		||||
     		$this->error('支付失败');
 | 
			
		||||
 		}
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										82
									
								
								hyhproject/home2/controller/Useraddress.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										82
									
								
								hyhproject/home2/controller/Useraddress.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,82 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\common\model\LogSms;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 用户地址控制器
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
class Useraddress extends Base{
 | 
			
		||||
    protected $beforeActionList = ['checkAuth'];
 | 
			
		||||
    /**
 | 
			
		||||
    * 设置为默认地址
 | 
			
		||||
    */
 | 
			
		||||
    public function setDefault(){
 | 
			
		||||
        return model('userAddress')->setDefault();
 | 
			
		||||
    }
 | 
			
		||||
	public function index(){
 | 
			
		||||
		return $this->fetch('users/useraddress/list');
 | 
			
		||||
	}
 | 
			
		||||
    /**
 | 
			
		||||
    * 获取地址信息
 | 
			
		||||
    * 1.购物车结算有引用
 | 
			
		||||
    */
 | 
			
		||||
    public function listQuery(){
 | 
			
		||||
        //获取用户信息
 | 
			
		||||
        $userId = (int)session('WST_USER.userId');
 | 
			
		||||
        if(!$userId){
 | 
			
		||||
            return WSTReturn('未登录', -1);
 | 
			
		||||
        }
 | 
			
		||||
        $list = model('Home/userAddress')->listQuery($userId);
 | 
			
		||||
        return WSTReturn('', 1,$list);
 | 
			
		||||
    }
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	* 跳去修改地址
 | 
			
		||||
	*/
 | 
			
		||||
	public function edit(){
 | 
			
		||||
		$m = model('userAddress');
 | 
			
		||||
		$id=(int)input('id');
 | 
			
		||||
        $data = $m->getById($id);
 | 
			
		||||
        $data = empty($data)?$m->getEModel('user_address'):$data;
 | 
			
		||||
        //获取省级地区信息
 | 
			
		||||
        $area1 = model('Areas')->listQuery(0);
 | 
			
		||||
        $this->assign(['data'=>$data,
 | 
			
		||||
        			   'area1'=>$area1]);
 | 
			
		||||
		return $this->fetch('users/useraddress/edit');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
     * 新增
 | 
			
		||||
     */
 | 
			
		||||
    public function add(){
 | 
			
		||||
        $m = model('userAddress');
 | 
			
		||||
        $rs = $m->add();
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
	/**
 | 
			
		||||
    * 修改
 | 
			
		||||
    */
 | 
			
		||||
    public function toEdit(){
 | 
			
		||||
        $m = model('userAddress');
 | 
			
		||||
        $rs = $m->edit();
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
    * 删除
 | 
			
		||||
    */
 | 
			
		||||
    public function del(){
 | 
			
		||||
    	$m = model('userAddress');
 | 
			
		||||
        $rs = $m->del();
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取用户地址
 | 
			
		||||
     */
 | 
			
		||||
    public function getById(){
 | 
			
		||||
    	$m = model('userAddress');
 | 
			
		||||
        $id=(int)input('id');
 | 
			
		||||
        $data = $m->getById($id);
 | 
			
		||||
        return WSTReturn('', 1,$data);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										974
									
								
								hyhproject/home2/controller/Users.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										974
									
								
								hyhproject/home2/controller/Users.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,974 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\common\model\Users as MUsers;
 | 
			
		||||
use wstmart\common\model\LogSms;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 用户控制器
 | 
			
		||||
 */
 | 
			
		||||
class Users extends Base{
 | 
			
		||||
    protected $beforeActionList = [
 | 
			
		||||
          'checkAuth' =>  ['except'=>'getverify,login,logout,regist,toregist,checklogin,getphoneverifycode,checkloginkey,checkemail,checkfindkey,protocol,forgetpass,forgetpasst,resetpass,forgetpasss,forgetpassf,findpass,getfindphone,checkfindphone,getfindemail,tologinbox']
 | 
			
		||||
    ];
 | 
			
		||||
	/**
 | 
			
		||||
     * 去登录
 | 
			
		||||
     */
 | 
			
		||||
	public function login(){
 | 
			
		||||
		$USER = session('WST_USER');
 | 
			
		||||
		//如果已经登录了则直接跳去用户中心
 | 
			
		||||
		if(!empty($USER) && !empty($USER['userId'])){
 | 
			
		||||
			$this->redirect("users/index");
 | 
			
		||||
		}
 | 
			
		||||
		$loginName = cookie("loginName");
 | 
			
		||||
		if(!empty($loginName)){
 | 
			
		||||
			$this->assign('loginName',cookie("loginName"));
 | 
			
		||||
		}else{
 | 
			
		||||
			$this->assign('loginName','');
 | 
			
		||||
		}
 | 
			
		||||
		return $this->fetch('user_login');
 | 
			
		||||
	}
 | 
			
		||||
		    
 | 
			
		||||
    /**
 | 
			
		||||
	 * 用户退出
 | 
			
		||||
	 */
 | 
			
		||||
	public function logout(){
 | 
			
		||||
		session('WST_USER',null);
 | 
			
		||||
		setcookie("loginPwd", null);
 | 
			
		||||
		session('WST_HO_CURRENTURL', null);
 | 
			
		||||
		hook('afterUserLogout');
 | 
			
		||||
		return WSTReturn("退出成功",1);
 | 
			
		||||
		
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
     * 用户注册
 | 
			
		||||
     * 
 | 
			
		||||
     */
 | 
			
		||||
	public function regist(){
 | 
			
		||||
		$USER = session('WST_USER');
 | 
			
		||||
		//如果已经登录了则直接跳去用户中心
 | 
			
		||||
		if(!empty($USER) && $USER['userId']!=''){
 | 
			
		||||
			$this->redirect("users/index");
 | 
			
		||||
		}
 | 
			
		||||
		$loginName = cookie("loginName");
 | 
			
		||||
		if(!empty($loginName)){
 | 
			
		||||
			$this->assign('loginName',cookie("loginName"));
 | 
			
		||||
		}else{
 | 
			
		||||
			$this->assign('loginName','');
 | 
			
		||||
		}
 | 
			
		||||
		return $this->fetch('regist');
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 新用户注册
 | 
			
		||||
	 */
 | 
			
		||||
	public function toRegist(){
 | 
			
		||||
		$m = new MUsers();
 | 
			
		||||
		$rs = $m->regist();
 | 
			
		||||
		$rs['url'] = session('WST_HO_CURRENTURL');
 | 
			
		||||
		return $rs;
 | 
			
		||||
	
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 验证登录
 | 
			
		||||
	 *
 | 
			
		||||
	 */
 | 
			
		||||
	public function checkLogin(){
 | 
			
		||||
		$m = new MUsers();
 | 
			
		||||
    	$rs = $m->checkLogin();
 | 
			
		||||
    	$rs['url'] = session('WST_HO_CURRENTURL');
 | 
			
		||||
    	return $rs;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取验证码
 | 
			
		||||
	 */
 | 
			
		||||
	public function getPhoneVerifyCode(){
 | 
			
		||||
		$userPhone = input("post.userPhone");
 | 
			
		||||
		$rs = array();
 | 
			
		||||
		if(!WSTIsPhone($userPhone)){
 | 
			
		||||
			return WSTReturn("手机号格式不正确!");
 | 
			
		||||
			exit();
 | 
			
		||||
		}
 | 
			
		||||
		$m = new MUsers();
 | 
			
		||||
		$rs = $m->checkUserPhone($userPhone,(int)session('WST_USER.userId'));
 | 
			
		||||
		if($rs["status"]!=1){
 | 
			
		||||
			return WSTReturn("手机号已存在!");
 | 
			
		||||
			exit();
 | 
			
		||||
		}
 | 
			
		||||
		$phoneVerify = rand(100000,999999);
 | 
			
		||||
        $rv = ['status'=>-1,'msg'=>'短信发送失败'];
 | 
			
		||||
        $tpl = WSTMsgTemplates('PHONE_USER_REGISTER_VERFIY');
 | 
			
		||||
        if( $tpl['tplContent']!='' && $tpl['status']=='1'){
 | 
			
		||||
            $params = ['tpl'=>$tpl,'params'=>['MALL_NAME'=>WSTConf("CONF.mallName"),'VERFIY_CODE'=>$phoneVerify,'VERFIY_TIME'=>10]];
 | 
			
		||||
            $m = new LogSms();
 | 
			
		||||
            $rv = $m->sendSMS(0,$userPhone,$params,'getPhoneVerify',$phoneVerify);
 | 
			
		||||
        }
 | 
			
		||||
		if($rv['status']==1){
 | 
			
		||||
			session('VerifyCode_userPhone',$phoneVerify);
 | 
			
		||||
			session('VerifyCode_userPhone_Time',time());
 | 
			
		||||
		}
 | 
			
		||||
		return $rv;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 判断手机或邮箱是否存在
 | 
			
		||||
	 */
 | 
			
		||||
	public function checkLoginKey(){
 | 
			
		||||
		$m = new MUsers();
 | 
			
		||||
		if(input("post.loginName"))$val=input("post.loginName");
 | 
			
		||||
		if(input("post.userPhone"))$val=input("post.userPhone");
 | 
			
		||||
		if(input("post.userEmail"))$val=input("post.userEmail");
 | 
			
		||||
        $userId = (int)session('WST_USER.userId');
 | 
			
		||||
		$rs = WSTCheckLoginKey($val,$userId);
 | 
			
		||||
		if($rs["status"]==1){
 | 
			
		||||
			return array("ok"=>"");
 | 
			
		||||
		}else{
 | 
			
		||||
			return array("error"=>$rs["msg"]);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 判断邮箱是否存在
 | 
			
		||||
	 */
 | 
			
		||||
	public function checkEmail(){
 | 
			
		||||
		$data = $this->checkLoginKey();
 | 
			
		||||
		if(isset($data['error']))$data['error'] = '对不起,该邮箱已存在';
 | 
			
		||||
		return $data;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 判断用户名是否存在/忘记密码
 | 
			
		||||
	 */
 | 
			
		||||
	public function checkFindKey(){
 | 
			
		||||
		$m = new MUsers();
 | 
			
		||||
		$userId = (int)session('WST_USER.userId');
 | 
			
		||||
		$rs = WSTCheckLoginKey(input("post.loginName"),$userId);
 | 
			
		||||
		if($rs["status"]==1){
 | 
			
		||||
			return array("error"=>"该用户不存在!");
 | 
			
		||||
		}else{
 | 
			
		||||
			return array("ok"=>"");
 | 
			
		||||
		}
 | 
			
		||||
	
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 跳到用户注册协议
 | 
			
		||||
	 */
 | 
			
		||||
	public function protocol(){
 | 
			
		||||
		return $this->fetch("user_protocol");
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 用户中心
 | 
			
		||||
	 */
 | 
			
		||||
	public function index(){
 | 
			
		||||
		session('WST_MENID0',0);
 | 
			
		||||
		session('WST_MENUID30',0);
 | 
			
		||||
        // 待付款 待收货 待评价
 | 
			
		||||
        $info = model('home/Users')->getStatusNum();
 | 
			
		||||
        $this->assign($info);
 | 
			
		||||
        $m = new MUsers();
 | 
			
		||||
        $data = $m->getById((int)session('WST_USER.userId'));
 | 
			
		||||
        $this->assign('data',$data);
 | 
			
		||||
		return $this->fetch('users/index');
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	* 跳去修改个人资料
 | 
			
		||||
	*/
 | 
			
		||||
	public function edit(){
 | 
			
		||||
		$m = new MUsers();
 | 
			
		||||
		//获取用户信息
 | 
			
		||||
		$userId = (int)session('WST_USER.userId');
 | 
			
		||||
        $data = $m->getById($userId);
 | 
			
		||||
        $this->assign('data',$data);
 | 
			
		||||
		return $this->fetch('users/user_edit');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	* 跳去修改密码页
 | 
			
		||||
	*/
 | 
			
		||||
	public function editPass(){
 | 
			
		||||
		$m = new MUsers();
 | 
			
		||||
		//获取用户信息
 | 
			
		||||
		$userId = (int)session('WST_USER.userId');
 | 
			
		||||
		$data = $m->getById($userId);
 | 
			
		||||
		$this->assign('data',$data);
 | 
			
		||||
		return $this->fetch('users/security/user_pass');
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	* 修改密码
 | 
			
		||||
	*/
 | 
			
		||||
	public function passedit(){
 | 
			
		||||
		$userId = (int)session('WST_USER.userId');
 | 
			
		||||
		$m = new MUsers();
 | 
			
		||||
		$rs = $m->editPass($userId);
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
    * 修改
 | 
			
		||||
    */
 | 
			
		||||
    public function toEdit(){
 | 
			
		||||
        $m = new MUsers();
 | 
			
		||||
        $rs = $m->edit();
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 安全设置页
 | 
			
		||||
     */
 | 
			
		||||
    public function security(){
 | 
			
		||||
    	//获取用户信息
 | 
			
		||||
    	$m = new MUsers();
 | 
			
		||||
    	$data = $m->getById((int)session('WST_USER.userId'));
 | 
			
		||||
    	if($data['userPhone']!='')$data['userPhone'] = WSTStrReplace($data['userPhone'],'*',3);
 | 
			
		||||
    	if($data['userEmail']!='')$data['userEmail'] = WSTStrReplace($data['userEmail'],'*',2,'@');
 | 
			
		||||
    	$this->assign('data',$data);
 | 
			
		||||
    	return $this->fetch('users/security/index');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 修改邮箱页
 | 
			
		||||
     */
 | 
			
		||||
    public function editEmail(){
 | 
			
		||||
    	hook('homeControllerUsersEditEmail');
 | 
			
		||||
    	//获取用户信息
 | 
			
		||||
    	$userId = (int)session('WST_USER.userId');
 | 
			
		||||
    	$m = new MUsers();
 | 
			
		||||
    	$data = $m->getById($userId);
 | 
			
		||||
    	if($data['userEmail']!='')$data['userEmail'] = WSTStrReplace($data['userEmail'],'*',2,'@');
 | 
			
		||||
    	$this->assign('data',$data);
 | 
			
		||||
    	$process = 'One';
 | 
			
		||||
    	$this->assign('process',$process);
 | 
			
		||||
    	if($data['userEmail']){
 | 
			
		||||
    		return $this->fetch('users/security/user_edit_email');
 | 
			
		||||
    	}else{
 | 
			
		||||
    		return $this->fetch('users/security/user_email');
 | 
			
		||||
    	}
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 发送验证邮件/绑定邮箱
 | 
			
		||||
     */
 | 
			
		||||
    public function getEmailVerify(){
 | 
			
		||||
    	$userEmail = input('post.userEmail');
 | 
			
		||||
    	if(!$userEmail){
 | 
			
		||||
    		return WSTReturn('请输入邮箱!',-1);
 | 
			
		||||
    	}
 | 
			
		||||
    	$code = input("post.verifyCode");
 | 
			
		||||
    	$process = input("post.process");
 | 
			
		||||
    	if(!WSTVerifyCheck($code)){
 | 
			
		||||
    		return WSTReturn('验证码错误!',-1);
 | 
			
		||||
    	}
 | 
			
		||||
    	$rs = WSTCheckLoginKey($userEmail,(int)session('WST_USER.userId'));
 | 
			
		||||
    	if($rs["status"]!=1){
 | 
			
		||||
    		return WSTReturn("邮箱已存在!");
 | 
			
		||||
    		exit();
 | 
			
		||||
    	}
 | 
			
		||||
        $code = rand(0,999999);
 | 
			
		||||
        $sendRs = ['status'=>-1,'msg'=>'邮件发送失败'];
 | 
			
		||||
        $tpl = WSTMsgTemplates('EMAIL_BIND');
 | 
			
		||||
        if( $tpl['tplContent']!='' && $tpl['status']=='1'){
 | 
			
		||||
            $find = ['${LOGIN_NAME}','${SEND_TIME}','${VERFIY_CODE}','${VERFIY_TIME}'];
 | 
			
		||||
            $replace = [session('WST_USER.loginName'),date('Y-m-d H:i:s'),$code,30];
 | 
			
		||||
            $sendRs = WSTSendMail($userEmail,'绑定邮箱',str_replace($find,$replace,$tpl['content']));
 | 
			
		||||
        }
 | 
			
		||||
    	if($sendRs['status']==1){
 | 
			
		||||
            // 绑定的邮箱
 | 
			
		||||
            session('email.val',$userEmail);
 | 
			
		||||
            // 验证码
 | 
			
		||||
            session("email.key", $code);
 | 
			
		||||
            // 发起绑定邮箱的时间;
 | 
			
		||||
            session('email.time',time());
 | 
			
		||||
            return WSTReturn("发送成功",1);
 | 
			
		||||
        }else{
 | 
			
		||||
            return WSTReturn($sendRs['msg'],-1);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 绑定邮箱
 | 
			
		||||
     */
 | 
			
		||||
    public function emailEdit(){
 | 
			
		||||
    	$USER = session('WST_USER');
 | 
			
		||||
		if(empty($USER) && $USER['userId']==''){
 | 
			
		||||
			$this->redirect("home/users/login");
 | 
			
		||||
		}
 | 
			
		||||
        $bindTime = session('email.time');
 | 
			
		||||
        $code = session('email.key');
 | 
			
		||||
        $bindEmail = session('email.val');
 | 
			
		||||
 | 
			
		||||
    	if(time()>floatval($bindTime)+30*60)$this->error('验证码已失效!');
 | 
			
		||||
    	$rs = WSTCheckLoginKey($bindEmail,(int)session('WST_USER.userId'));
 | 
			
		||||
 | 
			
		||||
    	if($rs["status"]!=1){
 | 
			
		||||
    		$this->error('邮箱已存在!');
 | 
			
		||||
    		exit();
 | 
			
		||||
    	}
 | 
			
		||||
        $secretCode = input('secretCode');
 | 
			
		||||
 | 
			
		||||
        if($code!=$secretCode)return WSTReturn('校验码错误',-1);
 | 
			
		||||
 | 
			
		||||
    	$m = new MUsers();
 | 
			
		||||
    	$rs = $m->editEmail((int)session('WST_USER.userId'),$bindEmail);
 | 
			
		||||
    	if($rs['status'] == 1){
 | 
			
		||||
            // 清空session
 | 
			
		||||
            session('email',null);
 | 
			
		||||
            return WSTReturn('验证通过',1);
 | 
			
		||||
    	}
 | 
			
		||||
    	$this->error('绑定邮箱失败');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
    * 完成邮箱绑定
 | 
			
		||||
    */
 | 
			
		||||
    public function doneEmailBind(){
 | 
			
		||||
        $this->assign('process','Three');
 | 
			
		||||
        return $this->fetch('users/security/user_email');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 发送验证邮件/修改邮箱
 | 
			
		||||
     */
 | 
			
		||||
    public function getEmailVerifyt(){
 | 
			
		||||
    	$m = new MUsers();
 | 
			
		||||
    	$data = $m->getById(session('WST_USER.userId'));
 | 
			
		||||
    	$userEmail = $data['userEmail'];
 | 
			
		||||
    	if(!$userEmail){
 | 
			
		||||
    		return WSTReturn('请输入邮箱!',-1);
 | 
			
		||||
    	}
 | 
			
		||||
    	$code = input("post.verifyCode");
 | 
			
		||||
    	if(!WSTVerifyCheck($code)){
 | 
			
		||||
    		return WSTReturn('验证码错误!',-1);
 | 
			
		||||
    	}
 | 
			
		||||
 | 
			
		||||
    	$code = rand(0,999999);
 | 
			
		||||
        $sendRs = ['status'=>-1,'msg'=>'邮件发送失败'];
 | 
			
		||||
        $tpl = WSTMsgTemplates('EMAIL_EDIT');
 | 
			
		||||
        if( $tpl['tplContent']!='' && $tpl['status']=='1'){
 | 
			
		||||
            $find = ['${LOGIN_NAME}','${SEND_TIME}','${VERFIY_CODE}','${VERFIY_TIME}'];
 | 
			
		||||
            $replace = [session('WST_USER.loginName'),date('Y-m-d H:i:s'),$code,30];
 | 
			
		||||
            $sendRs = WSTSendMail($userEmail,'绑定邮箱',str_replace($find,$replace,$tpl['content']));
 | 
			
		||||
        }
 | 
			
		||||
        if($sendRs['status']==1){
 | 
			
		||||
            // 修改的用户
 | 
			
		||||
            session('email.uId',(int)session('WST_USER.userId'));
 | 
			
		||||
            // 绑定的邮箱
 | 
			
		||||
            session('email.val',$userEmail);
 | 
			
		||||
            // 验证码
 | 
			
		||||
            session("email.key", $code);
 | 
			
		||||
            // 发起绑定邮箱的时间;
 | 
			
		||||
            session('email.time',time());
 | 
			
		||||
            return WSTReturn("发送成功",1);
 | 
			
		||||
        }else{
 | 
			
		||||
            return WSTReturn($sendRs['msg'],-1);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 修改邮箱
 | 
			
		||||
     */
 | 
			
		||||
    public function emailEditt(){
 | 
			
		||||
    	$USER = session('WST_USER');
 | 
			
		||||
    	if(empty($USER) && $USER['userId']!=''){
 | 
			
		||||
    		$this->redirect("home/users/login");
 | 
			
		||||
    	}
 | 
			
		||||
 | 
			
		||||
        $bindTime = session('email.time');
 | 
			
		||||
        $code = session('email.key');
 | 
			
		||||
        $bindEmail = session('email.val');
 | 
			
		||||
        $uId = (int)session('email.uId');
 | 
			
		||||
 | 
			
		||||
        if(time()>floatval($bindTime)+30*60)$this->error('验证码已失效!');
 | 
			
		||||
        $rs = WSTCheckLoginKey($bindEmail,(int)session('WST_USER.userId'));
 | 
			
		||||
 | 
			
		||||
        if($rs["status"]!=1){
 | 
			
		||||
            $this->error('邮箱已存在!');
 | 
			
		||||
            exit();
 | 
			
		||||
        }
 | 
			
		||||
        $secretCode = input('secretCode');
 | 
			
		||||
 | 
			
		||||
        if($code!=$secretCode)return WSTReturn('校验码错误',-1);
 | 
			
		||||
 | 
			
		||||
    	$m = new MUsers();
 | 
			
		||||
    	$data = $m->getById($uId);
 | 
			
		||||
    	if($data['userId']==session('WST_USER.userId')){
 | 
			
		||||
    		return WSTReturn('验证通过',1);
 | 
			
		||||
    	}
 | 
			
		||||
        $this->error('无效的用户!');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
    * 修改邮箱第二步
 | 
			
		||||
    */
 | 
			
		||||
    public function editEmail2(){
 | 
			
		||||
        $this->assign('process','Two');
 | 
			
		||||
        return $this->fetch('users/security/user_edit_email');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
    * 修改邮箱第三步
 | 
			
		||||
    */
 | 
			
		||||
    public function editEmail3(){
 | 
			
		||||
        $this->assign('process','Three');
 | 
			
		||||
        return $this->fetch('users/security/user_edit_email');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 修改手机页
 | 
			
		||||
     */
 | 
			
		||||
    public function editPhone(){
 | 
			
		||||
    	//获取用户信息
 | 
			
		||||
    	$userId = (int)session('WST_USER.userId');
 | 
			
		||||
    	$m = new MUsers();
 | 
			
		||||
    	$data = $m->getById($userId);
 | 
			
		||||
    	if($data['userPhone']!='')$data['userPhone'] = WSTStrReplace($data['userPhone'],'*',3);
 | 
			
		||||
    	$this->assign('data',$data);
 | 
			
		||||
    	$process = 'One';
 | 
			
		||||
    	$this->assign('process',$process);
 | 
			
		||||
    	if($data['userPhone']){
 | 
			
		||||
    		return $this->fetch('users/security/user_edit_phone');
 | 
			
		||||
    	}else{
 | 
			
		||||
    		return $this->fetch('users/security/user_phone');
 | 
			
		||||
    	}
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 跳到发送手机验证
 | 
			
		||||
     */
 | 
			
		||||
    public function toApply(){
 | 
			
		||||
    	return $this->fetch("user_verify_phone");
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 绑定手机/获取验证码
 | 
			
		||||
     */
 | 
			
		||||
    public function getPhoneVerifyo(){
 | 
			
		||||
    	$userPhone = input("post.userPhone");
 | 
			
		||||
    	if(!WSTIsPhone($userPhone)){
 | 
			
		||||
    		return WSTReturn("手机号格式不正确!");
 | 
			
		||||
    		exit();
 | 
			
		||||
    	}
 | 
			
		||||
    	$rs = array();
 | 
			
		||||
    	$m = new MUsers();
 | 
			
		||||
    	$rs = WSTCheckLoginKey($userPhone,(int)session('WST_USER.userId'));
 | 
			
		||||
    	if($rs["status"]!=1){
 | 
			
		||||
    		return WSTReturn("手机号已存在!");
 | 
			
		||||
    		exit();
 | 
			
		||||
    	}
 | 
			
		||||
        $data = $m->getById(session('WST_USER.userId'));
 | 
			
		||||
    	$phoneVerify = rand(100000,999999);
 | 
			
		||||
        $rv = ['status'=>-1,'msg'=>'短信发送失败'];
 | 
			
		||||
        $tpl = WSTMsgTemplates('PHONE_EDIT');
 | 
			
		||||
        if( $tpl['tplContent']!='' && $tpl['status']=='1'){
 | 
			
		||||
            $params = ['tpl'=>$tpl,'params'=>['LOGIN_NAME'=>$data['loginName'],'VERFIY_CODE'=>$phoneVerify,'VERFIY_TIME'=>10]];
 | 
			
		||||
            $m = new LogSms();
 | 
			
		||||
            $rv = $m->sendSMS(0,$userPhone,$params,'getPhoneVerifyo',$phoneVerify);
 | 
			
		||||
        }
 | 
			
		||||
    	if($rv['status']==1){
 | 
			
		||||
    		$USER = [];
 | 
			
		||||
    		$USER['userPhone'] = $userPhone;
 | 
			
		||||
    		$USER['phoneVerify'] = $phoneVerify;
 | 
			
		||||
    		session('Verify_info',$USER);
 | 
			
		||||
    		session('Verify_userPhone_Time',time());
 | 
			
		||||
    		return WSTReturn('短信发送成功!',1);
 | 
			
		||||
    	}
 | 
			
		||||
    	return $rv;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 绑定手机
 | 
			
		||||
     */
 | 
			
		||||
    public function getPhoneVerifyb(){
 | 
			
		||||
        $userPhone = input("post.userPhone");
 | 
			
		||||
        if(!WSTIsPhone($userPhone)){
 | 
			
		||||
            return WSTReturn("手机号格式不正确!");
 | 
			
		||||
            exit();
 | 
			
		||||
        }
 | 
			
		||||
        $rs = array();
 | 
			
		||||
        $m = new MUsers();
 | 
			
		||||
        $rs = WSTCheckLoginKey($userPhone,(int)session('WST_USER.userId'));
 | 
			
		||||
        if($rs["status"]!=1){
 | 
			
		||||
            return WSTReturn("手机号已存在!");
 | 
			
		||||
            exit();
 | 
			
		||||
        }
 | 
			
		||||
        $data = $m->getById(session('WST_USER.userId'));
 | 
			
		||||
        $phoneVerify = rand(100000,999999);
 | 
			
		||||
        $rv = ['status'=>-1,'msg'=>'短信发送失败'];
 | 
			
		||||
        $tpl = WSTMsgTemplates('PHONE_BIND');
 | 
			
		||||
        if( $tpl['tplContent']!='' && $tpl['status']=='1'){
 | 
			
		||||
            $params = ['tpl'=>$tpl,'params'=>['LOGIN_NAME'=>$data['loginName'],'VERFIY_CODE'=>$phoneVerify,'VERFIY_TIME'=>10]];
 | 
			
		||||
            $m = new LogSms();
 | 
			
		||||
            $rv = $m->sendSMS(0,$userPhone,$params,'getPhoneVerifyb',$phoneVerify);
 | 
			
		||||
        }
 | 
			
		||||
        if($rv['status']==1){
 | 
			
		||||
            $USER = [];
 | 
			
		||||
            $USER['userPhone'] = $userPhone;
 | 
			
		||||
            $USER['phoneVerify'] = $phoneVerify;
 | 
			
		||||
            session('Verify_info',$USER);
 | 
			
		||||
            session('Verify_userPhone_Time',time());
 | 
			
		||||
            return WSTReturn('短信发送成功!',1);
 | 
			
		||||
        }
 | 
			
		||||
        return $rv;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 绑定手机
 | 
			
		||||
     */
 | 
			
		||||
    public function phoneEdito(){
 | 
			
		||||
    	$phoneVerify = input("post.Checkcode");
 | 
			
		||||
    	$process = input("post.process");
 | 
			
		||||
    	$timeVerify = session('Verify_userPhone_Time');
 | 
			
		||||
    	if(!session('Verify_info.phoneVerify') || time()>floatval($timeVerify)+10*60){
 | 
			
		||||
    		return WSTReturn("地址已失效,请重新验证身份!");
 | 
			
		||||
    		exit();
 | 
			
		||||
    	}
 | 
			
		||||
   		if($phoneVerify==session('Verify_info.phoneVerify')){
 | 
			
		||||
   			$m = new MUsers();
 | 
			
		||||
   			$rs = $m->editPhone((int)session('WST_USER.userId'),session('Verify_info.userPhone'));
 | 
			
		||||
   			if($process=='Two'){
 | 
			
		||||
   				$rs['process'] = $process;
 | 
			
		||||
   			}else{
 | 
			
		||||
   				$rs['process'] = '0';
 | 
			
		||||
   			}
 | 
			
		||||
   			return $rs;
 | 
			
		||||
   		}
 | 
			
		||||
   		return WSTReturn("校验码不一致,请重新输入!");
 | 
			
		||||
    }
 | 
			
		||||
    public function editPhoneSu(){
 | 
			
		||||
    	$pr = input("get.pr");
 | 
			
		||||
    	$process = 'Three';
 | 
			
		||||
    	$this->assign('process',$process);
 | 
			
		||||
	    if($pr == 'Two'){
 | 
			
		||||
	    	return $this->fetch('users/security/user_edit_phone');
 | 
			
		||||
	    }else{
 | 
			
		||||
	    	return $this->fetch('users/security/user_phone');
 | 
			
		||||
	    }
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 修改手机/获取验证码
 | 
			
		||||
     */
 | 
			
		||||
    public function getPhoneVerifyt(){
 | 
			
		||||
    	$m = new MUsers();
 | 
			
		||||
    	$data = $m->getById(session('WST_USER.userId'));
 | 
			
		||||
    	$userPhone = $data['userPhone'];
 | 
			
		||||
    	$phoneVerify = rand(100000,999999);
 | 
			
		||||
        $rv = ['status'=>-1,'msg'=>'短信发送失败'];
 | 
			
		||||
        $tpl = WSTMsgTemplates('PHONE_EDIT');
 | 
			
		||||
        if( $tpl['tplContent']!='' && $tpl['status']=='1'){
 | 
			
		||||
            $params = ['tpl'=>$tpl,'params'=>['LOGIN_NAME'=>$data['loginName'],'VERFIY_CODE'=>$phoneVerify,'VERFIY_TIME'=>10]];
 | 
			
		||||
            $m = new LogSms();
 | 
			
		||||
            $rv = $m->sendSMS(0,$userPhone,$params,'getPhoneVerifyt',$phoneVerify);
 | 
			
		||||
        }
 | 
			
		||||
     	if($rv['status']==1){
 | 
			
		||||
	    	$USER = [];
 | 
			
		||||
	    	$USER['userPhone'] = $userPhone;
 | 
			
		||||
	    	$USER['phoneVerify'] = $phoneVerify;
 | 
			
		||||
	    	session('Verify_info2',$USER);
 | 
			
		||||
	    	session('Verify_userPhone_Time2',time());
 | 
			
		||||
	    	return WSTReturn('短信发送成功!',1);
 | 
			
		||||
    	}
 | 
			
		||||
    	return $rv;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 修改手机
 | 
			
		||||
     */
 | 
			
		||||
    public function phoneEditt(){
 | 
			
		||||
    	$phoneVerify = input("post.Checkcode");
 | 
			
		||||
    	$timeVerify = session('Verify_userPhone_Time2');
 | 
			
		||||
    	if(!session('Verify_info2.phoneVerify') || time()>floatval($timeVerify)+10*60){
 | 
			
		||||
    		return WSTReturn("校验码已失效,请重新发送!");
 | 
			
		||||
    		exit();
 | 
			
		||||
    	}
 | 
			
		||||
    	if($phoneVerify==session('Verify_info2.phoneVerify')){
 | 
			
		||||
    		return WSTReturn("验证成功",1);
 | 
			
		||||
    	}
 | 
			
		||||
    	return WSTReturn("校验码不一致,请重新输入!",-1);
 | 
			
		||||
    }
 | 
			
		||||
    public function editPhoneSut(){
 | 
			
		||||
    	$process = 'Two';
 | 
			
		||||
    	$this->assign('process',$process);
 | 
			
		||||
    	if(session('Verify_info2.phoneVerify')){
 | 
			
		||||
    		return $this->fetch('users/security/user_edit_phone');
 | 
			
		||||
    	}
 | 
			
		||||
        $this->error('地址已失效,请重新验证身份');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
    * 处理图像裁剪
 | 
			
		||||
    */
 | 
			
		||||
    // public function editUserPhoto(){
 | 
			
		||||
    //     $imageSrc = trim(input('post.photoSrc'),'/');
 | 
			
		||||
    //     $image = \image\Image::open($imageSrc);
 | 
			
		||||
    //     $x = (int)input('post.x');
 | 
			
		||||
    //     $y = (int)input('post.y');
 | 
			
		||||
    //     $w = (int)input('post.w',150);
 | 
			
		||||
    //     $h = (int)input('post.h',150);
 | 
			
		||||
    //     $rs = $image->crop($w, $h, $x, $y, 150, 150)->save($imageSrc);
 | 
			
		||||
    //     if($rs){
 | 
			
		||||
    //         return WSTReturn('',1,$imageSrc);
 | 
			
		||||
    //         exit;
 | 
			
		||||
    //     }
 | 
			
		||||
    //     return WSTReturn('发生未知错误.',-1);
 | 
			
		||||
 | 
			
		||||
    // }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
    * 处理图像裁剪 修改适应oss mark 201080612 by zl
 | 
			
		||||
    */
 | 
			
		||||
    public function editUserPhoto(){
 | 
			
		||||
        $imageSrc = trim(input('post.photoSrc'),'/');
 | 
			
		||||
        //判断图片是否缩放了
 | 
			
		||||
        $res = strpos($imageSrc,'?x-oss-process=');
 | 
			
		||||
        $x = (int)input('post.x');
 | 
			
		||||
        $y = (int)input('post.y');
 | 
			
		||||
        $w = (int)input('post.w',150);
 | 
			
		||||
        $h = (int)input('post.h',150);
 | 
			
		||||
        //判断是否缩放 如果缩放了就不加'?x-oss-process='
 | 
			
		||||
        if($res){
 | 
			
		||||
            $imageSrc=$imageSrc.',image/crop,x_'.$x.',y_'.$y.',w_'.$w.',h_'.$h.',image/resize,w_150,h_150';
 | 
			
		||||
        }else{
 | 
			
		||||
            $imageSrc=$imageSrc.'?x-oss-process=image/crop,x_'.$x.',y_'.$y.',w_'.$w.',h_'.$h.',image/resize,w_150,h_150';
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        return WSTReturn('',1,$imageSrc);
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    /****************************************************** 忘记密码 **********************************************************/
 | 
			
		||||
    /**
 | 
			
		||||
     * 忘记支付密码
 | 
			
		||||
     */
 | 
			
		||||
    public function backPayPass(){
 | 
			
		||||
    	$m = new MUsers();
 | 
			
		||||
    	$userId = (int)session('WST_USER.userId');
 | 
			
		||||
    	$user = $m->getById($userId);
 | 
			
		||||
    	$userPhone = $user['userPhone'];
 | 
			
		||||
    	$user['userPhone'] = WSTStrReplace($user['userPhone'],'*',3);
 | 
			
		||||
    	$user['phoneType'] = empty($userPhone)?0:1;
 | 
			
		||||
    	$backType = (int)session('Type_backPaypwd');
 | 
			
		||||
    	$timeVerify = session('Verify_backPaypwd_Time');
 | 
			
		||||
    	$process = 'One';
 | 
			
		||||
    	$this->assign('data', $user);
 | 
			
		||||
    	$this->assign('process', $process);
 | 
			
		||||
    	return $this->fetch('users/security/user_edit_pay');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 忘记支付密码:发送短信
 | 
			
		||||
     */
 | 
			
		||||
    public function  getphoneverifypay(){
 | 
			
		||||
    	$m = new MUsers();
 | 
			
		||||
    	$data = $m->getById(session('WST_USER.userId'));
 | 
			
		||||
    	$userPhone = $data['userPhone'];
 | 
			
		||||
    	$phoneVerify = rand(100000,999999);
 | 
			
		||||
    	$rv = ['status'=>-1,'msg'=>'短信发送失败'];
 | 
			
		||||
    	$tpl = WSTMsgTemplates('PHONE_FOTGET_PAY');
 | 
			
		||||
    	if( $tpl['tplContent']!='' && $tpl['status']=='1'){
 | 
			
		||||
    		$params = ['tpl'=>$tpl,'params'=>['LOGIN_NAME'=>$data['loginName'],'VERFIY_CODE'=>$phoneVerify,'VERFIY_TIME'=>10]];
 | 
			
		||||
    		$m = new LogSms();
 | 
			
		||||
    		$rv = $m->sendSMS(0,$userPhone,$params,'getPhoneVerifyt',$phoneVerify);
 | 
			
		||||
    	}
 | 
			
		||||
    	if($rv['status']==1){
 | 
			
		||||
    		$USER = [];
 | 
			
		||||
    		$USER['userPhone'] = $userPhone;
 | 
			
		||||
    		$USER['phoneVerify'] = $phoneVerify;
 | 
			
		||||
    		session('Verify_backPaypwd_info',$USER);
 | 
			
		||||
    		session('Verify_backPaypwd_Time',time());
 | 
			
		||||
    		return WSTReturn('短信发送成功!',1);
 | 
			
		||||
    	}
 | 
			
		||||
    	return $rv;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 忘记支付密码:验证
 | 
			
		||||
     */
 | 
			
		||||
    public function payEditt(){
 | 
			
		||||
    	$payVerify = input("post.Checkcode");
 | 
			
		||||
    	$timeVerify = session('Verify_backPaypwd_Time');
 | 
			
		||||
    	if(!session('Verify_backPaypwd_info.phoneVerify') || time()>floatval($timeVerify)+10*60){
 | 
			
		||||
    		return WSTReturn("校验码已失效,请重新发送!");
 | 
			
		||||
    		exit();
 | 
			
		||||
    	}
 | 
			
		||||
    	if($payVerify==session('Verify_backPaypwd_info.phoneVerify')){
 | 
			
		||||
    		return WSTReturn("验证成功",1);
 | 
			
		||||
    	}
 | 
			
		||||
    	return WSTReturn("校验码不一致,请重新输入!",-1);
 | 
			
		||||
    }
 | 
			
		||||
    public function editPaySut(){
 | 
			
		||||
    	$process = 'Two';
 | 
			
		||||
    	$this->assign('process',$process);
 | 
			
		||||
    	if(session('Verify_backPaypwd_info.phoneVerify')){
 | 
			
		||||
    		return $this->fetch('users/security/user_edit_pay');
 | 
			
		||||
    	}
 | 
			
		||||
    	$this->error('地址已失效,请重新验证身份');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 忘记支付密码:设置
 | 
			
		||||
     */
 | 
			
		||||
    public function payEdito(){
 | 
			
		||||
    	$process = input("post.process");
 | 
			
		||||
    	$timeVerify = session('Verify_backPaypwd_Time');
 | 
			
		||||
    	if(!session('Verify_backPaypwd_info.phoneVerify') || time()>floatval($timeVerify)+10*60){
 | 
			
		||||
    		return WSTReturn("地址已失效,请重新验证身份!");
 | 
			
		||||
    		exit();
 | 
			
		||||
    	}
 | 
			
		||||
    	$m = new MUsers();
 | 
			
		||||
    	$rs = $m->resetbackPay();
 | 
			
		||||
    	if($process=='Two'){
 | 
			
		||||
    		$rs['process'] = $process;
 | 
			
		||||
    	}else{
 | 
			
		||||
    		$rs['process'] = '0';
 | 
			
		||||
    	}
 | 
			
		||||
    	return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 忘记支付密码:完成
 | 
			
		||||
     */
 | 
			
		||||
    public function editPaySu(){
 | 
			
		||||
    	$pr = input("get.pr");
 | 
			
		||||
    	$process = 'Three';
 | 
			
		||||
    	$this->assign('process',$process);
 | 
			
		||||
    	if($pr == 'Two'){
 | 
			
		||||
    		return $this->fetch('users/security/user_edit_pay');
 | 
			
		||||
    	}else{
 | 
			
		||||
    		return $this->fetch('users/security/user_pay_pass');
 | 
			
		||||
    	}
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 忘记密码
 | 
			
		||||
     */
 | 
			
		||||
    public function forgetPass(){
 | 
			
		||||
    	return $this->fetch('forget_pass');
 | 
			
		||||
    }
 | 
			
		||||
    public function forgetPasst(){
 | 
			
		||||
    	if(time()<floatval(session('findPass.findTime'))+30*60){
 | 
			
		||||
	    	$userId = session('findPass.userId');
 | 
			
		||||
	    	$m = new MUsers();
 | 
			
		||||
	    	$info = $m->getById($userId);
 | 
			
		||||
	    	if($info['userPhone']!='')$info['userPhone'] = WSTStrReplace($info['userPhone'],'*',3);
 | 
			
		||||
	    	if($info['userEmail']!='')$info['userEmail'] = WSTStrReplace($info['userEmail'],'*',2,'@');
 | 
			
		||||
	    	$this->assign('forgetInfo',$info);
 | 
			
		||||
	    	return $this->fetch('forget_pass2');
 | 
			
		||||
    	}else{
 | 
			
		||||
    		$this->error('页面已过期!');
 | 
			
		||||
    	}
 | 
			
		||||
    }
 | 
			
		||||
    // 重置密码
 | 
			
		||||
    public function resetPass(){
 | 
			
		||||
         if(!session('findPass')){
 | 
			
		||||
            $this->error('连接已失效!',url('home/users/index'));
 | 
			
		||||
         }
 | 
			
		||||
        if(time()>floatval(session('REST_Time'))+30*60)$this->error('连接已失效!');
 | 
			
		||||
        return $this->fetch('forget_pass3');
 | 
			
		||||
    }
 | 
			
		||||
    // 验证校验码
 | 
			
		||||
    public function forgetPasss(){
 | 
			
		||||
        if(!session('findPass')){
 | 
			
		||||
            $this->error('连接已失效!');
 | 
			
		||||
         }
 | 
			
		||||
        if(time()>floatval(session('REST_Time'))+30*60)$this->error('连接已失效!');
 | 
			
		||||
        $USER = session('findPass');
 | 
			
		||||
        if(empty($USER) && $USER['userId']!=''){
 | 
			
		||||
            $this->error('请在同一浏览器操作!');
 | 
			
		||||
        }
 | 
			
		||||
        $USER = session('findPass');
 | 
			
		||||
        if(empty($USER) && $USER['userId']!=''){
 | 
			
		||||
            $this->expire('请在同一浏览器操作!');
 | 
			
		||||
        }
 | 
			
		||||
        $uId = session('findPass.userId');
 | 
			
		||||
        $key = session("findPass.key");
 | 
			
		||||
        // 验证邮箱中的验证码
 | 
			
		||||
        $secretCode = input('secretCode');
 | 
			
		||||
        if($key==$secretCode){
 | 
			
		||||
            session('REST_userId',$uId);
 | 
			
		||||
            session('REST_success','1');
 | 
			
		||||
            return WSTReturn('验证成功',1);
 | 
			
		||||
        }else{
 | 
			
		||||
            return WSTReturn('校验码错误',-1);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    public function forgetPassf(){
 | 
			
		||||
    	return $this->fetch('forget_pass4');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 找回密码
 | 
			
		||||
     */
 | 
			
		||||
    public function findPass(){
 | 
			
		||||
    	//禁止缓存
 | 
			
		||||
    	header('Cache-Control:no-cache,must-revalidate');
 | 
			
		||||
    	header('Pragma:no-cache');
 | 
			
		||||
    	$code = input("post.verifyCode");
 | 
			
		||||
    	$step = input("post.step/d");
 | 
			
		||||
    	switch ($step) {
 | 
			
		||||
    		case 1:#第一步,验证身份
 | 
			
		||||
    			if(!WSTVerifyCheck($code)){
 | 
			
		||||
    				return WSTReturn('验证码错误!',-1);
 | 
			
		||||
    			}
 | 
			
		||||
    			$loginName = input("post.loginName");
 | 
			
		||||
    			$rs = WSTCheckLoginKey($loginName);
 | 
			
		||||
    			if($rs["status"]==1){
 | 
			
		||||
    				return WSTReturn("用户名不存在!");
 | 
			
		||||
    				exit();
 | 
			
		||||
    			}
 | 
			
		||||
    			$m = new MUsers();
 | 
			
		||||
    			$info = $m->checkAndGetLoginInfo($loginName);
 | 
			
		||||
    			if ($info != false) {
 | 
			
		||||
    				session('findPass',array('userId'=>$info['userId'],'loginName'=>$loginName,'userPhone'=>$info['userPhone'],'userEmail'=>$info['userEmail'],'loginSecret'=>$info['loginSecret'],'findTime'=>time()));
 | 
			
		||||
    				return WSTReturn("操作成功",1);
 | 
			
		||||
    			}else return WSTReturn("用户名不存在!");
 | 
			
		||||
    			break;
 | 
			
		||||
    		case 2:#第二步,验证方式
 | 
			
		||||
    			if (session('findPass.loginName') != null ){
 | 
			
		||||
    				if(input("post.modes")==1){
 | 
			
		||||
    					if ( session('findPass.userPhone') == null) {
 | 
			
		||||
    						return WSTReturn('你没有预留手机号码,请通过邮箱方式找回密码!',-1);
 | 
			
		||||
    					}
 | 
			
		||||
    					$phoneVerify = input("post.Checkcode");
 | 
			
		||||
    					if(!$phoneVerify){
 | 
			
		||||
    						return WSTReturn('校验码不能为空!',-1);
 | 
			
		||||
    					}
 | 
			
		||||
    					return $this->checkfindPhone($phoneVerify);
 | 
			
		||||
    				}else{
 | 
			
		||||
    					if (session('findPass.userEmail')==null) {
 | 
			
		||||
    						return WSTReturn('你没有预留邮箱,请通过手机号码找回密码!',-1);
 | 
			
		||||
    					}
 | 
			
		||||
    					if(!WSTVerifyCheck($code)){
 | 
			
		||||
    						return WSTReturn('验证码错误!',-1);
 | 
			
		||||
    					}
 | 
			
		||||
    					return $this->getfindEmail();
 | 
			
		||||
    				}
 | 
			
		||||
    			}else $this->error('页面已过期!');
 | 
			
		||||
    			break;
 | 
			
		||||
    		case 3:#第三步,设置新密码
 | 
			
		||||
    			$resetPass = session('REST_success');
 | 
			
		||||
    			if($resetPass != 1)$this->error("页面已失效!");
 | 
			
		||||
    			$loginPwd = input("post.loginPwd");
 | 
			
		||||
    			$repassword = input("post.repassword");
 | 
			
		||||
    			$decrypt_data = WSTRSA($loginPwd);
 | 
			
		||||
    			$decrypt_data2 = WSTRSA($repassword);
 | 
			
		||||
    			if($decrypt_data['status']==1 && $decrypt_data2['status']==1){
 | 
			
		||||
    				$loginPwd = $decrypt_data['data'];
 | 
			
		||||
    				$repassword = $decrypt_data2['data'];
 | 
			
		||||
    			}else{
 | 
			
		||||
    				return WSTReturn('设置失败');
 | 
			
		||||
    			}
 | 
			
		||||
    			if ($loginPwd == $repassword) {
 | 
			
		||||
    				$m = new MUsers();
 | 
			
		||||
    				$rs = $m->resetPass();
 | 
			
		||||
    				if($rs['status']==1){
 | 
			
		||||
    					return $rs;
 | 
			
		||||
    				}else{
 | 
			
		||||
    					return $rs;
 | 
			
		||||
    				}
 | 
			
		||||
    			}else return WSTReturn('两次密码不同!',-1);
 | 
			
		||||
    			break;
 | 
			
		||||
    		default:
 | 
			
		||||
    			$this->error('页面已过期!');
 | 
			
		||||
    			break;
 | 
			
		||||
    	}
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 手机验证码获取
 | 
			
		||||
     */
 | 
			
		||||
    public function getfindPhone(){
 | 
			
		||||
    	session('WST_USER',session('findPass.userId'));
 | 
			
		||||
        if(session('findPass.userPhone')==''){
 | 
			
		||||
            return WSTReturn('你没有预留手机号码,请通过邮箱方式找回密码!',-1);
 | 
			
		||||
        }
 | 
			
		||||
        $phoneVerify = rand(100000,999999);
 | 
			
		||||
        session('WST_USER',null);
 | 
			
		||||
        $rv = ['status'=>-1,'msg'=>'短信发送失败'];
 | 
			
		||||
        $tpl = WSTMsgTemplates('PHONE_FOTGET');
 | 
			
		||||
        if( $tpl['tplContent']!='' && $tpl['status']=='1'){
 | 
			
		||||
            $params = ['tpl'=>$tpl,'params'=>['VERFIY_CODE'=>$phoneVerify,'VERFIY_TIME'=>10]];
 | 
			
		||||
            $m = new LogSms();
 | 
			
		||||
            $rv = $m->sendSMS(0,session('findPass.userPhone'),$params,'getPhoneVerify',$phoneVerify);
 | 
			
		||||
        }
 | 
			
		||||
        if($rv['status']==1){
 | 
			
		||||
            // 记录发送短信的时间,用于验证是否过期
 | 
			
		||||
            session('REST_Time',time());
 | 
			
		||||
            $USER = [];
 | 
			
		||||
            $USER['phoneVerify'] = $phoneVerify;
 | 
			
		||||
            $USER['time'] = time();
 | 
			
		||||
            session('findPhone',$USER);
 | 
			
		||||
            return WSTReturn('短信发送成功!',1);
 | 
			
		||||
        }
 | 
			
		||||
        return $rv;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 手机验证码检测
 | 
			
		||||
     * -1 错误,1正确
 | 
			
		||||
     */
 | 
			
		||||
    public function checkfindPhone($phoneVerify){
 | 
			
		||||
    	if(!session('findPhone.phoneVerify') || time()>floatval(session('findPhone.time'))+10*60){
 | 
			
		||||
            return WSTReturn("校验码已失效,请重新发送!");
 | 
			
		||||
            exit();
 | 
			
		||||
        }
 | 
			
		||||
        if (session('findPhone.phoneVerify') == $phoneVerify ) {
 | 
			
		||||
            $fuserId = session('findPass.userId');
 | 
			
		||||
            if(!empty($fuserId)){
 | 
			
		||||
                session('REST_userId',$fuserId);
 | 
			
		||||
                session('REST_success','1');
 | 
			
		||||
                $rs['status'] = 1;
 | 
			
		||||
                $rs['url'] = url('home/users/resetPass');
 | 
			
		||||
                return $rs;
 | 
			
		||||
            }
 | 
			
		||||
            return WSTReturn('无效用户',-1);
 | 
			
		||||
        }
 | 
			
		||||
        return WSTReturn('校验码错误!',-1);
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 发送验证邮件/找回密码
 | 
			
		||||
     */
 | 
			
		||||
    public function getfindEmail(){
 | 
			
		||||
    	$code = rand(0,999999);
 | 
			
		||||
        $sendRs = ['status'=>-1,'msg'=>'邮件发送失败'];
 | 
			
		||||
        $tpl = WSTMsgTemplates('EMAIL_FOTGET');
 | 
			
		||||
        if( $tpl['tplContent']!='' && $tpl['status']=='1'){
 | 
			
		||||
            $find = ['${LOGIN_NAME}','${SEND_TIME}','${VERFIY_CODE}','${VERFIY_TIME}'];
 | 
			
		||||
            $replace = [session('findPass.loginName'),date('Y-m-d H:i:s'),$code,30];
 | 
			
		||||
            $sendRs = WSTSendMail(session('findPass.userEmail'),'密码重置',str_replace($find,$replace,$tpl['content']));
 | 
			
		||||
        }
 | 
			
		||||
        if($sendRs['status']==1){
 | 
			
		||||
            $uId = session('findPass.userId');
 | 
			
		||||
            session("findPass.key", $code);
 | 
			
		||||
            // 发起重置密码的时间;
 | 
			
		||||
            session('REST_Time',time());
 | 
			
		||||
            return WSTReturn("发送成功",1);
 | 
			
		||||
        }else{
 | 
			
		||||
            return WSTReturn($sendRs['msg'],-1);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     * 加载登录小窗口
 | 
			
		||||
     */
 | 
			
		||||
    public function toLoginBox(){
 | 
			
		||||
    	return $this->fetch('box_login');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
    * 跳去修改支付密码页
 | 
			
		||||
    */
 | 
			
		||||
    public function editPayPass(){
 | 
			
		||||
        $m = new MUsers();
 | 
			
		||||
        //获取用户信息
 | 
			
		||||
        $userId = (int)session('WST_USER.userId');
 | 
			
		||||
        $data = $m->getById($userId);
 | 
			
		||||
        $this->assign('data',$data);
 | 
			
		||||
        return $this->fetch('users/security/user_pay_pass');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
    * 修改支付密码
 | 
			
		||||
    */
 | 
			
		||||
    public function payPassEdit(){
 | 
			
		||||
        $userId = (int)session('WST_USER.userId');
 | 
			
		||||
        $m = new MUsers();
 | 
			
		||||
        $rs = $m->editPayPass($userId);
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取用户金额
 | 
			
		||||
     */
 | 
			
		||||
    public function getUserMoney(){
 | 
			
		||||
        $m = new MUsers();
 | 
			
		||||
        $rs = $m->getFieldsById((int)session('WST_USER.userId'),'userMoney,lockMoney,rechargeMoney,payPwd');
 | 
			
		||||
        $rs['isSetPayPwd'] = ($rs['payPwd']=='')?0:1;
 | 
			
		||||
        $rs['isDraw'] = ((float)WSTConf('CONF.drawCashUserLimit')<=$rs['userMoney'])?1:0;
 | 
			
		||||
        unset($rs['payPwd']);
 | 
			
		||||
        return WSTReturn('',1,$rs);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										35
									
								
								hyhproject/home2/controller/Userscores.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										35
									
								
								hyhproject/home2/controller/Userscores.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\common\model\UserScores as MUserscores;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 积分控制器
 | 
			
		||||
 */
 | 
			
		||||
class Userscores extends Base{
 | 
			
		||||
    protected $beforeActionList = ['checkAuth'];
 | 
			
		||||
    /**
 | 
			
		||||
    * 查看商城消息
 | 
			
		||||
    */
 | 
			
		||||
	public function index(){
 | 
			
		||||
		$rs = model('Users')->getFieldsById((int)session('WST_USER.userId'),['userScore','userTotalScore']);
 | 
			
		||||
		$this->assign('object',$rs);
 | 
			
		||||
		return $this->fetch('users/userscores/list');
 | 
			
		||||
	}
 | 
			
		||||
    /**
 | 
			
		||||
    * 获取数据
 | 
			
		||||
    */
 | 
			
		||||
    public function pageQuery(){
 | 
			
		||||
        $userId = (int)session('WST_USER.userId');
 | 
			
		||||
        $data = model('UserScores')->pageQuery($userId);
 | 
			
		||||
        return WSTReturn("", 1,$data);
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 签到积分
 | 
			
		||||
     */
 | 
			
		||||
    public function signScore(){
 | 
			
		||||
    	$m = new MUserscores();
 | 
			
		||||
    	$userId = (int)session('WST_USER.userId');
 | 
			
		||||
    	$rs = $m->signScore($userId);
 | 
			
		||||
    	return $rs;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										68
									
								
								hyhproject/home2/controller/Wallets.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										68
									
								
								hyhproject/home2/controller/Wallets.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,68 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use wstmart\common\model\Orders as OM;
 | 
			
		||||
use wstmart\common\model\Users as UM;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 余额控制器
 | 
			
		||||
 */
 | 
			
		||||
class Wallets extends Base{
 | 
			
		||||
	/**
 | 
			
		||||
	 * 生成支付代码
 | 
			
		||||
	 */
 | 
			
		||||
	function getWalletsUrl(){
 | 
			
		||||
		$orderNo = input('orderNo');
 | 
			
		||||
		$isBatch = (int)input('isBatch');
 | 
			
		||||
		$base64 = new \org\Base64();
 | 
			
		||||
        $key = WSTBase64url($base64->encrypt($orderNo."_".$isBatch, "WSTMart"),true);
 | 
			
		||||
        $data = [];
 | 
			
		||||
        $data['status'] = 1;
 | 
			
		||||
        $data['url'] = url('home/wallets/payment','key='.$key,'html',true);
 | 
			
		||||
		return $data;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 跳去支付页面
 | 
			
		||||
	 */
 | 
			
		||||
	public function payment(){
 | 
			
		||||
		if((int)session('WST_USER.userId')==0){
 | 
			
		||||
			$this->assign('message',"对不起,您尚未登录,请先登录!");
 | 
			
		||||
            return $this->fetch('error_msg');
 | 
			
		||||
		}
 | 
			
		||||
		$userId = (int)session('WST_USER.userId');
 | 
			
		||||
		$m = new UM();
 | 
			
		||||
		$user = $m->getFieldsById($userId,["payPwd"]);
 | 
			
		||||
		$this->assign('hasPayPwd',($user['payPwd']!="")?1:0);
 | 
			
		||||
		$key = input('key');
 | 
			
		||||
		$this->assign('paykey',$key);
 | 
			
		||||
        $key = WSTBase64url($key,false);
 | 
			
		||||
        $base64 = new \org\Base64();
 | 
			
		||||
        $key = $base64->decrypt($key,"WSTMart");
 | 
			
		||||
        $key = explode('_',$key);
 | 
			
		||||
        $data = [];
 | 
			
		||||
        $data['orderNo'] = $key[0];
 | 
			
		||||
        $data['isBatch'] = (int)$key[1];
 | 
			
		||||
        $data['userId'] = $userId;
 | 
			
		||||
		$m = new OM();
 | 
			
		||||
		$rs = $m->getOrderPayInfo($data);
 | 
			
		||||
		if(empty($rs)){
 | 
			
		||||
			$this->assign('message',"您的订单已支付,请勿重复支付~");
 | 
			
		||||
            return $this->fetch('error_msg');
 | 
			
		||||
		}else{
 | 
			
		||||
			$this->assign('needPay',$rs['needPay']);
 | 
			
		||||
			//获取用户钱包
 | 
			
		||||
			$user = model('users')->getFieldsById($data['userId'],'userMoney');
 | 
			
		||||
			$this->assign('userMoney',$user['userMoney']);
 | 
			
		||||
	        return $this->fetch('order_pay_wallets');
 | 
			
		||||
	    }
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 钱包支付
 | 
			
		||||
	 */
 | 
			
		||||
	public function payByWallet(){
 | 
			
		||||
		$m = new OM();
 | 
			
		||||
        return $m->payByWallet();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										277
									
								
								hyhproject/home2/controller/Weixinpays.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										277
									
								
								hyhproject/home2/controller/Weixinpays.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,277 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\controller;
 | 
			
		||||
use think\Loader;
 | 
			
		||||
use wstmart\common\model\Payments as M;
 | 
			
		||||
use wstmart\common\model\Orders as OM;
 | 
			
		||||
use wstmart\common\model\LogMoneys as LM;
 | 
			
		||||
use wstmart\common\model\LogPays as PM;
 | 
			
		||||
use wstmart\common\model\ChargeItems as CM;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 微信支付控制器
 | 
			
		||||
 */
 | 
			
		||||
class Weixinpays extends Base{
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 初始化
 | 
			
		||||
	 */
 | 
			
		||||
	private $wxpayConfig;
 | 
			
		||||
	private $wxpay;
 | 
			
		||||
	public function _initialize() {
 | 
			
		||||
		header ("Content-type: text/html; charset=utf-8");
 | 
			
		||||
		Loader::import('wxpay.WxPayConf');
 | 
			
		||||
		Loader::import('wxpay.WxQrcodePay');
 | 
			
		||||
		
 | 
			
		||||
		$this->wxpayConfig = array();
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$this->wxpay = $m->getPayment("weixinpays");
 | 
			
		||||
		$this->wxpayConfig['appid'] = $this->wxpay['appId']; // 微信公众号身份的唯一标识
 | 
			
		||||
		$this->wxpayConfig['appsecret'] = $this->wxpay['appsecret']; // JSAPI接口中获取openid
 | 
			
		||||
		$this->wxpayConfig['mchid'] = $this->wxpay['mchId']; // 受理商ID
 | 
			
		||||
		$this->wxpayConfig['key'] = $this->wxpay['apiKey']; // 商户支付密钥Key
 | 
			
		||||
		$this->wxpayConfig['notifyurl'] = url("home/weixinpays/wxNotify","",true,true);
 | 
			
		||||
		$this->wxpayConfig['curl_timeout'] = 30;
 | 
			
		||||
		$this->wxpayConfig['returnurl'] = "";
 | 
			
		||||
		// 初始化WxPayConf_pub
 | 
			
		||||
		$wxpaypubconfig = new \WxPayConf($this->wxpayConfig);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取微信URL
 | 
			
		||||
	 */
 | 
			
		||||
	public function getWeixinPaysURL(){
 | 
			
		||||
		$m = new OM();
 | 
			
		||||
		$payObj = input("payObj/s");
 | 
			
		||||
		$pkey = "";
 | 
			
		||||
		$data = array();
 | 
			
		||||
		if($payObj=="recharge"){
 | 
			
		||||
			$cm = new CM();
 | 
			
		||||
			$itmeId = (int)input("itmeId/d");
 | 
			
		||||
			$targetType = (int)input("targetType/d");
 | 
			
		||||
			$targetId = (int)session('WST_USER.userId');
 | 
			
		||||
			if($targetType==1){//商家
 | 
			
		||||
				$targetId = (int)session('WST_USER.shopId');
 | 
			
		||||
			}
 | 
			
		||||
			$needPay = 0;
 | 
			
		||||
			if($itmeId>0){
 | 
			
		||||
				$item = $cm->getItemMoney($itmeId);
 | 
			
		||||
				$needPay = isSet($item["chargeMoney"])?$item["chargeMoney"]:0;
 | 
			
		||||
			}else{
 | 
			
		||||
				$needPay = (int)input("needPay/d");
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
			$data["status"] = $needPay>0?1:-1;
 | 
			
		||||
			$pkey = $payObj."@".$targetId."@".$targetType."@".$needPay."@".$itmeId;
 | 
			
		||||
		}else{
 | 
			
		||||
			$userId = (int)session('WST_USER.userId');
 | 
			
		||||
			$data = $m->checkOrderPay();
 | 
			
		||||
			if($data["status"]==1){
 | 
			
		||||
				$orderNo = input("orderNo/s");
 | 
			
		||||
				$isBatch = (int)input("isBatch/d");
 | 
			
		||||
				$pkey = $payObj."@".$userId."@".$orderNo;
 | 
			
		||||
				if($isBatch==1){
 | 
			
		||||
					$pkey = $pkey."@1";
 | 
			
		||||
				}else{
 | 
			
		||||
					$pkey = $pkey."@2";
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		$data["url"] = url('home/weixinpays/createQrcode',array("pkey"=>base64_encode($pkey)));
 | 
			
		||||
		return $data;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public function createQrcode() {
 | 
			
		||||
		$pkey = base64_decode(input("pkey"));
 | 
			
		||||
		$pkeys = explode("@", $pkey );
 | 
			
		||||
		$flag = true;
 | 
			
		||||
 | 
			
		||||
		$needPay = 0;
 | 
			
		||||
		$out_trade_no = 0;
 | 
			
		||||
		$trade_no = 0;
 | 
			
		||||
		if($pkeys[0]=="recharge"){
 | 
			
		||||
			$needPay = (int)$pkeys[3];
 | 
			
		||||
			$out_trade_no = WSTOrderNo();
 | 
			
		||||
			$body = "钱包充值";
 | 
			
		||||
			$trade_no = $out_trade_no;
 | 
			
		||||
		}else{
 | 
			
		||||
			if(count($pkeys)!= 4){
 | 
			
		||||
				$this->assign('out_trade_no', "");
 | 
			
		||||
			}else{
 | 
			
		||||
				$userId = (int)session('WST_USER.userId');
 | 
			
		||||
				$obj = array();
 | 
			
		||||
				$obj["userId"] = $userId;
 | 
			
		||||
				$obj["orderNo"] = $pkeys[2];
 | 
			
		||||
				$obj["isBatch"] = $pkeys[3];
 | 
			
		||||
				$m = new OM();
 | 
			
		||||
				$order = $m->getPayOrders($obj);
 | 
			
		||||
				$needPay = $order["needPay"];
 | 
			
		||||
				$payRand = $order["payRand"];
 | 
			
		||||
				$body = "支付订单费用";
 | 
			
		||||
				$out_trade_no = $obj["orderNo"]."a".$payRand;
 | 
			
		||||
				$trade_no = $obj["orderNo"];
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		if($needPay>0){
 | 
			
		||||
			// 使用统一支付接口
 | 
			
		||||
			$wxQrcodePay = new \WxQrcodePay ();
 | 
			
		||||
			$wxQrcodePay->setParameter ( "body", $body ); // 商品描述
 | 
			
		||||
			
 | 
			
		||||
			$wxQrcodePay->setParameter ( "out_trade_no", $out_trade_no ); // 商户订单号
 | 
			
		||||
			$wxQrcodePay->setParameter ( "total_fee", $needPay * 100 ); // 总金额
 | 
			
		||||
			$wxQrcodePay->setParameter ( "notify_url", $this->wxpayConfig['notifyurl'] ); // 通知地址
 | 
			
		||||
			$wxQrcodePay->setParameter ( "trade_type", "NATIVE" ); // 交易类型
 | 
			
		||||
			$wxQrcodePay->setParameter ( "attach", "$pkey" ); // 附加数据
 | 
			
		||||
			$wxQrcodePay->SetParameter ( "input_charset", "UTF-8" );
 | 
			
		||||
			// 获取统一支付接口结果
 | 
			
		||||
			$wxQrcodePayResult = $wxQrcodePay->getResult ();
 | 
			
		||||
			$code_url = '';
 | 
			
		||||
			// 商户根据实际情况设置相应的处理流程
 | 
			
		||||
			if ($wxQrcodePayResult ["return_code"] == "FAIL") {
 | 
			
		||||
				// 商户自行增加处理流程
 | 
			
		||||
				echo "通信出错:" . $wxQrcodePayResult ['return_msg'] . "<br>";
 | 
			
		||||
			} elseif ($wxQrcodePayResult ["result_code"] == "FAIL") {
 | 
			
		||||
				// 商户自行增加处理流程
 | 
			
		||||
				echo "错误代码:" . $wxQrcodePayResult ['err_code'] . "<br>";
 | 
			
		||||
				echo "错误代码描述:" . $wxQrcodePayResult ['err_code_des'] . "<br>";
 | 
			
		||||
			} elseif ($wxQrcodePayResult ["code_url"] != NULL) {
 | 
			
		||||
				// 从统一支付接口获取到code_url
 | 
			
		||||
				$code_url = $wxQrcodePayResult ["code_url"];
 | 
			
		||||
				// 商户自行增加处理流程
 | 
			
		||||
			}
 | 
			
		||||
			$this->assign ( 'out_trade_no', $trade_no );
 | 
			
		||||
			$this->assign ( 'code_url', $code_url );
 | 
			
		||||
			$this->assign ( 'wxQrcodePayResult', $wxQrcodePayResult );
 | 
			
		||||
			$this->assign ( 'needPay', $needPay );
 | 
			
		||||
		}else{
 | 
			
		||||
			$flag = false;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		if($pkeys[0]=="recharge"){
 | 
			
		||||
			if($pkeys[2]==1){
 | 
			
		||||
				return $this->fetch('shops/recharge/pay_step2');
 | 
			
		||||
			}else{
 | 
			
		||||
				return $this->fetch('users/recharge/pay_step2');
 | 
			
		||||
			}
 | 
			
		||||
		}else{
 | 
			
		||||
			if($flag){
 | 
			
		||||
				return $this->fetch('order_pay_step2');
 | 
			
		||||
			}else{
 | 
			
		||||
				return $this->fetch('order_pay_step3');
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 检查支付结果
 | 
			
		||||
	 */
 | 
			
		||||
	public function getPayStatus() {
 | 
			
		||||
		$trade_no = input('trade_no');
 | 
			
		||||
		$obj = array();
 | 
			
		||||
		$obj["userId"] = (int)session('WST_USER.userId');
 | 
			
		||||
		$obj["transId"] = $trade_no;
 | 
			
		||||
		$m = new PM();
 | 
			
		||||
		$log = $m->getPayLog($obj);
 | 
			
		||||
		$data = array("status"=>-1);
 | 
			
		||||
		// 检查是否存在,存在说明支付成功
 | 
			
		||||
		if(isset($log["logId"]) && $log["logId"]>0){
 | 
			
		||||
			$m->delPayLog($obj);
 | 
			
		||||
			$data["status"] = 1;
 | 
			
		||||
		}else{
 | 
			
		||||
			$data["status"] = -1;
 | 
			
		||||
		}
 | 
			
		||||
		return $data;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 微信异步通知
 | 
			
		||||
	 */
 | 
			
		||||
	public function wxNotify() {
 | 
			
		||||
		// 使用通用通知接口
 | 
			
		||||
		$wxQrcodePay = new \WxQrcodePay ();
 | 
			
		||||
		// 存储微信的回调
 | 
			
		||||
		$xml = file_get_contents("php://input");
 | 
			
		||||
		$wxQrcodePay->saveData ( $xml );
 | 
			
		||||
		// 验证签名,并回应微信。
 | 
			
		||||
		if ($wxQrcodePay->checkSign () == FALSE) {
 | 
			
		||||
			$wxQrcodePay->setReturnParameter ( "return_code", "FAIL" ); // 返回状态码
 | 
			
		||||
			$wxQrcodePay->setReturnParameter ( "return_msg", "签名失败" ); // 返回信息
 | 
			
		||||
		} else {
 | 
			
		||||
			$wxQrcodePay->setReturnParameter ( "return_code", "SUCCESS" ); //设置返回码
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		$returnXml = $wxQrcodePay->returnXml ();
 | 
			
		||||
		if ($wxQrcodePay->checkSign () == TRUE) {
 | 
			
		||||
			if ($wxQrcodePay->data ["return_code"] == "FAIL") {
 | 
			
		||||
				echo "FAIL";
 | 
			
		||||
			} elseif ($wxQrcodePay->data ["result_code"] == "FAIL") {
 | 
			
		||||
				echo "FAIL";
 | 
			
		||||
			} else {
 | 
			
		||||
				// 此处应该更新一下订单状态,商户自行增删操作
 | 
			
		||||
				$order = $wxQrcodePay->getData ();
 | 
			
		||||
				$trade_no = $order["transaction_id"];
 | 
			
		||||
				$total_fee = $order ["total_fee"];
 | 
			
		||||
				$pkey = $order ["attach"] ;
 | 
			
		||||
				$pkeys = explode ( "@", $pkey );
 | 
			
		||||
				$out_trade_no = 0;
 | 
			
		||||
				$userId = 0;
 | 
			
		||||
				if($pkeys[0]=="recharge"){//充值
 | 
			
		||||
					$out_trade_no = $order["out_trade_no"];
 | 
			
		||||
					$targetId = (int)$pkeys [1];
 | 
			
		||||
					$userId = $targetId;
 | 
			
		||||
					$targetType = (int)$pkeys [2];
 | 
			
		||||
					$itemId = (int)$pkeys [4];
 | 
			
		||||
					$obj = array ();
 | 
			
		||||
					$obj["trade_no"] = $trade_no;
 | 
			
		||||
					$obj["out_trade_no"] = $out_trade_no;
 | 
			
		||||
					$obj["targetId"] = $targetId;
 | 
			
		||||
					$obj["targetType"] = $targetType;
 | 
			
		||||
					$obj["itemId"] = $itemId;
 | 
			
		||||
					$obj["total_fee"] = (float)$total_fee/100;
 | 
			
		||||
					$obj["payFrom"] = 'weixinpays';
 | 
			
		||||
					// 支付成功业务逻辑
 | 
			
		||||
					$m = new LM();
 | 
			
		||||
					$rs = $m->complateRecharge ( $obj );
 | 
			
		||||
					
 | 
			
		||||
				}else{//订单支付
 | 
			
		||||
					$userId = (int)$pkeys [1];
 | 
			
		||||
					$out_trade_no = $pkeys[2];
 | 
			
		||||
					$isBatch = (int)$pkeys[3];
 | 
			
		||||
					// 商户订单
 | 
			
		||||
					$obj = array ();
 | 
			
		||||
					$obj["trade_no"] = $trade_no;
 | 
			
		||||
					$obj["out_trade_no"] = $out_trade_no;
 | 
			
		||||
					$obj["isBatch"] = $isBatch;
 | 
			
		||||
					$obj["total_fee"] = (float)$total_fee/100;
 | 
			
		||||
					$obj["userId"] = $userId;
 | 
			
		||||
					$obj["payFrom"] = 'weixinpays';
 | 
			
		||||
					// 支付成功业务逻辑
 | 
			
		||||
					$m = new OM();
 | 
			
		||||
					$rs = $m->complatePay ( $obj );
 | 
			
		||||
				}
 | 
			
		||||
				if($rs["status"]==1){
 | 
			
		||||
					$data = array();
 | 
			
		||||
					$data["userId"] = $userId;
 | 
			
		||||
					$data["transId"] = $out_trade_no;
 | 
			
		||||
					$m = new PM();
 | 
			
		||||
					$m->addPayLog($data);
 | 
			
		||||
					echo "SUCCESS";
 | 
			
		||||
				}else{
 | 
			
		||||
					echo "FAIL";
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}else{
 | 
			
		||||
			echo "FAIL";
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 检查支付结果
 | 
			
		||||
	 */
 | 
			
		||||
	public function paySuccess() {
 | 
			
		||||
		return $this->fetch('order_pay_step3');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										229
									
								
								hyhproject/home2/model/Articles.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										229
									
								
								hyhproject/home2/model/Articles.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,229 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\model;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 文章类
 | 
			
		||||
 */
 | 
			
		||||
use think\Db;
 | 
			
		||||
class Articles extends Base{
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取帮助左侧列表
 | 
			
		||||
	 */
 | 
			
		||||
	public function helpList(){
 | 
			
		||||
		$arts = cache('arts');
 | 
			
		||||
		if(!$arts){
 | 
			
		||||
			$rs = $this->alias('a')->join('article_cats ac','a.catId=ac.catId','inner')
 | 
			
		||||
				  ->field('a.articleId,a.catId,a.articleTitle,ac.catName')
 | 
			
		||||
				  ->where(['a.dataFlag'=>1,
 | 
			
		||||
				  	       'a.isshow'=>1,
 | 
			
		||||
				  		   'ac.dataFlag'=>1,
 | 
			
		||||
				  		   'ac.isShow'=>1,
 | 
			
		||||
				  		   'ac.parentId'=>7])
 | 
			
		||||
				  ->cache(true)
 | 
			
		||||
				  ->select();
 | 
			
		||||
			//同一分类下的文章放一起
 | 
			
		||||
			$catName = [];
 | 
			
		||||
			$arts = [];
 | 
			
		||||
			foreach($rs as $k=>$v){
 | 
			
		||||
				if(in_array($v['catName'],$catName)){
 | 
			
		||||
					$arts[$v['catName'].'-'.$v['catId']][] = $v;
 | 
			
		||||
				}else{
 | 
			
		||||
					$catName[] = $v['catName'];
 | 
			
		||||
					$arts[$v['catName'].'-'.$v['catId']][] = $v;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			cache('arts',$arts,86400);
 | 
			
		||||
		}
 | 
			
		||||
		return $arts;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	*  根据id获取帮助文章
 | 
			
		||||
	*/
 | 
			
		||||
	public function getHelpById(){
 | 
			
		||||
		$id = (int)input('id');
 | 
			
		||||
		WSTArticleVisitorNum($id);// 统计文章访问量
 | 
			
		||||
		return $this->alias('a')->join('__ARTICLE_CATS__ ac','a.catId=ac.catId','inner')->where('ac.parentId=7 and  a.dataFlag=1 and a.isShow=1')->cache(true)->find($id);
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	*  根据id获取资讯文章
 | 
			
		||||
	*/
 | 
			
		||||
	public function getNewsById($id = 0){
 | 
			
		||||
		$id = $id>0?$id:(int)input('id');
 | 
			
		||||
		WSTArticleVisitorNum($id);// 统计文章访问量
 | 
			
		||||
	    return $this->alias('a')
 | 
			
		||||
					->field('a.*,ac.catName')
 | 
			
		||||
					->join('__ARTICLE_CATS__ ac','a.catId=ac.catId','inner')
 | 
			
		||||
					->where('a.catId<>7 and ac.parentId<>7 and a.dataFlag=1 and a.isShow=1')
 | 
			
		||||
					->cache(true)
 | 
			
		||||
					->find($id);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	* 获取资讯列表【左侧分类】
 | 
			
		||||
	*/
 | 
			
		||||
	public function NewsList(){
 | 
			
		||||
		$list =  $this->getTree();
 | 
			
		||||
		foreach($list as $k=>$v){
 | 
			
		||||
			if(!empty($v['children'])){
 | 
			
		||||
				foreach($v['children'] as $k1=>$v1){
 | 
			
		||||
					// 二级分类下的文章总条数
 | 
			
		||||
					$list[$k]['children'][$k1]['newsCount'] = $this->where(['catId'=>$v1['catId'],
 | 
			
		||||
																	'dataFlag'=>1,'isShow'=>1])->cache(true)->count();
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return $list;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public function getTree(){
 | 
			
		||||
		$artTree = cache('artTree');
 | 
			
		||||
		if(!$artTree){
 | 
			
		||||
			$data = Db::name('article_cats')->field('catName,catId,parentId')->where('parentId <> 7 and catId <> 7 and dataFlag=1 and isShow=1')->cache(true)->select();
 | 
			
		||||
			$artTree = $this->_getTree($data, 0);
 | 
			
		||||
			cache('artTree',$artTree,86400);
 | 
			
		||||
		}
 | 
			
		||||
		return $artTree;
 | 
			
		||||
	}
 | 
			
		||||
	public function _getTree($data,$parentId){
 | 
			
		||||
		$tree = [];
 | 
			
		||||
		foreach($data as $k=>$v){
 | 
			
		||||
			if($v['parentId']==$parentId){
 | 
			
		||||
				// 再找其下级分类
 | 
			
		||||
				$v['children'] = $this->_getTree($data,$v['catId']);
 | 
			
		||||
				$tree[] = $v;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return $tree;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	*	根据分类id获取文章列表
 | 
			
		||||
	*/
 | 
			
		||||
	public function nList(){
 | 
			
		||||
		$catId = (int)input('catId');
 | 
			
		||||
		$rs = $this->alias('a')
 | 
			
		||||
			  ->join('__ARTICLE_CATS__ ac','a.catId=ac.catId','inner')
 | 
			
		||||
			  ->field('a.*')
 | 
			
		||||
			  ->where(['a.catId'=>$catId,
 | 
			
		||||
			  	       'a.dataFlag'=>1,
 | 
			
		||||
			  	       'a.isShow'=>1,
 | 
			
		||||
			  		   'ac.dataFlag'=>1,
 | 
			
		||||
			  		   'ac.isShow'=>1,
 | 
			
		||||
			  		   'ac.parentId'=>['<>',7],
 | 
			
		||||
			  		   ])
 | 
			
		||||
			  ->cache(true)
 | 
			
		||||
			  ->paginate();
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	* 面包屑导航
 | 
			
		||||
	*/
 | 
			
		||||
	public function bcNav(){
 | 
			
		||||
		$catId = (int)input('catId'); //分类id
 | 
			
		||||
		$artId = (int)input('id'); 	//文章id
 | 
			
		||||
		$data = Db::name('article_cats')->field('catId,parentId,catName')->cache(true)->select();
 | 
			
		||||
		if($artId){
 | 
			
		||||
			$catId = $this->where('articleId',$artId)->value('catId');
 | 
			
		||||
		}
 | 
			
		||||
		$bcNav = $this->getParents($data,$catId,$isClear=true);
 | 
			
		||||
		return $bcNav;
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	* 获取父级分类
 | 
			
		||||
	*/
 | 
			
		||||
	public function getParents($data, $catId,$isClear=false){
 | 
			
		||||
		static $bcNav = [];
 | 
			
		||||
		if($isClear)
 | 
			
		||||
			$bcNav = [];
 | 
			
		||||
		foreach($data as $k=>$v){
 | 
			
		||||
			if($catId == $v['catId']){
 | 
			
		||||
				if($catId!=0){
 | 
			
		||||
					$this->getParents($data, $v['parentId']);
 | 
			
		||||
					$bcNav[] = $v;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return $bcNav;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	*  记录解决情况
 | 
			
		||||
	*/
 | 
			
		||||
	public function recordSolve(){
 | 
			
		||||
		$articleId =  (int)input('id');
 | 
			
		||||
		$status =  (int)input('status');
 | 
			
		||||
		if($status==1){
 | 
			
		||||
			$rs = $this->where('articleId',$articleId)->setInc('solve');
 | 
			
		||||
		}else{
 | 
			
		||||
			$rs = $this->where('articleId',$articleId)->setInc('unsolve');
 | 
			
		||||
		}
 | 
			
		||||
		if($rs!==false){
 | 
			
		||||
			return WSTReturn('操作成功',1);
 | 
			
		||||
		}else{
 | 
			
		||||
			return WSTReturn('操作失败',-1);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	* 获取资讯中心的子集分类id
 | 
			
		||||
	*/
 | 
			
		||||
	public function getChildIds(){
 | 
			
		||||
		$ids = [];
 | 
			
		||||
		$data = Db::name('article_cats')->cache(true)->select();
 | 
			
		||||
			foreach($data as $k=>$v){
 | 
			
		||||
				if($v['parentId']!=7 && $v['catId']!=7 && $v['parentId']!=0 ){
 | 
			
		||||
					$ids[] = $v['catId'];
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		return $ids;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	* 获取咨询中中心所有文章
 | 
			
		||||
	*/
 | 
			
		||||
	public function getArticles(){
 | 
			
		||||
		// 获取咨询中心下的所有分类id
 | 
			
		||||
		$ids = $this->getChildIds();
 | 
			
		||||
		$rs = $this->alias('a')
 | 
			
		||||
			  ->field('a.*')
 | 
			
		||||
			  ->join('__ARTICLE_CATS__ ac','a.catId=ac.catId','inner')
 | 
			
		||||
			  ->where(['a.catId'=>['in',$ids],
 | 
			
		||||
			  	       'a.dataFlag'=>1,
 | 
			
		||||
			  	       'a.isShow'=>1,
 | 
			
		||||
			  		   'ac.dataFlag'=>1,
 | 
			
		||||
			  		   'ac.isShow'=>1,
 | 
			
		||||
			  		   'ac.parentId'=>['<>',7],
 | 
			
		||||
			  		   ])
 | 
			
		||||
			  ->distinct(true)
 | 
			
		||||
			  ->cache(true)
 | 
			
		||||
			  ->paginate(15);
 | 
			
		||||
		return $rs;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取指定分类下的文章
 | 
			
		||||
	 */
 | 
			
		||||
	public function getArticlesByCat($catId){
 | 
			
		||||
        $ids = $this->getChildIds();
 | 
			
		||||
		$rs = $this->alias('a')
 | 
			
		||||
			  ->field('a.*')
 | 
			
		||||
			  ->join('__ARTICLE_CATS__ ac','a.catId=ac.catId','inner')
 | 
			
		||||
			  ->where(['a.catId'=>['in',$ids],
 | 
			
		||||
			  	       'a.dataFlag'=>1,
 | 
			
		||||
			  	       'a.isShow'=>1,
 | 
			
		||||
			  		   'ac.dataFlag'=>1,
 | 
			
		||||
			  		   'ac.isShow'=>1,
 | 
			
		||||
			  		   'ac.parentId'=>['<>',7],
 | 
			
		||||
			  		   ])
 | 
			
		||||
			  ->distinct(true)
 | 
			
		||||
			  ->cache(true)
 | 
			
		||||
			  ->select();
 | 
			
		||||
	    $data = [];
 | 
			
		||||
		if(!empty($rs)){
 | 
			
		||||
			foreach($rs as $key =>$v){
 | 
			
		||||
                $data[$v['articleId']] = $v;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return $data;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										61
									
								
								hyhproject/home2/model/Attributes.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										61
									
								
								hyhproject/home2/model/Attributes.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,61 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\model;
 | 
			
		||||
use wstmart\common\model\GoodsCats as M;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 商品属性分类
 | 
			
		||||
 */
 | 
			
		||||
class Attributes extends Base{
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取可供筛选的商品属性
 | 
			
		||||
	 */
 | 
			
		||||
	public function listQueryByFilter($catId){
 | 
			
		||||
		$m = new M();
 | 
			
		||||
		$ids = $m->getParentIs($catId);
 | 
			
		||||
		if(!empty($ids)){
 | 
			
		||||
			$catIds = [];
 | 
			
		||||
			foreach ($ids as $key =>$v){
 | 
			
		||||
				$catIds[] = $v;
 | 
			
		||||
			}
 | 
			
		||||
			/*$attrs = $this->alias('a')
 | 
			
		||||
						  ->join('__GOODS_ATTRIBUTES__ ga','ga.attrId=a.attrId','inner')
 | 
			
		||||
						  ->where(['a.goodsCatId'=>['in',$catIds],'a.isShow'=>1,'a.dataFlag'=>1,'a.attrType'=>['<>',0]])
 | 
			
		||||
			     		  ->field('a.attrId,a.attrName,a.attrVal')->order('a.attrSort asc')->select();*/
 | 
			
		||||
 | 
			
		||||
			// 取出分类下有设置的属性。
 | 
			
		||||
			$attrs = $this->alias('a')
 | 
			
		||||
					  ->join('__GOODS_ATTRIBUTES__ ga','ga.attrId=a.attrId','inner')
 | 
			
		||||
					  ->field('ga.attrId,GROUP_CONCAT(distinct ga.attrVal) attrVal,a.attrName')
 | 
			
		||||
					  ->where(['a.goodsCatId'=>['in',$catIds],'a.isShow'=>1,'a.dataFlag'=>1,'a.attrType'=>['<>',0]])
 | 
			
		||||
					  ->group('ga.attrId')
 | 
			
		||||
					  ->order('a.attrSort asc')
 | 
			
		||||
					  ->select();
 | 
			
		||||
			foreach ($attrs as $key =>$v){
 | 
			
		||||
			    $attrs[$key]['attrVal'] = explode(',',$v['attrVal']);
 | 
			
		||||
			}
 | 
			
		||||
			return $attrs;
 | 
			
		||||
		}
 | 
			
		||||
		return [];
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	* 根据商品id获取可供选择的属性
 | 
			
		||||
	*/
 | 
			
		||||
	public function getAttribute($goodsId){
 | 
			
		||||
		if(empty($goodsId))return [];
 | 
			
		||||
		$attrs = $this->alias('a')
 | 
			
		||||
					  ->join('__GOODS_ATTRIBUTES__ ga','ga.attrId=a.attrId','inner')
 | 
			
		||||
					  ->field('ga.attrId,GROUP_CONCAT(distinct ga.attrVal) attrVal,a.attrName')
 | 
			
		||||
					  ->where(['ga.goodsId'=>['in',$goodsId],
 | 
			
		||||
					  		   'a.isShow'=>1,
 | 
			
		||||
					  		   'a.dataFlag'=>1,
 | 
			
		||||
					  		   'a.attrType'=>['<>',0]])
 | 
			
		||||
					  ->group('ga.attrId')
 | 
			
		||||
					  ->order('a.attrSort asc')
 | 
			
		||||
					  ->select();
 | 
			
		||||
		if(empty($attrs))return [];
 | 
			
		||||
		foreach ($attrs as $key =>$v){
 | 
			
		||||
			    $attrs[$key]['attrVal'] = explode(',',$v['attrVal']);
 | 
			
		||||
		}
 | 
			
		||||
		return $attrs;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										9
									
								
								hyhproject/home2/model/Base.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								hyhproject/home2/model/Base.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\model;
 | 
			
		||||
use wstmart\common\model\Base as CBase;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 基础模型器
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
class Base extends CBase {}
 | 
			
		||||
							
								
								
									
										1315
									
								
								hyhproject/home2/model/Goods.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1315
									
								
								hyhproject/home2/model/Goods.php
									
									
									
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										174
									
								
								hyhproject/home2/model/GoodsVirtuals.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										174
									
								
								hyhproject/home2/model/GoodsVirtuals.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,174 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\model;
 | 
			
		||||
use wstmart\common\model\Goods as CGoodsVirtuals;
 | 
			
		||||
use think\Db;
 | 
			
		||||
use think\Loader;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 虚拟商品卡券模型
 | 
			
		||||
 */
 | 
			
		||||
class GoodsVirtuals extends CGoodsVirtuals{
 | 
			
		||||
	/**
 | 
			
		||||
	 * 导入
 | 
			
		||||
	 */
 | 
			
		||||
	public function importCards($data){
 | 
			
		||||
        Loader::import('phpexcel.PHPExcel.IOFactory');
 | 
			
		||||
		$objReader = \PHPExcel_IOFactory::load(WSTRootPath().json_decode($data)->route.json_decode($data)->name);
 | 
			
		||||
		$objReader->setActiveSheetIndex(0);
 | 
			
		||||
		$sheet = $objReader->getActiveSheet();
 | 
			
		||||
		$rows = $sheet->getHighestRow();
 | 
			
		||||
		$cells = $sheet->getHighestColumn();
 | 
			
		||||
		//数据集合
 | 
			
		||||
        $readData = [];
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $goodsId = (int)input('goodsId');
 | 
			
		||||
        $importNum = 0;
 | 
			
		||||
        //生成订单
 | 
			
		||||
		Db::startTrans();
 | 
			
		||||
		try{
 | 
			
		||||
			//读取现有的卡券
 | 
			
		||||
			$goodscards = Db::name('goods_virtuals')->where(['dataFlag'=>1,'goodsId'=>$goodsId])->field('cardNo')->select();
 | 
			
		||||
			$goodscardsMap = [];
 | 
			
		||||
			if(count($goodscards)>0){
 | 
			
		||||
				foreach($goodscards as $v){
 | 
			
		||||
					$goodscardsMap[] = $v['cardNo'];
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
	        //循环读取每个单元格的数据
 | 
			
		||||
	        for ($row = 2; $row <= $rows; $row++){//行数是以第2行开始
 | 
			
		||||
	        	$cards = [];
 | 
			
		||||
	            $cards['shopId'] = $shopId;
 | 
			
		||||
	            $cards['goodsId'] = $goodsId;
 | 
			
		||||
	            $cardNo = trim($sheet->getCell("A".$row)->getValue());
 | 
			
		||||
	            if($cardNo=='')break;//如果某一行第一列为空则停止导入
 | 
			
		||||
	            $cards['cardNo'] = $cardNo;
 | 
			
		||||
	            $cards['cardPwd'] = trim($sheet->getCell("B".$row)->getValue());
 | 
			
		||||
	            $cards['createTime'] = date('Y-m-d H:i:s');
 | 
			
		||||
	            if(in_array($cardNo,$goodscardsMap))continue;
 | 
			
		||||
	            $goodscardsMap[] = $cardNo;
 | 
			
		||||
	            $readData[] = $cards;
 | 
			
		||||
	            $importNum++;
 | 
			
		||||
	        }
 | 
			
		||||
            if(count($readData)>0){
 | 
			
		||||
            	model('GoodsVirtuals')->saveAll($readData);
 | 
			
		||||
                $this->updateGoodsStock($goodsId);
 | 
			
		||||
            }
 | 
			
		||||
            Db::commit();
 | 
			
		||||
            return json_encode(['status'=>1,'importNum'=>$importNum]);
 | 
			
		||||
		}catch (\Exception $e) {
 | 
			
		||||
            Db::rollback();errLog($e);
 | 
			
		||||
            return json_encode(WSTReturn('导入商品卡券失败',-1));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 删除
 | 
			
		||||
     */
 | 
			
		||||
    public function del(){
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $ids = input('ids');
 | 
			
		||||
        $id = input('id');
 | 
			
		||||
        if($ids=='')return WSTReturn('请选择要删除的卡券号');
 | 
			
		||||
        try{
 | 
			
		||||
            $this->where(['shopId'=>$shopId,'id'=>['in',$ids],'goodsId'=>$id])->update(['dataFlag'=>-1]);
 | 
			
		||||
            $this->updateGoodsStock($id);
 | 
			
		||||
            Db::commit();
 | 
			
		||||
        }catch (\Exception $e) {
 | 
			
		||||
            Db::rollback();errLog($e);
 | 
			
		||||
            return WSTReturn('操作失败');
 | 
			
		||||
        }
 | 
			
		||||
        return WSTReturn('操作成功',1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 编辑
 | 
			
		||||
     */
 | 
			
		||||
    public function edit(){
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $id = (int)input('id');
 | 
			
		||||
        //判断卡券是否有效
 | 
			
		||||
        $rs = $this->where(['id'=>$id,'shopId'=>$shopId,'dataFlag'=>1,'isUse'=>0])->find();
 | 
			
		||||
        if(empty($rs))return WSTReturn('非法的卡券');
 | 
			
		||||
        $cardNo = input('cardNo');
 | 
			
		||||
        $cardPwd = input('cardPwd');
 | 
			
		||||
        if($cardNo=='' || $cardPwd=='')return WSTReturn('请输入完整卡券信息');
 | 
			
		||||
        $conts = $this->where(['shopId'=>$shopId,'dataFlag'=>1,'cardNo'=>$cardNo,'id'=>['<>',$id]])->Count();
 | 
			
		||||
        if($conts>0)return WSTReturn('该卡券号已存在,请重新输入');
 | 
			
		||||
        $rs->cardNo = $cardNo;
 | 
			
		||||
        $rs->cardPwd = $cardPwd;
 | 
			
		||||
        $rs->save();
 | 
			
		||||
        return WSTReturn('操作成功',1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取虚拟商品库存列表
 | 
			
		||||
     */
 | 
			
		||||
    public function stockByPage(){
 | 
			
		||||
        $key = input('cardNo');
 | 
			
		||||
        $id = (int)input('id');
 | 
			
		||||
        $isUse = (int)input('isUse',-1);
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $where = ['shopId'=>$shopId,'goodsId'=>$id,'dataFlag'=>1];
 | 
			
		||||
        if($key !='')$where['cardNo'] = ['like','%'.$key.'%'];
 | 
			
		||||
        if(in_array($isUse,[0,1]))$where['isUse'] = $isUse;
 | 
			
		||||
        $page = $this->field('orderNo,orderId,cardNo,id,cardPwd,isUse')
 | 
			
		||||
        ->where($where)->order('id desc')
 | 
			
		||||
        ->paginate(20)->toArray();
 | 
			
		||||
        return  $page;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 生成卡券号
 | 
			
		||||
     */
 | 
			
		||||
    public function getCardNo($shopId){
 | 
			
		||||
        $cardNo = date('Ymd').sprintf("%08d", rand(0,99999999));
 | 
			
		||||
        $conts = $this->where(['shopId'=>$shopId,'dataFlag'=>1,'cardNo'=>$cardNo])->Count();
 | 
			
		||||
        if($conts==0){
 | 
			
		||||
            return $cardNo;
 | 
			
		||||
        }else{
 | 
			
		||||
            return $this->getCardNo($shopId);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 生成卡券
 | 
			
		||||
     */
 | 
			
		||||
    public function add(){
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $goodsId = (int)input('goodsId');
 | 
			
		||||
        //判断商品是否有效
 | 
			
		||||
        $goods = model('goods')->where(['goodsId'=>$goodsId,'shopId'=>$shopId,'goodsType'=>1])->find();
 | 
			
		||||
        if(empty($goods))return WSTReturn('非法的卡券商品');
 | 
			
		||||
        $cardNo = input('cardNo');
 | 
			
		||||
        $cardPwd = input('cardPwd');
 | 
			
		||||
        if($cardNo=='' || $cardPwd=='')return WSTReturn('请输入完整卡券信息');
 | 
			
		||||
        $conts = $this->where(['shopId'=>$shopId,'dataFlag'=>1,'cardNo'=>$cardNo])->Count();
 | 
			
		||||
        if($conts>0)return WSTReturn('该卡券号已存在,请重新输入');
 | 
			
		||||
        $data = [];
 | 
			
		||||
        $data['cardNo'] = $cardNo;
 | 
			
		||||
        $data['cardPwd'] = $cardPwd;
 | 
			
		||||
        $data['dataFlag'] = 1;
 | 
			
		||||
        $data['shopId'] = $shopId;
 | 
			
		||||
        $data['goodsId'] = $goodsId;
 | 
			
		||||
        $data['createTime'] = date('Y-m-d H:i:s');
 | 
			
		||||
        Db::startTrans();
 | 
			
		||||
        try{
 | 
			
		||||
            $this->save($data);
 | 
			
		||||
            $this->updateGoodsStock($goodsId);
 | 
			
		||||
            Db::commit();
 | 
			
		||||
        }catch (\Exception $e) {
 | 
			
		||||
            Db::rollback();errLog($e);
 | 
			
		||||
            return WSTReturn('新增失败');
 | 
			
		||||
        }
 | 
			
		||||
        return WSTReturn('新增成功',1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 更新商品数量
 | 
			
		||||
     */
 | 
			
		||||
    public function updateGoodsStock($id){
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $counts = $this->where(['dataFlag'=>1,'goodsId'=>$id,'shopId'=>$shopId,'isUse'=>0])->Count();
 | 
			
		||||
        Db::name('goods')->where('goodsId',$id)->setField('goodsStock',$counts);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										205
									
								
								hyhproject/home2/model/HomeMenus.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										205
									
								
								hyhproject/home2/model/HomeMenus.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,205 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\model;
 | 
			
		||||
use wstmart\common\model\HomeMenus as CHomeMenus;
 | 
			
		||||
use think\Db;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 菜单业务处理
 | 
			
		||||
 */
 | 
			
		||||
class HomeMenus extends CHomeMenus{
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取菜单树
 | 
			
		||||
	 */
 | 
			
		||||
	public function getMenus(){
 | 
			
		||||
		$data = cache('WST_HOME_MENUS');
 | 
			
		||||
		if(!$data){
 | 
			
		||||
			$rs = $this->where(['isShow'=>1,'dataFlag'=>1])
 | 
			
		||||
			        ->field('menuId,parentId,menuName,menuUrl,menuType')->order('menuSort asc,menuId asc')->select();
 | 
			
		||||
			$m1 = ['0'=>[],'1'=>[]];
 | 
			
		||||
			$tmp = [];
 | 
			
		||||
			
 | 
			
		||||
			//获取第一级
 | 
			
		||||
			foreach ($rs as $key => $v){
 | 
			
		||||
				if($v['parentId']==0){
 | 
			
		||||
					$m1[$v['menuType']][$v['menuId']] = ['menuId'=>$v['menuId'],'parentId'=>$v['parentId'],'menuName'=>$v['menuName'],'menuUrl'=>$v['menuUrl']];
 | 
			
		||||
				}else{
 | 
			
		||||
					$tmp[$v['parentId']][] = ['menuId'=>$v['menuId'],'parentId'=>$v['parentId'],'menuName'=>$v['menuName'],'menuUrl'=>$v['menuUrl']];
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			//获取第二级
 | 
			
		||||
			foreach ($m1 as $key => $v){
 | 
			
		||||
				foreach ($v as $key1 => $v1){
 | 
			
		||||
				    if(isset($tmp[$v1['menuId']]))$m1[$key][$key1]['list'] = $tmp[$v1['menuId']];
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			//获取第三级
 | 
			
		||||
		    foreach ($m1 as $key => $v){
 | 
			
		||||
		    	foreach ($v as $key1 => $v1){
 | 
			
		||||
			    	if(isset($v1['list'])){
 | 
			
		||||
				    	foreach ($v1['list'] as $key2 => $v2){
 | 
			
		||||
						    if(isset($tmp[$v2['menuId']]))$m1[$key][$key1]['list'][$key2]['list'] = $tmp[$v2['menuId']];
 | 
			
		||||
				    	}
 | 
			
		||||
			    	}
 | 
			
		||||
		    	}
 | 
			
		||||
			}
 | 
			
		||||
			cache('WST_HOME_MENUS',$m1,31536000);
 | 
			
		||||
			return $m1;
 | 
			
		||||
		}
 | 
			
		||||
		return $data;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取店铺菜单树
 | 
			
		||||
	 */
 | 
			
		||||
	public function getShopMenus(){
 | 
			
		||||
		$m1 = $this->getMenus();
 | 
			
		||||
		$userType = (int)session('WST_USER.userType');
 | 
			
		||||
		$menuUrls = array();
 | 
			
		||||
		if($userType==1){
 | 
			
		||||
			$shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
			$roleId = (int)session('WST_USER.roleId');
 | 
			
		||||
			if($roleId>0){
 | 
			
		||||
				$role = model("home/ShopRoles")->getById($roleId);
 | 
			
		||||
				$menuUrls = json_decode($role["privilegeUrls"],true);
 | 
			
		||||
				foreach ($m1[1] as $k1 => $menus1) {
 | 
			
		||||
					if(!array_key_exists($menus1["menuId"],$menuUrls)){
 | 
			
		||||
						unset($m1[1][$k1]);
 | 
			
		||||
					}else{
 | 
			
		||||
						if(isset($menus1["list"])){
 | 
			
		||||
							if(count($menus1["list"])>0){
 | 
			
		||||
								foreach ($menus1["list"] as $k2 => $menus2) {
 | 
			
		||||
									if(!array_key_exists($menus2["menuId"],$menuUrls[$menus1["menuId"]])){
 | 
			
		||||
										unset($m1[1][$k1]["list"][$k2]);
 | 
			
		||||
									}else{
 | 
			
		||||
										if(isset($menus2["list"])){
 | 
			
		||||
											if(count($menus2["list"])>0){
 | 
			
		||||
												foreach ($menus2["list"] as $k3 => $menus3) {
 | 
			
		||||
													$purls = $menuUrls[$menus1["menuId"]][$menus2["menuId"]];
 | 
			
		||||
													$urls = $purls["urls"];
 | 
			
		||||
													if(!in_array(strtolower($menus3["menuUrl"]),$urls)){
 | 
			
		||||
														unset($m1[1][$k1]["list"][$k2]["list"][$k3]);
 | 
			
		||||
													}
 | 
			
		||||
												}
 | 
			
		||||
											}else{
 | 
			
		||||
												unset($m1[1][$k1]["list"][$k2]);
 | 
			
		||||
											}
 | 
			
		||||
										}else{
 | 
			
		||||
											unset($m1[1][$k1]["list"][$k2]);
 | 
			
		||||
										}
 | 
			
		||||
									}
 | 
			
		||||
								}
 | 
			
		||||
								if(count($m1[1][$k1]["list"])==0){
 | 
			
		||||
									unset($m1[1][$k1]);
 | 
			
		||||
								}
 | 
			
		||||
							}else{
 | 
			
		||||
								unset($m1[1][$k1]);
 | 
			
		||||
							}
 | 
			
		||||
						}else{
 | 
			
		||||
							unset($m1[1][$k1]);
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return $m1;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取菜单URL
 | 
			
		||||
	 */
 | 
			
		||||
	public function getMenusUrl(){
 | 
			
		||||
		$wst_user = session('WST_USER');
 | 
			
		||||
		$data = array();
 | 
			
		||||
		if(!empty($wst_user)){
 | 
			
		||||
			$data = cache('WST_PRO_MENUS');
 | 
			
		||||
			if(!$data){
 | 
			
		||||
				$list = $this->where('dataFlag',1)->order('menuType asc')->select();
 | 
			
		||||
				$menus = [];
 | 
			
		||||
				foreach($list as $key => $v){
 | 
			
		||||
					$menus[strtolower($v['menuUrl'])] = $v['menuType'];
 | 
			
		||||
					if($v['menuOtherUrl']!=''){
 | 
			
		||||
						$str = explode(',',$v['menuOtherUrl']);
 | 
			
		||||
						foreach ($str as $vkey => $vv){
 | 
			
		||||
							if($vv=='')continue;
 | 
			
		||||
							$menus[strtolower($vv)] = $v['menuType'];
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				cache('WST_PRO_MENUS',$menus,31536000);
 | 
			
		||||
				return $menus;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return $data;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 角色可访问url
 | 
			
		||||
	 */
 | 
			
		||||
	public function getShopMenusUrl(){
 | 
			
		||||
		$wst_user = session('WST_USER');
 | 
			
		||||
		
 | 
			
		||||
		if(!empty($wst_user)){
 | 
			
		||||
			$roleId = isset($wst_user["roleId"])?(int)$wst_user["roleId"]:0;
 | 
			
		||||
			if($roleId>0){
 | 
			
		||||
				$role = model("home/ShopRoles")->getById($roleId);
 | 
			
		||||
				$menuUrls = $role["menuUrls"];
 | 
			
		||||
				$menuOtherUrls = $role["menuOtherUrls"];
 | 
			
		||||
				$shopUrls = array_merge($menuUrls,$menuOtherUrls);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		$shopUrls[] = "home/shops/index";
 | 
			
		||||
		$shopUrls[] = "home/reports/getstatsales";
 | 
			
		||||
		return $shopUrls;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取菜单父ID
 | 
			
		||||
	 */
 | 
			
		||||
	public function getParentId($menuId){
 | 
			
		||||
		$data = cache('WST_HOME_MENUS_PARENT');
 | 
			
		||||
		if(!$data){
 | 
			
		||||
			$rs = $this->where(['isShow'=>1,'dataFlag'=>1])
 | 
			
		||||
			        ->field('menuId,parentId,menuType')->order('menuSort asc,menuId asc')->select();
 | 
			
		||||
			$tmp = [];
 | 
			
		||||
			foreach ($rs as $key => $v) {
 | 
			
		||||
			    $tmp[$v['menuId']] = $v;
 | 
			
		||||
			}
 | 
			
		||||
			$data = [];
 | 
			
		||||
            foreach ($tmp as $key => $v) {
 | 
			
		||||
            	if($v['parentId']==0){
 | 
			
		||||
                    $data[$v['menuId']] = $v;
 | 
			
		||||
            	}else{
 | 
			
		||||
                    $data[$v['menuId']] = $tmp[$v['parentId']];
 | 
			
		||||
            	}
 | 
			
		||||
			} 
 | 
			
		||||
            cache('WST_HOME_MENUS_PARENT',$data,31536000);
 | 
			
		||||
		}
 | 
			
		||||
		return $data[$menuId];	
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取店铺角色菜单
 | 
			
		||||
	 */
 | 
			
		||||
	public function getRoleMenus(){
 | 
			
		||||
		$data = cache('WST_HOME_MENUS_SHOPROLE');
 | 
			
		||||
		if(!$data){
 | 
			
		||||
			$rs = $this->alias('m1')
 | 
			
		||||
				->join("__HOME_MENUS__ m2","m1.parentId=m2.menuId")
 | 
			
		||||
				->where(['m1.isShow'=>1,'m1.dataFlag'=>1,"m1.menuType"=>1,"m2.parentId"=>[">",0]])
 | 
			
		||||
				->field('m1.menuId,m1.parentId,m2.parentId grandpaId,m1.menuName,m1.menuUrl,m1.menuOtherUrl,m1.menuType')
 | 
			
		||||
				->order('m1.menuSort asc,m1.menuId asc')
 | 
			
		||||
				->select();
 | 
			
		||||
			$m = array();
 | 
			
		||||
			//获取第一级
 | 
			
		||||
			foreach ($rs as $key => $v){
 | 
			
		||||
				$m[$v['menuId']] = ['menuId'=>$v['menuId'],'parentId'=>$v['parentId'],'grandpaId'=>$v['grandpaId'],'menuName'=>$v['menuName'],'menuUrl'=>$v['menuUrl'],'menuOtherUrl'=>$v['menuOtherUrl']];
 | 
			
		||||
			}
 | 
			
		||||
			cache('WST_HOME_MENUS_SHOPROLE',$m,31536000);
 | 
			
		||||
			return $m;
 | 
			
		||||
		}
 | 
			
		||||
		return $data;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										148
									
								
								hyhproject/home2/model/Imports.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										148
									
								
								hyhproject/home2/model/Imports.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,148 @@
 | 
			
		||||
<?php 
 | 
			
		||||
namespace wstmart\home\model;
 | 
			
		||||
use think\Db;
 | 
			
		||||
use think\Loader;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 导入类
 | 
			
		||||
 */
 | 
			
		||||
class Imports{
 | 
			
		||||
	/**
 | 
			
		||||
	 * 上传商品数据
 | 
			
		||||
	 */
 | 
			
		||||
	public function importGoods($data){
 | 
			
		||||
		Loader::import('phpexcel.PHPExcel.IOFactory');
 | 
			
		||||
		$objReader = \PHPExcel_IOFactory::load(WSTRootPath().json_decode($data)->route.json_decode($data)->name);
 | 
			
		||||
		$objReader->setActiveSheetIndex(0);
 | 
			
		||||
		$sheet = $objReader->getActiveSheet();
 | 
			
		||||
		$rows = $sheet->getHighestRow();
 | 
			
		||||
		$cells = $sheet->getHighestColumn();
 | 
			
		||||
		//数据集合
 | 
			
		||||
        $readData = [];
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $importNum = 0;
 | 
			
		||||
        $goodsCatMap = []; //记录最后一级商品分类
 | 
			
		||||
        $goodsCatPathMap = [];//记录商品分类路径
 | 
			
		||||
        $shopCatMap = [];//记录店铺分类
 | 
			
		||||
        $goodsCat1Map = [];//记录最后一级商品分类对应的一级分类
 | 
			
		||||
        $tmpGoodsCatId = 0;
 | 
			
		||||
        $goodsCatBrandMap = [];//商品分类和品牌的对应关系
 | 
			
		||||
        //生成订单
 | 
			
		||||
		Db::startTrans();
 | 
			
		||||
		try{
 | 
			
		||||
	        //循环读取每个单元格的数据
 | 
			
		||||
	        for ($row = 3; $row <= $rows; $row++){//行数是以第3行开始
 | 
			
		||||
	        	$tmpGoodsCatId = 0;
 | 
			
		||||
	        	$goods = [];
 | 
			
		||||
	            $goods['shopId'] = $shopId;
 | 
			
		||||
	            $goods['goodsName'] = trim($sheet->getCell("A".$row)->getValue());
 | 
			
		||||
	            if($goods['goodsName']=='')break;//如果某一行第一列为空则停止导入
 | 
			
		||||
	            $goods['goodsSn'] = trim($sheet->getCell("B".$row)->getValue());
 | 
			
		||||
	            $goods['productNo'] = trim($sheet->getCell("C".$row)->getValue());
 | 
			
		||||
	            $goods['marketPrice'] = trim($sheet->getCell("D".$row)->getValue());
 | 
			
		||||
	            if(floatval($goods['marketPrice'])<0.01)$goods['marketPrice'] = 0.01;
 | 
			
		||||
	            $goods['shopPrice'] = trim($sheet->getCell("E".$row)->getValue());
 | 
			
		||||
	            if(floatval($goods['shopPrice'])<0.01)$goods['shopPrice'] = 0.01;
 | 
			
		||||
	            $goods['goodsStock'] = trim($sheet->getCell("F".$row)->getValue());
 | 
			
		||||
	            if(intval($goods['goodsStock'])<=0)$goods['goodsStock'] = 0;
 | 
			
		||||
	            $goods['warnStock'] = trim($sheet->getCell("G".$row)->getValue());
 | 
			
		||||
	            if(intval($goods['warnStock'])<=0)$goods['warnStock'] = 0;
 | 
			
		||||
	            $goods['goodsImg'] = '';
 | 
			
		||||
	            $goods['shopCatId1'] = 0;
 | 
			
		||||
	            $goods['shopCatId2'] = 0;
 | 
			
		||||
	            $goods['goodsUnit'] = trim($sheet->getCell("H".$row)->getValue());
 | 
			
		||||
	            $goods['goodsSeoKeywords'] = trim($sheet->getCell("I".$row)->getValue());
 | 
			
		||||
	            $goods['goodsTips'] = trim($sheet->getCell("J".$row)->getValue());
 | 
			
		||||
	            $goods['isRecom'] = (trim($sheet->getCell("K".$row)->getValue())!='')?1:0;
 | 
			
		||||
	            $goods['isBest'] = (trim($sheet->getCell("L".$row)->getValue())!='')?1:0;
 | 
			
		||||
	            $goods['isNew'] = (trim($sheet->getCell("M".$row)->getValue())!='')?1:0;
 | 
			
		||||
	            $goods['isHot'] = (trim($sheet->getCell("N".$row)->getValue())!='')?1:0;
 | 
			
		||||
	            $goods['goodsCatId'] = 0;
 | 
			
		||||
	            //查询商城分类
 | 
			
		||||
	            $goodsCat = trim($sheet->getCell("O".$row)->getValue());
 | 
			
		||||
	            if(!empty($goodsCat)){
 | 
			
		||||
	            	//先判断集合是否存在,不存在的时候才查数据库
 | 
			
		||||
	            	if(isset($goodsCatMap[$goodsCat])){
 | 
			
		||||
	            		$goods['goodsCatId'] = $goodsCatMap[$goodsCat];
 | 
			
		||||
		            	$goods['goodsCatIdPath'] = $goodsCatPathMap[$goodsCat];
 | 
			
		||||
		            	$tmpGoodsCatId = $goodsCat1Map[$goodsCat];
 | 
			
		||||
	            	}else{
 | 
			
		||||
		            	$goodsCatId = Db::name('goods_cats')->where(['catName'=>$goodsCat,'dataFlag'=>1])->field('catId')->find();
 | 
			
		||||
		            	if(!empty($goodsCatId['catId'])){
 | 
			
		||||
		            		$goodsCats = model('GoodsCats')->getParentIs($goodsCatId['catId']);
 | 
			
		||||
		            		$goods['goodsCatId'] = $goodsCatId['catId'];
 | 
			
		||||
		            		$goods['goodsCatIdPath'] = implode('_',$goodsCats)."_";
 | 
			
		||||
		            		//放入集合
 | 
			
		||||
		            		$goodsCatMap[$goodsCat] = $goodsCatId['catId'];
 | 
			
		||||
		            		$goodsCatPathMap[$goodsCat] = implode('_',$goodsCats)."_";
 | 
			
		||||
		            		$goodsCat1Map[$goodsCat] = $goodsCats[0];
 | 
			
		||||
		            		$tmpGoodsCatId = $goodsCats[0];
 | 
			
		||||
		            	}
 | 
			
		||||
	            	}
 | 
			
		||||
	            }
 | 
			
		||||
	            //查询店铺分类
 | 
			
		||||
	            $shopGoodsCat = trim($sheet->getCell("P".$row)->getValue());
 | 
			
		||||
	            if(!empty($shopGoodsCat)){
 | 
			
		||||
	            	//先判断集合是否存在,不存在的时候才查数据库
 | 
			
		||||
	            	if(isset($shopCatMap[$shopGoodsCat])){
 | 
			
		||||
	            		$goods['shopCatId1'] = $shopCatMap[$shopGoodsCat]['s1'];
 | 
			
		||||
		            	$goods['shopCatId2'] = $shopCatMap[$shopGoodsCat]['s2'];
 | 
			
		||||
	            	}else{
 | 
			
		||||
		            	$shopCat= Db::name("shop_cats")->alias('sc1')
 | 
			
		||||
		            	->join('__SHOP_CATS__ sc2','sc2.parentId=sc1.catId','left')
 | 
			
		||||
		            	->field('sc1.catId catId1,sc2.catId catId2,sc2.catName')
 | 
			
		||||
		            	->where(['sc1.shopId'=> $shopId,'sc1.dataFlag'=>1,'sc2.catName'=>$shopGoodsCat])
 | 
			
		||||
		            	->find();
 | 
			
		||||
		            	if(!empty($shopCat)){
 | 
			
		||||
		            		$goods['shopCatId1'] = $shopCat['catId1'];
 | 
			
		||||
		            		$goods['shopCatId2'] = $shopCat['catId2'];
 | 
			
		||||
		            		//放入集合
 | 
			
		||||
		            		$shopCatMap[$shopGoodsCat] = [];
 | 
			
		||||
		            		$shopCatMap[$shopGoodsCat]['s1'] = $goods['shopCatId1'];
 | 
			
		||||
		            		$shopCatMap[$shopGoodsCat]['s2'] = $goods['shopCatId2'];
 | 
			
		||||
		            	}
 | 
			
		||||
	            	}
 | 
			
		||||
	            }
 | 
			
		||||
	            //查询品牌
 | 
			
		||||
	            $brand = trim($sheet->getCell("Q".$row)->getValue());
 | 
			
		||||
	            if(!empty($brand)){
 | 
			
		||||
	            	if(isset($goodsCatBrandMap[$brand])){
 | 
			
		||||
		            	$goods['brandId'] = $goodsCatBrandMap[$brand];
 | 
			
		||||
	            	}else{
 | 
			
		||||
	            	    $brands = Db::name('brands')->alias('a')->join('__CAT_BRANDS__ cb','a.brandId=cb.brandId','inner')
 | 
			
		||||
		            	            ->where(['catId'=>$tmpGoodsCatId,'brandName'=>$brand,'dataFlag'=>1])->field('a.brandId')->find();
 | 
			
		||||
		            	if(!empty($brands)){
 | 
			
		||||
		            		$goods['brandId'] = $brands['brandId'];
 | 
			
		||||
		            		$goodsCatBrandMap[$brand] = $brands['brandId'];
 | 
			
		||||
		            	}
 | 
			
		||||
	            	}
 | 
			
		||||
	            }
 | 
			
		||||
	            $goods['goodsDesc'] = trim($sheet->getCell("R".$row)->getValue());
 | 
			
		||||
	            $goods['isSale'] = 0;
 | 
			
		||||
	            $goods['goodsStatus'] = (WSTConf("CONF.isGoodsVerify")==1)?0:1;
 | 
			
		||||
	            $goods['dataFlag'] = 1;
 | 
			
		||||
	            $goods['saleTime'] = date('Y-m-d H:i:s');
 | 
			
		||||
	            $goods['createTime'] = date('Y-m-d H:i:s');
 | 
			
		||||
	            $readData[] = $goods;
 | 
			
		||||
	            $importNum++;
 | 
			
		||||
	        }
 | 
			
		||||
            if(count($readData)>0){
 | 
			
		||||
            	$list = model('Goods')->saveAll($readData);
 | 
			
		||||
            	//建立商品评分记录
 | 
			
		||||
            	$goodsScores = [];
 | 
			
		||||
            	foreach ($list as $key =>$v){
 | 
			
		||||
					$gs = [];
 | 
			
		||||
					$gs['goodsId'] = $v['goodsId'];
 | 
			
		||||
					$gs['shopId'] = $shopId;
 | 
			
		||||
					$goodsScores[] = $gs;
 | 
			
		||||
            	}
 | 
			
		||||
            	if(count($goodsScores)>0)Db::name('goods_scores')->insertAll($goodsScores);
 | 
			
		||||
            }
 | 
			
		||||
            Db::commit();
 | 
			
		||||
            return json_encode(['status'=>1,'importNum'=>$importNum]);
 | 
			
		||||
		}catch (\Exception $e) {
 | 
			
		||||
            Db::rollback();errLog($e);
 | 
			
		||||
            return json_encode(WSTReturn('导入商品失败',-1));
 | 
			
		||||
        }
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										97
									
								
								hyhproject/home2/model/Reports.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										97
									
								
								hyhproject/home2/model/Reports.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,97 @@
 | 
			
		||||
<?php 
 | 
			
		||||
namespace wstmart\home\model;
 | 
			
		||||
use think\Db;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 报表模型类
 | 
			
		||||
 */
 | 
			
		||||
class Reports{
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取商品销售排行
 | 
			
		||||
	 */
 | 
			
		||||
	public function getTopSaleGoods(){
 | 
			
		||||
		$start = date('Y-m-d 00:00:00',strtotime(input('startDate')));
 | 
			
		||||
    	$end = date('Y-m-d 23:59:59',strtotime(input('endDate')));
 | 
			
		||||
    	$shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
    	$rs = Db::field('og.goodsId,g.goodsName,goodsSn,sum(og.goodsNum) goodsNum,g.goodsImg')->name('order_goods')->alias('og')
 | 
			
		||||
    	  ->join('__ORDERS__ o','og.orderId=o.orderId')
 | 
			
		||||
    	  ->join('__GOODS__ g','og.goodsId=g.goodsId')
 | 
			
		||||
    	  ->order('goodsNum desc')
 | 
			
		||||
    	  ->whereTime('o.createTime','between',[$start,$end])
 | 
			
		||||
          ->where('(payType=0 or (payType=1 and isPay=1)) and o.dataFlag=1 and o.shopId='.$shopId)->group('og.goodsId')
 | 
			
		||||
          ->limit(10)->select();
 | 
			
		||||
        return WSTReturn('',1,$rs);
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	 * 获取销售额统计
 | 
			
		||||
	 */
 | 
			
		||||
	public function getStatSales(){
 | 
			
		||||
		$start = date('Y-m-d 00:00:00',strtotime(input('startDate')));
 | 
			
		||||
        $end = date('Y-m-d 23:59:59',strtotime(input('endDate')));
 | 
			
		||||
        $payType = (int)input('payType',-1);
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $rs = Db::field('left(createTime,10) createTime,sum(totalMoney) totalMoney,count(orderId) orderNum')->name('orders')->whereTime('createTime','between',[$start,$end])
 | 
			
		||||
                ->where('shopId',$shopId)
 | 
			
		||||
                ->where('(payType=0 or (payType=1 and isPay=1)) and dataFlag=1 '.(in_array($payType,[0,1])?" and payType=".$payType:''))
 | 
			
		||||
                ->order('createTime asc')
 | 
			
		||||
                ->group('left(createTime,10)')->select();
 | 
			
		||||
        $rdata = [];
 | 
			
		||||
        if(count($rs)>0){
 | 
			
		||||
            $days = [];
 | 
			
		||||
            $tmp = [];
 | 
			
		||||
            foreach($rs as $key => $v){
 | 
			
		||||
                $days[] = $v['createTime'];
 | 
			
		||||
                $rdata['dayVals'][] = $v['totalMoney'];
 | 
			
		||||
                $rdata['list'][] = ['day'=>$v['createTime'],'val'=>$v['totalMoney'],'num'=>$v['orderNum']];
 | 
			
		||||
            }
 | 
			
		||||
            $rdata['days'] = $days;
 | 
			
		||||
        }
 | 
			
		||||
        return WSTReturn('',1,$rdata);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取商家订单情况
 | 
			
		||||
     */
 | 
			
		||||
    public function getStatOrders(){
 | 
			
		||||
        $start = date('Y-m-d 00:00:00',strtotime(input('startDate')));
 | 
			
		||||
        $end = date('Y-m-d 23:59:59',strtotime(input('endDate')));
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $rs = Db::field('left(createTime,10) createTime,orderStatus,count(orderId) orderNum')->name('orders')->whereTime('createTime','between',[$start,$end])
 | 
			
		||||
                ->where('shopId',$shopId)
 | 
			
		||||
                ->order('createTime asc')
 | 
			
		||||
                ->group('left(createTime,10),orderStatus')->select();
 | 
			
		||||
       $rdata = [];
 | 
			
		||||
       if(count($rs)>0){
 | 
			
		||||
            $days = [];
 | 
			
		||||
            $tmp = [];
 | 
			
		||||
            $map = ['-3'=>0,'-1'=>0,'1'=>0];
 | 
			
		||||
            foreach($rs as $key => $v){
 | 
			
		||||
                if(!in_array($v['createTime'],$days))$days[] = $v['createTime'];
 | 
			
		||||
                $tmp[$v['orderStatus'].'_'.$v['createTime']] = $v['orderNum'];
 | 
			
		||||
            }
 | 
			
		||||
            foreach($days as $v){
 | 
			
		||||
                $total = 0;
 | 
			
		||||
                $ou = 0;
 | 
			
		||||
                $o_3 = isset($tmp['-3_'.$v])?$tmp['-3_'.$v]:0;
 | 
			
		||||
                $o_1 = isset($tmp['-1_'.$v])?$tmp['-1_'.$v]:0;
 | 
			
		||||
                if(isset($tmp['0_'.$v]))$ou += $tmp['0_'.$v];
 | 
			
		||||
                if(isset($tmp['1_'.$v]))$ou += $tmp['1_'.$v];
 | 
			
		||||
                if(isset($tmp['2_'.$v]))$ou += $tmp['2_'.$v];
 | 
			
		||||
                $rdata['-3'][] = $o_3;
 | 
			
		||||
                $rdata['-1'][] = $o_1;
 | 
			
		||||
                $rdata['1'][] = $ou;
 | 
			
		||||
                $map['-3']  += $o_3;
 | 
			
		||||
                $map['-1']  += $o_1;
 | 
			
		||||
                $map['1']  += $ou;
 | 
			
		||||
                $total += $o_3;
 | 
			
		||||
                $total += $o_1;
 | 
			
		||||
                $total += $ou;
 | 
			
		||||
                $rdata['total'][] = $total;
 | 
			
		||||
                $rdata['list'][] = ['day'=>$v,'o3'=>$o_3,'o1'=>$o_1,'ou'=>$ou];
 | 
			
		||||
            }
 | 
			
		||||
            $rdata['days'] = $days;
 | 
			
		||||
            $rdata['map'] = $map;
 | 
			
		||||
       }
 | 
			
		||||
       return WSTReturn('',1,$rdata);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										246
									
								
								hyhproject/home2/model/Settlements.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										246
									
								
								hyhproject/home2/model/Settlements.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,246 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\model;
 | 
			
		||||
use think\Db;
 | 
			
		||||
use think\Loader;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 结算类
 | 
			
		||||
 */
 | 
			
		||||
class Settlements extends Base{
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取已结算的结算单列表
 | 
			
		||||
     */
 | 
			
		||||
    public function pageQuery(){
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $where = [];
 | 
			
		||||
        $where['shopId'] = $shopId;
 | 
			
		||||
        if(input('settlementNo')!='')$where['settlementNo'] = ['like','%'.input('settlementNo').'%'];
 | 
			
		||||
        if((int)input('isFinish')>=0)$where['settlementStatus'] = (int)input('isFinish');
 | 
			
		||||
        return Db::name('settlements')->alias('s')->where($where)->order('settlementId', 'desc')
 | 
			
		||||
            ->paginate(input('pagesize/d'));
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     *  获取未结算订单列表
 | 
			
		||||
     */
 | 
			
		||||
    public function pageUnSettledQuery(){
 | 
			
		||||
        $where = [];
 | 
			
		||||
        if(input('orderNo')!='')$where['orderNo'] = ['like','%'.input('orderNo').'%'];
 | 
			
		||||
        $where['dataFlag'] = 1;
 | 
			
		||||
        $where['orderStatus'] = 2;
 | 
			
		||||
        $where['settlementId'] = 0;
 | 
			
		||||
        $where['shopId'] = (int)session('WST_USER.shopId');
 | 
			
		||||
        $page =  Db::name('orders')->where($where)->order('orderId', 'desc')
 | 
			
		||||
                   ->field('orderId,orderNo,createTime,payType,goodsMoney,deliverMoney,totalMoney,commissionFee,realTotalMoney')
 | 
			
		||||
                   ->paginate(input('pagesize/d'))->toArray();
 | 
			
		||||
        if(count($page['Rows'])){
 | 
			
		||||
            foreach ($page['Rows'] as $key => $v) {
 | 
			
		||||
                $page['Rows'][$key]['payTypeNames'] = WSTLangPayType($v['payType']);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return $page;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 结算指定的订单
 | 
			
		||||
     */
 | 
			
		||||
    public function settlement(){
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $ids = input('ids');
 | 
			
		||||
        $where['dataFlag'] = 1;
 | 
			
		||||
        $where['orderStatus'] = 2;
 | 
			
		||||
        $where['settlementId'] = 0;
 | 
			
		||||
        $where['orderId'] = ['in',$ids];
 | 
			
		||||
        $where['shopId'] = $shopId;
 | 
			
		||||
        $orders = Db::name('orders')->where($where)->field('orderId,payType,realTotalMoney,scoreMoney,commissionFee')->select();
 | 
			
		||||
        if(empty($orders))return WSTReturn('没有需要结算的订单,请刷新后再核对!');
 | 
			
		||||
        $settlementMoney = 0;
 | 
			
		||||
        $commissionFee = 0;    //平台要收的佣金
 | 
			
		||||
        $ids = [];
 | 
			
		||||
        foreach ($orders as $key => $v) {
 | 
			
		||||
            $ids[] = $v['orderId'];
 | 
			
		||||
            if($v['payType']==1){
 | 
			
		||||
                $settlementMoney += $v['realTotalMoney']+$v['scoreMoney'];
 | 
			
		||||
            }else{
 | 
			
		||||
                $settlementMoney += $v['scoreMoney'];
 | 
			
		||||
            }
 | 
			
		||||
            $commissionFee += abs($v['commissionFee']);
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        $shops = model('shops')->get($shopId);
 | 
			
		||||
        if(empty($shops))WSTReturn('无效的店铺结算账号!');
 | 
			
		||||
        Db::startTrans();
 | 
			
		||||
        try{
 | 
			
		||||
            $areaNames  = model('areas')->getParentNames($shops['bankAreaId']);
 | 
			
		||||
            $data = [];
 | 
			
		||||
            $data['settlementType'] = 0;
 | 
			
		||||
            $data['shopId'] = $shopId;
 | 
			
		||||
            $data['settlementMoney'] = $settlementMoney;
 | 
			
		||||
            $data['commissionFee'] = $commissionFee;
 | 
			
		||||
            $data['backMoney'] = $settlementMoney-$commissionFee;
 | 
			
		||||
            $data['settlementStatus'] = 0;
 | 
			
		||||
            $data['createTime'] = date('Y-m-d H:i:s');
 | 
			
		||||
            $data['settlementNo'] = '';
 | 
			
		||||
            $result = $this->save($data);
 | 
			
		||||
            if(false !==  $result){
 | 
			
		||||
                 $this->settlementNo = $this->settlementId.(fmod($this->settlementId,7));
 | 
			
		||||
                 $this->save();
 | 
			
		||||
                 Db::name('orders')->where(['orderId'=>['in',$ids]])->update(['settlementId'=>$this->settlementId]);
 | 
			
		||||
                 //修改商家订单情况
 | 
			
		||||
                 $commissionFee = -1*$commissionFee;//平台要收的佣金就等于商家要付的钱
 | 
			
		||||
                 $shops->noSettledOrderNum = $shops->noSettledOrderNum-count($orders);
 | 
			
		||||
                 $shops->paymentMoney = $shops->paymentMoney + $commissionFee;
 | 
			
		||||
                 $shops->noSettledOrderFee = $shops->noSettledOrderFee-$commissionFee;
 | 
			
		||||
                 $shops->save();
 | 
			
		||||
                 Db::commit();
 | 
			
		||||
                 return WSTReturn('提交结算申请成功,请留意结算信息~',1);
 | 
			
		||||
            }
 | 
			
		||||
        }catch (\Exception $e) {
 | 
			
		||||
            Db::rollback();errLog($e);
 | 
			
		||||
        }
 | 
			
		||||
        return WSTReturn('提交结算申请失败',-1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取已结算订单
 | 
			
		||||
     */
 | 
			
		||||
    public function pageSettledQuery(){
 | 
			
		||||
        $where = [];
 | 
			
		||||
        if(input('settlementNo')!='')$where['settlementNo'] = ['like','%'.input('settlementNo').'%'];
 | 
			
		||||
        if(input('orderNo')!='')$where['orderNo'] = ['like','%'.input('orderNo').'%'];
 | 
			
		||||
        if((int)input('isFinish')>=0)$where['settlementStatus'] = (int)input('isFinish');
 | 
			
		||||
        $where['dataFlag'] = 1;
 | 
			
		||||
        $where['orderStatus'] = 2;
 | 
			
		||||
        $where['o.shopId'] = (int)session('WST_USER.shopId');
 | 
			
		||||
        $page = Db::name('orders')->alias('o')
 | 
			
		||||
          ->join('__SETTLEMENTS__ s','o.settlementId=s.settlementId')
 | 
			
		||||
          ->join('__PAYMENTS__ p','o.payFrom=p.payCode')->where($where)
 | 
			
		||||
          ->field('orderId,orderNo,payType,goodsMoney,deliverMoney,totalMoney,o.commissionFee,realTotalMoney,s.settlementTime,s.settlementNo,p.payName')->order('s.settlementTime desc')->paginate(input('pagesize/d'))->toArray();
 | 
			
		||||
        if(count($page['Rows'])){
 | 
			
		||||
            foreach ($page['Rows'] as $key => $v) {
 | 
			
		||||
                $page['Rows'][$key]['commissionFee'] = abs($v['commissionFee']);
 | 
			
		||||
                $page['Rows'][$key]['payTypeNames'] = WSTLangPayType($v['payType']);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return $page;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取结算订单详情
 | 
			
		||||
     */
 | 
			
		||||
    public function getById(){
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $settlementId = (int)input('id');
 | 
			
		||||
        $object =  Db::name('settlements')->alias('st')->where(['settlementId'=>$settlementId,'st.shopId'=>$shopId])->join('__SHOPS__ s','s.shopId=st.shopId','left')->field('s.shopName,st.*')->find();
 | 
			
		||||
        if(!empty($object)){
 | 
			
		||||
            $object['list'] = Db::name('orders')->where(['settlementId'=>$settlementId])
 | 
			
		||||
                      ->field('orderId,orderNo,payType,goodsMoney,deliverMoney,realTotalMoney,totalMoney,scoreMoney,commissionFee,createTime')
 | 
			
		||||
                      ->order('payType desc,orderId desc')->select();
 | 
			
		||||
        }
 | 
			
		||||
        return $object;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
   * 导出订单
 | 
			
		||||
   */
 | 
			
		||||
  public function toExport(){
 | 
			
		||||
    $name='已结算订单表';
 | 
			
		||||
    $where = [];
 | 
			
		||||
        if(input('settlementNo')!='')$where['settlementNo'] = ['like','%'.input('settlementNo').'%'];
 | 
			
		||||
        if(input('orderNo')!='')$where['orderNo'] = ['like','%'.input('orderNo').'%'];
 | 
			
		||||
        if((int)input('isFinish')>=0)$where['settlementStatus'] = (int)input('isFinish');
 | 
			
		||||
        $where['dataFlag'] = 1;
 | 
			
		||||
        $where['orderStatus'] = 2;
 | 
			
		||||
        $where['o.shopId'] = (int)session('WST_USER.shopId');
 | 
			
		||||
        $page = Db::name('orders')->alias('o')
 | 
			
		||||
          ->join('__SETTLEMENTS__ s','o.settlementId=s.settlementId')
 | 
			
		||||
          ->join('__PAYMENTS__ p','o.payFrom=p.payCode')->where($where)
 | 
			
		||||
          ->field('orderId,orderNo,payType,goodsMoney,deliverMoney,totalMoney,o.commissionFee,realTotalMoney,s.settlementTime,s.settlementNo,p.payName')->order('s.settlementTime desc')->select();
 | 
			
		||||
        if(count($page)){
 | 
			
		||||
            foreach ($page as $key => $v) {
 | 
			
		||||
                $page[$key]['commissionFee'] = abs($v['commissionFee']);
 | 
			
		||||
                $page[$key]['payTypeNames'] = WSTLangPayType($v['payType']);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    Loader::import('phpexcel.PHPExcel.IOFactory');
 | 
			
		||||
    $objPHPExcel = new \PHPExcel();
 | 
			
		||||
    // 设置excel文档的属性
 | 
			
		||||
    $objPHPExcel->getProperties()->setCreator("WSTMart")//创建人
 | 
			
		||||
    ->setLastModifiedBy("WSTMart")//最后修改人
 | 
			
		||||
    ->setTitle($name)//标题
 | 
			
		||||
    ->setSubject($name)//题目
 | 
			
		||||
    ->setDescription($name)//描述
 | 
			
		||||
    ->setKeywords("订单")//关键字
 | 
			
		||||
    ->setCategory("Test result file");//种类
 | 
			
		||||
  
 | 
			
		||||
    // 开始操作excel表
 | 
			
		||||
    $objPHPExcel->setActiveSheetIndex(0);
 | 
			
		||||
    // 设置工作薄名称
 | 
			
		||||
    $objPHPExcel->getActiveSheet()->setTitle(iconv('gbk', 'utf-8', 'Sheet'));
 | 
			
		||||
    // 设置默认字体和大小
 | 
			
		||||
    $objPHPExcel->getDefaultStyle()->getFont()->setName(iconv('gbk', 'utf-8', ''));
 | 
			
		||||
    $objPHPExcel->getDefaultStyle()->getFont()->setSize(11);
 | 
			
		||||
    $styleArray = array(
 | 
			
		||||
        'font' => array(
 | 
			
		||||
            'bold' => true,
 | 
			
		||||
            'color'=>array(
 | 
			
		||||
                'argb' => 'ffffffff',
 | 
			
		||||
            )
 | 
			
		||||
        ),
 | 
			
		||||
        'borders' => array (
 | 
			
		||||
            'outline' => array (
 | 
			
		||||
                'style' => \PHPExcel_Style_Border::BORDER_THIN,  //设置border样式
 | 
			
		||||
                'color' => array ('argb' => 'FF000000'),     //设置border颜色
 | 
			
		||||
            )
 | 
			
		||||
        )
 | 
			
		||||
    );
 | 
			
		||||
    //设置宽
 | 
			
		||||
    $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(12);
 | 
			
		||||
    $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(12);
 | 
			
		||||
    $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(12);
 | 
			
		||||
    $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(25);
 | 
			
		||||
    $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(12);
 | 
			
		||||
    $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(12);
 | 
			
		||||
    $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(12);
 | 
			
		||||
    $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(20);
 | 
			
		||||
    $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(30);
 | 
			
		||||
    $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(30);
 | 
			
		||||
    $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(12);
 | 
			
		||||
    $objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(12);
 | 
			
		||||
    $objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(20);
 | 
			
		||||
    $objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(20);
 | 
			
		||||
    $objPHPExcel->getActiveSheet()->getStyle('A1:N1')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);
 | 
			
		||||
    $objPHPExcel->getActiveSheet()->getStyle('A1:N1')->getFill()->getStartColor()->setARGB('333399');
 | 
			
		||||
  
 | 
			
		||||
    $objPHPExcel->getActiveSheet()->setCellValue('A1', '订单编号')->setCellValue('B1', '支付方式')->setCellValue('C1', '商品总金额')->setCellValue('D1', '运费')->setCellValue('E1', '订单总金额')
 | 
			
		||||
    ->setCellValue('F1', '实付金额')->setCellValue('G1', '应付佣金')->setCellValue('H1', '结算方式')->setCellValue('I1', '结算单号')->setCellValue('J1', '结算时间');
 | 
			
		||||
    $objPHPExcel->getActiveSheet()->getStyle('A1:J1')->applyFromArray($styleArray);
 | 
			
		||||
  
 | 
			
		||||
    for ($row = 0; $row < count($page); $row++){
 | 
			
		||||
      $i = $row+2;
 | 
			
		||||
      $objPHPExcel->getActiveSheet()
 | 
			
		||||
      ->setCellValue('A'.$i, $page[$row]['orderNo'])
 | 
			
		||||
      ->setCellValue('B'.$i, $page[$row]['payTypeNames'])
 | 
			
		||||
      ->setCellValue('C'.$i, $page[$row]['goodsMoney'])
 | 
			
		||||
      ->setCellValue('D'.$i, $page[$row]['deliverMoney'])
 | 
			
		||||
      ->setCellValue('E'.$i, $page[$row]['totalMoney'])
 | 
			
		||||
      ->setCellValue('F'.$i, $page[$row]['realTotalMoney'])
 | 
			
		||||
      ->setCellValue('G'.$i, $page[$row]['commissionFee'])
 | 
			
		||||
      ->setCellValue('H'.$i, $page[$row]['payName'])
 | 
			
		||||
      ->setCellValue('I'.$i, $page[$row]['settlementNo'])
 | 
			
		||||
      ->setCellValue('J'.$i, $page[$row]['settlementTime']);
 | 
			
		||||
    }
 | 
			
		||||
  
 | 
			
		||||
    //输出EXCEL格式
 | 
			
		||||
    $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
 | 
			
		||||
    // 从浏览器直接输出$filename
 | 
			
		||||
    header('Content-Type:application/csv;charset=UTF-8');
 | 
			
		||||
    header("Pragma: public");
 | 
			
		||||
    header("Expires: 0");
 | 
			
		||||
    header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
 | 
			
		||||
    header("Content-Type:application/force-download");
 | 
			
		||||
    header("Content-Type:application/vnd.ms-excel;");
 | 
			
		||||
    header("Content-Type:application/octet-stream");
 | 
			
		||||
    header("Content-Type:application/download");
 | 
			
		||||
    header('Content-Disposition: attachment;filename="'.$name.'.xls"');
 | 
			
		||||
    header("Content-Transfer-Encoding:binary");
 | 
			
		||||
    $objWriter->save('php://output');
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										62
									
								
								hyhproject/home2/model/ShopConfigs.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										62
									
								
								hyhproject/home2/model/ShopConfigs.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\model;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 门店配置类
 | 
			
		||||
 */
 | 
			
		||||
use think\Db;
 | 
			
		||||
class ShopConfigs extends Base{
 | 
			
		||||
    /**
 | 
			
		||||
    * 店铺设置
 | 
			
		||||
    */
 | 
			
		||||
     public function getShopCfg($id){
 | 
			
		||||
        $rs = $this->where("shopId=".$id)->find();
 | 
			
		||||
        if($rs != ''){
 | 
			
		||||
            //图片
 | 
			
		||||
            $rs['shopAds'] = ($rs['shopAds']!='')?explode(',',$rs['shopAds']):null;
 | 
			
		||||
            //图片的广告地址
 | 
			
		||||
            $rs['shopAdsUrl'] = ($rs['shopAdsUrl']!='')?explode(',',$rs['shopAdsUrl']):null;
 | 
			
		||||
            return $rs;
 | 
			
		||||
        }
 | 
			
		||||
     }
 | 
			
		||||
 | 
			
		||||
     /**
 | 
			
		||||
      * 修改店铺设置
 | 
			
		||||
      */
 | 
			
		||||
     public function editShopCfg($shopId){
 | 
			
		||||
        $data = input('post.');
 | 
			
		||||
        //加载商店信息
 | 
			
		||||
        Db::startTrans();
 | 
			
		||||
		try{
 | 
			
		||||
	        $shopcg = $this->where('shopId='.$shopId)->find(); 
 | 
			
		||||
	        $scdata = array();
 | 
			
		||||
	        $scdata["shopKeywords"] =  Input("shopKeywords");
 | 
			
		||||
	        $scdata["shopBanner"] =  Input("shopBanner");
 | 
			
		||||
	        $scdata["shopDesc"] =  Input("shopDesc");
 | 
			
		||||
	        $scdata["shopAds"] =  Input("shopAds");
 | 
			
		||||
	        $scdata["shopAdsUrl"] =  Input("shopAdsUrl");
 | 
			
		||||
            $scdata["shopHotWords"] =  Input("shopHotWords");
 | 
			
		||||
	        $scdata["shopStreetImg"] =  Input("shopStreetImg");
 | 
			
		||||
            WSTUseImages(0, $shopcg['configId'], $scdata['shopStreetImg'],'shop_configs','shopStreetImg');
 | 
			
		||||
	        WSTUseImages(0, $shopcg['configId'], $scdata['shopBanner'],'shop_configs','shopBanner');
 | 
			
		||||
	        WSTUseImages(0, $shopcg['configId'], $scdata['shopAds'],'shop_configs','shopAds');
 | 
			
		||||
	        $rs = $this->where("shopId=".$shopId)->update($scdata);	
 | 
			
		||||
	        if($rs!==false){
 | 
			
		||||
	        	Db::commit();
 | 
			
		||||
	            return WSTReturn('操作成功',1);
 | 
			
		||||
	        }
 | 
			
		||||
		}catch (\Exception $e) {
 | 
			
		||||
            Db::rollback();errLog($e);
 | 
			
		||||
        }
 | 
			
		||||
        return WSTReturn('操作失败',-1);
 | 
			
		||||
     }
 | 
			
		||||
     /**
 | 
			
		||||
      * 获取商城搜索关键字
 | 
			
		||||
      */
 | 
			
		||||
     public function searchShopkey($shopId){
 | 
			
		||||
     	$rs = $this->where('shopId='.$shopId)->field('configId,shopHotWords')->find();
 | 
			
		||||
     	$keys = [];
 | 
			
		||||
     	if($rs['shopHotWords']!='')$keys = explode(',',$rs['shopHotWords']);
 | 
			
		||||
     	return $keys;
 | 
			
		||||
     }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										63
									
								
								hyhproject/home2/model/ShopFreights.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										63
									
								
								hyhproject/home2/model/ShopFreights.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,63 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\model;
 | 
			
		||||
use think\Db;
 | 
			
		||||
use wstmart\home\model\Shops;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 运费管理类
 | 
			
		||||
 */
 | 
			
		||||
class ShopFreights extends Base{
 | 
			
		||||
	/**
 | 
			
		||||
	 *  运费列表
 | 
			
		||||
	 */
 | 
			
		||||
	public function listProvince(){
 | 
			
		||||
		$shopId = session('WST_USER.shopId');
 | 
			
		||||
		$listCity = Db::name('areas')->where(['isShow'=>1,'dataFlag'=>1,'areaType'=>0])->field('areaId,areaName')->order('areaKey desc')->select();
 | 
			
		||||
		for ($i = 0; $i < count($listCity); $i++) {
 | 
			
		||||
			$parentId = $listCity[$i]["areaId"];
 | 
			
		||||
			$listPro = Db::name('areas')->alias('a')
 | 
			
		||||
			->join('__SHOP_FREIGHTS__ s','a.areaId= s.areaId2 and s.shopId='.$shopId,'left')
 | 
			
		||||
			->where(['a.isShow'=>1,'a.dataFlag'=>1,'a.areaType'=>1,'a.parentId'=>$parentId])
 | 
			
		||||
			->field('a.areaId,a.areaName,a.parentId,s.freightId,s.freight')
 | 
			
		||||
			->order('a.areaKey desc')
 | 
			
		||||
			->select();
 | 
			
		||||
			$listCity[$i]['listProvince'] = $listPro;
 | 
			
		||||
		}	
 | 
			
		||||
		return $listCity;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * 编辑
 | 
			
		||||
	 */
 | 
			
		||||
	public function edit(){
 | 
			
		||||
		$shopId = session('WST_USER.shopId');
 | 
			
		||||
		$info = input("post.");
 | 
			
		||||
		$areas = Db::name('areas')->where('isShow=1 AND dataFlag = 1 AND areaType=1')->field('areaId')->select();
 | 
			
		||||
		Db::startTrans();
 | 
			
		||||
		if(count($areas)==0)return WSTReturn('无效的城市');
 | 
			
		||||
		try{
 | 
			
		||||
		   $dataList = [];
 | 
			
		||||
           foreach ($areas as $key => $v) {
 | 
			
		||||
           	   $m = model('ShopFreights')->where(['shopId'=>$shopId,'areaId2'=>$v['areaId']])->find();
 | 
			
		||||
           	   $freight = ((int)input('post.'.$v['areaId'])>0)?(int)input('post.'.$v['areaId']):0;
 | 
			
		||||
           	   if($m){
 | 
			
		||||
           	   	   $m->freight = $freight;
 | 
			
		||||
           	   	   $m->save();
 | 
			
		||||
           	   }else{
 | 
			
		||||
           	   	   $data = [];
 | 
			
		||||
                   $data['shopId'] = $shopId;
 | 
			
		||||
                   $data['areaId2'] = $v['areaId'];
 | 
			
		||||
                   $data['freight'] = $freight;
 | 
			
		||||
                   $data['createTime'] = date('Y-m-d H:i:s');
 | 
			
		||||
                   $dataList[] = $data;
 | 
			
		||||
           	   }
 | 
			
		||||
           }
 | 
			
		||||
           if(count($dataList)>0)model('ShopFreights')->saveAll($dataList);
 | 
			
		||||
		   Db::commit();
 | 
			
		||||
		   return WSTReturn("操作成功", 1);
 | 
			
		||||
		}catch (\Exception $e) {
 | 
			
		||||
			Db::rollback();errLog($e);
 | 
			
		||||
			return WSTReturn('操作失败',-1);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										153
									
								
								hyhproject/home2/model/ShopRoles.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										153
									
								
								hyhproject/home2/model/ShopRoles.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,153 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\model;
 | 
			
		||||
use think\Db;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 门店色务类
 | 
			
		||||
 */
 | 
			
		||||
class ShopRoles extends Base{
 | 
			
		||||
	/**
 | 
			
		||||
	 * 角色列表
 | 
			
		||||
	 */
 | 
			
		||||
	public function pageQuery(){
 | 
			
		||||
		$shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
		$roleName = input("roleName/s");
 | 
			
		||||
		$where = ["shopId"=>$shopId,"dataFlag"=>1];
 | 
			
		||||
		if($roleName != ""){
 | 
			
		||||
			$where["roleName"] = ["like","%".$roleName."%"];
 | 
			
		||||
		}
 | 
			
		||||
		$page = $this
 | 
			
		||||
				->field('id,shopId,roleName,createTime')
 | 
			
		||||
		    	->where($where)
 | 
			
		||||
		    	->paginate(input('pagesize/d'))->toArray();
 | 
			
		||||
		return $page;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public function listQuery(){
 | 
			
		||||
		$shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
		$where = ["shopId"=>$shopId,"dataFlag"=>1];
 | 
			
		||||
		$list = $this
 | 
			
		||||
				->field('id,shopId,roleName,createTime')
 | 
			
		||||
		    	->where($where)
 | 
			
		||||
		    	->select();
 | 
			
		||||
		return $list;
 | 
			
		||||
	}
 | 
			
		||||
	/**
 | 
			
		||||
	*  根据id获取店铺角色
 | 
			
		||||
	*/
 | 
			
		||||
	public function getById($id){
 | 
			
		||||
		$shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
	    $role = $this->field('id,shopId,roleName,createTime,privilegeUrls,privilegeMsgs')
 | 
			
		||||
					->where(["id"=>$id,"shopId"=>$shopId,"dataFlag"=>1])
 | 
			
		||||
					->find();
 | 
			
		||||
		$menuList = json_decode($role["privilegeUrls"],true);
 | 
			
		||||
		$menuUrls = array();
 | 
			
		||||
		$menuOtherUrls = array();
 | 
			
		||||
		foreach ($menuList as $k1 => $menus1) {
 | 
			
		||||
			foreach ($menus1 as $k2 => $menus2) {
 | 
			
		||||
				$menuUrls = array_merge($menuUrls,$menus2["urls"]);
 | 
			
		||||
				$otherUrls = $menus2["otherUrls"];
 | 
			
		||||
				foreach ($otherUrls as $ko => $ourls) {
 | 
			
		||||
					$othurls = explode(',',$ourls);
 | 
			
		||||
					$menuOtherUrls = array_merge($menuOtherUrls,$othurls);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		$role["privilegeMsgs"] = explode(",",$role["privilegeMsgs"]);
 | 
			
		||||
		$role["menuUrls"] = array_filter($menuUrls);
 | 
			
		||||
		$role["menuOtherUrls"] = array_filter($menuOtherUrls);
 | 
			
		||||
		return $role;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 新增店铺角色
 | 
			
		||||
	 */
 | 
			
		||||
	public function add(){
 | 
			
		||||
		$shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
		$data["shopId"] = $shopId;
 | 
			
		||||
		$data["roleName"] = input('roleName/s');
 | 
			
		||||
		if($data["roleName"]==""){
 | 
			
		||||
			return WSTReturn('请输入角色名称',-1);
 | 
			
		||||
		}
 | 
			
		||||
		$data["privilegeMsgs"] = input('privilegeMsgs/s');
 | 
			
		||||
		$menuIds = input('menuIds/s');
 | 
			
		||||
		$urls = [];
 | 
			
		||||
		$otherUrls = [];
 | 
			
		||||
		if($menuIds==""){
 | 
			
		||||
			return WSTReturn('请选择权限',-1);
 | 
			
		||||
		}else{
 | 
			
		||||
			$roleMenus = model("HomeMenus")->getRoleMenus();
 | 
			
		||||
			$menuIds = explode(",",$menuIds);
 | 
			
		||||
			$menuList = array();
 | 
			
		||||
			for($i=0,$j=count($menuIds);$i<$j;$i++){
 | 
			
		||||
				$menu = $roleMenus[$menuIds[$i]];
 | 
			
		||||
				$menuList[$menu["grandpaId"]][$menu["parentId"]]["urls"][] = strtolower($menu["menuUrl"]);
 | 
			
		||||
				$menuList[$menu["grandpaId"]][$menu["parentId"]]["otherUrls"][] = strtolower($menu["menuOtherUrl"]);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		$data["privilegeUrls"] = json_encode($menuList);
 | 
			
		||||
		$data["createTime"] = date("Y-m-d H:i:s");
 | 
			
		||||
		$result = $this->save($data);
 | 
			
		||||
		if(false !== $result){
 | 
			
		||||
        	return WSTReturn("新增成功", 1);
 | 
			
		||||
        }
 | 
			
		||||
        return WSTReturn('新增失败',-1);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 修改店铺角色
 | 
			
		||||
	 */
 | 
			
		||||
	public function edit(){
 | 
			
		||||
		$shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
		$id = (int)input('id');
 | 
			
		||||
		$data["roleName"] = input('roleName/s');
 | 
			
		||||
		if($data["roleName"]==""){
 | 
			
		||||
			return WSTReturn('请输入角色名称',-1);
 | 
			
		||||
		}
 | 
			
		||||
		$data["privilegeMsgs"] = input('privilegeMsgs/s');
 | 
			
		||||
		$menuIds = input('menuIds/s');
 | 
			
		||||
		$urls = [];
 | 
			
		||||
		$otherUrls = [];
 | 
			
		||||
		if($menuIds==""){
 | 
			
		||||
			return WSTReturn('请选择权限',-1);
 | 
			
		||||
		}else{
 | 
			
		||||
			$roleMenus = model("HomeMenus")->getRoleMenus();
 | 
			
		||||
			$menuIds = explode(",",$menuIds);
 | 
			
		||||
			$menuList = array();
 | 
			
		||||
			for($i=0,$j=count($menuIds);$i<$j;$i++){
 | 
			
		||||
				$menu = $roleMenus[$menuIds[$i]];
 | 
			
		||||
				$menuList[$menu["grandpaId"]][$menu["parentId"]]["urls"][] = strtolower($menu["menuUrl"]);
 | 
			
		||||
				$menuList[$menu["grandpaId"]][$menu["parentId"]]["otherUrls"][] = strtolower($menu["menuOtherUrl"]);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		$data["privilegeUrls"] = json_encode($menuList);
 | 
			
		||||
		$result = $this->where(["id"=>$id,"shopId"=>$shopId])->update($data);
 | 
			
		||||
		if(false !== $result){
 | 
			
		||||
        	return WSTReturn("修改成功", 1);
 | 
			
		||||
        }
 | 
			
		||||
        return WSTReturn('删除失败',-1);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 删除店铺角色
 | 
			
		||||
	 */
 | 
			
		||||
	public function del(){
 | 
			
		||||
		$shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
		$id = input('post.id/d');
 | 
			
		||||
		$data = [];
 | 
			
		||||
		$data['dataFlag'] = -1;
 | 
			
		||||
		Db::startTrans();
 | 
			
		||||
		try{
 | 
			
		||||
		    $result = $this->where(["id"=>$id,"shopId"=>$shopId])->update($data);
 | 
			
		||||
	        if(false !== $result){
 | 
			
		||||
	        	//删除关联记录
 | 
			
		||||
	        	Db::name("shop_users")->where(["roleId"=>$id,"shopId"=>$shopId])->update($data);
 | 
			
		||||
				Db::commit();
 | 
			
		||||
	        	return WSTReturn("删除成功", 1);
 | 
			
		||||
	        }
 | 
			
		||||
		}catch (\Exception $e) {
 | 
			
		||||
            Db::rollback();errLog($e);
 | 
			
		||||
        }
 | 
			
		||||
        return WSTReturn('删除失败',-1);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										202
									
								
								hyhproject/home2/model/ShopUsers.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										202
									
								
								hyhproject/home2/model/ShopUsers.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,202 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\model;
 | 
			
		||||
use think\Db;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 门店管理员类
 | 
			
		||||
 */
 | 
			
		||||
class ShopUsers extends Base{
 | 
			
		||||
	/**
 | 
			
		||||
	 * 角色列表
 | 
			
		||||
	 */
 | 
			
		||||
	public function pageQuery(){
 | 
			
		||||
		$shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
		$userName = input("userName/s");
 | 
			
		||||
		$where = ["s.shopId"=>$shopId,"s.dataFlag"=>1];
 | 
			
		||||
		if($userName != ""){
 | 
			
		||||
			$where["loginName"] = ["like","%".$userName."%"];
 | 
			
		||||
		}
 | 
			
		||||
		$page = $this->alias('s')
 | 
			
		||||
	    		->join("__SHOP_ROLES__ r","s.roleId=r.id","LEFT")
 | 
			
		||||
	    		->join("__USERS__ u", "u.userId=s.userId and u.dataFlag=1")
 | 
			
		||||
	    		->field('s.id,s.shopId,s.roleId,u.userName,u.loginName,u.createTime,u.userStatus,r.roleName')
 | 
			
		||||
				->where($where)
 | 
			
		||||
				->paginate(input('pagesize/d'))->toArray();
 | 
			
		||||
		return $page;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	*  根据id获取店铺用户
 | 
			
		||||
	*/
 | 
			
		||||
	public function getById(){
 | 
			
		||||
		$id = (int)input('id');
 | 
			
		||||
		$shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
	    $user = $this->alias('s')
 | 
			
		||||
	    		->join("__SHOP_ROLES__ r","s.roleId=r.id","LEFT")
 | 
			
		||||
	    		->join("__USERS__ u", "u.userId=s.userId and u.dataFlag=1")
 | 
			
		||||
	    		->field('s.id,s.shopId,s.roleId,u.userName,u.loginName,u.createTime,u.userStatus,r.roleName')
 | 
			
		||||
				->where(["s.id"=>$id,"s.shopId"=>$shopId,"s.dataFlag"=>1])
 | 
			
		||||
				->find();
 | 
			
		||||
		return $user;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
     * 新增店铺用户
 | 
			
		||||
     */
 | 
			
		||||
    public function add(){
 | 
			
		||||
    	$data = array();
 | 
			
		||||
    	$roleId = (int)input("roleId");
 | 
			
		||||
    	$data['loginName'] = input("post.loginName");
 | 
			
		||||
    	$data['loginPwd'] = input("post.loginPwd");
 | 
			
		||||
    	$data['reUserPwd'] = input("post.reUserPwd");
 | 
			
		||||
    	$loginName = $data['loginName'];
 | 
			
		||||
    	if($roleId<=0){
 | 
			
		||||
    		return WSTReturn('非法操作');
 | 
			
		||||
    	}
 | 
			
		||||
    	//检测账号是否存在
 | 
			
		||||
    	$crs = WSTCheckLoginKey($loginName);
 | 
			
		||||
    	if($crs['status']!=1)return $crs;
 | 
			
		||||
    	$decrypt_data = WSTRSA($data['loginPwd']);
 | 
			
		||||
    	$decrypt_data2 = WSTRSA($data['reUserPwd']);
 | 
			
		||||
    	if($decrypt_data['status']==1 && $decrypt_data2['status']==1){
 | 
			
		||||
    		$data['loginPwd'] = $decrypt_data['data'];
 | 
			
		||||
    		$data['reUserPwd'] = $decrypt_data2['data'];
 | 
			
		||||
    	}else{
 | 
			
		||||
    		return WSTReturn('新增失败');
 | 
			
		||||
    	}
 | 
			
		||||
    	if($data['loginPwd']!=$data['reUserPwd']){
 | 
			
		||||
    		return WSTReturn("两次输入密码不一致!");
 | 
			
		||||
    	}
 | 
			
		||||
    	foreach ($data as $v){
 | 
			
		||||
    		if($v ==''){
 | 
			
		||||
    			return WSTReturn("信息不完整!");
 | 
			
		||||
    		}
 | 
			
		||||
    	}
 | 
			
		||||
    	if($loginName=='')return WSTReturn("新增失败!");//分派不了登录名
 | 
			
		||||
    
 | 
			
		||||
    	unset($data['reUserPwd']);
 | 
			
		||||
    	//检测账号,邮箱,手机是否存在
 | 
			
		||||
    	$data["loginSecret"] = rand(1000,9999);
 | 
			
		||||
    	$data['loginPwd'] = md5($data['loginPwd'].$data['loginSecret']);
 | 
			
		||||
    	$data['userName'] = input("post.userName");
 | 
			
		||||
    	$data['userQQ'] = "";
 | 
			
		||||
    	$data['userScore'] = 0;
 | 
			
		||||
    	$data['createTime'] = date('Y-m-d H:i:s');
 | 
			
		||||
    	$data['dataFlag'] = 1;
 | 
			
		||||
    	$data['userType'] = 1;
 | 
			
		||||
    	Db::startTrans();
 | 
			
		||||
        try{
 | 
			
		||||
	    	$userId = Db::name("users")->insertGetId($data);
 | 
			
		||||
	    	if(false !== $userId){
 | 
			
		||||
	    		//添加门店用户
 | 
			
		||||
	    		$shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
	    		$data = array();
 | 
			
		||||
	    		$data["shopId"] = $shopId;
 | 
			
		||||
	    		$data["userId"] = $userId;
 | 
			
		||||
	    		$data["roleId"] = (int)input("roleId");
 | 
			
		||||
	    		Db::name('shop_users')->insert($data);
 | 
			
		||||
	    		$user = model("common/Users")->get($userId);
 | 
			
		||||
	    		//注册成功后执行钩子
 | 
			
		||||
	    		hook('afterUserRegist',['user'=>$user]);
 | 
			
		||||
                //发送消息
 | 
			
		||||
                $tpl = WSTMsgTemplates('USER_REGISTER');
 | 
			
		||||
                if( $tpl['tplContent']!='' && $tpl['status']=='1'){
 | 
			
		||||
                    $find = ['${LOGIN_NAME}','${MALL_NAME}'];
 | 
			
		||||
                    $replace = [$user['loginName'],WSTConf('CONF.mallName')];
 | 
			
		||||
                    WSTSendMsg($userId,str_replace($find,$replace,$tpl['tplContent']),['from'=>0,'dataId'=>0]);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
	    		Db::commit();
 | 
			
		||||
	    		return WSTReturn("新增成功",1);
 | 
			
		||||
	    	}
 | 
			
		||||
        }catch (\Exception $e) {
 | 
			
		||||
        	Db::rollback();errLog($e);
 | 
			
		||||
        }
 | 
			
		||||
    	return WSTReturn("新增失败!");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
     * 修改店铺用户
 | 
			
		||||
     */
 | 
			
		||||
    public function edit(){
 | 
			
		||||
 | 
			
		||||
    	$shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
    	Db::startTrans();
 | 
			
		||||
		try{
 | 
			
		||||
	    	$data = array();
 | 
			
		||||
	    	$roleId = (int)input("post.roleId");
 | 
			
		||||
	    	$id = (int)input("post.id");
 | 
			
		||||
	    	$newPass = input("post.newPass/s");
 | 
			
		||||
	    	if($newPass!=""){
 | 
			
		||||
	    		$decrypt_data = WSTRSA($newPass);
 | 
			
		||||
		    	if($decrypt_data['status']==1){
 | 
			
		||||
		    		$newPass = $decrypt_data['data'];
 | 
			
		||||
		    	}else{
 | 
			
		||||
		    		return WSTReturn('修改失败');
 | 
			
		||||
		    	}
 | 
			
		||||
		    	if(!$newPass){
 | 
			
		||||
		    		return WSTReturn('密码不能为空',-1);
 | 
			
		||||
		    	}
 | 
			
		||||
		    	$roleUser = $this->where(["id"=>$id,"shopId"=>$shopId])->find();
 | 
			
		||||
		    	$userId = $roleUser["userId"];
 | 
			
		||||
		    	$rs = model("users")->where(["userId"=>$userId])->find();
 | 
			
		||||
		    	//核对密码
 | 
			
		||||
		  
 | 
			
		||||
				$oldPass = input("post.oldPass");
 | 
			
		||||
				$decrypt_data2 = WSTRSA($oldPass);
 | 
			
		||||
				if($decrypt_data2['status']==1){
 | 
			
		||||
					$oldPass = $decrypt_data2['data'];
 | 
			
		||||
				}else{
 | 
			
		||||
					return WSTReturn('修改失败');
 | 
			
		||||
				}
 | 
			
		||||
				if($rs['loginPwd']==md5($oldPass.$rs['loginSecret'])){
 | 
			
		||||
					
 | 
			
		||||
						$data["loginPwd"] = md5($newPass.$rs['loginSecret']);
 | 
			
		||||
						$rs = model("users")->update($data,['userId'=>$userId]);
 | 
			
		||||
						if(false !== $rs){
 | 
			
		||||
							$this->where(["id"=>$id,"shopId"=>$shopId,"roleId"=>[">",0]])->update(["roleId"=>$roleId]);
 | 
			
		||||
							hook("afterEditPass",["userId"=>$userId]);
 | 
			
		||||
						}else{
 | 
			
		||||
							return WSTReturn("修改失败", -1);
 | 
			
		||||
						}
 | 
			
		||||
						Db::commit();
 | 
			
		||||
				 		return WSTReturn("修改成功", 1);
 | 
			
		||||
			       
 | 
			
		||||
				}else{
 | 
			
		||||
					return WSTReturn('原始密码错误',-1);
 | 
			
		||||
				}
 | 
			
		||||
	    	}else{
 | 
			
		||||
	    		$this->where(["id"=>$id,"shopId"=>$shopId,"roleId"=>[">",0]])->update(["roleId"=>$roleId]);
 | 
			
		||||
	    		Db::commit();
 | 
			
		||||
				return WSTReturn("修改成功", 1);
 | 
			
		||||
	    	}
 | 
			
		||||
		}catch (\Exception $e) {
 | 
			
		||||
        	Db::rollback();errLog($e);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 删除店铺用户
 | 
			
		||||
	 */
 | 
			
		||||
	public function del(){
 | 
			
		||||
		$shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
		$id = input('post.id/d');
 | 
			
		||||
		$data = [];
 | 
			
		||||
		$data['dataFlag'] = -1;
 | 
			
		||||
		Db::startTrans();
 | 
			
		||||
		try{
 | 
			
		||||
			$role = $this->where(["id"=>$id,"shopId"=>$shopId])->field("userId,id")->find();
 | 
			
		||||
			$result = $this->where(["id"=>$id,"shopId"=>$shopId,"roleId"=>[">",0]])->update($data);
 | 
			
		||||
		   	if(false !== $result){
 | 
			
		||||
		   		Db::name("users")->where(["userId"=>$role["userId"]])->update(["userType"=>0]);
 | 
			
		||||
	        	return WSTReturn("删除成功", 1);
 | 
			
		||||
	        }
 | 
			
		||||
     	}catch (\Exception $e) {
 | 
			
		||||
        	Db::rollback();errLog($e);
 | 
			
		||||
        }
 | 
			
		||||
        return WSTReturn('删除失败',-1);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										561
									
								
								hyhproject/home2/model/Shops.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										561
									
								
								hyhproject/home2/model/Shops.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,561 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\model;
 | 
			
		||||
use wstmart\common\model\Shops as CShops;
 | 
			
		||||
use wstmart\home\validate\Shops as VShop;
 | 
			
		||||
use think\Db;
 | 
			
		||||
use think\Loader;
 | 
			
		||||
use think\Validate;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 门店类
 | 
			
		||||
 */
 | 
			
		||||
class Shops extends CShops{
 | 
			
		||||
    /**
 | 
			
		||||
     *  获取店铺的默认运费
 | 
			
		||||
     */
 | 
			
		||||
    public function getShopsFreight($shopId){
 | 
			
		||||
    	return $this->where(["dataFlag"=>1,"shopId"=>$shopId])->field('freight')->find();
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
    * 获取店铺公告
 | 
			
		||||
    */
 | 
			
		||||
    public function getNotice(){
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        return model('shops')->where(['shopId'=>$shopId])->value('shopNotice');
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
    * 修改店铺公告
 | 
			
		||||
    */
 | 
			
		||||
    public function editNotice(){
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $shopNotice = input('shopNotice');
 | 
			
		||||
        if(strlen($shopNotice)>450){
 | 
			
		||||
            return WSTReturn('店铺公告不能超过150字');
 | 
			
		||||
        }
 | 
			
		||||
        $rs = $this->where("shopId=$shopId")->setField('shopNotice',$shopNotice);
 | 
			
		||||
        if($rs!==false)return WSTReturn('设置成功',1);
 | 
			
		||||
        return WSTReturn('设置失败',-1);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     * 店铺街列表
 | 
			
		||||
     */
 | 
			
		||||
    public function pageQuery($pagesize){
 | 
			
		||||
    	$catId = input("get.id/d");
 | 
			
		||||
    	$keyword = input("keyword");
 | 
			
		||||
    	$userId = (int)session('WST_USER.userId');
 | 
			
		||||
    	$rs = $this->alias('s');
 | 
			
		||||
    	$where = [];
 | 
			
		||||
    	$where['s.dataFlag'] = 1;
 | 
			
		||||
        $where['s.shopStatus'] = 1;
 | 
			
		||||
    	$where['s.applyStatus'] = 2;
 | 
			
		||||
    	if($keyword!='')$where['s.shopName'] = ['like','%'.$keyword.'%'];
 | 
			
		||||
    	if($catId>0){
 | 
			
		||||
    		$rs->join('__CAT_SHOPS__ cs','cs.shopId = s.shopId','left');
 | 
			
		||||
    		$where['cs.catId'] = $catId;
 | 
			
		||||
    	}
 | 
			
		||||
    	$page = $rs->join('__SHOP_SCORES__ ss','ss.shopId = s.shopId','left')
 | 
			
		||||
    	->join('__USERS__ u','u.userId = s.userId','left')
 | 
			
		||||
    	->join('__FAVORITES__ f','f.userId = '.$userId.' and f.favoriteType=1 and f.targetId=s.shopId','left')
 | 
			
		||||
    	->where($where)
 | 
			
		||||
    	->order('s.shopId asc')
 | 
			
		||||
    	->field('s.shopId,s.shopImg,s.shopName,s.shopTel,s.shopQQ,s.shopWangWang,s.shopWangWangType,s.shopCompany,ss.totalScore,ss.totalUsers,ss.goodsScore,ss.goodsUsers,ss.serviceScore,ss.serviceUsers,ss.timeScore,ss.timeUsers,.u.loginName,f.favoriteId,s.areaIdPath')
 | 
			
		||||
    	->paginate($pagesize)->toArray();
 | 
			
		||||
    	if(empty($page['Rows']))return $page;
 | 
			
		||||
    	$shopIds = [];
 | 
			
		||||
    	$areaIds = [];
 | 
			
		||||
    	foreach ($page['Rows'] as $key =>$v){
 | 
			
		||||
    		$shopIds[] = $v['shopId'];
 | 
			
		||||
    		$tmp = explode('_',$v['areaIdPath']);
 | 
			
		||||
    		$areaIds[] = $tmp[1];
 | 
			
		||||
    		$page['Rows'][$key]['areaId'] = $tmp[1];
 | 
			
		||||
    		//总评分
 | 
			
		||||
    		$page['Rows'][$key]['totalScore'] = WSTScore($v["totalScore"], $v["totalUsers"]);
 | 
			
		||||
    		$page['Rows'][$key]['goodsScore'] = WSTScore($v['goodsScore'],$v['goodsUsers']);
 | 
			
		||||
    		$page['Rows'][$key]['serviceScore'] = WSTScore($v['serviceScore'],$v['serviceUsers']);
 | 
			
		||||
    		$page['Rows'][$key]['timeScore'] = WSTScore($v['timeScore'],$v['timeUsers']);
 | 
			
		||||
    		//商品列表
 | 
			
		||||
    		$goods = Db::name('goods')->alias('g')->join('store_recom sr','sr.goodsId=g.goodsId','left')
 | 
			
		||||
                ->where(['dataFlag'=> 1,'goodsStatus'=>1,'isSale'=>1,'sr.storeStatus'=>1,'shopId'=> $v["shopId"]])->field('g.goodsId,goodsName,shopPrice,goodsImg')->limit(10)->order('saleTime desc')->select();
 | 
			
		||||
            if(count($goods)<=3){
 | 
			
		||||
                $goods = Db::name('goods')->alias('g')
 | 
			
		||||
                    ->where(['dataFlag'=> 1,'goodsStatus'=>1,'isSale'=>1,'shopId'=> $v["shopId"]])->field('g.goodsId,goodsName,shopPrice,goodsImg')->limit(10)->order('saleTime desc')->select();
 | 
			
		||||
            }
 | 
			
		||||
    		$page['Rows'][$key]['goods'] = $goods;
 | 
			
		||||
    		//店铺商品总数
 | 
			
		||||
    		$page['Rows'][$key]['goodsTotal'] = count($goods);
 | 
			
		||||
		}
 | 
			
		||||
		$rccredMap = [];
 | 
			
		||||
		$goodsCatMap = [];
 | 
			
		||||
		$areaMap = [];
 | 
			
		||||
		//认证、地址、分类
 | 
			
		||||
		if(!empty($shopIds)){
 | 
			
		||||
			$rccreds = Db::name('shop_accreds')->alias('sac')->join('__ACCREDS__ a','a.accredId=sac.accredId and a.dataFlag=1','left')
 | 
			
		||||
			             ->where('shopId','in',$shopIds)->field('sac.shopId,accredName,accredImg')->select();
 | 
			
		||||
			foreach ($rccreds as $v){
 | 
			
		||||
				$rccredMap[$v['shopId']][] = $v;
 | 
			
		||||
			}
 | 
			
		||||
			$goodsCats = Db::name('cat_shops')->alias('cs')->join('__GOODS_CATS__ gc','cs.catId=gc.catId and gc.dataFlag=1','left')
 | 
			
		||||
			               ->where('shopId','in',$shopIds)->field('cs.shopId,gc.catName')->select();
 | 
			
		||||
		    foreach ($goodsCats as $v){
 | 
			
		||||
				$goodsCatMap[$v['shopId']][] = $v['catName'];
 | 
			
		||||
			}
 | 
			
		||||
			$areas = Db::name('areas')->alias('a')->join('__AREAS__ a1','a1.areaId=a.parentId','left')
 | 
			
		||||
			           ->where('a.areaId','in',$areaIds)->field('a.areaId,a.areaName areaName2,a1.areaName areaName1')->select();
 | 
			
		||||
		    foreach ($areas as $v){
 | 
			
		||||
				$areaMap[$v['areaId']] = $v;
 | 
			
		||||
			}         
 | 
			
		||||
		}
 | 
			
		||||
		foreach ($page['Rows'] as $key =>$v){
 | 
			
		||||
			$page['Rows'][$key]['accreds'] = (isset($rccredMap[$v['shopId']]))?$rccredMap[$v['shopId']]:[];
 | 
			
		||||
			$page['Rows'][$key]['catshops'] = (isset($goodsCatMap[$v['shopId']]))?implode(',',$goodsCatMap[$v['shopId']]):'';
 | 
			
		||||
			$page['Rows'][$key]['areas']['areaName1'] = (isset($areaMap[$v['areaId']]['areaName1']))?$areaMap[$v['areaId']]['areaName1']:'';
 | 
			
		||||
			$page['Rows'][$key]['areas']['areaName2'] = (isset($areaMap[$v['areaId']]['areaName2']))?$areaMap[$v['areaId']]['areaName2']:'';
 | 
			
		||||
		}
 | 
			
		||||
    	return $page;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取卖家中心信息
 | 
			
		||||
     */
 | 
			
		||||
    public function getShopSummary($shopId){
 | 
			
		||||
    	$shop = $this->alias('s')->join('__SHOP_SCORES__ cs','cs.shopId = s.shopId','left')
 | 
			
		||||
    	           ->where(['s.shopId'=>$shopId,'dataFlag'=>1])
 | 
			
		||||
    	->field('s.shopMoney,s.noSettledOrderFee,s.paymentMoney,s.shopId,shopImg,shopName,shopAddress,shopQQ,shopWangWang,shopTel,serviceStartTime,serviceEndTime,cs.*')
 | 
			
		||||
    	->find();
 | 
			
		||||
    	//评分
 | 
			
		||||
    	$scores['totalScore'] = WSTScore($shop['totalScore'],$shop['totalUsers']);
 | 
			
		||||
    	$scores['goodsScore'] = WSTScore($shop['goodsScore'],$shop['goodsUsers']);
 | 
			
		||||
    	$scores['serviceScore'] = WSTScore($shop['serviceScore'],$shop['serviceUsers']);
 | 
			
		||||
    	$scores['timeScore'] = WSTScore($shop['timeScore'],$shop['timeUsers']);
 | 
			
		||||
    	WSTUnset($shop, 'totalUsers,goodsUsers,serviceUsers,timeUsers');
 | 
			
		||||
    	$shop['scores'] = $scores;
 | 
			
		||||
    	//认证
 | 
			
		||||
    	$accreds = $this->shopAccreds($shopId);
 | 
			
		||||
    	$shop['accreds'] = $accreds;
 | 
			
		||||
    	//商家访问量
 | 
			
		||||
        $shop['view']=db('shop_view')->where('shopId',$shopId)->field('count(shopId)view,path')->group('path')->select();
 | 
			
		||||
        //查看商家钱包是否足够钱
 | 
			
		||||
        $USER = session('WST_USER');
 | 
			
		||||
        $USER['shopMoney'] = $shop['shopMoney'];
 | 
			
		||||
        $USER['noSettledOrderFee'] = $shop['noSettledOrderFee'];
 | 
			
		||||
        $USER['paymentMoney'] = $shop['paymentMoney'];
 | 
			
		||||
        session('WST_USER',$USER);
 | 
			
		||||
        $stat = array();
 | 
			
		||||
        $date = date("Y-m-d");
 | 
			
		||||
        $userId = session('WST_USER.userId');
 | 
			
		||||
        /**********今日动态**********/
 | 
			
		||||
        //待查看消息数
 | 
			
		||||
        $stat['messageCnt'] = Db::name('messages')->where(['receiveUserId'=>$userId,'msgStatus'=>0,'dataFlag'=>1])->count();
 | 
			
		||||
        //今日销售金额
 | 
			
		||||
        $stat['saleMoney'] = Db::name('orders')->where(['shopId'=>$shopId,'orderStatus'=>['egt',0],'dataFlag'=>1])->whereTime('createTime', 'between', [$date.' 00:00:00', $date.' 23:59:59'])->sum("goodsMoney");
 | 
			
		||||
        //今日订单数
 | 
			
		||||
        $stat['orderCnt'] = Db::name('orders')->where(['shopId'=>$shopId,'orderStatus'=>['egt',0],'dataFlag'=>1])->whereTime('createTime', 'between', [$date.' 00:00:00', $date.' 23:59:59'])->count();
 | 
			
		||||
        //待发货订单
 | 
			
		||||
        $stat['waitDeliveryCnt'] = Db::name('orders')->where(['shopId'=>$shopId,'orderStatus'=>0,'dataFlag'=>1])->count();
 | 
			
		||||
        //待收货订单
 | 
			
		||||
        $stat['waitReceiveCnt'] = Db::name('orders')->where(['shopId'=>$shopId,'orderStatus'=>1,'dataFlag'=>1])->count();
 | 
			
		||||
        //取消/拒收
 | 
			
		||||
        $stat['cancel'] = Db::name('orders')->where(['shopId'=>$shopId,'orderStatus'=>['in',[-1,-3]],'dataFlag'=>1])->count();
 | 
			
		||||
        //库存预警
 | 
			
		||||
        $goodsn = Db::name('goods')->where('shopId ='.$shopId.' and dataFlag = 1 and goodsStock <= warnStock and isSpec = 0 and warnStock>0')->cache('stockWarnCnt1'.$shopId,3600)->count();
 | 
			
		||||
        $specsn = Db::name('goods_specs')->where('shopId ='.$shopId.' and dataFlag = 1 and specStock <= warnStock and warnStock>0')->cache('stockWarnCnt2'.$shopId,3600)->count();
 | 
			
		||||
        $stat['stockWarnCnt'] = $goodsn+$specsn;
 | 
			
		||||
        
 | 
			
		||||
        /**********商品信息**********/
 | 
			
		||||
        //商品总数
 | 
			
		||||
        $stat['goodsCnt'] = Db::name('goods')->where(['shopId'=>$shopId,'dataFlag'=>1])->cache('goodsCnt'.$shopId,3600)->count();
 | 
			
		||||
        //上架商品
 | 
			
		||||
        $stat['onSaleCnt'] = Db::name('goods')->where(['shopId'=>$shopId,'dataFlag'=>1,'goodsStatus'=>1,'isSale'=>1])->cache('onSaleCnt'.$shopId,3600)->count();
 | 
			
		||||
        //待审核商品
 | 
			
		||||
        $stat['waitAuditCnt'] = Db::name('goods')->where(['shopId'=>$shopId,'dataFlag'=>1,'goodsStatus'=>0])->cache('waitAuditCnt'.$shopId,3600)->count();
 | 
			
		||||
        //仓库中的商品
 | 
			
		||||
        $stat['unSaleCnt'] = Db::name('goods')->where(['shopId'=>$shopId,'dataFlag'=>1,'goodsStatus'=>1,'isSale'=>0])->cache('unSaleCnt'.$shopId,3600)->count();
 | 
			
		||||
        //违规商品
 | 
			
		||||
        $stat['illegalCnt'] = Db::name('goods')->where(['shopId'=>$shopId,'dataFlag'=>1,'goodsStatus'=>-1])->cache('illegalCnt'.$shopId,3600)->count();
 | 
			
		||||
        //今日新品
 | 
			
		||||
        $stat['newGoodsCnt'] = Db::name('goods')->where(['shopId'=>$shopId,'dataFlag'=>1,'goodsStatus'=>1,'isSale'=>1,'isNew'=>1])->cache('newGoodsCnt'.$shopId,3600)->count();
 | 
			
		||||
        
 | 
			
		||||
        /**********订单信息**********/
 | 
			
		||||
        //待付款订单
 | 
			
		||||
        $stat['orderNeedpayCnt'] = Db::name('orders')->where(['userId'=>$userId,'orderStatus'=>-2,'dataFlag'=>1])->count();
 | 
			
		||||
        //待结束订单
 | 
			
		||||
        $stat['orderWaitCloseCnt'] = Db::name('orders')->where(['userId'=>$userId,'orderStatus'=>2,'dataFlag'=>1,'isClosed'=>0])->cache('orderWaitCloseCnt'.$shopId,3600)->count();
 | 
			
		||||
        //退货退款订单
 | 
			
		||||
        $stat['orderRefundCnt'] = Db::name('orders')->alias('o')->join('order_refunds orf','orf.orderId=o.orderId')->where(['shopId'=>$shopId,'refundStatus'=>0,'o.dataFlag'=>1])->count();
 | 
			
		||||
        //待评价订单
 | 
			
		||||
        $stat['orderWaitAppraisesCnt'] = Db::name('orders')->where(['shopId'=>$shopId,'orderStatus'=>2,'dataFlag'=>1,'isAppraise'=>0])->cache('orderWaitAppraisesCnt'.$shopId,3600)->count();
 | 
			
		||||
        // 投诉订单数
 | 
			
		||||
        $stat['complainNum'] = Db::name('order_complains')->where(['respondTargetId'=>$shopId,'complainStatus'=>1])->count();
 | 
			
		||||
        // 近七天销售排行
 | 
			
		||||
        $start = date('Y-m-d H:i:s',strtotime("-7 day"));
 | 
			
		||||
        $end = date('Y-m-d H:i:s');
 | 
			
		||||
        $stat['goodsTop'] = $rs = Db::field('og.goodsId,g.goodsName,goodsSn,sum(og.goodsNum) goodsNum,g.goodsImg')
 | 
			
		||||
                                          ->name('order_goods')
 | 
			
		||||
                                          ->alias('og')
 | 
			
		||||
                                          ->join('__ORDERS__ o','og.orderId=o.orderId')
 | 
			
		||||
                                          ->join('__GOODS__ g','og.goodsId=g.goodsId')
 | 
			
		||||
                                          ->order('goodsNum desc')
 | 
			
		||||
                                          ->whereTime('o.createTime','between',[$start,$end])
 | 
			
		||||
                                          ->where('(payType=0 or (payType=1 and isPay=1)) and o.dataFlag=1 and o.shopId='.$shopId)->group('og.goodsId')
 | 
			
		||||
                                          ->limit(10)->select();
 | 
			
		||||
    	return ['shop'=>$shop,'stat'=>$stat];
 | 
			
		||||
    }    
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取店铺信息
 | 
			
		||||
     */
 | 
			
		||||
	public function getByView($id){
 | 
			
		||||
		$shop = $this->alias('s')->join('__BANKS__ b','b.bankId=s.bankId','left')
 | 
			
		||||
		             ->where(['s.dataFlag'=>1,'shopId'=>$id])
 | 
			
		||||
		             ->field('s.*,b.bankName')->find();
 | 
			
		||||
	     $areaIds = [];
 | 
			
		||||
        $areaMaps = [];
 | 
			
		||||
        $tmp = explode('_',$shop['areaIdPath']);
 | 
			
		||||
        foreach ($tmp as $vv){
 | 
			
		||||
         	if($vv=='')continue;
 | 
			
		||||
         	if(!in_array($vv,$areaIds))$areaIds[] = $vv;
 | 
			
		||||
        }
 | 
			
		||||
        if(!empty($areaIds)){
 | 
			
		||||
	         $areas = Db::name('areas')->where(['dataFlag'=>1,'areaId'=>['in',$areaIds]])->field('areaId,areaName')->select();
 | 
			
		||||
	         foreach ($areas as $v){
 | 
			
		||||
	         	 $areaMaps[$v['areaId']] = $v['areaName'];
 | 
			
		||||
	         }
 | 
			
		||||
	         $tmp = explode('_',$shop['areaIdPath']);
 | 
			
		||||
	         $areaNames = [];
 | 
			
		||||
		     foreach ($tmp as $vv){
 | 
			
		||||
	         	 if($vv=='')continue;
 | 
			
		||||
	         	 $areaNames[] = @$areaMaps[$vv];
 | 
			
		||||
	         	 $shop['areaName'] = implode('',$areaNames);
 | 
			
		||||
	         }
 | 
			
		||||
         }             
 | 
			
		||||
		                          
 | 
			
		||||
		//获取经营范围
 | 
			
		||||
		$goodsCats = Db::name('goods_cats')->where(['parentId'=>0,'isShow'=>1,'dataFlag'=>1])->field('catId,catName')->select();
 | 
			
		||||
		$catshops = Db::name('cat_shops')->where('shopId',$id)->select();
 | 
			
		||||
		$catshopMaps = [];
 | 
			
		||||
		foreach ($goodsCats as $v){
 | 
			
		||||
			$catshopMaps[$v['catId']] = $v['catName'];
 | 
			
		||||
		}
 | 
			
		||||
		$catshopNames = [];
 | 
			
		||||
		foreach ($catshops as $key =>$v){
 | 
			
		||||
			if(isset($catshopMaps[$v['catId']]))$catshopNames[] = $catshopMaps[$v['catId']];
 | 
			
		||||
		}
 | 
			
		||||
		$shop['catshopNames'] = implode('、',$catshopNames);
 | 
			
		||||
		//获取认证类型
 | 
			
		||||
	    $shop['accreds'] =Db::name('shop_accreds')->alias('sac')->join('__ACCREDS__ a','sac.accredId=a.accredId and a.dataFlag=1','inner')
 | 
			
		||||
	                    ->where('sac.shopId',$id)->field('accredName,accredImg')->select();
 | 
			
		||||
	    //开卡地址
 | 
			
		||||
        $areaNames  = model('areas')->getParentNames($shop['bankAreaId']);
 | 
			
		||||
        $shop['bankAreaName'] = implode('',$areaNames);
 | 
			
		||||
		return $shop;
 | 
			
		||||
	}
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取店铺指定字段
 | 
			
		||||
     */
 | 
			
		||||
    public function getFieldsById($shopId,$fields){
 | 
			
		||||
        return $this->where(['shopId'=>$shopId,'dataFlag'=>1])->field($fields)->find();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 编辑店铺资料mark huang 20180312 限制银行卡信息只能修改一次
 | 
			
		||||
     */
 | 
			
		||||
    public function editInfo(){
 | 
			
		||||
//添加旺旺类型mark by cheng 20180314
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $shop_data['shopImg'] = input('post.shopImg');
 | 
			
		||||
        $shop_data['isInvoice'] = input('post.isInvoice');
 | 
			
		||||
        $shop_data['invoiceRemarks'] = input('post.invoiceRemarks');
 | 
			
		||||
        $shop_data['serviceStartTime'] = input('post.serviceStartTime');
 | 
			
		||||
        $shop_data['serviceEndTime'] = input('post.serviceEndTime');
 | 
			
		||||
        $shop_data['freight'] = input('post.freight');
 | 
			
		||||
        $shop_data['shopQQ'] = input('post.shopQQ');
 | 
			
		||||
        $shop_data['shopWangWang'] = input('post.shopWangWang');
 | 
			
		||||
        $shop_data['shopWangWangType'] = input('post.shopWangWangType');
 | 
			
		||||
        $result = $this->validate('Shops.editInfo')->allowField(['shopImg','isInvoice','invoiceRemarks','serviceStartTime','serviceEndTime','freight','shopQQ','shopWangWang','shopWangWangType'])->save($shop_data,['shopId'=>$shopId]);
 | 
			
		||||
        $bank_info = Db::name('shops')->where('shopId',$shopId)->field('bankNo,changeNum')->find();
 | 
			
		||||
        $bank_data['bankNo'] = input('post.bankNo');
 | 
			
		||||
        $result2 = true;
 | 
			
		||||
        if($bank_info['changeNum'] == 0 && $bank_data['bankNo'] != $bank_info['bankNo']){          
 | 
			
		||||
            $bank_data['bankUserName'] = input('post.bankUserName');
 | 
			
		||||
            $bank_data['bankId'] = input('post.bankId');
 | 
			
		||||
            $bank_data['changeNum'] = $bank_info['changeNum'] + 1;
 | 
			
		||||
            $result2 = $this->allowField(['bankNo','bankUserName','shopId','bankId','changeNum'])->save($bank_data,['shopId'=>$shopId]);
 | 
			
		||||
        }elseif($bank_info['changeNum'] > 0){
 | 
			
		||||
            if($bank_data['bankNo'] != $bank_info['bankNo'] ){
 | 
			
		||||
                $result2 = false;
 | 
			
		||||
            }else{
 | 
			
		||||
                $result2 = true;
 | 
			
		||||
            }            
 | 
			
		||||
        }        
 | 
			
		||||
        if(false !== $result){
 | 
			
		||||
            if(false == $result2){
 | 
			
		||||
                $msg='银行卡修改失败!';
 | 
			
		||||
            }else{
 | 
			
		||||
                $msg='!';
 | 
			
		||||
            }
 | 
			
		||||
            return WSTReturn('店铺相关信息保存成功'.$msg,1);
 | 
			
		||||
        }else{
 | 
			
		||||
             return WSTReturn($this->getError());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取店铺提现账号
 | 
			
		||||
     */
 | 
			
		||||
    public function getShopAccount(){
 | 
			
		||||
        $shopId = (int)session('WST_USER.shopId');
 | 
			
		||||
        $shops = Db::name('shops')->alias('s')->join('banks b','b.bankId=s.bankId','inner')->where('s.shopId',$shopId)->field('b.bankName,s.bankAreaId,bankNo,bankUserName')->find();
 | 
			
		||||
        return $shops;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 保存入驻资料
 | 
			
		||||
     */
 | 
			
		||||
    public function saveStep2($data = []){
 | 
			
		||||
        $userId = (int)session('WST_USER.userId');
 | 
			
		||||
        //判断是否存在入驻申请
 | 
			
		||||
        $shops = $this->where('userId',$userId)->find();
 | 
			
		||||
        //新增入驻申请
 | 
			
		||||
        Db::startTrans();
 | 
			
		||||
        try{
 | 
			
		||||
            if(empty($shops)){
 | 
			
		||||
                $vshop = new VShop();
 | 
			
		||||
                $shop = ['userId'=>$userId,'applyStatus'=>0,'applyStep'=>2];
 | 
			
		||||
                $this->save($shop);
 | 
			
		||||
                WSTAllow($data,implode(',',$vshop->scene['applyStep1']));
 | 
			
		||||
                $data['shopId'] = $this->shopId;
 | 
			
		||||
                $result = Db::name('shop_extras')->insert($data);
 | 
			
		||||
                $shopId = $this->shopId;
 | 
			
		||||
                $WST_USER = session('WST_USER');
 | 
			
		||||
                $WST_USER['tempShopId'] = $shopId;
 | 
			
		||||
                session('WST_USER',$WST_USER);
 | 
			
		||||
                Db::commit();
 | 
			
		||||
                return WSTReturn('保存成功',1);
 | 
			
		||||
            }else{
 | 
			
		||||
                if($shops['applyStatus']>=1)return WSTReturn('请勿重复申请入驻');
 | 
			
		||||
                if($shops->applyStep<2){
 | 
			
		||||
                    $shops->applyStep = 2;
 | 
			
		||||
                    $shops->save();
 | 
			
		||||
                }
 | 
			
		||||
                $vshop = new VShop();
 | 
			
		||||
                WSTAllow($data,implode(',',$vshop->scene['applyStep1']));
 | 
			
		||||
                $result = Db::name('shop_extras')->where('shopId',$shops['shopId'])->update($data);
 | 
			
		||||
                if(false !== $result){
 | 
			
		||||
                    Db::commit();
 | 
			
		||||
                    return WSTReturn('保存成功',1);
 | 
			
		||||
                }else{
 | 
			
		||||
                    return WSTReturn('保存失败');
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }catch (\Exception $e) {
 | 
			
		||||
            Db::rollback();errLog($e);
 | 
			
		||||
            return WSTReturn('保存失败',-1);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    public function saveStep3($data = []){
 | 
			
		||||
        /*
 | 
			
		||||
            legalCertificateImg
 | 
			
		||||
            businessLicenceImg
 | 
			
		||||
            bankAccountPermitImg
 | 
			
		||||
            organizationCodeImg
 | 
			
		||||
        */
 | 
			
		||||
        $auxiliary=explode(',',$data['shopAds']);
 | 
			
		||||
        $shopId = (int)session('WST_USER.tempShopId');
 | 
			
		||||
        if($shopId==0)return WSTReturn('非法的操作');
 | 
			
		||||
        $shops = model('shops')->get($shopId);
 | 
			
		||||
        if($shops['applyStatus']>=1)return WSTReturn('请勿重复申请入驻');
 | 
			
		||||
        //判断是否存在入驻申请
 | 
			
		||||
        $vshop = new VShop();
 | 
			
		||||
        WSTAllow($data,implode(',',$vshop->scene['applyStep2']));
 | 
			
		||||
        //获取地区
 | 
			
		||||
        $areaIds = model('Areas')->getParentIs($data['businessAreaPath0']);
 | 
			
		||||
        if(!empty($areaIds))$data['businessAreaPath'] = implode('_',$areaIds)."_";
 | 
			
		||||
        $areaIds = model('Areas')->getParentIs($data['areaIdPath0']);
 | 
			
		||||
        if(!empty($areaIds))$data['areaIdPath'] = implode('_',$areaIds)."_";
 | 
			
		||||
        //if($data['isLongbusinessDate']==1)unset($data['businessEndDate']);
 | 
			
		||||
        //if($data['isLonglegalCertificateDate']==1)unset($data['legalCertificateEndDate']);
 | 
			
		||||
        //if($data['isLongOrganizationCodeDate']==1)unset($data['organizationCodeEndDate']);
 | 
			
		||||
        Db::startTrans();
 | 
			
		||||
        try{
 | 
			
		||||
            if($shops->applyStep<3){
 | 
			
		||||
                $shops->applyStep = 3;
 | 
			
		||||
                $shops->save();
 | 
			
		||||
            }
 | 
			
		||||
            $validate = Loader::validate('Shops');
 | 
			
		||||
            if(!$validate->scene('applyStep2')->check($data))return WSTReturn($validate->getError());
 | 
			
		||||
            $seModel = model('ShopExtras');
 | 
			
		||||
            $seModel->allowField(true)->save($data,['shopId'=>$shopId]);
 | 
			
		||||
            $Id = $seModel->where(['shopId'=>$shopId])->value('id');// 获取主键
 | 
			
		||||
            //启用上传图片
 | 
			
		||||
            WSTUseImages(0, $Id, $data['legalCertificateImg'],'shopextras');
 | 
			
		||||
            WSTUseImages(0, $Id, $data['businessLicenceImg'],'shopextras');
 | 
			
		||||
            WSTUseImages(0, $Id, $data['bankAccountPermitImg'],'shopextras');
 | 
			
		||||
            WSTUseImages(0, $Id, $data['organizationCodeImg'],'shopextras');
 | 
			
		||||
            $auxiliary_data=[];
 | 
			
		||||
            $shopAuxiliary =  Db::name('shop_auxiliary')->where('shopId='.$shopId)->find();
 | 
			
		||||
            WSTUseImages(0, $shopAuxiliary['id'], $auxiliary,'shopauxiliary');
 | 
			
		||||
            Db::name('shop_auxiliary')->where('shopId='.$shopId)->delete();
 | 
			
		||||
            foreach($auxiliary as $k=>$v){
 | 
			
		||||
                    $auxiliary_data[$k]['shopId']=$shopId;
 | 
			
		||||
                    $auxiliary_data[$k]['auxiliaryImg']=$v;
 | 
			
		||||
            }
 | 
			
		||||
            Db::name('shop_auxiliary')->insertAll($auxiliary_data);
 | 
			
		||||
            $this->allowField(true)->save($data,['shopId'=>$shopId]);
 | 
			
		||||
            Db::commit();
 | 
			
		||||
            return WSTReturn('保存成功',1);
 | 
			
		||||
        }catch (\Exception $e) {
 | 
			
		||||
            Db::rollback();errLog($e);
 | 
			
		||||
            return WSTReturn('保存失败',-1);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    public function saveStep4($data = []){
 | 
			
		||||
        /*
 | 
			
		||||
            taxRegistrationCertificateImg
 | 
			
		||||
            taxpayerQualificationImg
 | 
			
		||||
        */
 | 
			
		||||
        $shopId = (int)session('WST_USER.tempShopId');
 | 
			
		||||
        if($shopId==0)return WSTReturn('非法的操作');
 | 
			
		||||
        $shops = model('shops')->get($shopId);
 | 
			
		||||
        if($shops['applyStatus']>=1)return WSTReturn('请勿重复申请入驻');
 | 
			
		||||
        //判断是否存在入驻申请
 | 
			
		||||
        $vshop = new VShop();
 | 
			
		||||
        WSTAllow($data,implode(',',$vshop->scene['applyStep3']));
 | 
			
		||||
        $areaIds = model('Areas')->getParentIs($data['bankAreaId']);
 | 
			
		||||
        if(!empty($areaIds))$data['bankAreaIdPath'] = implode('_',$areaIds)."_";
 | 
			
		||||
        Db::startTrans();
 | 
			
		||||
        try{
 | 
			
		||||
            if($shops->applyStep<4){
 | 
			
		||||
                $shops->applyStep = 4;
 | 
			
		||||
                $shops->save();
 | 
			
		||||
            }
 | 
			
		||||
            $seModel = model('ShopExtras');
 | 
			
		||||
            $seModel->allowField(true)->save($data,['shopId'=>$shopId]);
 | 
			
		||||
            /*--------取消上传图片选项 mark hsf 20180104----------*/
 | 
			
		||||
            //$Id = $seModel->where(['shopId'=>$shopId])->value('id');
 | 
			
		||||
            //启用上传图片
 | 
			
		||||
            //WSTUseImages(0, $Id, $data['taxRegistrationCertificateImg'],'shopextras');
 | 
			
		||||
            // WSTUseImages(0, $Id, $data['taxpayerQualificationImg'],'shopextras');
 | 
			
		||||
            /*-------------------------end---------------------------*/
 | 
			
		||||
            $this->allowField(true)->save($data,['shopId'=>$shopId]);
 | 
			
		||||
            Db::commit();
 | 
			
		||||
            return WSTReturn('保存成功',1);
 | 
			
		||||
        }catch (\Exception $e) {
 | 
			
		||||
            Db::rollback();errLog($e);
 | 
			
		||||
            return WSTReturn('保存失败',-1);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    public function saveStep5($data = []){
 | 
			
		||||
        $shopId = (int)session('WST_USER.tempShopId');
 | 
			
		||||
        if($shopId==0)return WSTReturn('非法的操作');
 | 
			
		||||
        $shops = model('shops')->get($shopId);
 | 
			
		||||
        if($shops['applyStatus']>=1)return WSTReturn('请勿重复申请入驻');
 | 
			
		||||
        //判断是否存在入驻申请
 | 
			
		||||
        $vshop = new VShop();
 | 
			
		||||
        $filters = $vshop->scene['applyStep4'];
 | 
			
		||||
        $filters[] = 'shopQQ';
 | 
			
		||||
        $filters[] = 'shopWangWang';
 | 
			
		||||
        WSTAllow($data,implode(',',$filters));
 | 
			
		||||
        $shopLicense=input('shopLicense');
 | 
			
		||||
        if((strpos($data['goodsCatIds'],'393')!==false)||$data['goodsCatIds']=='393'){
 | 
			
		||||
            if($shopLicense==""){
 | 
			
		||||
 | 
			
		||||
                return WSTReturn('食品许可证不能为空');
 | 
			
		||||
            }
 | 
			
		||||
        }else{
 | 
			
		||||
            $shopLicense='';
 | 
			
		||||
        }
 | 
			
		||||
        Db::startTrans();
 | 
			
		||||
        try{
 | 
			
		||||
            $data['applyStatus'] = 1;
 | 
			
		||||
            $data['applyTime'] = date('Y-m-d H:i:s');
 | 
			
		||||
            $find=$this->where('shopName',$data['shopName'])->find();
 | 
			
		||||
            if($find) return WSTReturn('此商铺名称已存在,请重新填写');
 | 
			
		||||
            $result = $this->allowField(true)->save($data,['shopId'=>$shopId]);
 | 
			
		||||
            $row=db('shop_license')->insert(['shopId'=>$shopId,'shopLicense'=>$shopLicense]);
 | 
			
		||||
            // // // 启用图片
 | 
			
		||||
            WSTUseImages(0, $shopId, $data['shopImg'],'shops','shopImg');
 | 
			
		||||
            //WSTUseImages(0, $shopId, $shopLicense,'shoplicense','shopLicense');
 | 
			
		||||
          
 | 
			
		||||
            if($shops->applyStep<5){
 | 
			
		||||
                $shops->applyStep = 5;
 | 
			
		||||
                $shops->save();
 | 
			
		||||
            }
 | 
			
		||||
            if(false !== $result){
 | 
			
		||||
                //经营范围
 | 
			
		||||
                $goodsCats = explode(',',$data['goodsCatIds']);
 | 
			
		||||
                foreach ($goodsCats as $v){
 | 
			
		||||
                    if((int)$v>0)Db::name('cat_shops')->insert(['shopId'=>$shopId,'catId'=>$v]);
 | 
			
		||||
                }
 | 
			
		||||
                Db::commit();
 | 
			
		||||
                return WSTReturn('保存成功',1);
 | 
			
		||||
            }else{
 | 
			
		||||
                return WSTReturn('保存失败');
 | 
			
		||||
            }
 | 
			
		||||
        }catch (\Exception $e) {
 | 
			
		||||
            Db::rollback();errLog($e);
 | 
			
		||||
            return WSTReturn('保存失败',-1);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取商家入驻资料
 | 
			
		||||
     */
 | 
			
		||||
    public function getShopApply(){
 | 
			
		||||
        $userId = (int)session('WST_USER.userId');
 | 
			
		||||
        $rs = $this->alias('s')
 | 
			
		||||
            ->join('__SHOP_EXTRAS__ ss','s.shopId=ss.shopId','inner')
 | 
			
		||||
                   ->where('s.userId',$userId)
 | 
			
		||||
                   ->find();
 | 
			
		||||
        if(!empty($rs)){
 | 
			
		||||
            $rs = $rs->toArray();
 | 
			
		||||
            $goodscats = Db::name('cat_shops')->where('shopId',$rs['shopId'])->select();
 | 
			
		||||
            $rs['catshops'] = [];
 | 
			
		||||
            foreach ($goodscats as $v){
 | 
			
		||||
                $rs['catshops'][$v['catId']] = true;
 | 
			
		||||
            }
 | 
			
		||||
            $rs['taxRegistrationCertificateImgVO'] = ($rs['taxRegistrationCertificateImg']!='')?explode(',',$rs['taxRegistrationCertificateImg']):[];
 | 
			
		||||
 | 
			
		||||
        }else{
 | 
			
		||||
            $rs = [];
 | 
			
		||||
            $data1 = $this->getEModel('shops');
 | 
			
		||||
            $data2 = $this->getEModel('shop_extras');
 | 
			
		||||
            $rs = array_merge($data1,$data2);
 | 
			
		||||
            $rs['taxRegistrationCertificateImgVO'] = [];
 | 
			
		||||
        }
 | 
			
		||||
        $rs['auxiliary']=db('shop_auxiliary')->where('shopId',$rs['shopId'])->select();
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 判断是否申请入驻过
 | 
			
		||||
     */
 | 
			
		||||
    public function checkApply(){
 | 
			
		||||
        $userId = (int)session('WST_USER.userId');
 | 
			
		||||
        $rs = $this->where(['userId'=>$userId])->find();
 | 
			
		||||
        if(!empty($rs)){
 | 
			
		||||
            $WST_USER = session('WST_USER');
 | 
			
		||||
            $WST_USER['tempShopId'] = $rs->shopId;
 | 
			
		||||
            session('WST_USER',$WST_USER);
 | 
			
		||||
            session('apply_step',$rs['applyStep']);
 | 
			
		||||
        }
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
    * 首页店铺街列表
 | 
			
		||||
    */
 | 
			
		||||
    public function indexShopQuery($num=4){
 | 
			
		||||
        /** 添加返回店铺街商店 mark hsf 20180223 */
 | 
			
		||||
        $shop_list = model('common/Tags')->listShop(0,$num,0); 
 | 
			
		||||
        foreach ($shop_list as &$v) {
 | 
			
		||||
           $v['shopAddress'] = Db::name('shops')->where(['shopId'=>$v['shopId']])->value('shopAddress');
 | 
			
		||||
           $v['shopStreetImg'] = Db::name('shop_configs')->where(['shopId'=>$v['shopId']])->value('shopStreetImg');
 | 
			
		||||
        }
 | 
			
		||||
        return $shop_list;
 | 
			
		||||
        /** end */
 | 
			
		||||
        $rs = $this->alias('s')
 | 
			
		||||
                   ->join('__SHOP_CONFIGS__ sc','s.shopId=sc.shopId','inner')
 | 
			
		||||
                   ->field('s.shopId,s.shopName,s.shopAddress,sc.shopStreetImg')
 | 
			
		||||
                   ->limit($num)
 | 
			
		||||
                   ->select();
 | 
			
		||||
        return $rs;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										10
									
								
								hyhproject/home2/model/SpecItems.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										10
									
								
								hyhproject/home2/model/SpecItems.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\model;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 商品规格值类
 | 
			
		||||
 */
 | 
			
		||||
use think\Db;
 | 
			
		||||
class SpecItems extends Base{
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										33
									
								
								hyhproject/home2/model/Users.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										33
									
								
								hyhproject/home2/model/Users.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace wstmart\home\model;
 | 
			
		||||
use wstmart\common\model\Users as CUsers;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 用户类
 | 
			
		||||
 */
 | 
			
		||||
use think\Db;
 | 
			
		||||
class Users extends CUsers{
 | 
			
		||||
	/**
 | 
			
		||||
	* 获取各订单状态数、未读消息数、账户安全等级
 | 
			
		||||
	*/ 
 | 
			
		||||
	function getStatusNum(){
 | 
			
		||||
		$userId = (int)session('WST_USER.userId');
 | 
			
		||||
		$data = [];
 | 
			
		||||
		// 用户消息
 | 
			
		||||
	    $data['message'] = Db::name('messages')->where(['receiveUserId'=>$userId,'msgStatus'=>0,'dataFlag'=>1])->count();
 | 
			
		||||
		//获取用户订单状态
 | 
			
		||||
	    $data['waitPay'] = Db::name('orders')->where(['userId'=>$userId,'orderStatus'=>-2,'dataFlag'=>1])->count();
 | 
			
		||||
	    $data['waitReceive'] = Db::name('orders')->where(['userId'=>$userId,'orderStatus'=>['in',[0,1]],'dataFlag'=>1])->count();
 | 
			
		||||
	    $data['received'] = Db::name('orders')->where(['userId'=>$userId,'orderStatus'=>2,'dataFlag'=>1])->count();
 | 
			
		||||
	    $data['waitAppr'] = Db::name('orders')->where(['userId'=>$userId,'orderStatus'=>2,'isAppraise'=>0,'dataFlag'=>1])->count();
 | 
			
		||||
	    // 账户安全等级
 | 
			
		||||
	    $level = 1;
 | 
			
		||||
	    $users = $this->field('userPhone,userEmail')->find($userId);
 | 
			
		||||
	    if(!empty($users['userPhone']))++$level;
 | 
			
		||||
	    if(!empty($users['userEmail']))++$level;
 | 
			
		||||
	    $data['level'] = $level;
 | 
			
		||||
	    //关注商品
 | 
			
		||||
	    $data['gfavorite'] = Db::name('favorites')->where(['userId'=>$userId,'favoriteType'=>0])->count();
 | 
			
		||||
	    return $data;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										97
									
								
								hyhproject/home2/validate/Goods.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										97
									
								
								hyhproject/home2/validate/Goods.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,97 @@
 | 
			
		||||
<?php 
 | 
			
		||||
namespace wstmart\home\validate;
 | 
			
		||||
use think\Validate;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 商品验证器
 | 
			
		||||
 */
 | 
			
		||||
class Goods extends Validate{
 | 
			
		||||
	protected $rule = [
 | 
			
		||||
        ['goodsName'  ,'require|max:300','请输入商品名称|商品名称不能超过100个字符'],
 | 
			
		||||
        ['goodsImg'  ,'require','请上传商品图片'],
 | 
			
		||||
        ['goodsType'  ,'in:,0,1','无效的商品类型'],
 | 
			
		||||
        ['goodsSn'  ,'checkGoodsSn:1','请输入商品编号'],
 | 
			
		||||
        ['productNo'  ,'checkProductNo:1','请输入商品货号'],
 | 
			
		||||
        ['marketPrice'  ,'checkMarketPrice:1','请输入市场价格'],
 | 
			
		||||
        ['shopPrice'  ,'checkShopPrice:1','请输入店铺价格'],
 | 
			
		||||
        ['goodsUnit'  ,'require','请输入商品单位'],
 | 
			
		||||
        ['isSale'  ,'in:,0,1','无效的上架状态'],
 | 
			
		||||
        ['isRecom'  ,'in:,0,1','无效的推荐状态'],
 | 
			
		||||
        ['isBest'  ,'in:,0,1','无效的精品状态'],
 | 
			
		||||
        ['isNew'  ,'in:,0,1','无效的新品状态'],
 | 
			
		||||
        ['isHot'  ,'in:,0,1','无效的热销状态'],
 | 
			
		||||
        ['isFreeShipping','in:,0,1','无效的包邮状态'],
 | 
			
		||||
        ['goodsCatId'  ,'require','请选择完整商品分类'],
 | 
			
		||||
        ['goodsDesc','require','请输入商品描述'],
 | 
			
		||||
        ['specsIds','checkSpecsIds:1','请填写完整商品规格信息']
 | 
			
		||||
    ];
 | 
			
		||||
    /**
 | 
			
		||||
     * 检测商品编号
 | 
			
		||||
     */
 | 
			
		||||
    protected function checkGoodsSn($value){
 | 
			
		||||
    	$goodsId = Input('post.goodsId/d',0);
 | 
			
		||||
    	$key = Input('post.goodsSn');
 | 
			
		||||
    	if($key=='')return '请输入商品编号';
 | 
			
		||||
    	$isChk = model('Goods')->checkExistGoodsKey('goodsSn',$key,$goodsId);
 | 
			
		||||
    	if($isChk)return '对不起,该商品编号已存在';
 | 
			
		||||
    	return true;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 检测商品货号
 | 
			
		||||
     */
 | 
			
		||||
    protected function checkProductNo($value){
 | 
			
		||||
    	$goodsId = Input('post.goodsId/d',0);
 | 
			
		||||
    	$key = Input('post.productNo');
 | 
			
		||||
    	if($key=='')return '请输入商品货号';
 | 
			
		||||
    	$isChk = model('Goods')->checkExistGoodsKey('productNo',$key,$goodsId);
 | 
			
		||||
    	if($isChk)return '对不起,该商品货号已存在';
 | 
			
		||||
    	return true;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 检测价格
 | 
			
		||||
     */
 | 
			
		||||
    public function checkMarketPrice(){
 | 
			
		||||
        $marketPrice = floatval(input('post.marketPrice'));
 | 
			
		||||
        if($marketPrice<0.01)return '市场价格不能小于0.01';
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
    public function checkShopPrice(){
 | 
			
		||||
        $shopPrice = floatval(input('post.shopPrice'));
 | 
			
		||||
        if($shopPrice<0.01)return '店铺价格不能小于0.01';
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 检测商品规格是否填写完整
 | 
			
		||||
     */
 | 
			
		||||
    public function checkSpecsIds(){
 | 
			
		||||
    	$specsIds = input('post.specsIds');
 | 
			
		||||
    	if($specsIds!=''){
 | 
			
		||||
	    	$str = explode(',',$specsIds);
 | 
			
		||||
	    	$specsIds = [];
 | 
			
		||||
	    	foreach ($str as $v){
 | 
			
		||||
	    		$vs = explode('-',$v);
 | 
			
		||||
	    		foreach ($vs as $vv){
 | 
			
		||||
	    		   if(!in_array($vv,$specsIds))$specsIds[] = $vv;
 | 
			
		||||
	    		}
 | 
			
		||||
	    	}
 | 
			
		||||
    		//检测规格名称是否填写完整
 | 
			
		||||
    		foreach ($specsIds as $v){
 | 
			
		||||
    			if(input('post.specName_'.$v)=='')return '请填写完整商品规格值';
 | 
			
		||||
    		}
 | 
			
		||||
    		//检测销售规格是否完整	
 | 
			
		||||
    		foreach ($str as $v){
 | 
			
		||||
    			if(input('post.productNo_'.$v)=='')return '请填写完整商品销售规格-货号';
 | 
			
		||||
                if(input('post.marketPrice_'.$v)=='')return '请填写完整商品销售规格-市场价';
 | 
			
		||||
                if(floatval(input('post.marketPrice_'.$v))<0.01)return '商品销售规格-市场价不能小于0.01';
 | 
			
		||||
                if(input('post.specPrice_'.$v)=='')return '请填写完整商品销售规格-本店价';
 | 
			
		||||
                if(floatval(input('post.specPrice_'.$v))<0.01)return '商品销售规格-本店价不能小于0.01';
 | 
			
		||||
                if(input('post.specStock_'.$v)=='')return '请填写完整商品销售规格-库存';
 | 
			
		||||
                if(intval(input('post.specStock_'.$v))<0)return '商品销售规格-库存不能小于0';
 | 
			
		||||
                if(input('post.warnStock_'.$v)=='')return '请填写完整商品销售规格-预警库存';
 | 
			
		||||
                if(intval(input('post.warnStock_'.$v))<0)return '商品销售规格-预警库存不能小于0';
 | 
			
		||||
    		}
 | 
			
		||||
    		if(input('post.defaultSpec')=='')return '请选择推荐规格';
 | 
			
		||||
    	}
 | 
			
		||||
    	return true;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										118
									
								
								hyhproject/home2/validate/Shops.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										118
									
								
								hyhproject/home2/validate/Shops.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,118 @@
 | 
			
		||||
<?php 
 | 
			
		||||
namespace wstmart\home\validate;
 | 
			
		||||
use think\Validate;
 | 
			
		||||
/**
 | 
			
		||||
 * ============================================================================
 | 
			
		||||
 * 店铺验证器
 | 
			
		||||
 */
 | 
			
		||||
class Shops extends Validate{
 | 
			
		||||
	protected $rule = [
 | 
			
		||||
        //入驻步骤1
 | 
			
		||||
        ['applyLinkMan','require','请输入联系人姓名'],
 | 
			
		||||
        ['applyLinkTel','require','请输入联系人手机'],
 | 
			
		||||
       // ['applyLinkEmail','require','请输入联系人邮箱'],
 | 
			
		||||
        ['isInvestment','in:0,1','无效的对接商城招商人参数'],
 | 
			
		||||
        ['investmentStaff','checkInvestment:1','请输入商城招商人员姓名'],
 | 
			
		||||
        //入驻步骤2
 | 
			
		||||
        ['businessLicenceType','require','请选择执照类型'],
 | 
			
		||||
        ['businessLicence','require','请输入营业执照注册号'],
 | 
			
		||||
        ['legalPersonName','require','请输入法定代表人姓名'],
 | 
			
		||||
        //['businessAreaPath0','require','请选择营业执照所在地'],
 | 
			
		||||
        //['licenseAddress','require','请输入营业执照详细地址'],
 | 
			
		||||
        //['establishmentDate','require','请选择成立日期'],
 | 
			
		||||
        //['businessStartDate','require','请输入营业期限开始日期'],
 | 
			
		||||
        //['businessEndDate','checkBusinessEndDate:1','请输入营业期限结束日期'],
 | 
			
		||||
        //['isLongbusinessDate','in:0,1','无效的营业期限参数'],
 | 
			
		||||
        //['registeredCapital','require','请输入注册资本'],
 | 
			
		||||
        //['empiricalRange','require','请输入经营范围'],
 | 
			
		||||
        ['areaIdPath0','require','请选择公司所在地'],
 | 
			
		||||
        ['shopCompany','require','请输入公司名称'],
 | 
			
		||||
        ['shopAddress','require','请输入公司详细地址'],
 | 
			
		||||
        ['shopTel','require','请输入公司电话'],
 | 
			
		||||
        // mark by cheng 添加开店必须输入旺旺和qq20130318
 | 
			
		||||
        //['shopWangWang','require','请输入店铺客服旺旺'],
 | 
			
		||||
        //['shopQQ','require','请输入店铺客服QQ'],
 | 
			
		||||
        ['shopkeeper','require','请输入公司紧急联系人'],
 | 
			
		||||
        ['telephone','require','请输入公司紧急联系人电话'],
 | 
			
		||||
        ['legalCertificateType','require','请选择法人代表证件类型'],
 | 
			
		||||
        ['legalCertificate','require','请输入法定代表人证件号'],
 | 
			
		||||
        //['legalCertificateStartDate','require','请选择法定代表人证件有效期开始日期'],
 | 
			
		||||
        //['legalCertificateEndDate','checkLegalCertificateEndDate:1','请选择法定代表人证件有效期结束日期'],
 | 
			
		||||
        //['isLonglegalCertificateDate','in:0,1','无效的代表人证件有效期参数'],
 | 
			
		||||
        ['legalCertificateImg','require','请上传法人证件电子版'],
 | 
			
		||||
        ['businessLicenceImg','require','请上传营业执照电子版'],
 | 
			
		||||
        ['bankAccountPermitImg','require','请上传银行开户许可证电子版'],
 | 
			
		||||
        // ['organizationCode','require','请输入组织机构代码'],
 | 
			
		||||
        // ['organizationCodeStartDate','require','请输入商标注册证有效期开始日期'],
 | 
			
		||||
        // ['organizationCodeEndDate','checkOrganizationCodeEndDate:1','请输入商标注册证有效期结束日期'],
 | 
			
		||||
        // ['isLongOrganizationCodeDate','in:0,1','无效的商标注册证有效期参数'],
 | 
			
		||||
        ['organizationCodeImg','require','请上传商标注册证电子版'],
 | 
			
		||||
        //入驻步骤3
 | 
			
		||||
        /*--------取消上传图片选项 mark hsf 20180104----------*/
 | 
			
		||||
        //['taxpayerType','require','请选择纳税人类型'],
 | 
			
		||||
        //['taxpayerNo','require','请输入纳税人识别号'],
 | 
			
		||||
        //['taxRegistrationCertificateImg','require','请上传税务登记证电子版'],
 | 
			
		||||
        //['taxpayerQualificationImg','require','请上传一般纳税人资格证电子版'],
 | 
			
		||||
        /*-------------------------end-------------------------*/
 | 
			
		||||
        ['bankUserName'  ,'require|max:100','请输入持卡人名称|持卡人名称长度不能能超过50个字符'],
 | 
			
		||||
        ['bankNo'  ,'require','请选择银行账号'],
 | 
			
		||||
        ['bankId'  ,'require','请选择结算银行'],
 | 
			
		||||
        //['bankAreaId'  ,'require','请选择开户所地区'],
 | 
			
		||||
        //入驻步骤4
 | 
			
		||||
        ['shopName'  ,'require','请输入店铺名称'],
 | 
			
		||||
        ['shopImg'  ,'require','请上传店铺图标'],
 | 
			
		||||
        ['goodsCatIds'  ,'require','请选择经营类目'],
 | 
			
		||||
        ['isInvoice'  ,'in:0,1','无效的发票类型'],
 | 
			
		||||
        ['invoiceRemarks','checkInvoiceRemark:1','请输入发票说明'],
 | 
			
		||||
        ['freight','integer','请输入运费'],
 | 
			
		||||
        ['serviceStartTime','require','请选择服务开始时间'],
 | 
			
		||||
        ['serviceEndTime','require','请选择服务结束时间']
 | 
			
		||||
    ];
 | 
			
		||||
/*
 | 
			
		||||
 public $scene = [
 | 
			
		||||
        'editInfo'  =>['shopImg','isInvoice','serviceStartTime','serviceEndTime','freight'],
 | 
			
		||||
        'editBank'  =>['bankId','bankAreaId','bankNo','bankUserName'],
 | 
			
		||||
        'applyStep1'=>['applyLinkMan','applyLinkTel','applyLinkEmail','isInvestment','investmentStaff'],
 | 
			
		||||
        'applyStep2'=>['businessLicenceType','businessLicence','legalPersonName','businessAreaPath0','licenseAddress','establishmentDate','businessStartDate','businessEndDate','isLongbusinessDate','registeredCapital','empiricalRange','areaIdPath0','shopCompany','shopAddress','shopTel','shopkeeper','telephone','shopEmergencyLinkMan','legalCertificateType','legalCertificate','legalCertificateStartDate','legalCertificateEndDate','isLonglegalCertificateDate','legalCertificateImg','businessLicenceImg','bankAccountPermitImg','organizationCode','organizationCodeStartDate','organizationCodeEndDate','organizationCodeImg'],
 | 
			
		||||
        'applyStep3'=>['taxpayerType','taxpayerNo','taxRegistrationCertificateImg','taxpayerQualificationImg','bankUserName','bankNo','bankId','bankAreaId'],
 | 
			
		||||
        'applyStep4'=>['shopName','shopImg','goodsCatIds','isInvoice','invoiceRemarks','freight','serviceStartTime','serviceEndTime']
 | 
			
		||||
    ]; 
 | 
			
		||||
    */
 | 
			
		||||
    //添加旺旺和qq非空验证 mark by cheng 20170318 
 | 
			
		||||
    public $scene = [
 | 
			
		||||
        'editInfo'  =>['shopImg','isInvoice','serviceStartTime','serviceEndTime','freight'],
 | 
			
		||||
        'editBank'  =>['bankId','bankAreaId','bankNo','bankUserName'],
 | 
			
		||||
        'applyStep1'=>['applyLinkMan','applyLinkTel','applyLinkEmail','isInvestment','investmentStaff'],
 | 
			
		||||
        'applyStep2'=>['businessLicenceType','businessLicence','legalPersonName','businessAreaPath0','licenseAddress','establishmentDate','businessStartDate','businessEndDate','isLongbusinessDate','registeredCapital','empiricalRange','areaIdPath0','shopCompany','shopAddress','shopTel','shopkeeper','telephone','shopEmergencyLinkMan','legalCertificateType','legalCertificate','legalCertificateStartDate','legalCertificateEndDate','isLonglegalCertificateDate','legalCertificateImg','businessLicenceImg','bankAccountPermitImg','organizationCode','organizationCodeStartDate','organizationCodeEndDate','organizationCodeImg'],
 | 
			
		||||
        'applyStep3'=>['taxpayerType','taxpayerNo','taxRegistrationCertificateImg','taxpayerQualificationImg','bankUserName','bankNo','bankId','bankAreaId'],
 | 
			
		||||
        'applyStep4'=>['shopName','shopImg','goodsCatIds','isInvoice','invoiceRemarks','freight','serviceStartTime','serviceEndTime']
 | 
			
		||||
    ]; 
 | 
			
		||||
    
 | 
			
		||||
    protected function checkInvoiceRemark($value){
 | 
			
		||||
    	$isInvoice = input('post.isInvoice/d',0);
 | 
			
		||||
    	$key = Input('post.invoiceRemarks');
 | 
			
		||||
    	return ($isInvoice==1 && $key=='')?'请输入发票说明':true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected function checkInvestment($value){
 | 
			
		||||
        $isInvestment = input('post.isInvestment/d',0);
 | 
			
		||||
        $key = Input('post.investmentStaff');
 | 
			
		||||
        return ($isInvestment==1 && $key=='')?'请输入商城招商人员姓名':true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected function checkBusinessEndDate($value){
 | 
			
		||||
        $isLongbusinessDate = input('post.isLongbusinessDate/d',0);
 | 
			
		||||
        $key = Input('post.businessEndDate');
 | 
			
		||||
        return ($isLongbusinessDate==0 && $key=='')?'请输入营业期限结束日期':true;
 | 
			
		||||
    }
 | 
			
		||||
    protected function checkLegalCertificateEndDate($value){
 | 
			
		||||
        $isLonglegalCertificateDate = input('post.isLonglegalCertificateDate/d',0);
 | 
			
		||||
        $key = Input('post.legalCertificateEndDate');
 | 
			
		||||
        return ($isLonglegalCertificateDate==0 && $key=='')?'请选择法定代表人证件有效期结束日期':true;
 | 
			
		||||
    }
 | 
			
		||||
    protected function checkOrganizationCodeEndDate($value){
 | 
			
		||||
        // $isLonglegalCertificateDate = input('post.isLongOrganizationCodeDate/d',0);
 | 
			
		||||
        // $key = Input('post.organizationCodeEndDate');
 | 
			
		||||
        // return ($isLonglegalCertificateDate==0 && $key=='')?'请输入商标注册证有效期结束日期':true;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										24
									
								
								hyhproject/home2/view/default/articles/articles.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										24
									
								
								hyhproject/home2/view/default/articles/articles.js
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
$(function(){
 | 
			
		||||
	$('.h-cat>span').click(function(t){
 | 
			
		||||
		var li = $(this).parent();
 | 
			
		||||
		if( li.find('ul').is(":hidden") ){
 | 
			
		||||
			li.addClass('h-show').removeClass('h-hide');
 | 
			
		||||
			li.siblings().addClass('h-hide').removeClass('h-show');
 | 
			
		||||
		}else{
 | 
			
		||||
			li.addClass('h-hide').removeClass('h-show');
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
	});
 | 
			
		||||
});
 | 
			
		||||
function solve(status){
 | 
			
		||||
	$.post(WST.U('home/helpcenter/recordSolve'),{'status':status,'id':$('#artId').val()},function(data,dataStatus){
 | 
			
		||||
		var json = WST.toJson(data);
 | 
			
		||||
		if(json.status==1){
 | 
			
		||||
			if(status==1)
 | 
			
		||||
				$('.h-record').html('感谢您的评价!');
 | 
			
		||||
			else{
 | 
			
		||||
				$('.h-record').html('请联系客服!');
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										66
									
								
								hyhproject/home2/view/default/articles/help.html
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										66
									
								
								hyhproject/home2/view/default/articles/help.html
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,66 @@
 | 
			
		||||
{extend name="default/base" /}
 | 
			
		||||
{block name="title"}{if $data.articleTitle!=''}{$data.articleTitle}{else}客服中心{/if} - {:WSTConf('CONF.mallName')}{__block__}{/block}
 | 
			
		||||
{block name="meta"}
 | 
			
		||||
<meta name="keywords" content="{$data.articleKey}" />
 | 
			
		||||
<meta name="description" content="{$data.articleTitle}" />
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="css"}
 | 
			
		||||
<link href="__STYLE__/css/articles.css?v={$v}" rel="stylesheet">
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="main"}
 | 
			
		||||
<div class="bc-nav">
 | 
			
		||||
	<p>
 | 
			
		||||
		<a href="{:url('/')}">首页</a>
 | 
			
		||||
		<a href="#">> 客服中心</a>
 | 
			
		||||
		{volist name="$bcNav" id="bc"}
 | 
			
		||||
		{if ($bc['catId']!=7)}
 | 
			
		||||
	    <a href="{:url('home/helpcenter/view',['id'=>$data['articleId']])}">> {$bc['catName']}</a>
 | 
			
		||||
	    {/if}
 | 
			
		||||
	    {/volist}
 | 
			
		||||
	    {if isset($data['articleTitle'])}
 | 
			
		||||
	    	<a href="{:url('home/helpcenter/view',['id'=>$data['articleId']])}">> {$data['articleTitle']}</a>
 | 
			
		||||
	    {/if}
 | 
			
		||||
	</p>
 | 
			
		||||
</div>
 | 
			
		||||
<div class="help-box">
 | 
			
		||||
	<div class="help-left">
 | 
			
		||||
		<p class="h-title b-99">客服中心</p>
 | 
			
		||||
		<ul id="parent">
 | 
			
		||||
			{volist name="$list" id="v" }
 | 
			
		||||
			<?php $cat=explode('-',$key);?>
 | 
			
		||||
            <li class="h-cat {if ($cat[1]==$data['catId'])}h-show{else /}h-hide{/if}">
 | 
			
		||||
                <span>{$cat[0]}<p></p></span>
 | 
			
		||||
                <ul class="h-list">
 | 
			
		||||
                	{volist name="$v" id="v1" key="k1"}
 | 
			
		||||
                    <a href="{:url('home/Helpcenter/view',['id'=>$v1['articleId']])}"><li class="{if ($v1['articleId']==$data['articleId'])}h-curr{/if}">{:WSTMSubstr($v1['articleTitle'],0,10)}</li></a>
 | 
			
		||||
                    {/volist}
 | 
			
		||||
                </ul>
 | 
			
		||||
            </li>
 | 
			
		||||
            {/volist}
 | 
			
		||||
        </ul>
 | 
			
		||||
	</div>
 | 
			
		||||
	{if($data.articleTitle!='')}
 | 
			
		||||
	<div class="help-right b">
 | 
			
		||||
		<div class="h-right-title"><div id="square"></div><h4>{$data.articleTitle}</h4></div>
 | 
			
		||||
		<div class="c"><input type="hidden" value="{$data.articleId}" id="artId"></div>
 | 
			
		||||
		<div class="h-content">
 | 
			
		||||
			{:htmlspecialchars_decode($data.articleContent)}
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="c"></div>
 | 
			
		||||
		<div class="h-record">
 | 
			
		||||
			<p>以上内容是否已经解决您的问题呢?</p>
 | 
			
		||||
			<input class="h-button" onclick="solve(1)" type="button" value="是,已经解决" />
 | 
			
		||||
			<input class="h-button" onclick="solve(0)" type="button" value="否,咨询客服" />
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
	{/if}
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
	<div class="c"></div>
 | 
			
		||||
</div>
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="js"}
 | 
			
		||||
<script src="__STYLE__/articles/articles.js"></script>
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="footer"}{__block__}
 | 
			
		||||
{/block}
 | 
			
		||||
							
								
								
									
										73
									
								
								hyhproject/home2/view/default/articles/news_list.html
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										73
									
								
								hyhproject/home2/view/default/articles/news_list.html
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,73 @@
 | 
			
		||||
{extend name="default/base" /}
 | 
			
		||||
{block name="title"}
 | 
			
		||||
{$title} - {:WSTConf('CONF.mallName')}{__block__}{/block}
 | 
			
		||||
{block name="meta"}
 | 
			
		||||
<meta name="keywords" content="资讯中心,{:WSTConf('CONF.mallName')}" />
 | 
			
		||||
<meta name="description" content="资讯中心,{:WSTConf('CONF.mallName')}" />
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="css"}
 | 
			
		||||
<link href="__STYLE__/css/articles.css?v={$v}" rel="stylesheet">
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="main"}
 | 
			
		||||
<div class="bc-nav">
 | 
			
		||||
	<p>
 | 
			
		||||
		<a href="{:url('/')}">首页</a>
 | 
			
		||||
		<a href="{:url('home/news/view')}">> 资讯中心</a>
 | 
			
		||||
		{volist name="$bcNav" id="bc"}
 | 
			
		||||
	    <a href="{:url('home/news/nlist',['catId'=>$bc['catId']])}">> {$bc['catName']}</a> 
 | 
			
		||||
	    {/volist}
 | 
			
		||||
	</p>
 | 
			
		||||
</div>
 | 
			
		||||
<div class="help-box">
 | 
			
		||||
	<div class="help-left">
 | 
			
		||||
		<p class="h-title b-lg">资讯中心</p>
 | 
			
		||||
		<ul id="parent">
 | 
			
		||||
			{volist name="$list" id="v" }
 | 
			
		||||
            <li class="h-cat h-show">
 | 
			
		||||
                <span>{$v['catName']}<p></p></span>
 | 
			
		||||
                <ul class="h-list">
 | 
			
		||||
                	{volist name="$v['children']" id="v1" key="k1"}
 | 
			
		||||
                    <a href="{:url('home/News/nList',['catId'=>$v1['catId']])}"><li class="{if ($v1['catId']==$catId)}h-curr{/if}">{$v1['catName']}({$v1['newsCount']})</li></a>
 | 
			
		||||
                    {/volist}
 | 
			
		||||
                </ul>
 | 
			
		||||
            </li>
 | 
			
		||||
            {/volist}
 | 
			
		||||
        </ul>
 | 
			
		||||
	</div>
 | 
			
		||||
	<div class="help-right">
 | 
			
		||||
		<div class="h-content">
 | 
			
		||||
			{if(!input("param.catId") && !input("param.id"))}
 | 
			
		||||
			<div class="head"><p><span>N</span>ews 资讯中心</p><div class='wst-clear'></div></div>
 | 
			
		||||
			<ul class="news-list">
 | 
			
		||||
				{volist name="$index" id="li"}
 | 
			
		||||
				<li><div id="g-square"></div><a href="{:url('home/news/view',['id'=>$li['articleId']])}">{$li['articleTitle']}</a><span class="list-time"> {:date('Y-m-d H:i:s',strtotime($li['createTime']))}</span></li>
 | 
			
		||||
				{/volist}
 | 
			
		||||
			</ul>
 | 
			
		||||
			{/if}
 | 
			
		||||
			{if isset($newsList)}
 | 
			
		||||
			<div class="head"><p><span>N</span>ews {$bc['catName']}</p><div class='wst-clear'></div></div>
 | 
			
		||||
			<ul class="news-list">
 | 
			
		||||
				{if 63 == input("param.catId")}
 | 
			
		||||
					{volist name="$newsList" id="n"}
 | 
			
		||||
					<li><div id="g-square"></div><a ">{$n['articleTitle']}</a><span class="list-time"> {:date('Y-m-d H:i:s',strtotime($n['createTime']))}</span>5元</li>
 | 
			
		||||
					{/volist}
 | 
			
		||||
				{else /}
 | 
			
		||||
					{volist name="$newsList" id="n"}
 | 
			
		||||
					<li><div id="g-square"></div><a href="{:url('home/news/view',['id'=>$n['articleId']])}">{$n['articleTitle']}</a><span class="list-time"> {:date('Y-m-d H:i:s',strtotime($n['createTime']))}</span></li>
 | 
			
		||||
					{/volist}
 | 
			
		||||
				{/if}
 | 
			
		||||
			</ul>
 | 
			
		||||
			{/if}
 | 
			
		||||
			{if isset($page)}
 | 
			
		||||
			<div class="h-page">{$page}<div class='wst-clear'></div></div>
 | 
			
		||||
			{/if}
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
	<div class='wst-clear'></div>
 | 
			
		||||
</div>
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="js"}
 | 
			
		||||
<script src="__STYLE__/articles/articles.js"></script>
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="footer"}{__block__}
 | 
			
		||||
{/block}
 | 
			
		||||
							
								
								
									
										68
									
								
								hyhproject/home2/view/default/articles/news_view.html
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										68
									
								
								hyhproject/home2/view/default/articles/news_view.html
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,68 @@
 | 
			
		||||
{extend name="default/base" /}
 | 
			
		||||
{block name="title"}
 | 
			
		||||
{if isset($content)}
 | 
			
		||||
{if $content.articleTitle!=''}{$content.articleTitle}{else}资讯中心{/if}
 | 
			
		||||
{else}资讯中心{/if} - {:WSTConf('CONF.mallName')}{__block__}{/block}
 | 
			
		||||
{block name="meta"}
 | 
			
		||||
<meta name="keywords" content="{$content.articleKey}" />
 | 
			
		||||
<meta name="description" content="{$content.articleTitle}" />
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="css"}
 | 
			
		||||
<link href="__STYLE__/css/articles.css?v={$v}" rel="stylesheet">
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="main"}
 | 
			
		||||
<div class="bc-nav">
 | 
			
		||||
	<p>
 | 
			
		||||
		<a href="{:url('/')}">首页</a>
 | 
			
		||||
		<a href="{:url('home/news/view')}">> 资讯中心</a>
 | 
			
		||||
		{volist name="$bcNav" id="bc"}
 | 
			
		||||
	    <a href="{:url('home/news/nlist',['catId'=>$bc['catId']])}">> {$bc['catName']}</a> 
 | 
			
		||||
	    {/volist}
 | 
			
		||||
	    {if isset($content['articleTitle'])}
 | 
			
		||||
	    	<a href="{:url('home/news/view',['id'=>$content['articleId']])}">> 详情</a>
 | 
			
		||||
	    {/if}
 | 
			
		||||
	</p>
 | 
			
		||||
</div>
 | 
			
		||||
<div class="help-box">
 | 
			
		||||
	<div class="help-left">
 | 
			
		||||
		<p class="h-title b-lg">资讯中心</p>
 | 
			
		||||
		<ul id="parent">
 | 
			
		||||
			{volist name="$list" id="v" }
 | 
			
		||||
            <li class="h-cat h-show">
 | 
			
		||||
                <span>{$v['catName']}<p></p></span>
 | 
			
		||||
                <ul class="h-list">
 | 
			
		||||
                	{volist name="$v['children']" id="v1" key="k1"}
 | 
			
		||||
                    <a href="{:url('home/News/nList',['catId'=>$v1['catId']])}"><li class="{if ($v1['catId']==$catId)}h-curr{/if}">{$v1['catName']}({$v1['newsCount']})</li></a>
 | 
			
		||||
                    {/volist}
 | 
			
		||||
                </ul>
 | 
			
		||||
            </li>
 | 
			
		||||
            {/volist}
 | 
			
		||||
        </ul>
 | 
			
		||||
	</div>
 | 
			
		||||
	<div class="help-right">
 | 
			
		||||
		<div class="h-content">
 | 
			
		||||
			{if(!input("param.catId") && !input("param.id"))}
 | 
			
		||||
			<div class="head"><p><span>N</span>ews 资讯中心</p><div class='wst-clear'></div></div>
 | 
			
		||||
			<ul class="news-list">
 | 
			
		||||
				{volist name="$index" id="li"}
 | 
			
		||||
				<li><div id="g-square"></div><a href="{:url('home/news/view',['id'=>$li['articleId']])}">{$li['articleTitle']}</a><span class="list-time"> {:date('Y-m-d H:i:s',strtotime($li['createTime']))}</span></li>
 | 
			
		||||
				{/volist}
 | 
			
		||||
			</ul>
 | 
			
		||||
			{/if}
 | 
			
		||||
			{if isset($content)}
 | 
			
		||||
			<h1>{$content.articleTitle}</h1>
 | 
			
		||||
			<div class="cat-time"><span>{$content.catName} </span>发布于:{:date('Y-m-d',strtotime($content.createTime))}</div>
 | 
			
		||||
			<div class="n-content">
 | 
			
		||||
				{:htmlspecialchars_decode($content.articleContent)}
 | 
			
		||||
			</div>
 | 
			
		||||
			{/if}
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
	<div class='wst-clear'></div>
 | 
			
		||||
</div>
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="js"}
 | 
			
		||||
<script src="__STYLE__/articles/articles.js"></script>
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="footer"}{__block__}
 | 
			
		||||
{/block}
 | 
			
		||||
							
								
								
									
										47
									
								
								hyhproject/home2/view/default/base.html
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										47
									
								
								hyhproject/home2/view/default/base.html
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
<!doctype html>
 | 
			
		||||
<head>
 | 
			
		||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 | 
			
		||||
<title>{block name="title"}{:WSTConf('CONF.mallTitle')}{/block}</title>
 | 
			
		||||
{block name="meta"}{/block}
 | 
			
		||||
<link href="__STYLE__/css/common.css?v={$v}" rel="stylesheet">
 | 
			
		||||
{block name="css"}{/block}
 | 
			
		||||
<script type="text/javascript" src="__STATIC__/js/jquery.min.js?v={$v}"></script>
 | 
			
		||||
<script type="text/javascript" src="__STATIC__/plugins/layer/layer.js?v={$v}"></script>	
 | 
			
		||||
<script type='text/javascript' src='__STATIC__/js/common.js?v={$v}'></script>
 | 
			
		||||
{block name="depend_common_js"}{/block}
 | 
			
		||||
<script type='text/javascript' src='__STYLE__/js/common.js?v={$v}'></script>
 | 
			
		||||
 | 
			
		||||
{/*未登录的话加载登录框所需要的文件*/}
 | 
			
		||||
{if ((int)session('WST_USER.userId')<=0) }
 | 
			
		||||
<link href="__STATIC__/plugins/validator/jquery.validator.css?v={$v}" rel="stylesheet">
 | 
			
		||||
<link href="__STYLE__/css/login.css?v={$v}" rel="stylesheet">
 | 
			
		||||
<script type="text/javascript" src="__STATIC__/plugins/validator/jquery.validator.min.js?v={$v}"></script>
 | 
			
		||||
<script type="text/javascript" src="__STATIC__/js/rsa.js"></script>
 | 
			
		||||
<script type='text/javascript' src='__STYLE__/js/login.js?v={$v}'></script>
 | 
			
		||||
{/if}
 | 
			
		||||
<script>
 | 
			
		||||
window.conf = {"ROOT":"__ROOT__","IMGURL":"__IMGURL__","APP":"__APP__","STATIC":"__STATIC__","SUFFIX":"{:config('url_html_suffix')}","SMS_VERFY":"{:WSTConf('CONF.smsVerfy')}","SMS_OPEN":"{:WSTConf('CONF.smsOpen')}","GOODS_LOGO":"{:WSTConf('CONF.goodsLogo')}","SHOP_LOGO":"{:WSTConf('CONF.shopLogo')}","MALL_LOGO":"{:WSTConf('CONF.mallLogo')}","USER_LOGO":"{:WSTConf('CONF.userLogo')}","IS_LOGIN":"{if (int)session('WST_USER.userId')>0 }1{else}0{/if}","TIME_TASK":"1","ROUTES":'{:WSTRoute()}',"IS_CRYPT":"{:WSTConf('CONF.isCryptPwd')}"}
 | 
			
		||||
$(function() {
 | 
			
		||||
	WST.initVisitor();
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
</head>
 | 
			
		||||
 | 
			
		||||
<body>
 | 
			
		||||
{block name="top"}
 | 
			
		||||
	{include file="default/top" /}
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="header"}
 | 
			
		||||
	{if isset($selfShop)}
 | 
			
		||||
		{include file="default/self_shop_header" /}
 | 
			
		||||
	{else /}
 | 
			
		||||
		{include file="default/header" /}
 | 
			
		||||
	{/if}
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="main"}主内容{/block}
 | 
			
		||||
{block name="footer"}
 | 
			
		||||
	{include file="default/footer" /}
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="js"}{/block}
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										25
									
								
								hyhproject/home2/view/default/base_js.html
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										25
									
								
								hyhproject/home2/view/default/base_js.html
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 | 
			
		||||
<title>{block name="title"}{:WSTConf('CONF.mallTitle')}{/block}</title>
 | 
			
		||||
<meta name="auther" content="WSTMart,www.wstmart.net" />
 | 
			
		||||
<meta name="copyright" content="Copyright©2016-2066 Powered By WSTMart" />
 | 
			
		||||
{block name="meta"}{/block}
 | 
			
		||||
<link href="__STYLE__/css/common.css?v={$v}" rel="stylesheet">
 | 
			
		||||
<link href="__STATIC__/plugins/validator/jquery.validator.css?v={$v}" rel="stylesheet">
 | 
			
		||||
{block name="css"}{/block}
 | 
			
		||||
<script type="text/javascript" src="__STATIC__/js/jquery.min.js?v={$v}"></script>
 | 
			
		||||
<script type="text/javascript" src="__STATIC__/plugins/layer/layer.js?v={$v}"></script>
 | 
			
		||||
<script type="text/javascript" src="__STATIC__/plugins/lazyload/jquery.lazyload.min.js?v={$v}"></script>
 | 
			
		||||
<script type='text/javascript' src='__STATIC__/js/common.js?v={$v}'></script>
 | 
			
		||||
{block name="depend_common_js"}{/block}
 | 
			
		||||
<script type='text/javascript' src='__STYLE__/js/common.js?v={$v}'></script>
 | 
			
		||||
<script>
 | 
			
		||||
window.conf = {"ROOT":"__ROOT__","IMGURL":"__IMGURL__","APP":"__APP__","STATIC":"__STATIC__","SUFFIX":"{:config('url_html_suffix')}","SMS_VERFY":"{:WSTConf('CONF.smsVerfy')}","SMS_OPEN":"{:WSTConf('CONF.smsOpen')}","GOODS_LOGO":"{:WSTConf('CONF.goodsLogo')}","SHOP_LOGO":"{:WSTConf('CONF.shopLogo')}","MALL_LOGO":"{:WSTConf('CONF.mallLogo')}","USER_LOGO":"{:WSTConf('CONF.userLogo')}","IS_LOGIN":"{if (int)session('WST_USER.userId')>0 }1{else}0{/if}","TIME_TASK":"1","ROUTES":'{:WSTRoute()}',"IS_CRYPT":"{:WSTConf('CONF.isCryptPwd')}"}
 | 
			
		||||
</script>
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
{block name="main"}主内容{/block}
 | 
			
		||||
{block name="js"}
 | 
			
		||||
{/block}
 | 
			
		||||
</body>
 | 
			
		||||
							
								
								
									
										36
									
								
								hyhproject/home2/view/default/box_login.html
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										36
									
								
								hyhproject/home2/view/default/box_login.html
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
<input type="hidden" id="token" value='{:WSTConf("CONF.pwdModulusKey")}'/>
 | 
			
		||||
<form method="post" autocomplete="off">
 | 
			
		||||
	<table class="wst-table">
 | 
			
		||||
		<tr class="wst-login-tr">
 | 
			
		||||
		    <td width='90' align='right'>账号:</td>
 | 
			
		||||
			<td><input id="loginName" name="loginName" class="ipt wst-login-input"  tabindex="1" value="" autocomplete="off" type="text" data-rule="用户名: required;" data-msg-required="请填写用户名" data-tip="请输入用户名" placeholder="邮箱/用户名/手机号"/></td>
 | 
			
		||||
		</tr>
 | 
			
		||||
		<tr class="wst-login-tr">
 | 
			
		||||
		    <td align='right'>密码:</td>
 | 
			
		||||
			<td><input id="loginPwd" name="loginPwd" class="ipt wst-login-input" tabindex="2" autocomplete="off" type="password" data-rule="密码: required;" data-msg-required="请填写密码" data-tip="请输入密码" placeholder="密码"/> </td>
 | 
			
		||||
		</tr>
 | 
			
		||||
		<tr class="wst-login-tr">
 | 
			
		||||
			<td align='right'>验证码:</td>
 | 
			
		||||
			<td>
 | 
			
		||||
				<div class="wst-login-code">
 | 
			
		||||
					<input id="verifyCode" style="ime-mode:disabled" name="verifyCode"  class="ipt wst-login-codein" tabindex="6" autocomplete="off" maxlength="6" type="text" data-rule="验证码: required;" data-msg-required="请输入验证码" data-tip="请输入验证码" data-target="#verify"placeholder="验证码"/>
 | 
			
		||||
					<img id='verifyImg' class="wst-login-codeim" src="{:url('home/users/getVerify')}" onclick='javascript:WST.getVerify("#verifyImg")' style="width:116px;border-top-right-radius:6px;border-bottom-right-radius:6px;"><span id="verify"></span>    	
 | 
			
		||||
				</div>
 | 
			
		||||
			</td>
 | 
			
		||||
		</tr>
 | 
			
		||||
		<tr class="wst-login-tr">
 | 
			
		||||
			<td colspan="2" style="padding-left:43px;">
 | 
			
		||||
				<input id="rememberPwd" name="rememberPwd" class="ipt wst-login-ch" checked="checked" type="checkbox"/>
 | 
			
		||||
				<label>记住密码</label>                                      
 | 
			
		||||
				<label><a style="color:#666;line-height:32px;margin-left:10px;" target='_blank' href="{:Url('home/users/regist')}">免费注册</a> | </label>
 | 
			
		||||
				<label><a style="color:#666;line-height:32px;" target='_blank' href="{:url('home/users/forgetpass')}">忘记密码? </a></label>
 | 
			
		||||
			</td>
 | 
			
		||||
		</tr>
 | 
			
		||||
		<tr>
 | 
			
		||||
			<td colspan="2" style="padding-left:200px;">
 | 
			
		||||
			    <div style="width: 100px;height:32px;line-height:32px;"><a class="wst-login-but" href="javascript:void(0);" onclick='javascript:login(3)'>登录</a></div>
 | 
			
		||||
			</td>
 | 
			
		||||
		</tr>
 | 
			
		||||
	</table>
 | 
			
		||||
	{:hook('homeDocumentLogin')}
 | 
			
		||||
</form>
 | 
			
		||||
							
								
								
									
										80
									
								
								hyhproject/home2/view/default/brands_list.html
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										80
									
								
								hyhproject/home2/view/default/brands_list.html
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,80 @@
 | 
			
		||||
{extend name="default/base" /}
 | 
			
		||||
{block name="title"}品牌街 - {:WSTConf('CONF.mallName')}{__block__}{/block}
 | 
			
		||||
{block name="meta"}
 | 
			
		||||
<meta name="description" content="{:WSTConf('CONF.seoMallDesc')},品牌街">
 | 
			
		||||
<meta name="Keywords" content="{:WSTConf('CONF.seoMallKeywords')}">
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="css"}
 | 
			
		||||
<link href="__STATIC__/plugins/lazyload/skin/laypage.css?v={$v}" rel="stylesheet">
 | 
			
		||||
<link href="__STYLE__/css/brandslist.css?v={$v}" rel="stylesheet">
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="main"}
 | 
			
		||||
<script>
 | 
			
		||||
//筛选分类
 | 
			
		||||
function screenCat(id){
 | 
			
		||||
	location.href=WST.U('home/brands/index','id='+id);
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<input type="hidden" id="catId" value="" autocomplete="off">
 | 
			
		||||
<div class="wst-container">
 | 
			
		||||
	<div class="wst-route"><a href="{:url('home/index/index')}" ><img style="float:left;margin-right:10px" src="__STYLE__/img/icon_dianpujie_09.png"/>首页</a> > <a href="{:url('home/brands/index')}">品牌街</a></div>
 | 
			
		||||
	<div class="wst-brand-cat">
 | 
			
		||||
		<div class="wst-brand-catt">品牌行业</div>
 | 
			
		||||
		{volist name="goodscats" id="ca" key="k"}
 | 
			
		||||
		<span class="{if($selectedId==$ca['catId'])}js-selected{/if}" onclick="javascript:screenCat({$ca['catId']});">{$ca['catName']}</span>
 | 
			
		||||
		{/volist}
 | 
			
		||||
		<div class="wst-clear"></div>
 | 
			
		||||
	</div>
 | 
			
		||||
	
 | 
			
		||||
	<ul class="wst-brands-list">
 | 
			
		||||
		{volist name="list.Rows" id="vo"}
 | 
			
		||||
		<li class="wst-brands">
 | 
			
		||||
			<div class="wst-brand-img"><a target='_blank' href="{:Url('home/goods/lists',['cat'=>$vo['catId'],'brand'=>$vo['brandId']])}"><img class="goodsImg" data-original="__IMGURL__/{$vo['brandImg']}" title="{$vo['brandName']}"/></a></div>
 | 
			
		||||
			<div class="wst-brand-name">{:WSTMSubstr($vo['brandName'],0,15)}</div>
 | 
			
		||||
			<div class='info'>
 | 
			
		||||
				<span><img src="__STYLE__/img/img_jrpp.png"/></span>
 | 
			
		||||
		        <p>欢迎进入{$vo['brandName']}</p>
 | 
			
		||||
		    </div>
 | 
			
		||||
		</li>
 | 
			
		||||
		{/volist}
 | 
			
		||||
		<div class="wst-clear"></div>
 | 
			
		||||
	</ul>
 | 
			
		||||
	<div class="brandsPaging">
 | 
			
		||||
	<div id="brandsPaging"></div>
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
{include file="default/right_cart"/}
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="js"}
 | 
			
		||||
<script type='text/javascript' src='__STYLE__/js/brandslist.js?v={$v}'></script>
 | 
			
		||||
<script>
 | 
			
		||||
$(function(){
 | 
			
		||||
	if({$list['TotalPage']}>1){
 | 
			
		||||
	laypage({
 | 
			
		||||
	    cont: 'brandsPaging',
 | 
			
		||||
	    pages: {$list['TotalPage']}, //总页数
 | 
			
		||||
	    curr: {$list['CurrentPage']},
 | 
			
		||||
	    skip: true, //是否开启跳页
 | 
			
		||||
	    skin: '#fd6148',
 | 
			
		||||
	    groups: 3, //连续显示分页数
 | 
			
		||||
	   	prev: '<<',
 | 
			
		||||
		next: '>>',
 | 
			
		||||
	    jump: function(e, first){ //触发分页后的回调
 | 
			
		||||
	        if(!first){ //一定要加此判断,否则初始时会无限刷新
 | 
			
		||||
	        	var nuewurl = WST.splitURL("page");
 | 
			
		||||
	        	var ulist = nuewurl.split("?");
 | 
			
		||||
	        	if(ulist.length>1){
 | 
			
		||||
	        		location.href = nuewurl+'&page='+e.curr;
 | 
			
		||||
	        	}else{
 | 
			
		||||
	        		location.href = '?page='+e.curr;
 | 
			
		||||
	        	}
 | 
			
		||||
	            
 | 
			
		||||
	        }
 | 
			
		||||
	    }
 | 
			
		||||
	});
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="footer"}{__block__}
 | 
			
		||||
{/block}
 | 
			
		||||
							
								
								
									
										111
									
								
								hyhproject/home2/view/default/carts.html
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										111
									
								
								hyhproject/home2/view/default/carts.html
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,111 @@
 | 
			
		||||
{extend name="default/base" /}
 | 
			
		||||
{block name="title"}我的购物车 - {:WSTConf('CONF.mallName')}{__block__}{/block}
 | 
			
		||||
{block name="css"}
 | 
			
		||||
<link href="__STYLE__/css/carts.css?v={$v}" rel="stylesheet">
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="main"}
 | 
			
		||||
<div class="wst-container">
 | 
			
		||||
	<div id="stepflex" class="stepflex">
 | 
			
		||||
       <dl class="first doing">
 | 
			
		||||
          <dt class="s-num">1</dt>
 | 
			
		||||
          <dd class="s-text">我的购物车</dd>
 | 
			
		||||
          <dd></dd>
 | 
			
		||||
       </dl>
 | 
			
		||||
       <dl class="normal">
 | 
			
		||||
          <dt class="s-num1">2</dt>
 | 
			
		||||
          <dd class="s-text1">填写核对订单信息</dd>
 | 
			
		||||
       </dl>
 | 
			
		||||
       <dl class="last">
 | 
			
		||||
          <dt class="s-num1">3</dt>
 | 
			
		||||
          <dd class="s-text1">成功提交订单</dd>
 | 
			
		||||
       </dl>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class='wst-clear'></div>
 | 
			
		||||
    <div class='main-head'>我的购物车</div>
 | 
			
		||||
    <div class='cart-box'>
 | 
			
		||||
       <div class='cart-head'>
 | 
			
		||||
          <div class='chk'><input type='checkbox' onclick='checkChks(this,".j-chk")'>全选</div>
 | 
			
		||||
          <div class='goods'>商品</div>
 | 
			
		||||
          <div class='price'>单价</div>
 | 
			
		||||
          <div class='stock'>库存</div>
 | 
			
		||||
          <div class='num'>数量</div>
 | 
			
		||||
          <div class='t-price'>总价</div>
 | 
			
		||||
          <div class='action'>操作</div>
 | 
			
		||||
       </div>
 | 
			
		||||
       {if !empty($carts["carts"])}
 | 
			
		||||
	       {volist name='$carts["carts"]' id='vo'}
 | 
			
		||||
	       <div class='cart-item'>
 | 
			
		||||
	          <div class='shop'>
 | 
			
		||||
	           <div class='shop-title'>
 | 
			
		||||
	          <input type='checkbox' class='j-chk' onclick='checkChks(this,".j-s{$vo['shopId']}")'>{$vo['shopName']}
 | 
			
		||||
	          {if $vo['shopQQ'] !=''}
 | 
			
		||||
	          <a href="tencent://message/?uin={$vo['shopQQ']}&Site=QQ交谈&Menu=yes">
 | 
			
		||||
				  <img border="0" src="http://wpa.qq.com/pa?p=1:{$vo['shopQQ']}:7" alt="QQ交谈" width="71" height="24" />
 | 
			
		||||
			  </a>
 | 
			
		||||
	          {/if}
 | 
			
		||||
	          {if $vo['shopWangWang'] !=''}
 | 
			
		||||
	          <a target="_blank" href="http://www.taobao.com/webww/ww.php?ver=3&touid={$vo['shopWangWang']}&siteid=cntaobao&status=1&charset=utf-8">
 | 
			
		||||
				  <img border="0" src="http://amos.alicdn.com/realonline.aw?v=2&uid={$vo['shopWangWang']}&site=cntaobao&s=1&charset=utf-8" alt="和我联系" />
 | 
			
		||||
			  </a>
 | 
			
		||||
	          {/if}
 | 
			
		||||
	          </div>
 | 
			
		||||
	          {:hook('homeDocumentCartShopPromotion',['shop'=>$vo])}
 | 
			
		||||
	          <div class='wst-clear'></div>
 | 
			
		||||
	          </div>
 | 
			
		||||
	          <div class='goods-list'>
 | 
			
		||||
	             {volist name='vo["list"]' id='vo2'}
 | 
			
		||||
	             {:hook('homeDocumentCartGoodsPromotion',['goods'=>$vo2])}
 | 
			
		||||
	             <div class='item j-chk {if $vo2["isCheck"]==1}selected{/if} j-s{$vo['shopId']} j-g{$vo2["cartId"]}'>
 | 
			
		||||
	                <div class='chk'><input id='gchk_{$vo2["cartId"]}' type='checkbox' {if $vo2["isCheck"]==1}checked{/if} mval="{$vo2['shopPrice']}" value="{$vo2['cartId']}" sval="{$vo2['goodsStock']}" allowbuy="{$vo2['allowBuy']}" class='j-chk j-s{$vo['shopId']} j-gchk' onclick='checkChks(this,".j-g{$vo2["cartId"]}")'></div>
 | 
			
		||||
			        <div class='goods'>
 | 
			
		||||
			            <div class='img'>
 | 
			
		||||
				            <a href='{:Url("home/goods/detail","id=".$vo2["goodsId"])}' target='_blank'>
 | 
			
		||||
				            <img src='__IMGURL__/{$vo2["goodsImg"]}' width='80' height='80' title='{$vo2["goodsName"]}'/>
 | 
			
		||||
				            </a>
 | 
			
		||||
			            </div>
 | 
			
		||||
			            <div class='name'>{$vo2["goodsName"]}</div>
 | 
			
		||||
			            <div class='spec'>
 | 
			
		||||
			            {volist name='vo2["specNames"]' id='specs'}
 | 
			
		||||
			            <div>{$specs['catName']}:{$specs['itemName']}</div>
 | 
			
		||||
			            {/volist}
 | 
			
		||||
			            </div>
 | 
			
		||||
			        </div>
 | 
			
		||||
			        <div class='price'>¥{$vo2['shopPrice']}</div>
 | 
			
		||||
			        <div class='stock'>{$vo2['goodsStock']}</div>
 | 
			
		||||
			        <div class='num'>
 | 
			
		||||
				        <a href='#none' class='buy-btn' id='buy-reduce_{$vo2['cartId']}' onclick='javascript:WST.changeIptNum(-1,"#buyNum","#buy-reduce,#buy-add",{$vo2['cartId']},"statCartMoney")'>-</a>
 | 
			
		||||
			            <input type='text' id='buyNum_{$vo2['cartId']}' class='buy-num' value="{$vo2['cartNum']}" data-max="{$vo2['goodsStock']}" data-min='1' onkeyup='WST.changeIptNum(0,"#buyNum","#buy-reduce,#buy-add",{$vo2['cartId']},"statCartMoney")' autocomplete="off"  onkeypress="return WST.isNumberKey(event);" maxlength="6"/>
 | 
			
		||||
			            <a href='#none' class='buy-btn' id='buy-add_{$vo2['cartId']}' onclick='javascript:WST.changeIptNum(1,"#buyNum","#buy-reduce,#buy-add",{$vo2['cartId']},"statCartMoney")'>+</a>
 | 
			
		||||
			            <div id='err_{$vo2['cartId']}' class='wst-clear'></div>
 | 
			
		||||
			        </div>
 | 
			
		||||
			        <div class='t-price'>¥<span id="tprice_{$vo2['cartId']}">{$vo2['shopPrice']*$vo2['cartNum']}</span></div>
 | 
			
		||||
			        <div class='action'><a href='javascript:WST.delCart({$vo2["cartId"]})'>删除</a></div>
 | 
			
		||||
			        <div class='wst-clear'></div>
 | 
			
		||||
	             </div>
 | 
			
		||||
	             {/volist}
 | 
			
		||||
	          </div>
 | 
			
		||||
	       </div>
 | 
			
		||||
	       {/volist}
 | 
			
		||||
	       <div class='cart-footer selected2'>
 | 
			
		||||
	          <div class='cart-summary'>
 | 
			
		||||
	             <div class='summary'>应付总金额(不含运费):¥<span id='totalMoney'>{$carts["goodsTotalMoney"]}</span></div>
 | 
			
		||||
	             <div class='wst-clear'></div>
 | 
			
		||||
	          </div>
 | 
			
		||||
	       </div>
 | 
			
		||||
	       	  <div class='cart-btn'>
 | 
			
		||||
	             <a href='__ROOT__/index.php' class='wst-contnue wst-cart-asha'>继续购物</a>
 | 
			
		||||
	             <a href='#none' onclick='toSettlement()' class='wst-next wst-cart-reda'>结算</a>
 | 
			
		||||
	             <div class='wst-clear'></div>
 | 
			
		||||
	          </div>
 | 
			
		||||
       {else}
 | 
			
		||||
       <div class='empty-cart'>
 | 
			
		||||
                             您还没有添加商品哦,快去<a href='{:Url("home/index/index")}'>逛逛</a>吧~
 | 
			
		||||
       </div>
 | 
			
		||||
       {/if}
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="js"}
 | 
			
		||||
<script type='text/javascript' src='__STYLE__/js/carts.js?v={$v}'></script>
 | 
			
		||||
<script>$(function(){statCartMoney()})</script>
 | 
			
		||||
{/block}
 | 
			
		||||
							
								
								
									
										46
									
								
								hyhproject/home2/view/default/css/articles.css
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										46
									
								
								hyhproject/home2/view/default/css/articles.css
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
.bc-nav{width:100%;height:35px;border-bottom:1px solid lightgreen}
 | 
			
		||||
.help-box{width:1200px;margin:0 auto;min-height:600px}
 | 
			
		||||
.help-left{width:210px;margin:15px;margin-left:0;float:left;background:#fff}
 | 
			
		||||
.help-right{width:970px;overflow-x:hidden;min-height:400px;background:white;float:left;margin-top:15px}
 | 
			
		||||
.h-content{padding:10px;width:950px;min-height:370px;text-indent:7px;font-family:"microsoft yahei"}
 | 
			
		||||
.h-content .head{padding-bottom:26px}
 | 
			
		||||
.h-content .head p{float:left;min-width:230px;font-size:16px;height:36px;line-height:36px;border-bottom:2px solid #8b8b8b}
 | 
			
		||||
.h-content .head p span{font-size:28px}
 | 
			
		||||
.h-title{height:36px;line-height:36px;text-align:center;font-size:16px;color:white;font-weight:bold}
 | 
			
		||||
.h-hide ul{display:none}
 | 
			
		||||
.h-hide p{margin:14px 5px 0 0;float:right;display:inline-block;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid#ccc}
 | 
			
		||||
#parent>li>span{display:block;padding-left:10px;background:#eaeaea;border-bottom:1px solid #fff}#parent>li>span:hover{cursor:pointer;background:#dadada}
 | 
			
		||||
#parent>li{line-height:33px;display:block}
 | 
			
		||||
.h-show ul{display:block}
 | 
			
		||||
.h-show p{margin:14px 5px 0 0;float:right;display:inline-block;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid#ccc}
 | 
			
		||||
.h-list{border:1px solid #dedede}
 | 
			
		||||
.h-list li{width:177px;line-height:20px;margin:5px 0 5px 10px;padding:2px 0;padding-left:20px;cursor:pointer}
 | 
			
		||||
.h-list .h-curr{margin-left:10px}
 | 
			
		||||
.h-curr{background:rgba(0,0,0,0) linear-gradient(to right,#eaeaea,#fff) repeat scroll 0 0;border-color:#dedede;border-image:none;border-width:1px;color:green;font-weight:bold}
 | 
			
		||||
.h-list a:hover li{color:green;font-weight:bold}
 | 
			
		||||
.bc-nav{line-height:35px}
 | 
			
		||||
.bc-nav>p{width:1200px;margin:0 auto}
 | 
			
		||||
.bc-nav>p>a{color:gray}
 | 
			
		||||
.b{border:1px solid #e0dddd}
 | 
			
		||||
.h-right-title{width:100%;height:25px;margin-left:5px;margin-top:15px}
 | 
			
		||||
.h-right-title>h4{float:left;font-size:19px}#square{margin:5px;width:6px;height:6px;background:#df2003;float:left}
 | 
			
		||||
.b-99{background:#7dd589}
 | 
			
		||||
.h-record{padding:5px;width:100%;height:100px;margin-top:20px;border-top:1px solid #e0dddd}
 | 
			
		||||
.h-record>p{padding:5px}
 | 
			
		||||
.h-button{width:100px;height:25px;color:#6f6666;margin-left:5px}
 | 
			
		||||
.h-content h1{text-align:center}
 | 
			
		||||
.h-content .cat-time{text-align:center;padding:10px 0}
 | 
			
		||||
.c{clear:both}
 | 
			
		||||
.b-lg{background:#7dd589}
 | 
			
		||||
.news-list a,.list-time{font-size:13px;letter-spacing:2px;color:#333}
 | 
			
		||||
.news-list li{padding:8px 5px;border-bottom:1px dashed #ccc}
 | 
			
		||||
.news-list a:hover{font-size:13px;letter-spacing:2px;color:#40bb6a}
 | 
			
		||||
.list-time{display:block;float:right}
 | 
			
		||||
#g-square{margin:8px 0;width:3px;height:3px;background:#333;float:left}
 | 
			
		||||
.n-content{width:100%;min-height:300px;overflow:hidden}
 | 
			
		||||
.h-page{position:relative;width:100%;height:100px;background:url(../img/img_yingyin.png) 0 68px no-repeat}
 | 
			
		||||
.h-page .pagination .active{background:#3fba6a;color:white}
 | 
			
		||||
.h-page .pagination .disabled span,.h-page .pagination .active span{left:30px;line-height:28px;padding-left:4px}
 | 
			
		||||
.h-page .pagination{position:relative;top:32px;left:30%;width:100%;height:30px}
 | 
			
		||||
.h-page .pagination li{margin:0 auto;width:28px;height:28px;border:1px solid #bfbfbf;float:left;margin-left:10px}
 | 
			
		||||
.h-page .pagination li a{line-height:28px;padding-left:4px}
 | 
			
		||||
							
								
								
									
										44
									
								
								hyhproject/home2/view/default/css/brandslist.css
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										44
									
								
								hyhproject/home2/view/default/css/brandslist.css
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,44 @@
 | 
			
		||||
@CHARSET "UTF-8";.wst-brand-cat{margin:10px 0 20px 0;padding:10px 20px;border:1px solid #dddbdb}
 | 
			
		||||
.wst-brand-cat{margin:10px 0 0px 0;padding:10px 20px;border:1px solid #dddbdb}
 | 
			
		||||
.wst-brand-catt{height:23px;color:#333;border-bottom:1px dashed #b5b5b5}
 | 
			
		||||
.wst-brand-cat span{float:left;margin:8px 60px 0 0;padding:8px 5px}
 | 
			
		||||
.wst-brand-cat span:hover{cursor:pointer;color:#fff;background:#fc6047;border-radius:3px}
 | 
			
		||||
.js-selected{cursor:pointer;color:#fff;background:#fc6047;border-radius:3px}
 | 
			
		||||
.wst-brands{float:left;margin:10px 20px}
 | 
			
		||||
.wst-brand-img{width:200px;height:200px;text-align:center;vertical-align:middle;display:block;position:relative}
 | 
			
		||||
.wst-brand-img a{width:200px;height:200px;display:table-cell;vertical-align:middle}
 | 
			
		||||
.wst-brand-img a img{max-width:200px;max-height:200px}
 | 
			
		||||
.wst-brand-name{position:relative;text-align:center;height:30px;line-height:30px;color:#353535;font-family:fantasy}
 | 
			
		||||
.brandsPaging{padding:20px 0 50px 480px}
 | 
			
		||||
.wst-brands-list li{-webkit-perspective:400px;perspective:400px}
 | 
			
		||||
.info{-webkit-transform:rotate3d(1,0,0,90deg);transform:rotate3d(1,0,0,90deg);width:100%;height:100%;padding:20px;position:absolute;top:0;left:0;border-radius:4px;pointer-events:none;background-color:#000;opacity:.6}
 | 
			
		||||
.in-top .info{-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-animation:in-top 300ms ease 0ms 1 forwards;animation:in-top 300ms ease 0ms 1 forwards}
 | 
			
		||||
.in-right .info{-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-animation:in-right 300ms ease 0ms 1 forwards;animation:in-right 300ms ease 0ms 1 forwards}
 | 
			
		||||
.in-bottom .info{-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-animation:in-bottom 300ms ease 0ms 1 forwards;animation:in-bottom 300ms ease 0ms 1 forwards}
 | 
			
		||||
.in-left .info{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-animation:in-left 300ms ease 0ms 1 forwards;animation:in-left 300ms ease 0ms 1 forwards}
 | 
			
		||||
.out-top .info{-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-animation:out-top 300ms ease 0ms 1 forwards;animation:out-top 300ms ease 0ms 1 forwards}
 | 
			
		||||
.out-right .info{-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-animation:out-right 300ms ease 0ms 1 forwards;animation:out-right 300ms ease 0ms 1 forwards}
 | 
			
		||||
.out-bottom .info{-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-animation:out-bottom 300ms ease 0ms 1 forwards;animation:out-bottom 300ms ease 0ms 1 forwards}
 | 
			
		||||
.out-left .info{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-animation:out-left 300ms ease 0ms 1 forwards;animation:out-left 300ms ease 0ms 1 forwards}
 | 
			
		||||
@-webkit-keyframes in-top{from{-webkit-transform:rotate3d(-1,0,0,90deg);transform:rotate3d(-1,0,0,90deg)}to{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}
 | 
			
		||||
}@keyframes in-top{from{-webkit-transform:rotate3d(-1,0,0,90deg);transform:rotate3d(-1,0,0,90deg)}to{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}
 | 
			
		||||
}@-webkit-keyframes in-right{from{-webkit-transform:rotate3d(0,-1,0,90deg);transform:rotate3d(0,-1,0,90deg)}to{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}
 | 
			
		||||
}@keyframes in-right{from{-webkit-transform:rotate3d(0,-1,0,90deg);transform:rotate3d(0,-1,0,90deg)}to{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}
 | 
			
		||||
}@-webkit-keyframes in-bottom{from{-webkit-transform:rotate3d(1,0,0,90deg);transform:rotate3d(1,0,0,90deg)}to{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}
 | 
			
		||||
}@keyframes in-bottom{from{-webkit-transform:rotate3d(1,0,0,90deg);transform:rotate3d(1,0,0,90deg)}to{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}
 | 
			
		||||
}@-webkit-keyframes in-left{from{-webkit-transform:rotate3d(0,1,0,90deg);transform:rotate3d(0,1,0,90deg)}to{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}
 | 
			
		||||
}@keyframes in-left{from{-webkit-transform:rotate3d(0,1,0,90deg);transform:rotate3d(0,1,0,90deg)}to{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}
 | 
			
		||||
}@-webkit-keyframes out-top{from{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}to{-webkit-transform:rotate3d(-1,0,0,104deg);transform:rotate3d(-1,0,0,104deg)}
 | 
			
		||||
}@keyframes out-top{from{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}to{-webkit-transform:rotate3d(-1,0,0,104deg);transform:rotate3d(-1,0,0,104deg)}
 | 
			
		||||
}@-webkit-keyframes out-right{from{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}to{-webkit-transform:rotate3d(0,-1,0,104deg);transform:rotate3d(0,-1,0,104deg)}
 | 
			
		||||
}@keyframes out-right{from{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}to{-webkit-transform:rotate3d(0,-1,0,104deg);transform:rotate3d(0,-1,0,104deg)}
 | 
			
		||||
}@-webkit-keyframes out-bottom{from{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}to{-webkit-transform:rotate3d(1,0,0,104deg);transform:rotate3d(1,0,0,104deg)}
 | 
			
		||||
}@keyframes out-bottom{from{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}to{-webkit-transform:rotate3d(1,0,0,104deg);transform:rotate3d(1,0,0,104deg)}
 | 
			
		||||
}@-webkit-keyframes out-left{from{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}to{-webkit-transform:rotate3d(0,1,0,104deg);transform:rotate3d(0,1,0,104deg)}
 | 
			
		||||
}@keyframes out-left{from{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}to{-webkit-transform:rotate3d(0,1,0,104deg);transform:rotate3d(0,1,0,104deg)}
 | 
			
		||||
}
 | 
			
		||||
.wst-brands-list:after{content:"";display:table;clear:both}
 | 
			
		||||
.wst-brands-list li{position:relative;float:left;width:200px;height:200px;margin:10px 20px 30px 20px;padding:0;list-style:none}
 | 
			
		||||
.wst-brands-list span{float:left;width:100%;color:#fff;margin:35px 0 10px 70px}
 | 
			
		||||
.wst-brands-list p{float:left;width:100%;color:#fff;font-size:20px;text-align:center}
 | 
			
		||||
.info,.info:after,.info:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}
 | 
			
		||||
							
								
								
									
										210
									
								
								hyhproject/home2/view/default/css/carts.css
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										210
									
								
								hyhproject/home2/view/default/css/carts.css
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,210 @@
 | 
			
		||||
.stepflex{float:right;border-top:5px solid #ccc;text-align:center;width:480px;margin:60px 0px 0px 50px;}
 | 
			
		||||
.stepflex dl{border-top:5px solid #ccc;float:left;position:relative;top:-5px;width:160px;}
 | 
			
		||||
dl.doing{border-top-color:#04bd3d;}
 | 
			
		||||
.doing .s-num{background-position:-23px 0;}
 | 
			
		||||
.s-num,.s-num1{color:#fff;font-weight: 700;height:23px;line-height:23px;margin:-15px auto 0;position:relative;width:23px;border-radius:25px;}
 | 
			
		||||
.s-num{background:#04bd3d;}
 | 
			
		||||
.s-num1{background:#ccc;}
 | 
			
		||||
.s-text1{line-height:30px;}
 | 
			
		||||
.s-text{line-height:30px;color:#04bd3d;}
 | 
			
		||||
/**购物车**/
 | 
			
		||||
.main-head{font-size:17px;font-weight:bold;height:35px;line-height:35px;}
 | 
			
		||||
.cart-box{width:100%;border-top:2px solid #FC7A64;}
 | 
			
		||||
.cart-head{background: #f3f3f3;display: block;height: 25px;line-height: 25px;margin: 0 0 5px;padding: 5px 0;}
 | 
			
		||||
.cart-head .chk{float:left;width:100px;padding-left:10px;}
 | 
			
		||||
.cart-head .goods{float:left;width:550px;}
 | 
			
		||||
.cart-head .price{float:left;width:105px;}
 | 
			
		||||
.cart-head .stock{float:left;width:105px;}
 | 
			
		||||
.cart-head .num{float:left;width:120px;}
 | 
			
		||||
.cart-head .t-price{float:left;width:105px;}
 | 
			
		||||
.cart-head .action{float:left;width:95px;}
 | 
			
		||||
.cart-box .shop{padding-left:10px;line-height:25px;border-bottom:2px solid #d0e2ff;padding-bottom:5px;}
 | 
			
		||||
.cart-box .shop .shop-title{width:40%;float:left;}
 | 
			
		||||
.cart-box .goods-list{width:100%;}
 | 
			
		||||
.cart-box .item{display:block;padding-top:10px;padding-bottom:10px;border-bottom:1px solid #ECECEC;}
 | 
			
		||||
.cart-box .item .chk{float:left;width:20px;padding-left:10px;}
 | 
			
		||||
.cart-box .item .goods{float:left;width:630px;}
 | 
			
		||||
.cart-box .item .goods .img{float:left;width:80px;height:80px;margin-left:10px;}
 | 
			
		||||
.cart-box .item .goods .name{float:left;width:340px;height:80px;padding-left:5px;}
 | 
			
		||||
.cart-box .item .goods .spec{float:left;width:180px;padding-left:5px;}
 | 
			
		||||
.cart-box .item .price{float:left;width:105px;}
 | 
			
		||||
.cart-box .item .stock{float:left;width:105px;}
 | 
			
		||||
.cart-box .item .num{float:left;width:120px;}
 | 
			
		||||
.buy-btn{color:#666;background:#eeeeee;cursor: pointer;float:left;;display:block;height:20px;line-height:20px;padding:0px 5px;border:1px solid #ddd;}
 | 
			
		||||
input[type="text"].buy-num{height:16px;text-align:center;width:40px;float:left;border-left:0px;border-right:0px;border-top:1px solid #ddd;border-bottom:1px solid #ddd;}      
 | 
			
		||||
.item .t-price{float:left;width:105px;}
 | 
			
		||||
.item .action{float:left;width:95px;}
 | 
			
		||||
.selected{background:#fbfcff;}
 | 
			
		||||
.selected2{background:#f2f7ff;}
 | 
			
		||||
.cart-footer{margin-bottom:15px;}
 | 
			
		||||
.cart-footer .summarys1{float:left;width:360px;}
 | 
			
		||||
.cart-footer .summarys2{float:left;width:360px;}
 | 
			
		||||
.cart-footer .summarys3{float:right;width:1180px;border-top:1px dotted #ddd;padding-top:10px;}
 | 
			
		||||
.cart-summary{border-bottom:1px solid #eeeeee;display:block;height:50px;line-height:50px;}
 | 
			
		||||
.summary{float:right;height:50px;line-height:50px;padding-right:10px;}
 | 
			
		||||
#totalMoney{color:#C00;font-size:16px;margin-left:5px;}
 | 
			
		||||
.cart-btn{margin:20px 0px;padding-right:20px;}
 | 
			
		||||
.wst-contnue{float:left;margin-left:20px;width:105px;height:33px;line-height:33px;}
 | 
			
		||||
.wst-next{float:right;margin-right:20px;width:118px;height:33px;line-height:33px;}
 | 
			
		||||
.wst-order-success{width:135px;height:35px;line-height:35px;display: block;}
 | 
			
		||||
.empty-cart{height:80px;line-height:80px;font-size:20px;text-align:center;}
 | 
			
		||||
.empty-cart a{color:blue;font-size:20px;}
 | 
			
		||||
/**结算页面**/
 | 
			
		||||
.box-head{font-weight:bold;height:30px;line-height:30px;}
 | 
			
		||||
.box-head2{font-weight:bold;height:30px;line-height:30px;padding-left:5px;}
 | 
			
		||||
.cart-box2{width:100%;border:1px solid #eeeeee;padding:5px 0px 10px 0px;}
 | 
			
		||||
.cart-head2{border-top:2px solid #e7e7e7;background: #f3f3f3;display: block;height: 25px;line-height: 25px;padding: 5px 0;}
 | 
			
		||||
.cart-head2 .goods2{float:left;width:745px;padding-left:15px;}
 | 
			
		||||
.cart-head2 .price2{float:left;width:105px;}
 | 
			
		||||
.cart-head2 .stock2{float:left;width:105px;}
 | 
			
		||||
.cart-head2 .num2{float:left;width:120px;}
 | 
			
		||||
.cart-head2 .t-price2{float:left;width:195px;text-align:right;}
 | 
			
		||||
.cart-box2 .shop2{padding-left:15px;height:35px;line-height:35px;border-bottom:2px solid #d0e2ff;color:#E55356;font-weight:bold;font-size:15px;}
 | 
			
		||||
.cart-box2 .item{padding:5px 0px 5px 0px}
 | 
			
		||||
.cart-box2 .item .goods2{float:left;width:745px;padding-left:15px;}
 | 
			
		||||
.cart-box2 .item .goods2 .img2{float:left;width:80px;height:80px;}
 | 
			
		||||
.cart-box2 .item .goods2 .name2{float:left;width:470px;height:80px;margin-left:5px;}
 | 
			
		||||
.cart-box2 .item .goods2 .spec2{float:left;width:180px;margin-left:5px;}
 | 
			
		||||
.cart-box2 .item .price2{float:left;width:105px;}
 | 
			
		||||
.cart-box2 .item .stock2{float:left;width:105px;}
 | 
			
		||||
.cart-box2 .item .num2{float:left;width:120px;}
 | 
			
		||||
.cart-box2 .item .t-price2{float:left;width:195px;font-weight: bold;color: #E55356;text-align:right;}
 | 
			
		||||
.cart-summary2{margin-top:10px;}
 | 
			
		||||
.summary2{height:30px;line-height:30px;}
 | 
			
		||||
.shop-remark{padding:0px 5px 0px 15px}
 | 
			
		||||
.shop-remark .shop-remark-box{width:500px;padding-top:20px;padding-bottom:30px;display: inline-block;position: relative;vertical-align: top;}
 | 
			
		||||
.shop-remark .shop-summary{width:650px;padding-top:20px;padding-bottom:30px;padding-left:10px;display: inline-block;border-left:1px solid #fff;}
 | 
			
		||||
.shop-remark .shop-summary .row{height:25px;line-height: 25px;}
 | 
			
		||||
.shop-remark .shop-summary dt{width:140px;display:inline-block;text-align: right}
 | 
			
		||||
.shop-remark .shop-summary dd{width:500px;display:inline-block}
 | 
			
		||||
#totalPrice{color:#FE0000;font-size:16px;margin-left:5px;}
 | 
			
		||||
#deliverMoney{color:#FE0000;font-size:16px;margin-left:5px;}
 | 
			
		||||
#orderScore{margin-right:5px;}
 | 
			
		||||
.wst-prev{float:left;margin-left:10px;}
 | 
			
		||||
.wst-order{float:right;}
 | 
			
		||||
/**用户地址**/
 | 
			
		||||
.add-addr{font-weight: normal;color:#005ea7;display: block;float:right;margin-right: 5px;}
 | 
			
		||||
.add-addr:hover{color:red;}
 | 
			
		||||
.address-box{border-top:2px solid #FC7A64;border-left:1px solid #eeeeee;border-right:1px solid #eeeeee;padding:5px 0px 10px 5px;}
 | 
			
		||||
.j-show-box,.j-edit-box,.j-list-box,.wst-list-box{padding:5px 0px 20px 15px;}
 | 
			
		||||
.j-list-box li{height:40px;line-height:40px;}
 | 
			
		||||
.j-edit-box .rows{width:auto;height:auto;}
 | 
			
		||||
.j-edit-box .label{float:left;width:120px;text-align:right;padding:2px 0px 2px 0px;}
 | 
			
		||||
.j-edit-box .field{float:left;padding:2px 0px 2px 0px;}
 | 
			
		||||
.field label{margin-right:20px;}
 | 
			
		||||
#saveAddressBtn{margin-left:120px;}
 | 
			
		||||
.j-show-box .address{line-height:36px;}
 | 
			
		||||
.j-show-box .address a{color: #1c9eff;}
 | 
			
		||||
.j-show-box .address a:hover{text-decoration:underline;}
 | 
			
		||||
.j-default{padding:5px;background:#ccc;}
 | 
			
		||||
.wst-frame1{float: left;width:180px;margin: 2px 8px 2px 0px;background: #fff;border: 1px solid #ccc;padding:7px;cursor: pointer;text-align:center;overflow: hidden;position: relative;}
 | 
			
		||||
.wst-frame2{float: left;min-width:120px;margin: 2px 20px 2px 0px;background: #fff;border: 1px solid #ccc;padding:7px;cursor: pointer;text-align:center;overflow: hidden;position: relative;}
 | 
			
		||||
.wst-frame1.j-selected i,.wst-frame2.j-selected i{font-size: 0;line-height: 0;background: url(../img/img_gd_sel.png) no-repeat 0 0;display: block; width: 11px;height: 11px;position: absolute;z-index: 1;right: -1px;bottom: -1px;}
 | 
			
		||||
.wst-frame1.j-selected,.wst-frame2.j-selected{border: 2px solid #e4393c;padding:6px;}
 | 
			
		||||
/**支付方式**/
 | 
			
		||||
.pay-box{border-left:1px solid #eeeeee;border-right:1px solid #eeeeee;border-top:1px solid #eeeeee;padding:5px 0px 10px 5px;}
 | 
			
		||||
.pay-boxs{padding:10px 0px 5px 5px;}
 | 
			
		||||
.pay-box ul{padding-left:15px;}
 | 
			
		||||
.pay-box ul li{width:1185px;}
 | 
			
		||||
.pay-box .label{width:200px;float:left;height:30px;line-height:30px;}
 | 
			
		||||
.pay-box .txt{height:auto;line-height:30px;width:985px;float:left;color:#999999;}
 | 
			
		||||
.pay-sbox{border:1px solid #eeeeee;padding:5px 0px;}
 | 
			
		||||
.pay-sbox-head{border-bottom: 2px solid #ddd;line-height:35px;}
 | 
			
		||||
.pay-tip1{height:37px;width:760px;text-align: center;margin:10px auto;background: url(../img/pay_liucheng.png) no-repeat 0px -10px;background-size: cover; }
 | 
			
		||||
.pay-tip2{height:37px;width:760px;text-align: center;margin:10px auto;background: url(../img/pay_liucheng.png) no-repeat 0px -71px;background-size: cover; }
 | 
			
		||||
.pay-tip3{height:37px;width:760px;text-align: center;margin:10px auto;background: url(../img/pay_liucheng.png) no-repeat 0px -132px;background-size: cover; }
 | 
			
		||||
.pay-sbox .qrcode-box{min-height: 300px;height: auto;}
 | 
			
		||||
.pay-sbox .tips-box{line-height:35px;text-align: left;font-weight: bold;padding:5px 10px;}
 | 
			
		||||
.pay-sbox .qrcode-box .pbox{text-align: center;margin-top: 10px;font-weight: bold;}
 | 
			
		||||
.pay-sbox .wst-qrcode{width:260px;height:260px;text-align:center;margin:0 auto;}
 | 
			
		||||
.pay-sbox .wst-qrcode img{width:260px;height:260px;}
 | 
			
		||||
.pay-sbox .bnt-box{line-height:35px;text-align:center;font-weight: bold;padding:5px 10px;line-height:50px;}
 | 
			
		||||
.pay-sbox .pay-type{line-height:35px;text-align: left;font-weight: bold;padding:5px 10px;}
 | 
			
		||||
.pay-sbox .pay-list{text-align: left;font-weight: bold;padding:5px 10px;}
 | 
			
		||||
.pay-sbox .succ-box{text-align: center;padding: 50px;}
 | 
			
		||||
.wst-payCode-weixinpays {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/weixinpays.png) no-repeat 0px 0px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
 | 
			
		||||
.wst-payCode-weixinpays-curr {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/weixinpays.png) no-repeat 0px -75px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
 | 
			
		||||
.wst-payCode-alipays {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/alipays.png) no-repeat 0px 0px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
 | 
			
		||||
.wst-payCode-alipays-curr {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/alipays.png) no-repeat 0px -75px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
 | 
			
		||||
.wst-payCode-wallets {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/wallets.png) no-repeat 0px 0px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
 | 
			
		||||
.wst-payCode-wallets-curr {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/wallets.png) no-repeat 0px -75px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
 | 
			
		||||
.wst-payCode-unionpays {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/unionpays.png) no-repeat 0px 0px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
 | 
			
		||||
.wst-payCode-unionpays-curr {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/unionpays.png) no-repeat 0px -75px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
 | 
			
		||||
.pay-sbox .balance-box{min-height: 300px;height: auto;}
 | 
			
		||||
.pay-sbox .balance-box .pbox{text-align: center;padding-top: 40px;font-weight: bold;}
 | 
			
		||||
.pay-sbox .balance-box .pbox2{text-align: center;padding-top: 10px;font-weight: bold;}
 | 
			
		||||
.pbox-tip{color:#0ae;margin-left:10px;}
 | 
			
		||||
.pay-btn{background: #eb5f43 none repeat scroll 0 0;border: 1px solid #d33110;border-radius: 3px;color: #ffffff;cursor: pointer;outline: medium none;}
 | 
			
		||||
.pay-sbox .wst-pay-bnt {height:40px;width:132px;text-align: center;margin:10px auto;background: url(../img/btn_pay.png) no-repeat 0px 0px;cursor:pointer;}
 | 
			
		||||
.pay-sbox .wst-pay-bnt:hover {height:40px;width:132px;text-align: center;margin:10px auto;background: url(../img/btn_pay.png) no-repeat 0px -57px;cursor:pointer;}
 | 
			
		||||
.wst-wallet-box{border:1px solid #ddd;margin:10px;padding:5px;line-height: 35px;height:40px;}
 | 
			
		||||
.wst-wallet-box .wst-wallte-item{background:url("../img/icon_qianbaoyue.png") no-repeat;padding-left:30px;height:30px;margin-top:5px;float:left;}
 | 
			
		||||
/**送货方式**/
 | 
			
		||||
.shipping-box{border-left:1px solid #eeeeee;border-right:1px solid #eeeeee;border-top:1px solid #eeeeee;padding:5px 0px 10px 5px;}
 | 
			
		||||
.shipping-box ul{padding-left:15px;}
 | 
			
		||||
.shipping-box ul li{height:auto;line-height:30px;}
 | 
			
		||||
/**发票**/
 | 
			
		||||
.invoice-box{border-left:1px solid #eeeeee;border-right:1px solid #eeeeee;border-top:1px solid #eeeeee;padding:5px 0px 10px 5px;}
 | 
			
		||||
.invoice-box ul{padding-left:15px;}
 | 
			
		||||
.invoice-box ul li{height:auto;line-height:30px;}
 | 
			
		||||
/**订单成功**/
 | 
			
		||||
.success-box{border:1px solid #ddd;height:300px;margin-bottom:30px;text-align:center;}
 | 
			
		||||
.success-box .imgs{margin: 0 auto;padding-top:72px;width:18%;}
 | 
			
		||||
.success-box .imgs span{color:#11cd6e;font-family:"microsoft yahei";font-size: 22px;line-height:65px;margin-left:8x}
 | 
			
		||||
.success-box .info{margin: 6px auto;padding-top:16px;width:100%;font-size: 20px;}
 | 
			
		||||
.success-box .info a{color:#51cff5;font-size: 20px;}
 | 
			
		||||
.success-box .info span{color:#f33d2f;font-size: 20px;}
 | 
			
		||||
.success-box .go{margin: 26px auto;width:12%;}
 | 
			
		||||
/*按钮*/
 | 
			
		||||
.wst-cart-reda{font-size: 14px;color:#ffffff;background: #df2003;text-align:center;border-radius:3px;font-family:"microsoft yahei";box-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);}
 | 
			
		||||
.wst-cart-reda:hover{color:#ffffff;background:#ea3232;box-shadow: 0 0px 0px rgba(0, 0, 0, 0.3);}
 | 
			
		||||
.wst-cart-asha{font-size: 14px;background: #ffffff;text-align:center;border-radius: 3px;border: 1px solid #dad7d7;font-family:"microsoft yahei";box-shadow: 0 0px 1px rgba(0, 0, 0, 0.3);}
 | 
			
		||||
.wst-cart-asha:hover{background:#f1f1f1;box-shadow: 0 0px 0px rgba(0, 0, 0, 0.3);}
 | 
			
		||||
/*自定义单选框样式*/
 | 
			
		||||
.wst-radio + label {-webkit-appearance: none;background-color: #fafafa;border: 1px solid gray;padding: 6px;border-radius: 50px;display: inline-block;position: relative;}
 | 
			
		||||
.wst-radio + label:after {content: ' ';width: 6px;height: 6px;border-radius: 50px;position: absolute;top: 3px;background: #99a1a7;box-shadow: inset 0px 0px 10px rgba(0,0,0,0.3);text-shadow: 0px;left: 3px;font-size: 32px;}
 | 
			
		||||
.wst-radio:checked + label{border: 1px solid #fc6047;}
 | 
			
		||||
.wst-radio:checked + label:after {content: ' ';width: 6px;height: 6px;border-radius: 50px;position: absolute;top: 3px;background: #fc6047;box-shadow: inset 0px 0px 10px #fc6047;text-shadow: 0px;left: 3px;font-size: 32px;z-index:100;}
 | 
			
		||||
.radio-box .wst-radio{position:relative;z-index:-100;left:0px;top:0px;}
 | 
			
		||||
.radio-box-hover{background: #fff3f3;}
 | 
			
		||||
.operate-box a{color:#1c9eff;}
 | 
			
		||||
.operate-box a:hover{color:red;}
 | 
			
		||||
.operate-box{float:right;display: none;margin-right: 5px;}
 | 
			
		||||
.mt-1{position:relative;top:1px;left:-16px;cursor:pointer;}
 | 
			
		||||
/**订单列表**/
 | 
			
		||||
.wst-check-orders{color:#1D94D7;cursor:pointer;}
 | 
			
		||||
.wst-order-list{width:100%;border-collapse:collapse;border-color:grey;}
 | 
			
		||||
.wst-order-list .head{height: 32px;line-height: 32px;text-align: center;background: #f5f5f5;color: #666;font-weight: 400;}
 | 
			
		||||
.wst-order-list .goods-img{width:60px; height:60px;text-align:center;vertical-align:middle;display:block;position:relative;float:left;}
 | 
			
		||||
.wst-order-list .goods-img a{display:table-cell;vertical-align:middle;width:60px;height:60px;} 
 | 
			
		||||
.wst-order-list .goods-img a img{max-width:60px;max-height:60px;}
 | 
			
		||||
.wst-order-list .goods-name{float:left;margin-left:5px;line-height:25px;width:500px;}
 | 
			
		||||
.wst-order-list .goods-extra{float:right;margin-left:5px;}
 | 
			
		||||
.wst-order-list .line{border-bottom:1px solid #ddd;margin-bottom:2px;padding-bottom:2px;}
 | 
			
		||||
.order-box{margin-bottom:5px;border-bottom:1px solid #ddd;}
 | 
			
		||||
.order-box .box-head{font-weight:bold;height:30px;line-height:30px;}
 | 
			
		||||
.wst-order-list  td,.wst-order-list  th {padding: 5px 10px;border: 1px solid #e5e5e5;border-top: 0px;}
 | 
			
		||||
.wst-order-list  td,.wst-order-list  th.wst-left-noborder{border-left:0;}
 | 
			
		||||
.wst-order-list  td,.wst-order-list  th.wst-right-noborder{border-right:0;}
 | 
			
		||||
.wst-order-list .otbody{text-align: center;}
 | 
			
		||||
/* 发票信息 */
 | 
			
		||||
.invoice_box{margin-top: 30px;}
 | 
			
		||||
.invoice_item{width:85%;margin:0 auto;overflow: hidden;padding-top: 10px;}
 | 
			
		||||
.invoice_left{width:25%;float: left;text-align: right;color: #666;font-size: 14px;padding: 4px 0px;}
 | 
			
		||||
.tc{text-align: center}
 | 
			
		||||
.invoice_right{width: 70%;float: left;}
 | 
			
		||||
.inv_ul{width: 100%;overflow-y: scroll;max-height: 132px;}
 | 
			
		||||
.inv_li{position: relative;border:1px solid #eee;padding:5px;margin-bottom: 10px;padding:6px;cursor: pointer;}
 | 
			
		||||
.inv_li_curr i{font-size: 0;line-height: 0;background: url(../img/img_gd_sel.png) no-repeat 0 0;display: block; width: 11px;height: 11px;position: absolute;z-index: 1;right: -1px;bottom: -1px;}
 | 
			
		||||
.inv_li_curr{border: 2px solid #e4393c!important;padding:6px!important;}
 | 
			
		||||
.inv_li:hover .inv_opabox{display: block;}
 | 
			
		||||
.inv_opabox{display:none;position: absolute;right: 10%;top: 8px;}
 | 
			
		||||
.inv_add,.inv_opabox a{color: #00a0d5;cursor: pointer;}
 | 
			
		||||
.inv_add:hover,.inv_opabox a:hover{color: red}
 | 
			
		||||
.inv_opabox a{display: inline-block;margin-right: 15px;}
 | 
			
		||||
.inv_li1{position: relative;border:1px solid #eee;padding:5px;margin-bottom: 10px;padding:6px;cursor: pointer;float: left;margin-right:5px;}
 | 
			
		||||
.inv_codebox{display: none;}
 | 
			
		||||
.invoice_input{height:21px!important;padding: 1px;border:none!important;}
 | 
			
		||||
.inv_btn{display: inline-block;padding: 5px 10px;color: #fff;background: #e74649;margin-right: 10px;border: 1px solid #e74649;}
 | 
			
		||||
.inv_cancel{color: #323333;text-decoration: none;border: 1px solid #ddd;box-shadow: 0 1px 1px rgba(0,1,1,.08);background-color: #f7f7f7;}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										297
									
								
								hyhproject/home2/view/default/css/common.css
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										297
									
								
								hyhproject/home2/view/default/css/common.css
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,297 @@
 | 
			
		||||
@CHARSET "UTF-8";body{color:#333;font:12px/150% "Hiragino Sans GB","Microsoft Yahei",arial,宋体,"Helvetica Neue",Helvetica,STHeiTi,sans-serif}
 | 
			
		||||
*{padding:0;margin:0}
 | 
			
		||||
ol,ul{list-style:none}
 | 
			
		||||
a{color:#333;text-decoration:none}
 | 
			
		||||
a:hover{text-decoration:none}
 | 
			
		||||
img{border:0}
 | 
			
		||||
select{background-color:#fff;border:1px solid #ccc;border-radius:2px;height:24px;margin:2px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 1px rgba(0,0,0,0.075) inset}
 | 
			
		||||
input[type=text],input[type=password]{border:1px solid #ccc;height:23px;line-height:17px;padding:2px}input[type="radio"],input[type="checkbox"]{margin:2px}
 | 
			
		||||
input[type=button]{cursor:pointer}
 | 
			
		||||
.wst-relative{position: relative;}
 | 
			
		||||
.wst-clear{clear:both}
 | 
			
		||||
.wst-lfloat{float:left}
 | 
			
		||||
.wst-rfloat{float:right}
 | 
			
		||||
.wst-hide{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 5px}
 | 
			
		||||
.wst-redlink{width:95%;display:block;cursor:pointer}
 | 
			
		||||
.wst-redlink:hover{color:red}
 | 
			
		||||
.wst-fred{color:#df2003}
 | 
			
		||||
.wst-align-center{text-align:center}
 | 
			
		||||
.wst-align-left{text-align:left}
 | 
			
		||||
.wst-align-right{text-align:right}
 | 
			
		||||
.hide{display:none}
 | 
			
		||||
.layui-layer-icowst1,.layui-layer-icowst2,.layui-layer-icowst3{background-image:url(../../../../../static/images/wst_icon.png)!important;background-repeat:no-repeat!important;background-size:cover!important}
 | 
			
		||||
.layui-layer-icowst2{background-position:-40px 0!important}
 | 
			
		||||
.layui-layer-icowst3{background-position:-80px -1px!important}
 | 
			
		||||
.layui-layer-icowstloading{background-image:url(../../../../../static/images/loading.gif)!important;background-repeat:no-repeat!important;background-size:206% auto!important;background-position:-16px -16px!important}
 | 
			
		||||
.wst-header{margin:0 auto;width:100%;border-bottom:1px solid #eee;background:#fafafa}
 | 
			
		||||
.wst-header ul li{float:left}
 | 
			
		||||
.wst-w,.wst-main{margin:0 auto;width:100%;padding-bottom:5px;margin-bottom:5px}
 | 
			
		||||
.wst-footer{text-align:center;line-height:25px;width:1210px;margin:0 auto}
 | 
			
		||||
.index-top-ads{margin:0 auto;height:100px;width:100%;position:relative}
 | 
			
		||||
.index-top-ads img{width:100%;height:100px;overflow:hidden}
 | 
			
		||||
.close-ads{width:35px;height:12px;background:url(../img/close_ads.gif) no-repeat;position:absolute;top:10px;right:20px;float:right;z-index:199}
 | 
			
		||||
.wst-header .wst-nav,.wst-container,.wst-search-container,.wst-nav-menus .nav-w,.wst-lite-container{width:1200px;margin:0 auto}
 | 
			
		||||
.wst-header .wst-nav{height:30px}
 | 
			
		||||
.headlf{float:left;width:500px;font-family:Arial,"宋体";font-size:12px}
 | 
			
		||||
.headrf li{float:left;height:30px;line-height:30px}
 | 
			
		||||
.headrf li a{font-family:Arial,"宋体";font-size:12px;color:#777}
 | 
			
		||||
.headlf li{height:30px;line-height:30px;padding-left:0;padding-right:0}
 | 
			
		||||
.headlf li.spacer{color:#ddd;width:10px;text-align:center}
 | 
			
		||||
.headrf li.spacer{color:#ddd;width:10px;text-align:center}
 | 
			
		||||
.wst-header .wst-nav .j-dorpdown{position:relative;width:91px;border:1px solid #fafafa;border-top:0;border-bottom:0}
 | 
			
		||||
.wst-header .wst-nav .j-dorpdown .nowrap{white-space:nowrap}
 | 
			
		||||
.wst-header .wst-nav .j-dorpdown:hover{background-color:#fff;border-left:1px solid #ddd;border-right:1px solid #ddd;border-bottom:0;z-index:10000}
 | 
			
		||||
.wst-header .wst-nav .j-dorpdown-layer{position:absolute;z-index:1000;margin-top:-1px;background:#fff;cursor:pointer;left:-1px;border:1px solid #ddd;border-top:0;display:none}
 | 
			
		||||
.wst-header .last-menu{float:right;right:0;white-space:nowrap}
 | 
			
		||||
.wst-header .wst-nav .drop-info{position:relative;padding:0 8px;border:1px solid #fafafa;border-top:0;border-bottom:0}
 | 
			
		||||
.wst-header .wst-nav .drop-infos a{color:#fe6047}
 | 
			
		||||
.wst-header .wst-nav .dorpdown-user{position:absolute;z-index:1000;cursor:pointer;left:-1px;display:none}
 | 
			
		||||
.wst-tag{width:280px;height:180px;border-bottom:1px solid #dedbdb;border-left:1px solid #dedbdb;border-right:1px solid #dedbdb;position:relative;background-color:#fafafa;box-shadow:0 1px 1px rgba(0,0,0,0.3)}
 | 
			
		||||
.wst-tag:after{top:-16px;border-color:transparent transparent #f7f7f6}
 | 
			
		||||
.wst-tagt{padding:10px 0}
 | 
			
		||||
.wst-tagt .userImg{margin-left:10px;float:left;width:60px;height:60px}
 | 
			
		||||
.wst-tagt .userImg img{width:60px;height:60px;border-radius:1000px}
 | 
			
		||||
.wst-tagt-n{float:left;width:190px;margin-left:5px}
 | 
			
		||||
.wst-tagt-na{float:left;color:#fe6047;font-size:15px;margin-left:12px}
 | 
			
		||||
.wst-tagt-n img{float:left;width:18px;margin-top:5px;margin-left:6px}
 | 
			
		||||
.wst-tagt-ip{float:left;width:190px;line-height:18px;margin-left:12px;color:#3d3d3e}
 | 
			
		||||
.wst-tagb{float:left;padding:10px 0 0 30px}
 | 
			
		||||
.wst-tagb a{float:left;width:70px;margin-left:30px}
 | 
			
		||||
.wst-tagb a:hover{color:#fd5940}
 | 
			
		||||
.wst-tags{width:190px;padding-left:10px;clear:both}
 | 
			
		||||
.wst-header .wst-nav .j-dorpdown .order-list{width:86px}
 | 
			
		||||
.wst-header .wst-nav .j-dorpdown .product-list{width:91px}
 | 
			
		||||
.wst-header .wst-nav .j-dorpdown .des-list{width:91px}
 | 
			
		||||
.wst-header .wst-nav .j-dorpdown .foucs-list{width:91px}
 | 
			
		||||
.wst-header .wst-nav .j-dorpdown .sweep-list{width:215px}
 | 
			
		||||
.pdl5{padding-left:5px!important}
 | 
			
		||||
.pdr5{padding-right:5px!important}
 | 
			
		||||
.wst-header .wst-nav .j-dorpdown-layer div{text-align:center;line-height:24px}
 | 
			
		||||
.wst-header .wst-nav .j-dorpdown-layer div a:hover,.wst-header .wst-nav .drop-down a:hover{color:#df2003}
 | 
			
		||||
.wst-header .wst-nav .drop-down{position:relative;padding:0 18px;width:55px;margin:0 auto}
 | 
			
		||||
.wst-header .wst-nav .drop-down1{background:url(../img/img_icon.png) -13px -33px no-repeat}
 | 
			
		||||
.wst-header .wst-nav .drop-down1:hover{background:url(../img/img_icon.png) -13px -183px no-repeat}
 | 
			
		||||
.wst-header .wst-nav .drop-down2{background:url(../img/img_icon.png) -13px -83px no-repeat}
 | 
			
		||||
.wst-header .wst-nav .drop-down2:hover{background:url(../img/img_icon.png) -13px -233px no-repeat}
 | 
			
		||||
.wst-header .wst-nav .drop-down3{background:url(../img/img_icon.png) -12px -134px no-repeat}
 | 
			
		||||
.wst-header .wst-nav .drop-down3:hover{background:url(../img/img_icon.png) -12px -284px no-repeat}
 | 
			
		||||
.wst-header .wst-nav .drop-down4{background:url(../img/img_icon.png) -13px -108px no-repeat}
 | 
			
		||||
.wst-header .wst-nav .drop-down4:hover{background:url(../img/img_icon.png) -13px -258px no-repeat}
 | 
			
		||||
.wst-header .wst-nav .drop-down5{background:url(../img/img_icon.png) -13px -57px no-repeat}
 | 
			
		||||
.wst-header .wst-nav .drop-down5:hover{background:url(../img/img_icon.png) -13px -207px no-repeat}
 | 
			
		||||
.wst-header .wst-nav .drop-down6{background:url(../img/img_icon.png) -13px -8px no-repeat}
 | 
			
		||||
.wst-header .wst-nav .drop-down6:hover{background:url(../img/img_icon.png) -13px -158px no-repeat}
 | 
			
		||||
.j-dorpdown-layer .qrcodea .qrcodeal{float:left;margin-top:5px}
 | 
			
		||||
.j-dorpdown-layer .qrcodea .qrcodear{float:right;margin-right:3px}
 | 
			
		||||
.j-dorpdown-layer .qrcodea .qrcodear p{color:#fa8a42;font-weight:bold;text-align:center;width:88px}
 | 
			
		||||
.j-dorpdown-layer .qrcodea .qrcodear a{float:right;width:75px;border:1px solid #ededed;padding:0 5px;margin:0 3px 3px 0;background:#f5f5f5}
 | 
			
		||||
.wst-nav .headrf .drop-down .di-right{top:12px;right:0;height:7px;overflow:hidden;font-style:normal;color:#6a6a6a;display:block;position:absolute}
 | 
			
		||||
.wst-nav .headrf .drop-down .di-left{top:12px;left:0;height:7px;overflow:hidden;font-style:normal;display:block;position:absolute}
 | 
			
		||||
.wst-nav .headrf .drop-down .di-right s{position:relative;top:-14px;text-decoration:none}
 | 
			
		||||
.wst-nav .headrf .drop-down:hover .di-right s{top:-7}
 | 
			
		||||
.drop-down a{width:auto}
 | 
			
		||||
.wst-header .wst-nav .normal{position:relative;padding:0 8px;border:1px solid #fafafa;border-top:0;border-bottom:0}
 | 
			
		||||
.wst-lite-container{height:auto}
 | 
			
		||||
.wst-logo{margin:5px 5px 5px 0;float:left;height:auto}
 | 
			
		||||
.wst-search-box{float:left;position:relative;width:670px}
 | 
			
		||||
.wst-search{border:2px solid #e23c3d;height:36px;margin-left:20px;margin-top:50px;position:relative}
 | 
			
		||||
.wst-search .j-search-type{width:78px;top:0;line-height:36px;position:absolute;padding:0;border-right:2px solid #e23c3d;border-left:2px solid #e23c3d;cursor:pointer;left:-2px;text-align:center}
 | 
			
		||||
.wst-search .j-type-list{width:70px;top:35px;line-height:36px;position:absolute;padding:0 4px;border:2px solid #e23c3d;cursor:pointer;background-color:#fff;left:-2px;z-index:100;border-top:0;display:none;text-align:center}
 | 
			
		||||
.wst-search .j-search-type i{color:#6a6a6a;display:block;font-style:normal;height:7px;overflow:hidden;position:absolute;right:6px;top:16px;width:0}
 | 
			
		||||
.j-search-type i{-moz-border-bottom-colors:none;-moz-border-left-colors:none;-moz-border-right-colors:none;-moz-border-top-colors:none;border-color:#999 transparent transparent;border-image:none;border-style:solid dashed dashed;border-width:5px;font-size:0;line-height:0}
 | 
			
		||||
.arrow{transition:all .2s ease-in 0s}
 | 
			
		||||
.over{top:10px!important;transform:rotate(180deg);transform-origin:50% 30% 0}
 | 
			
		||||
.over-cat{display:none}
 | 
			
		||||
.wst-search .j-search-type s{position:relative;top:-17px;text-decoration:none}
 | 
			
		||||
.wst-search .j-type-list div:hover{color:#e23c3d}
 | 
			
		||||
.wst-search .search-ipt{border:0 none;color:#565656;float:left;font-family:Microsoft Yahei;font-size:14px;line-height:18px;overflow:hidden;padding:0;width:560px;height:36px;border:36px;outline:0;padding-left:84px}
 | 
			
		||||
.wst-search .search-btn{background-color:#df2003;color:#fff;cursor:pointer;font-size:15px;font-weight:bolder;height:38px;line-height:36px;position:absolute;right:-1px;text-align:center;top:-1px;width:80px}
 | 
			
		||||
.wst-search-keys{color:#6c6c6c;height:25px;line-height:28px;overflow:hidden;padding-left:20px}
 | 
			
		||||
.wst-search-keys a{color:#6c6c6c}
 | 
			
		||||
.wst-cart-box{float:right;width:163px;height:40px;margin-top:50px;background-color:#df2003;position:relative;cursor:pointer}
 | 
			
		||||
.wst-cart-box .word{float:left;width:112px;margin-top:10px;margin-left:20px;padding-left:28px;color:#fff;font-size:14px;font-family:"microsoft yahei";background:url(../img/icon_gouwuche.png) no-repeat left center;position:relative}
 | 
			
		||||
.wst-cart-box .num{font-size:14pxpx;color:#fff;line-height:24px;text-align:center;position:absolute;display:block;width:27px;height:25px;background:url(../img/icon_number.png) no-repeat;right:15px;top:-18px}
 | 
			
		||||
.wst-cart-boxs{width:332px;margin-top:22px;border:1px solid #dedbdb;position:absolute;z-index:1200;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,0.3);left:-171px;top:18px}
 | 
			
		||||
.wst-cart-boxs:after{top:-16px;border-color:transparent transparent #fff}
 | 
			
		||||
.wst-cart-boxs .carts{background:url(../img/top_icon_cartdown.png) 28px 47px no-repeat;width:332px;height:130px;text-indent:4.5em;line-height:130px;font-size:15px;color:#b9b6b6}
 | 
			
		||||
.wst-cart-box .goods{float:left;width:96.666666%;border-bottom:1px dashed #bfbfbf;padding:5px}
 | 
			
		||||
.wst-cart-box .goods .imgs{float:left;width:72px;height:72px;text-align:center;vertical-align:middle;display:block;position:relative}
 | 
			
		||||
.wst-cart-box .goods .imgs a{width:72px;height:72px;display:table-cell;vertical-align:middle}
 | 
			
		||||
.wst-cart-box .goods .imgs img{max-width:72px;max-height:72px}
 | 
			
		||||
.wst-cart-box .goods .number{float:left;width:50%}
 | 
			
		||||
.wst-cart-box .goods .number p{float:left;width:92%;margin-top:10px;padding-left:10px}
 | 
			
		||||
.wst-cart-box .goods .price{float:right;text-align:right}
 | 
			
		||||
.wst-cart-box .goods .price p{float:right;width:100%;line-height:20px;font-weight:bold;color:#df2003}
 | 
			
		||||
.wst-cart-box .goods .price span{float:right;width:100%;line-height:20px}
 | 
			
		||||
.wst-cart-box .goods .price span a:hover,.wst-cart-box .goods .number p a:hover{color:#df2003}
 | 
			
		||||
.wst-cart-box .comm{float:left;width:100%;font-weight:bold;line-height:32px}
 | 
			
		||||
.wst-cart-box .comm span{font-size:15px;color:#df2003}
 | 
			
		||||
.wst-cart-box .comm .span2{float:right;margin-right:10px}
 | 
			
		||||
.wst-cart-box .btn{color:#fff;cursor:pointer;display:block;font-size:16px;font-weight:400;line-height:30px;margin:10px 0 16px 72px;max-width:200px;position:relative;text-align:center;text-decoration:none;text-transform:uppercase;vertical-align:middle;width:100%;border-radius:5px}
 | 
			
		||||
@media(min-width:400px){.wst-cart-box .btn{display:inline-block;margin-right:2.5em}
 | 
			
		||||
.wst-cart-box .btn:nth-of-type(even){margin-right:0}}@media(min-width:600px){.wst-cart-box .btn:nth-of-type(even){margin-right:2.5em}
 | 
			
		||||
.wst-cart-box .btn:nth-of-type(5){margin-right:0}}
 | 
			
		||||
.wst-cart-box .btn:hover{text-decoration:none}
 | 
			
		||||
.wst-cart-box .btn-3{background:#e3403a;border:1px solid #da251f;box-shadow:0 1px 0 #d6251f,1px 1px 1px #e02a24;font-weight:900;letter-spacing:1px;-webkit-transition:all 150ms linear;transition:all 150ms linear}
 | 
			
		||||
.wst-cart-box .btn-3:hover{background:#e02c26;border:1px solid rgba(0,0,0,0.05);box-shadow:1px 1px 2px rgba(255,255,255,0.2);color:#ec817d;text-decoration:none;text-shadow:-1px -1px 0 #c2211c;-webkit-transition:all 250ms linear;transition:all 250ms linear}
 | 
			
		||||
.wst-lite-title{float:left;padding-top:90px;padding-left:10px}
 | 
			
		||||
.wst-lite-index{padding-top:90px;float:right}
 | 
			
		||||
.wst-table td{height:35px}
 | 
			
		||||
.wst-footer-frd{color:#e23e3d;font-weight:bolder;font-size:18px}
 | 
			
		||||
.wst-footer-pno{color:red;font-weight:bolder;font-size:18px}
 | 
			
		||||
.wst-footer{text-align:center;line-height:25px;width:1200px;margin:0 auto}
 | 
			
		||||
.wst-footer-fl-box{text-align:center;margin-top:45px}
 | 
			
		||||
.wst-footer-cld-box{border-bottom:1px solid #d5d5d5;height:auto;line-height:30px;text-align:left;padding-bottom:20px;margin-bottom:20px}
 | 
			
		||||
.wst-footer-fl{font-weight:bolder;padding-top:7px;color:#fc6047;font-size:14px}
 | 
			
		||||
.wst-footer-hp-box{background-color:#f7f7f7;text-align:center;margin-top:20px}
 | 
			
		||||
.wst-footer-hp-ck1{line-height:30px;text-align:left;border-top:1px solid #f5f5f5;border-bottom:1px solid #f5f5f5;min-width:1200px}
 | 
			
		||||
.wst-footer-hp-ck3{margin-top:20px;padding-bottom:10px}
 | 
			
		||||
.wst-footer-hp-ck3 a{color:#666}
 | 
			
		||||
.wst-footer-hp-ck3 .copyright{color:#666}
 | 
			
		||||
.wst-footer-pno{color:red;font-weight:bolder;font-size:18px}
 | 
			
		||||
.wst-footer-wz-ca{padding-top:20px;float:left;width:180px;height:180px}
 | 
			
		||||
.wst-footer-wz-pt{padding-top:5px;line-height:25px}
 | 
			
		||||
.wst-footer-wz-pn{font-weight:bolder;margin-left:10px;font:600 16px/20px "microsoft yahei";color:#666}
 | 
			
		||||
.wst-footer-wz-clt{float:left;width:160px;height:180px;margin-left:6px}
 | 
			
		||||
.wst-footer-wz-kf{font-weight:bolder;margin-left:10px}
 | 
			
		||||
.wst-footer-wz-ent{color:green;font-size:16px}
 | 
			
		||||
.wst-footer-wz-ca a{color:#999}
 | 
			
		||||
.flink-hover{font-size:13px;color:#434343;margin-left:10px;margin-right:10px}
 | 
			
		||||
.flink-hover:hover{text-decoration:underline;color:#1e84da}
 | 
			
		||||
.wst-footer-info{margin:0 auto;width:1200px;height:100px}
 | 
			
		||||
.wst-footer-info>li{width:180px;height:80px;float:left;margin-right:60px}
 | 
			
		||||
.wst-footer-info-img{float:left; margin-top:15px; width: 70px; height: 70px; box-sizing: border-box; background-image: url(../img/footer_icon.png); background-repeat: no-repeat; }
 | 
			
		||||
.wst-fimg1{background-position: -1px -1px;}
 | 
			
		||||
.wst-fimg2{background-position: -241px -1px;}
 | 
			
		||||
.wst-fimg3{background-position: -481px -1px;}
 | 
			
		||||
.wst-fimg4{background-position: -721px -2px;}
 | 
			
		||||
.wst-fimg5{background-position: -961px -1px;}
 | 
			
		||||
 | 
			
		||||
.wst-footer-info-text{float:left;margin-top:25px;margin-left:10px}
 | 
			
		||||
.wst-footer-info-text>h1{margin-bottom:5px;font-size:16px;color:#505050}
 | 
			
		||||
.wst-footer-info-text>p{color:#6c6c6c;font-size:}
 | 
			
		||||
.wst-nav-menus{border-bottom:2px solid #df2003;height:36px;margin:0 auto;min-width:1200px}#wst-categorys{float:left;height:36px;overflow:visible;position:relative;width:210px;z-index:10;top:2px}
 | 
			
		||||
#wst-categorys .dt a{background:url(../img/icon_fenleitubiao.png) no-repeat 16px;background-color:#df2003;color:#fff;text-indent:30px;display:block;font:400 15px/36px "microsoft yahei";height:36px;padding:0 10px;text-decoration:none;width:190px}
 | 
			
		||||
#wst-categorys .dd{background:rgba(38,38,38,0.7) none repeat scroll 0 0;min-height:400px}
 | 
			
		||||
#wst-categorys .dd-inner .item{color:#ff2706;height:35px;position:relative;z-index:1;transition:padding 100ms ease-in;-moz-transition:padding 100ms ease-in;-webkit-transition:padding 100ms ease-in;-o-transition:padding 100ms ease-in}
 | 
			
		||||
#wst-categorys .dd-inner .item a{color:#fff}
 | 
			
		||||
#wst-categorys .dd-inner h3{font-size:13px;font-weight:400;height:31px;line-height:31px;padding:0 10px;position:absolute;z-index:2}
 | 
			
		||||
#wst-categorys .dd-inner i{font:400 9px/14px consolas;height:14px;position:absolute;right:14px;top:9px;width:4px;z-index:1}
 | 
			
		||||
#wst-categorys .dd-inner .hover{height:33px;border-left:1px solid #eee;border-top:1px solid #eee;border-bottom:1px solid #eee;background:#f7f7f7 none repeat scroll 0 0;color:#b61d1d}
 | 
			
		||||
#wst-categorys .dd-inner .hover a{color:#ff0c00}#wst-categorys .dd-inner .hover i{background:#f7f7f7 none repeat scroll 0 0;height:31px;left:205px;line-height:200px;overflow:hidden;top:0;width:14px}
 | 
			
		||||
#wst-categorys .dorpdown-layer{background:#f7f7f7 none repeat scroll 0 0;border:1px solid #eee;display:none;left:209px;overflow:hidden;position:absolute;top:36px;width:779px;min-height:600px}
 | 
			
		||||
#wst-categorys .dorpdown-layer .hover{display:block}
 | 
			
		||||
#wst-categorys .item-sub{display:block;overflow:hidden}
 | 
			
		||||
.cat2_tit{color:#333;font-weight:bold}
 | 
			
		||||
.cat2_tit i{font-style:normal;}
 | 
			
		||||
#wst-categorys .item-sub::after{clear:both;content:".";display:block;height:0}
 | 
			
		||||
#wst-categorys .subitems{background:#f7f7f7 none repeat scroll 0 0;float:left;margin-bottom:-10px;padding:6px 0 10px 20px;width:570px}#wst-categorys .subitems dl{line-height:2em;overflow:hidden;width:100%}
 | 
			
		||||
#wst-categorys .subitems dl.fore1 dd{border-top:medium none}#wst-categorys .subitems dt{background:#3B3B3B none repeat scroll 0 0;color:#fff;display:inline-block;line-height:24px;height:24px;margin-right:10px;padding:0 0 0 8px;white-space:nowrap}
 | 
			
		||||
#wst-categorys .subitems dt a{color:#fff}#wst-categorys .subitems dt i{font:400 9px/14px consolas;height:24px;margin-left:8px;width:23px;display:inline-block;color:#fff}
 | 
			
		||||
#wst-categorys .subitems dd{border-bottom:1px dashed #eee;padding:6px 0;width:570px}
 | 
			
		||||
#wst-categorys .subitems dd a{float:left;height:16px;line-height:16px;margin:4px 0;padding:0 8px;white-space:nowrap;color:#666}
 | 
			
		||||
#wst-categorys .subitems dd a:hover{color:#ff0c00}
 | 
			
		||||
#wst-categorys .item-brands{display:inline;float:right;margin:10px 10px 10px 0;overflow:hidden;width:178px}
 | 
			
		||||
#wst-categorys .item-brands .brands-inner{height:270px}#wst-categorys .item-brands .shops-inner{height:180px}#wst-categorys .item-brands a{display:inline;float:left;margin:7px 0 0 6px}
 | 
			
		||||
#wst-categorys .item-promotions{display:inline;float:right;margin-right:20px;width:168px}#wst-categorys .item-promotions a{display:block;margin-bottom:1px}
 | 
			
		||||
#wst-nav-items{float:left;position:relative;z-index:2}#wst-nav-items .spacer,#wst-nav-items a,#wst-nav-items li,#wst-nav-items ul{float:left}#wst-nav-items ul{width:990px;overflow:hidden;height:36px}
 | 
			
		||||
#wst-nav-items .spacer{display:none}
 | 
			
		||||
#wst-nav-items a{color:#333;font:400 16px/36px "microsoft yahei";height:36px;padding:0 20px;text-align:center;text-decoration:none}
 | 
			
		||||
#wst-nav-items a:hover{color:#ff2708}#wst-nav-items .spacer{background:#ddd none repeat scroll 0 0;height:24px;margin:10px 0 0;overflow:hidden;width:1px}
 | 
			
		||||
.wst-right-panel{height:418px;width:210px;}
 | 
			
		||||
.cat-icon-1,.cat-icon-2,.cat-icon-3,.cat-icon-4,.cat-icon-5,.cat-icon-6,.cat-icon-7,.cat-icon-8,.cat-icon-9,.cat-icon-10,.cat-icon-11,.cat-icon-12,.over-cat-icon{float:left;background:url(../img/icon_goodsclass_list.png) no-repeat;width:25px;height:25px;margin-top:5px;margin-right:5px; background-size: 457%; }
 | 
			
		||||
.cat-icon-1{background-position:-17px -19px} 
 | 
			
		||||
.cat-icon-1-hover{background-position:-76px -19px}
 | 
			
		||||
.cat-icon-2{background-position:-17px -78px}
 | 
			
		||||
.cat-icon-2-hover{background-position:-76px -78px}
 | 
			
		||||
.cat-icon-3{background-position:-17px -140px}
 | 
			
		||||
.cat-icon-3-hover{background-position:-76px -140px}
 | 
			
		||||
.cat-icon-4{background-position:-17px -200px}
 | 
			
		||||
.cat-icon-4-hover{background-position:-76px -200px}
 | 
			
		||||
.cat-icon-5{background-position:-17px -259px}
 | 
			
		||||
.cat-icon-5-hover{background-position:-76px -259px}
 | 
			
		||||
.cat-icon-6{background-position:-17px -318px}
 | 
			
		||||
.cat-icon-6-hover{background-position:-76px -318px}
 | 
			
		||||
.cat-icon-7{background-position:-17px -378px}
 | 
			
		||||
.cat-icon-7-hover{background-position:-76px -378px}
 | 
			
		||||
.cat-icon-8{background-position:-17px -438px}
 | 
			
		||||
.cat-icon-8-hover{background-position:-76px -438px}
 | 
			
		||||
.cat-icon-9{background-position:-17px -500px}
 | 
			
		||||
.cat-icon-9-hover{background-position:-76px -500px}
 | 
			
		||||
.cat-icon-10{background-position:-17px -562px}
 | 
			
		||||
.cat-icon-10-hover{background-position:-76px -562px}
 | 
			
		||||
.cat-icon-11{background-position:-17px -623px}
 | 
			
		||||
.cat-icon-11-hover{background-position:-76px -623px}
 | 
			
		||||
.cat-icon-12{background-position:-17px -682px}
 | 
			
		||||
.cat-icon-12-hover{background-position:-76px -682px}
 | 
			
		||||
.over-cat-icon{background-position:-17px -682px}
 | 
			
		||||
.over-cat-icon-hover{background-position:-76px -682px}
 | 
			
		||||
.wst-route{padding:10px 0}
 | 
			
		||||
.wst-route,.wst-route a{color:#6c6c6c;font-size:14px;font-family:fantasy}
 | 
			
		||||
.wst-route a:hover{color:#eb5f43;cursor:pointer}
 | 
			
		||||
.wst-grey-btn{display:inline-block;border-radius:2px;background:#f7f7f7;text-align:center;text-decoration:none;cursor:pointer;border:1px solid #DDD;padding:3px 13px 3px;color:#666;background-color:#f7f7f7;background-repeat:repeat-x;background-image:-moz-linear-gradient(top,#f7f7f7,#f2f2f2);background-image:-webkit-linear-gradient(top,#f7f7f7,#f2f2f2);background-image:-o-linear-gradient(top,#f7f7f7,#f2f2f2);background-image:linear-gradient(top,#f7f7f7,#f2f2f2);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7f7f7',endColorstr='#f2f2f2',GradientType=0)}
 | 
			
		||||
.wst-grey-btn:hover{color:red}#wst-pager{text-align:center;margin-top:20px}
 | 
			
		||||
.icon-phone,.icon-email{background:url(../img/iconfont_fotter.png) no-repeat}
 | 
			
		||||
.icon-phone{width:40px;height:30px;background-position:2px 5px;float:left}
 | 
			
		||||
.icon-email{width:40px;height:30px;background-position:-34px 2px;float:left}
 | 
			
		||||
.qr-code{width:100%;height:85px}
 | 
			
		||||
.qr-code img{float:left;margin-right:5px}
 | 
			
		||||
.call-wst{font-size:15px;color:#080808;float:left;line-height:30px;font-weight:bold}
 | 
			
		||||
.email-wst{font-size:25px;color:#000;float:left;line-height:30px;text-indent:16px;font-family:"microsoft yahei"}
 | 
			
		||||
.mb-wst{float:left;width:110px;height:90px;margin-top:10px}
 | 
			
		||||
.focus-wst{float:left;height:100%;width:158px}
 | 
			
		||||
.focus-wst-qr{height:20px;color:#171717;margin-top:2px;font-weight:bold}
 | 
			
		||||
.focus-wst-qra{height:20px;margin:6px 0 6px 0}
 | 
			
		||||
.focus-wst-qre{height:20px;margin-top:3px;font-size:15px}
 | 
			
		||||
.wst-contact{float:left;width:275px;height:165px;margin-left:6px;margin-top:5px}#verifyImg,#verifyImg2,#verifyImg3{cursor:pointer}
 | 
			
		||||
.wst-empty{width:650px;height:510px;margin:0 auto}
 | 
			
		||||
.empty1{background:url(../img/bgimg_error_ymcc.png) 0 123px no-repeat}
 | 
			
		||||
.empty2{background:url(../img/bgimg_error_xtcc.png) 0 123px no-repeat}
 | 
			
		||||
.empty3{background:url(../img/bgimg_error_spcc.png) 0 123px no-repeat}
 | 
			
		||||
.wst-empty .prompt{padding-top:123px;width:600px;margin:0 auto;text-align:center}
 | 
			
		||||
.wst-empty .prompt p,.wst-empty .prompt2 p,.wst-empty .prompt3 p{color:#2fc474;font-size:18px;line-height:26px;font-family:"microsoft yahei"}
 | 
			
		||||
.wst-empty .button{padding-top:250px;width:320px;margin:0 auto}
 | 
			
		||||
.wst-empty-btn{color:#fff;cursor:pointer;float:left;font-size:16px;font-weight:400;line-height:38px;width:123px;position:relative;text-decoration:none;text-transform:uppercase;vertical-align:middle;text-align:center;font-family:"microsoft yahei";border-radius:3px;margin:0 10px}
 | 
			
		||||
.wst-empty-btn1{background:#f9a818;font-weight:100}
 | 
			
		||||
.wst-empty-btn1:hover{background:#f6bd57;font-weight:900;letter-spacing:1px}
 | 
			
		||||
.wst-empty .prompt2{padding-top:160px;width:475px;margin:0 auto}
 | 
			
		||||
.wst-empty .prompt2 span{color:#fa3e3f;font-weight:bold;font-size:20px;line-height:52px;font-family:"microsoft yahei"}
 | 
			
		||||
.button2{padding-top:160px;width:520px;margin:0 auto}
 | 
			
		||||
.wst-empty .prompt3{padding-top:355px;width:588px;margin:0 auto}
 | 
			
		||||
.button3{padding-top:23px;width:520px;margin:0 auto}
 | 
			
		||||
.wst-loading-img{vertical-align:middle}
 | 
			
		||||
.lbel{border-radius:.25em;color:#fff;display:inline;font-weight:700;line-height:1;padding:.2em .6em .3em;text-align:center;vertical-align:baseline;white-space:nowrap}
 | 
			
		||||
a.lbel:hover,a.lbel:focus{color:#fff;cursor:pointer;text-decoration:none}
 | 
			
		||||
.lbel:empty{display:none}
 | 
			
		||||
.lbel-default{background-color:#777}
 | 
			
		||||
.lbel-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}
 | 
			
		||||
.lbel-primary{background-color:#428bca}
 | 
			
		||||
.lbel-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}
 | 
			
		||||
.lbel-success{background-color:#5cb85c}
 | 
			
		||||
.lbel-success[href]:hover,.label-success[href]:focus{background-color:#449d44}
 | 
			
		||||
.lbel-info{background-color:#5bc0de}
 | 
			
		||||
.lbel-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}
 | 
			
		||||
.lbel-warning{background-color:#f0ad4e}
 | 
			
		||||
.lbel-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}
 | 
			
		||||
.lbel-danger{background-color:#d9534f}
 | 
			
		||||
.lbel-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}
 | 
			
		||||
.lbel-gray{background-color:#e6e6e6}
 | 
			
		||||
.lbel-gray[href]:hover,.label-danger[href]:focus{background-color:#eee}
 | 
			
		||||
.wst-tips-box{height:auto;line-height:25px;-moz-border-radius:5px;-webkit-border-radius:5px;color:red;border:1px dotted #f0a869;background:#ffc;padding:5px 5px 5px 15px;margin-left:10px;margin-bottom:5px;margin-top:10px}
 | 
			
		||||
.wst-tips-box .icon{width:20px;height:20px;float:left;background:url('../img/icon_tstb.png') no-repeat;background-size:100%}
 | 
			
		||||
.wst-tips-box .tips{float:left;padding-left:5px}
 | 
			
		||||
.s-wst-slide-items li{overflow:hidden}
 | 
			
		||||
.s-wst-slide-numbox{position:absolute;bottom:10px;width:100%}
 | 
			
		||||
.s-wst-slide-items{max-width:100%}
 | 
			
		||||
.s-wst-slide-controls{width:200px;text-align:center;margin:0 auto;z-index:10}
 | 
			
		||||
.s-wst-slide-controls span{width:13px;height:13px;text-align:center;display:inline-block;border-radius:12px;background-color:#ccc;color:white;cursor:pointer}
 | 
			
		||||
.s-wst-slide-controls .curr{background-color:#eadfdf;border-radius:12px;color:white;cursor:pointer}
 | 
			
		||||
.s-wst-slide{position:relative}
 | 
			
		||||
.line-break{word-break:break-all;word-wrap:break-word}
 | 
			
		||||
.btn-submit{width:100px;height:32px;line-height:32px;display:inline-block;position:relative;background:#e45050;color:#fff;text-align:center;font-family:'Ubuntu',sans-serif;font-size:15px;font-weight:bold;text-decoration:none;border-radius:3px;overflow:hidden;-webkit-transition:all .15s ease-in;transition:all .15s ease-in}
 | 
			
		||||
.btn-submit:before{content:' ';position:absolute;background:#fff;width:25px;height:50px;top:0;left:-45px;opacity:.3;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;-webkit-transform:skewX(-25deg);transform:skewX(-25deg)}
 | 
			
		||||
.btn-submit:hover:before{width:45px;left:205px}
 | 
			
		||||
.btn-cancel{width:100px;height:32px;line-height:32px;display:inline-block;position:relative;background:#f0efef;border:solid 1px #f0f0f0;color:#555;text-align:center;font-family:'Ubuntu',sans-serif;font-size:15px;font-weight:bold;text-decoration:none;border-radius:3px;overflow:hidden;-webkit-transition:all .15s ease-in;transition:all .15s ease-in}
 | 
			
		||||
.wst-stript{width: 100%;height: 20px;color: #666;}
 | 
			
		||||
.wst-stript .stript-left{width: 36%;height: 1px;background: RGB(51,51,51);display: inline-block;margin-bottom: 5px;}
 | 
			
		||||
.wst-stript .stript-right{width: 36%;height: 1px;background: RGB(51,51,51);display: inline-block;margin-bottom: 5px;}
 | 
			
		||||
							
								
								
									
										1432
									
								
								hyhproject/home2/view/default/css/goods.css
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1432
									
								
								hyhproject/home2/view/default/css/goods.css
									
									
									
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										243
									
								
								hyhproject/home2/view/default/css/goodslist.css
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										243
									
								
								hyhproject/home2/view/default/css/goodslist.css
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,243 @@
 | 
			
		||||
@CHARSET "UTF-8";
 | 
			
		||||
.wst-hot-sales{background:#f1f1f1;width:1200px;margin-left: auto; margin-right: auto;margin-top:10px;padding:15px 0px;overflow:hidden;height:112px;}
 | 
			
		||||
.wst-hot-sales .wst-sales-logo{width:60px;float:left;text-align: center;position:relative;}
 | 
			
		||||
.wst-hot-sales .wst-sales-box{float:left;width:1130px;overflow:hidden;}
 | 
			
		||||
.wst-hot-sales .wst-sales-logo .wst-hot-icon{position: absolute;top:0;left:20px;width:19px;height: 70px;padding:2px 10px;background:url(../img/img_bg_goodslist_tjrm.png) 4px 0px no-repeat;text-align: center;writing-mode:tb-rl;}
 | 
			
		||||
.wst-hot-sales .wst-sales-box .item{height:120px;width:263px;background:#fff;margin-left:17px;float:left;}
 | 
			
		||||
.wst-hot-sales .wst-sales-box .item .img{float:left;width:120px;height: 120px;margin:0 auto;text-align:center;vertical-align:middle;display:block;position:relative;display:table-cell;}
 | 
			
		||||
.wst-hot-sales .wst-sales-box .item .img  a{display:table-cell;vertical-align:middle;width:120px; height:120px; padding:5px;} 
 | 
			
		||||
.wst-hot-sales .wst-sales-box .item .img a img{max-width:110px;max-height:110px; } 
 | 
			
		||||
.wst-hot-sales .wst-sales-box .item .des{float:left;width:130px;height: 120px; padding:5px;line-height:20px;}
 | 
			
		||||
.wst-hot-sales .wst-sales-box .item .des .p-sale{font-weight: bold;color:#C00;}
 | 
			
		||||
.wst-hot-sales .wst-sales-box .item .des .p-name{height: 40px;line-height: 20px;overflow: hidden;}
 | 
			
		||||
.wst-hot-sales .wst-sales-box .item .des .p-price{font-weight: bold;color:#C00;}
 | 
			
		||||
.wst-hot-sales .wst-sales-box .item .des .p-buy a {display: inline-block;line-height: 14px;height: 14px;border-radius: 2px;background: #F7F7F7;text-align: center;text-decoration: none;cursor: pointer;border: 1px solid #DDD;padding: 4px 13px 5px;color: #666;background-color: #f7f7f7;background-repeat: repeat-x;background-image: -moz-linear-gradient(top,#f7f7f7,#f2f2f2);background-image: -webkit-linear-gradient(top,#f7f7f7,#f2f2f2);background-image: -o-linear-gradient(top,#f7f7f7,#f2f2f2);background-image: linear-gradient(top,#f7f7f7,#f2f2f2);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7f7f7', endColorstr='#f2f2f2', GradientType=0);}
 | 
			
		||||
.wst-hot-sales .wst-sales-box .item .des .p-buy a:hover{color:#df2003;}
 | 
			
		||||
.wst-filters{width:1200px;margin-left: auto;margin-right: auto;margin-top:10px;color:#999;}
 | 
			
		||||
.wst-filters div.item,.wst-address div.item{float:left;margin-right:6px;position:relative;}
 | 
			
		||||
.wst-filters .arrow,.wst-address .arrow{float:left;position: relative;top:2px;padding-right:12px;font-style: normal;}
 | 
			
		||||
.wst-filters .item .link,.wst-address .item .link{color:#666;float:left;border:0px;margin-right:5px;height:22px;line-height: 22px;}
 | 
			
		||||
.wst-filters .item .drop-down,.wst-address .item .drop-down{float:left;margin-right:5px;border: 1px solid #eee;display: inline-block;height: 23px;line-height: 23px;padding: 0 4px 0 8px;vertical-align: top;position: relative;background-color: #fff;  }
 | 
			
		||||
.wst-filters .item .drop-down .drop-down-arrow,.wst-address .item .drop-down .drop-down-arrow{display: inline-block;width: 20px;height: 20px;vertical-align: top;background: url(../img/search.png) no-repeat 4px 7px;-webkit-transition: background-position .15s ease-in-out;-moz-transition: background-position .15s ease-in-out;transition: background-position .15s ease-in-out;} 
 | 
			
		||||
.wst-filters .item .drop-down.hover{border-color:#df2003;border-bottom:0;z-index: 100}
 | 
			
		||||
.wst-address .item .drop-down.hover{border-color:#ddd;border-bottom:0;z-index: 2}
 | 
			
		||||
.wst-filters .item .drop-down.hover .drop-down-arrow,.wst-address .item .drop-down.hover .drop-down-arrow{background-position: 4px -44px;}
 | 
			
		||||
.wst-filters .item .dorp-down-layer{border: 1px solid #ddd;border-top:0;display:none;left:0px;top:22px;position:absolute;z-index: 99;background:#fff;min-width: 320px;border: 1px solid #df2003;}
 | 
			
		||||
.wst-address .item .dorp-down-layer{padding:10px;border: 1px solid #ddd;border-top:0;display:none;left:0px;top:22px;position:absolute;z-index: 1;background:#fff;min-width: 320px;border: 1px solid #ddd;}
 | 
			
		||||
.wst-filters .item .dorp-down-layer div.cat1,.wst-address .item .dorp-down-layer div.cat1{float:left;width:140px;  overflow: hidden;text-overflow: ellipsis;white-space: nowrap;padding: 4px 8px;}
 | 
			
		||||
.wst-filters .item .dorp-down-layer div.cat2,.wst-address .item .dorp-down-layer div.cat2{float:left;width:80px;  overflow: hidden;text-overflow: ellipsis;white-space: nowrap;padding: 4px 8px;}
 | 
			
		||||
.wst-filters .item .dorp-down-layer div:hover,.wst-filters .item .dorp-down-layer a:hover{color:#df2003;cursor:pointer;}
 | 
			
		||||
.wst-address .item .dorp-down-layer div:hover,.wst-address .item .dorp-down-layer a:hover{color:#ff8043;;cursor:pointer;}
 | 
			
		||||
.wst-filters .item .v-item,.wst-address .item .v-item{float:left;color:#666;border: 1px solid #ddd;cursor: pointer;display: inline-block;font-size: 12px;height: 22px;line-height: 22px;margin: 0 5px 5px 0;padding: 0 30px 0 4px;position: relative;vertical-align: top;}
 | 
			
		||||
.wst-filters .item .v-item:hover,.wst-address .item .v-item:hover{border-color: #e4393c;}
 | 
			
		||||
.wst-filters .item .v-item i,.wst-address .item .v-item i{  display: block;position: absolute;  width: 25px;height: 22px;right: 0;text-align:center;font-style: normal;top: 0;}
 | 
			
		||||
.wst-filters .item .v-item:hover i,.wst-address .item .v-item:hover i{background-color: #e4393c;color: #fff;}
 | 
			
		||||
.wst-filters .keyword,.wst-address .keyword{height:22px;line-height:22px;}
 | 
			
		||||
.wst-selector{width:1200px;margin-left: auto;margin-right: auto;margin-top:10px;color:#999;}
 | 
			
		||||
.wst-selector .head{padding-left:10px;background: #f1f1f1 none repeat scroll 0 0;border-bottom: 1px solid #ddd;height: 34px;line-height: 34px;overflow: hidden;}
 | 
			
		||||
.wst-selector .main{}
 | 
			
		||||
.wst-selector .item{border-bottom: 1px solid #ddd;line-height: 90px;width:1200px;height:auto;border-bottom: 1px solid #ddd;}
 | 
			
		||||
.wst-selector .label{float:left;width:90px;padding-left:10px;}
 | 
			
		||||
.wst-selector .content{float:left;width:990px;height: 90px;overflow: hidden;}
 | 
			
		||||
.wst-selector .content .s-item{float:left;margin-right:50px;color:#666;cursor:pointer}
 | 
			
		||||
.wst-selector .extra{float:left;width:110px;margin-top: 5px;}
 | 
			
		||||
.extra_more{float: left;margin-right: 10px;position: relative;width: 39px;height: 23px;line-height: 23px;padding: 0 7px 0 4px;background: #fff;visibility: hidden;color: #333;border: 1px solid #ddd;}
 | 
			
		||||
.extra_multi{float: left;height: 23px;line-height: 23px;border: 1px solid #DDD;padding: 0 3px 0 18px;position: relative;background: #fff;color: #333;}
 | 
			
		||||
.extra_multi i,.extra_more i{position: absolute;display: block;font-style: normal;width: 13px;height: 20px;background-image: url(../img/search.png);transition:all ease 0.2s;}
 | 
			
		||||
.extra_more i{top: 1px;right: 2px;width: 20px;background-position: 4px 7px;}
 | 
			
		||||
.extra_more:hover,.extra_more:hover i{color:red;background-position: 4px -10px;}
 | 
			
		||||
.extra_multi:hover,.extra_multi:hover i{border-color: red;color:red;background-position: 0px -84px;}
 | 
			
		||||
.extra_more_on i{background-position: 4px -27px!important}
 | 
			
		||||
.extra_more_on:hover i{background-position: 4px -44px!important}
 | 
			
		||||
.extra_multi i{left: 3px;top: 1px;background-position: 0 -63px;}
 | 
			
		||||
.multi_on{border: 2px solid #edd28b!important;background: #fffdee;height: 120px;width:1195px!important;}
 | 
			
		||||
.multi_btns{width: 100%;text-align: center;margin: 10px 0;}
 | 
			
		||||
.multi_btns a{display: inline-block;padding: 0px 7px;border: 1px solid #ddd;color: #666;background-color: #f7f7f7;border-radius: 2px;}
 | 
			
		||||
.multi_btns .confirm_btn{background-color: #E74649;color: #fff;margin-right: 10px;visibility:hidden;}
 | 
			
		||||
.multi_btns .disable_btn{background-color: #ddd;color: #fff;}
 | 
			
		||||
.s-item i{position: absolute;left: 0;top: 2px;background: url(../img/search.png) no-repeat 9999px 9999px;display: inline-block;height: 12px;width: 12px;background-color: #fff;border: 1px solid #ccc;font-size: 0;visibility: hidden;}
 | 
			
		||||
.selected i{border-color: #e4393c;background-position: -1px -107px!important;}
 | 
			
		||||
.multi_on .s-item i{visibility: visible;}
 | 
			
		||||
.s_chk{padding-left: 18px;position:relative}
 | 
			
		||||
.brand_itembox{padding: 1px 0!important;height: 70px;margin: 10px 0;}
 | 
			
		||||
.brand_item{width: 10%;border: 1px solid #DDD;margin: -1px -1px 0 0!important;height:80px;overflow:hidden;text-align: center;background-color: #fff;}
 | 
			
		||||
.brand_item a.s_chk{visibility: hidden!important;}
 | 
			
		||||
.brand_itembox .selected{position: relative;z-index: 10;border-color: #e4393c!important;}
 | 
			
		||||
.brand_itembox .selected .g_bd_imgbox{border-color: #e4393c;}
 | 
			
		||||
.brand_item:hover{position: relative;z-index: 10;border-color: #e4393c;box-shadow: 2px 2px 3px rgba(0,0,0,.12);}
 | 
			
		||||
.brand_item:hover .g_bd_imgbox{border-color: #e4393c;color:#e4393c}
 | 
			
		||||
.brand_item:hover .g_bd_img{display: none;}
 | 
			
		||||
.g_bd_img{width: 100%;height: 100%;}
 | 
			
		||||
.g_bd_imgbox{border:1px solid transparent;width:98%;height:80px;line-height: 80px;}
 | 
			
		||||
.wst-selector .item-more-box{border-top: 1px solid #ddd;position: relative;text-align: center;top: -1px;transition: border-color 0.15s ease-in-out 0s;}
 | 
			
		||||
.wst-selector .item-more-box .item-more{position: relative;top:-1px;border-top:0px;padding:0 40px 0 20px;background: #fff none repeat scroll 0 0;border-color: #fff #ddd #ddd; border-style: solid;border-width: 1px;color: #333;cursor: pointer;display: inline-block;height: 28px;line-height: 28px;position:relative;}
 | 
			
		||||
.wst-selector .item-more-box .item-more i{display: inline-block;width: 20px;height: 20px;vertical-align: top;background: url(../img/search.png) no-repeat;position:absolute;top:3px;}
 | 
			
		||||
.wst-selector .item-more-box .item-more i.drop-down{background-position: 4px 7px;}
 | 
			
		||||
.wst-selector .item-more-box .item-more i.down-hover{background-position:  4px -11px;}
 | 
			
		||||
.wst-selector .item-more-box .item-more i.drop-up{background-position:  4px -27px;}
 | 
			
		||||
.wst-selector .item-more-box .item-more i.up-hover{background-position:  4px -44px;}
 | 
			
		||||
.wst-selector .item-more-box .item-more i.drop-down-icon{background-position:  4px -9px;}
 | 
			
		||||
.wst-selector .item-more-box:hover {border-color: #e4393c;}
 | 
			
		||||
.wst-selector .item-more-box:hover .item-more {border-color: #fff #e4393c #e4393c;color: #e4393c;}
 | 
			
		||||
.wst-container .goods-side{float:left;width:210px;margin-top:10px;margin-right:5px;}
 | 
			
		||||
.wst-container .goods-side .title{line-height:35px;background-color: #f7f7f7;text-align: center;}
 | 
			
		||||
.wst-container .goods-side .guess-like{min-height:300px;border:1px solid #eee;padding-bottom:10px;}
 | 
			
		||||
.wst-container .goods-side .item{padding-top:10px;}
 | 
			
		||||
.wst-container .goods-side .item .img{width:200px;margin:0 auto;text-align:center;vertical-align:middle;display:block;position:relative; display:table-cell; padding:4px;}
 | 
			
		||||
.wst-container .goods-side .item .img  a{display:table-cell;vertical-align:middle;width:200px; height:200px;} 
 | 
			
		||||
.wst-container .goods-side .item .img a img{max-width:190px;max-height:190px;} 
 | 
			
		||||
.wst-container .goods-side .item .p-price{padding:5px;font-weight: bold;color:#C00;font-size:14px;}
 | 
			
		||||
.wst-container .goods-side .item .v-price{text-decoration: line-through;color:#999;margin-left: 10px;font-weight: normal;font-size:12px}
 | 
			
		||||
.wst-container .goods-side .hot-goods{min-height:300px;border:1px solid #eee;margin-top: 15px;padding-bottom:10px;}
 | 
			
		||||
.wst-container .goods-main{float:right;width:980px;margin-top:10px;position: relative;}
 | 
			
		||||
.goods-main .goods-filters{border-top: 1px solid #ddd;margin-bottom: 5px;position: relative;z-index:4;}
 | 
			
		||||
.goods-main .goods-filters .line{padding:5px;height:25px;border-bottom: 1px solid #e5e5e5;}
 | 
			
		||||
.goods-main .goods-filters .line2{background:#f7f7f7;}
 | 
			
		||||
.goods-filters .line2 a{background: #fff none repeat scroll 0 0;border: 1px solid #e9e7e7;color: #333;float: left;height: 23px;line-height: 23px;padding: 0 20px;}
 | 
			
		||||
.goods-filters .line2 a:hover{border:1px solid #DF2003;}
 | 
			
		||||
.goods-filters .line .city{float:left;width:auto;}
 | 
			
		||||
.goods-filters .line .chk{float:left;height: 23px;line-height: 23px;margin-right:10px;}
 | 
			
		||||
.goods-filters .line a.curr {background: #DF2003 none repeat scroll 0 0;border: 1px solid #DF2003;color: #fff;}
 | 
			
		||||
.goods-filters .line .store,.goods-filters .line .store2,.goods-filters .line .store3{float:right;width:16px;height:13px;margin:5px 0px 0px 3px;}
 | 
			
		||||
.goods-filters .line .store{background:url(../img/store_icon_sx.png) 0px 0px no-repeat;}
 | 
			
		||||
.goods-filters .line .store2{background:url(../img/store_icon_sx_sel.png) 0px 0px no-repeat;}
 | 
			
		||||
.goods-filters .line .store3{background:url(../img/store_icon_sx_sel_up.png) 0px 0px no-repeat;}
 | 
			
		||||
.wst-price-ipts{float:left;position: relative;}
 | 
			
		||||
input.wst-price-ipt{width:66px;height: 19px;outline: none;padding-left:18px;border: 1px solid #e9e7e7;}
 | 
			
		||||
input.wst-price-ipt:focus{border: 1px solid #ff8043;}
 | 
			
		||||
.wst-price-ipt1{position: absolute;left: 14px;top: 4px;}
 | 
			
		||||
.wst-price-ipt2{position: absolute;right: 74px;top: 4px;}
 | 
			
		||||
.wst-price-but{outline: none;background:#f7f7f7;color: #9f9696;border: 1px solid #dad7d7;cursor:pointer;}
 | 
			
		||||
.wst-price-but:not(.disabled):not(:disabled):active, .wst-price-but.active{background: #f1f1f1;background-clip: padding-box;}
 | 
			
		||||
.goods-list{width:100%;}
 | 
			
		||||
.goods-list .goods{width:233px;margin:5px 4px 5px 6px;border:1px solid #eee;float:left;height:430px;}
 | 
			
		||||
.goods-list .goods:hover{border:1px solid #ddd;-webkit-box-shadow:0 0 10px #ddd;  -moz-box-shadow:0 0 10px #ddd;  box-shadow:0 0 10px #ddd;}
 | 
			
		||||
.goods-list .goods .img{width:233px;margin:0 auto;text-align:center;vertical-align:middle;display:block;position:relative; display:table-cell; padding:4px;}
 | 
			
		||||
.goods-list .goods .img  a{display:table-cell;vertical-align:middle;width:233px; height:233px;} 
 | 
			
		||||
.goods-list .goods .img a img{max-width:210px;max-height:210px;} 
 | 
			
		||||
.goods-list .goods .p-price{height:26px;line-height:26px;padding:5px 0px 5px 12px;font-weight: bold;color:#C00;font-size:14px;width:113px;float:left;overflow: hidden;}
 | 
			
		||||
.goods-list .goods .p-hsale{padding:5px 12px 5px 0;width:93px;float:right;text-align: right;}
 | 
			
		||||
.goods-list .goods .p-hsale span{font-weight: bold;color:#df2003;}
 | 
			
		||||
.goods-list .goods .p-hsale .p-add-cart{line-height: 24px;display: block;border: 1px solid #DF2003;width: 75px;height: 24px;text-align: center;color: #DF2003;float: right;}
 | 
			
		||||
.goods-list .goods .p-hsale .p-add-cart:hover{background: #DF2003;color: white;}
 | 
			
		||||
.goods-list .goods .p-name{height: 40px;line-height: 20px;overflow: hidden;width:210px;margin-left:12px;}
 | 
			
		||||
.goods-list .goods .p-shop{padding:5px 5px 5px 12px;position: relative;}
 | 
			
		||||
.goods-list .goods .p-shop .contrast{position: absolute;padding-left: 17px;top:5px;right:10px;z-index: 1;}
 | 
			
		||||
.goods-list .goods .p-shop .contrast:hover{color:#e4393c;}
 | 
			
		||||
.goods-list .goods .p-shop .contrast i{position: absolute;top: 3px;left: 0;width: 14px;height: 14px;background: url(../img/contrast.png) 0 0 no-repeat;background-size: 100%;}
 | 
			
		||||
.goods-list .goods .p-mprice{color:#999;padding:5px 0px 5px 12px;width:113px;float:left;}
 | 
			
		||||
.goods-list .goods .p-mprice span{text-decoration: line-through;}
 | 
			
		||||
.goods-list .goods .p-appraise{padding:5px 5px 5px 0px;width:100px;float:right;text-align: right;}
 | 
			
		||||
.goods-list .goods .p-appraise span{font-weight: bold;color:#1499E5;}
 | 
			
		||||
.goods-list .goods .tags{padding-left:10px;}
 | 
			
		||||
.goods-list .goods .tags .tag{background:#DF2003;color:#ffffff;padding:0px 4px 1px 4px;margin-right:5px;border-radius:8%}
 | 
			
		||||
.img_list{padding-left: 5px;}
 | 
			
		||||
.img_list li{float:left;width: 25px;height: 25px;margin-right: 2px;box-sizing:border-box;}
 | 
			
		||||
.img_list li.curr{border: 1px solid red;}
 | 
			
		||||
.img_list li img{max-width: 100%;max-height: 100%;}
 | 
			
		||||
.wst-recommend,.wst-relook{margin-bottom: 20px;height:410px;border:1px solid #ddd;}
 | 
			
		||||
.wst-recommend .title,.wst-relook .title, .wst-gview .title{line-height:35px;background-color: #f7f7f7;padding:0 10px;border-top:2px solid #ddd;}
 | 
			
		||||
.tgoods-list{width:100%;}
 | 
			
		||||
.tgoods-list .goods{width:230px;margin:5px 0px 5px 6px;border:1px solid #ddd;float:left;}
 | 
			
		||||
.tgoods-list .goods:hover{border:1px solid #ddd;-webkit-box-shadow:0 0 10px #ddd;  -moz-box-shadow:0 0 10px #ddd;  box-shadow:0 0 10px #ddd;  }
 | 
			
		||||
.tgoods-list .goods .img{width:230px;margin:0 auto;text-align:center;vertical-align:middle;display:block;position:relative; display:table-cell; padding:4px;}
 | 
			
		||||
.tgoods-list .goods .img  a{display:table-cell;vertical-align:middle;width:230px; height:230px;} 
 | 
			
		||||
.tgoods-list .goods .img a img{max-width:223px;max-height:223px;} 
 | 
			
		||||
.tgoods-list .goods .p-price{padding:5px 0px 5px 5px;font-weight: bold;color:#df2003;width:120px;float:left;font-size:14px;}
 | 
			
		||||
.tgoods-list .goods .p-hsale{padding:5px 5px 5px 0;width:100px;float:right;text-align: right;}
 | 
			
		||||
.tgoods-list .goods .p-hsale span{font-weight: bold;color:#df2003;}
 | 
			
		||||
.tgoods-list .goods .p-hsale .p-add-cart{line-height: 15px;display: block;border: 1px solid #ff6a53;width: 75px;height: 15px;text-align: center;color: #ff6a53;float: right;}
 | 
			
		||||
.tgoods-list .goods .p-hsale .p-add-cart:hover{background: #ff6a53;color: white;}
 | 
			
		||||
.tgoods-list .goods .p-name{height: 40px;line-height: 20px;overflow: hidden;padding:0 5px;}
 | 
			
		||||
.tgoods-list .goods .p-shop{padding:5px;}
 | 
			
		||||
.tgoods-list .goods .p-mprice{color:#999;padding:5px 0px 5px 5px;width:120px;float:left;}
 | 
			
		||||
.tgoods-list .goods .p-mprice span{text-decoration: line-through;margin-left: 10px;font-weight: normal;}
 | 
			
		||||
.tgoods-list .goods .p-appraise{padding:5px 5px 5px 0;width:100px;float:right;text-align: right;}
 | 
			
		||||
.tgoods-list .goods .p-appraise span{font-weight: bold;color:#1499E5;}
 | 
			
		||||
.wst-gview{margin-top:10px;]margin-bottom: 20px;height:270px;border:1px solid #ddd;}
 | 
			
		||||
.wst-gview .view-goods .item{float:left;position:relative;width:162px;  margin: 5px 0px 5px 6px;border:1px solid #eeeeee;float:left;}
 | 
			
		||||
.wst-gview .view-goods .item:hover{border:1px solid #ddd;-webkit-box-shadow:0 0 10px #ddd;  -moz-box-shadow:0 0 10px #ddd;  box-shadow:0 0 10px #ddd;  }
 | 
			
		||||
.wst-gview .view-goods .item .img{width:156px;margin:0 auto;text-align:center;vertical-align:middle;display:block;position:relative; display:table-cell; padding:4px;}
 | 
			
		||||
.wst-gview .view-goods .item .img  a{display:table-cell;vertical-align:middle;width:156px; height:156px;} 
 | 
			
		||||
.wst-gview .view-goods .item .img a img{max-width:156px;max-height:156px;} 
 | 
			
		||||
.wst-gview .view-goods .item .p-price{padding:5px;font-weight: bold;color:#df2003;}
 | 
			
		||||
.wst-gview .view-goods .item .v-price{text-decoration: line-through;color:#999;margin-left: 6px;font-weight: normal;}
 | 
			
		||||
/*自定义复选框-列*/
 | 
			
		||||
.checkbox-box-s{float:left;width:15px;height:20px;margin-top: 3px;}
 | 
			
		||||
.wst-checkbox-s + label {-webkit-appearance: none;background-color: #ffffff;border: 1px solid #d5d5d5;padding: 6px;display: inline-block;position: relative;}
 | 
			
		||||
.wst-checkbox-s + label:after {content: '\2714';color: #ccc;font-size: 13px;position: absolute;top: -5px;left: 1px;}
 | 
			
		||||
.wst-checkbox-s:checked + label{border: 1px solid #ff8043;/* 修改选框选中颜色*/}
 | 
			
		||||
.wst-checkbox-s:checked + label:after {content: '\2714';color: #ff8043;font-size: 13px;position: absolute;top: -5px;left: 1px;}
 | 
			
		||||
.checkbox-box-s .wst-checkbox-s{position:relative;z-index:-654;left:-6px;top:-1px;}
 | 
			
		||||
.checkbox-box-s label{position: relative;top:-24px;left:-4px;}
 | 
			
		||||
.wst-no-goods{height: 50px;line-height:50px;color:red;text-align:center;font-weight:bold;}
 | 
			
		||||
.wst-no-goods span{color:#999;}
 | 
			
		||||
/*发货地*/
 | 
			
		||||
.tab-header{border-bottom:2px solid #df2003;width: 100%;height:20px;background: #fff;}
 | 
			
		||||
.tab li{display:block;margin:0px;float:left;background-color:#fff;height:20px;}
 | 
			
		||||
.tab-item1 a{background: #fff;color:gray;border:1px solid #ddd;float:left;min-width:80px;width:auto;text-align: center;}
 | 
			
		||||
.j-tab-selected1 a{background: #fff;border:2px solid #df2003;border-bottom: #fff solid 2px;}
 | 
			
		||||
.area{float: left;overflow: hidden;padding: 4px 8px;text-overflow: ellipsis;white-space: nowrap;width: 80px;}
 | 
			
		||||
.area-box li{float:left;width:80px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;padding: 4px 8px;}
 | 
			
		||||
/*商品对比*/
 | 
			
		||||
.wst-contrast{width: 100%;padding-top: 20px;padding-bottom: 29px;}
 | 
			
		||||
.wst-contrast .goods{background: #fff;}
 | 
			
		||||
.wst-contrast .goods .table,.wst-contrast .table2{width: 100%;border-collapse: collapse;table-layout: fixed;border-top: 1px solid #e4e4e4;border-left: 1px solid #e4e4e4;margin-top: -1px;}
 | 
			
		||||
.wst-contrast .goods .table td,.wst-contrast .goods .table th{padding: 20px 0 16px;border-right: 1px solid #e4e4e4;border-bottom: 1px solid #e4e4e4;line-height: 24px;font-family: SimSun;background: #fff;}
 | 
			
		||||
.wst-contrast .goods .table th{width: 125px;text-align: right;font-weight: 400;background: #f7f7f7;color: #999;}
 | 
			
		||||
.wst-contrast .choice{margin-left: 10px;margin-bottom: 10px;text-align: left;}
 | 
			
		||||
.wst-contrast .choice input{margin-right: 5px;vertical-align: middle;}
 | 
			
		||||
.wst-contrast .choice label {display: inline-block;height: 16px;line-height: 16px;vertical-align: middle;color: #666;}
 | 
			
		||||
.wst-contrast .goods-item{width: 200px;margin: 0 auto;}
 | 
			
		||||
.wst-contrast .goods-item:hover .operation .del{opacity: 1;}
 | 
			
		||||
.wst-contrast .goods-item .img{width: 100%;height: 160px;text-align: center;}
 | 
			
		||||
.wst-contrast .goods-item .img img{width: 160px;border: 0;vertical-align: middle;}
 | 
			
		||||
.wst-contrast .goods-item .name{height: 32px;overflow: hidden;margin-top: 10px;line-height: 16px;color: #333;}
 | 
			
		||||
.wst-contrast .goods-item .price{height: 28px;line-height: 28px;margin-top: 10px;font-family: "Microsoft YaHei";font-size: 14px;color: #e4393c;}
 | 
			
		||||
.wst-contrast .goods-item .price span{font-size: 20px;font-weight: 400;}
 | 
			
		||||
.wst-contrast .goods-item .operation{position: relative;width: 100%;height: 30px;margin-top: 13px;}
 | 
			
		||||
.wst-contrast .goods-item .operation .see{display: block;margin-bottom: 10px;width: 80px;height: 30px;line-height: 30px;text-align: center;background: #e4393c;color: #fff;}
 | 
			
		||||
.wst-contrast .goods-item .operation .see:hover{background: #e75153;}
 | 
			
		||||
.wst-contrast .goods-item .operation .del{position: absolute;right: 0;top: 5px;font: 12px/20px SimSun;opacity: 0;}
 | 
			
		||||
.wst-contrast .goods-item .operation .del:hover{color: #e4393c;}
 | 
			
		||||
.wst-contrast .goods-fixed{position: fixed;top: 0;z-index: 100;left: 50%;width: 1200px;margin-left: -600px;}
 | 
			
		||||
.wst-contrast .goods-fixed .img{float:left;width: 100px;height: 100px;}
 | 
			
		||||
.wst-contrast .goods-fixed .img img{width: 90px;margin-top: 5px;}
 | 
			
		||||
.wst-contrast .goods-fixed .name{display: none;}
 | 
			
		||||
.wst-contrast .goods-fixed .price,.wst-contrast .goods-fixed .operation{float:left;width: 100px;}
 | 
			
		||||
.wst-contrast .goods-fixed .operation .del{right:-16px;}
 | 
			
		||||
.wst-contrast .goods-fixed2{display: none;}
 | 
			
		||||
.wst-contrast .goods-fixed2 th{height: 126px;}
 | 
			
		||||
.wst-contrast .table2 td,.wst-contrast .table2 th{padding: 20px 0 16px;border-right: 1px solid #e4e4e4;border-bottom: 1px solid #e4e4e4;line-height: 24px;font-family: SimSun;background: #fff;}
 | 
			
		||||
.wst-contrast .table2 th {width: 125px;text-align: right;font-weight: 400;background: #f7f7f7;color: #999;}
 | 
			
		||||
.wst-contrast .table2 .left-title{margin-right: 36px;}
 | 
			
		||||
.wst-contrast .table2 .right-title{padding-left: 35px;width: 200px;overflow: hidden;word-wrap: break-word;}
 | 
			
		||||
.wst-contrast .table2 .list-box{width: 200px;padding-left: 35px;}
 | 
			
		||||
.wst-contrast .table2 .list-box li{float: left;height: 29px;line-height: 29px;padding: 0 13px;border: 1px solid #d7d7d7;margin-right: 6px;margin-bottom: 6px;cursor: pointer;}
 | 
			
		||||
.wst-contrast .table2 .list-box li.img{padding:0;height: 40px;}
 | 
			
		||||
.wst-contrast .table2 .list-box li img{width: 40px;height: 40px;}
 | 
			
		||||
.wst-contrast .table2 .list-box li:hover{color: #e4393c;}
 | 
			
		||||
.wst-contrast .table2 .list-box li.active{color: #e4393c;border-color: #e4393c;}
 | 
			
		||||
.wst-contrast .table2 .identical_0.active td{background: #f4f9fd;}
 | 
			
		||||
.wst-contrast .table2 .identical_1.active{display: none;}
 | 
			
		||||
/*商品对比*/
 | 
			
		||||
.wst-cont-frame{position: fixed;bottom: -200px;right: 50%;margin-right: -602px;z-index: 100;width: 986px;height: 139px;background: #fff;-moz-box-shadow: 0 0 15px rgba(221,221,221,0.8);-webkit-box-shadow: 0 0 15px rgba(221,221,221,0.8);box-shadow: 0 0 15px rgba(221,221,221,0.8);-webkit-transition: all .2s linear;transition: all .2s linear;}
 | 
			
		||||
.wst-cont-frame.show{bottom: 0;}
 | 
			
		||||
.wst-cont-frame .head{height: 32px;border: 1px solid #ddd;border-bottom: 2px solid #e23c3d;position: relative;}
 | 
			
		||||
.wst-cont-frame .head span{float: left;width: 80px;height: 36px;line-height: 30px;text-align: center;font: 14px/30px 'microsoft yahei';position: relative;left: -1px;margin-top: -4px;background: #fff;border: 2px solid #e23c3d;border-bottom: 0;color: #e23c3d}
 | 
			
		||||
.wst-cont-frame .head .close{text-align: right;position: absolute;right: 0;top: 0;padding-right: 22px;height: 30px;line-height: 30px;color: #005aa0;}
 | 
			
		||||
.wst-cont-frame .list{border: 2px solid #e23c3d;border-top: none;position: relative;}
 | 
			
		||||
.wst-cont-frame .goods{padding: 6px;color: #ccc;height: 90px;overflow: hidden;}
 | 
			
		||||
.wst-cont-frame .term{float: left;overflow: hidden;margin-right: 10px;padding: 17px 10px 12px 0;border-right: 1px dotted #e23c3d;}
 | 
			
		||||
.wst-cont-frame .term:hover .info .price a{opacity: 1;}
 | 
			
		||||
.wst-cont-frame .term .img{float: left;margin-right: 5px;width: 48px;height: 48px;text-align: center;border: 1px solid #fff;overflow: hidden;}
 | 
			
		||||
.wst-cont-frame .term .info,.wst-cont-frame .list .term-empty .info{float: left;width: 140px;}
 | 
			
		||||
.wst-cont-frame .term .info .name{height:36px;line-height: 18px;overflow: hidden;display: block;color: #333;}
 | 
			
		||||
.wst-cont-frame .term .info .price span{color: #e4393c;font-size: 14px;font-family: Verdana;font-weight: bold;}
 | 
			
		||||
.wst-cont-frame .term .info .price a{padding-left: 10px;color: #005aa0;opacity: 0;}
 | 
			
		||||
.wst-cont-frame .term-empty{float: left;overflow: hidden;margin-right: 10px;padding: 17px 10px 12px 0;border-right: 1px dotted #e23c3d;}
 | 
			
		||||
.wst-cont-frame .term-empty .img{float: left;margin-right: 5px;width: 48px;height: 48px;text-align: center;color: #ccc;border: 1px solid #fff;font: 36px/48px arial;overflow: hidden;background: #f6f6f6;}
 | 
			
		||||
.wst-cont-frame .term-contrast{position: absolute;right: 22px;top: 22px;width: 85px;text-align: center;}
 | 
			
		||||
.wst-cont-frame .term-contrast .contrast{display: block;margin: 0 auto;margin-bottom: 10px;font: bold 14px/30px verdana;width: 60px;height: 30px;line-height: 30px;text-align: center;background: #e4393c;color: #fff;}
 | 
			
		||||
.wst-cont-frame .term-contrast .contrast:hover{background: #e75153;}
 | 
			
		||||
.wst-cont-frame .term-contrast .empty{color: #005aa0;}
 | 
			
		||||
							
								
								
									
										2299
									
								
								hyhproject/home2/view/default/css/index.css
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2299
									
								
								hyhproject/home2/view/default/css/index.css
									
									
									
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										84
									
								
								hyhproject/home2/view/default/css/login.css
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										84
									
								
								hyhproject/home2/view/default/css/login.css
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,84 @@
 | 
			
		||||
@CHARSET "UTF-8"; 
 | 
			
		||||
/*登录*/
 | 
			
		||||
body{margin: 0;
 | 
			
		||||
padding: 0;}
 | 
			
		||||
.wst-login_l{width: 99.9%; height:525px; background: url(../img/img_user.png)  no-repeat top center;}
 | 
			
		||||
.wst-login_l_shop{width: 99.9%; height:475px; background: url(../img/img_shop.png)  no-repeat top center;}
 | 
			
		||||
.wst-login_r{margin-top:3%; margin-right: 4%; padding:30px 100px 20px 46px; float:right; border:1px solid #dad7d7; background: white;box-shadow: 0 0 30px 5px rgba(0,0,0,.4);}
 | 
			
		||||
.wst-login-u{margin: 0 auto; width:120px; height:36px; display: block; font-size: 25px;  } 
 | 
			
		||||
input.wst-login-input-1{margin: 1px;float: left; padding:2px; padding-left:5px; font-size: 15px; outline: none; width:269px; height:36px;border:0;}
 | 
			
		||||
input.wst-login-input{padding:0px; padding-left:5px; font-size: 15px; outline: none; width:300px; height:36px;  border:1px solid #eee;}
 | 
			
		||||
input.wst-regist-input{margin: 1px;float: left; padding:2px; padding-left:5px; font-size: 15px; outline: none; width:269px; height:36px;border:1px solid #eee;}
 | 
			
		||||
.wst-login-input:focus,.wst-login-input-1:focus,.wst-regist-input:focus,.wst-login-codein-1:focus,.wst-login-codein:focus,.wst-regist-codein:focus,.wst-regist-codemo:focus{ border:1px solid #eb654a; }
 | 
			
		||||
.wst-table{margin-top:20px; color: #333;font: 12px/150% "Hiragino Sans GB","Microsoft Yahei",arial,宋体,"Helvetica Neue",Helvetica,STHeiTi,sans-serif;}
 | 
			
		||||
.wst-login-tr{height:30px;}
 | 
			
		||||
.wst-login-code-1,.wst-regist-code{height:36px;  } input.wst-login-codein-1,input.wst-regist-codein{padding:0px; padding-left:5px; width:150px; height:36px; position:absolute;left: 38px; font-size: 15px; outline: none; border:0; }
 | 
			
		||||
.wst-login-codeim-1{margin-left:148px; }
 | 
			
		||||
.wst-login-ch{border:1px solid #eb654a; }
 | 
			
		||||
.wst-login-but{display: block; position: relative; background:#E45050; color: #ffffff; text-align: center; font-family: 'Ubuntu', sans-serif; font-size: 15px; font-weight: bold; text-decoration: none; border-radius: 3px; overflow: hidden; -webkit-transition: all 0.15s ease-in; transition: all 0.15s ease-in; }
 | 
			
		||||
.wst-login-but:hover {background: #ea3232; }
 | 
			
		||||
.wst-login-but:before {content: ' '; position: absolute; background: #ffffff; width: 25px; height: 50px; top: 0; left: -45px; opacity: 0.3; -webkit-transition: all 0.25s ease-out; transition: all 0.25s ease-out; -webkit-transform: skewX(-25deg); transform: skewX(-25deg); }
 | 
			
		||||
.wst-login-but:hover:before {width: 45px; left: 205px; }
 | 
			
		||||
.wst-login-three{height: 30px; display: block; margin-top: 15px; } /*注册*/ .wst-regist{padding:100px 20px 60px 20px; }
 | 
			
		||||
.wst-regist-b{background:url(../img/img_regist.png) no-repeat; background-size: cover; margin-top:3px; border-top: 2px solid #eee;border-bottom: 2px solid #eee;}
 | 
			
		||||
.wst-regist-c{width: 760px; margin: 0 auto; padding:20px; border-radius:5px; }
 | 
			
		||||
.wst-regist-head{font-size:28px; font-family:"楷体"; color:#E45050; text-align:center; } input.wst-regist-input{width:400px; margin-left:20px; }
 | 
			
		||||
.wst-regist-td{text-align:right; width: 150px; font-size: 15px; color:#626262; }
 | 
			
		||||
.wst-regist-code-1{margin-left:20px; } input.wst-regist-codein{width:150px;}
 | 
			
		||||
.wst-regist-codeim{margin-left:288px; } input.wst-regist-codemo{padding:0px; margin-left: 20px; padding-left:5px; font-size: 15px; outline: none; width:260px; height:36px;  border:1px solid #eee; }
 | 
			
		||||
.wst-regist-obtain{width:134px; background:#f0efef; border-radius: 3px; border: 1px solid #eee; padding:10px 0px; cursor:pointer; color: #110f0f; border:1px solid #eee;}
 | 
			
		||||
.wst-regist-but{outline: none; background:#e45050; color: #ffffff; border: 1px solid #ea3232; border-radius:3px; cursor:pointer; }
 | 
			
		||||
.wst-regist-but:hover{background: #ea3232; }
 | 
			
		||||
.wst-regist-but:not(.disabled):not(:disabled):active, .wst-regist-but.active{background: #ea3232; background-clip: padding-box; } /*找回密码*/ .stepflex{float:right; border-top: 5px solid #ccc; text-align: center; width: 640px; margin: 60px 0px 0px 50px; }
 | 
			
		||||
.stepflex dl{border-top: 5px solid #ccc; float: left; position: relative; top: -5px; width: 160px; } dl.doing{border-top-color: #04bd3d; }
 | 
			
		||||
.doing .s-num{background-position: -23px 0; }
 | 
			
		||||
.s-num,.s-num1{color: #fff; font-weight: 700; height: 23px; line-height: 23px; margin: -15px auto 0; position: relative; width: 23px; border-radius:25px; }
 | 
			
		||||
.s-num{background: #04bd3d; }
 | 
			
		||||
.s-num1{background: #ccc; }
 | 
			
		||||
.s-text{line-height:30px; }
 | 
			
		||||
.forget-pwd{width: 750px; margin:50px auto 50px; padding:25px 0px 48px 0px; border:1px solid #bac4c3; border-radius:6px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } input.wst-forget-input{padding: 0px; margin-left:20px; padding-left:5px; font-size: 15px; outline: none; width:300px; height:36px; border-radius:3px; border:1px solid #bac4c3; }
 | 
			
		||||
.wst-forget-code,.wst-forget-code2{float:left; width:300px; height:36px; border-radius:3px; margin-left:20px; border:1px solid #bac4c3; } input.wst-forget-codein,input.wst-forget-codein2{padding: 0px; padding-left:5px; width:180px; height:36px; position:absolute; font-size: 15px; outline: none; border:0; border-radius:6px; }
 | 
			
		||||
.wst-forget-input:focus,.wst-forget-codein:focus,.wst-forget-codein2:focus{border-radius:3px; border:1px solid #eb654a; }
 | 
			
		||||
.wst-forget-codeim,.wst-forget-codeim2{width:116px; border-top-right-radius:6px; border-bottom-right-radius:6px; margin-left:183px; }
 | 
			
		||||
.wst-forget-code2{width:230px; } input.wst-forget-codein2{width:120px; }
 | 
			
		||||
.wst-forget-codeim2{width:112px; margin-left:118px; }
 | 
			
		||||
.email-verify{display:none; }
 | 
			
		||||
.wst-forget-td{text-align:right; width: 260px; font-size: 15px; color:#626262; }
 | 
			
		||||
.wst-forget-te{margin-left:20px; font-size: 15px; }
 | 
			
		||||
.wst-forget-select{margin-left:20px; font-size: 15px; outline: none; width:230px; height:36px; border-radius:3px; border:1px solid #bac4c3; }
 | 
			
		||||
.wst-forget-obtain{width:134px; height: 36px; background:#f0efef; border-radius: 3px; border: 1px solid #d3c8c7; padding:10px 0px; cursor:pointer; color: #110f0f; }
 | 
			
		||||
.wst-forget-c{text-align:center; }
 | 
			
		||||
.wst-forget-ct{font-size: 16px; color:#2d2727; }
 | 
			
		||||
.wst-icon-banner{width: 1200px;margin:0 auto;}
 | 
			
		||||
.wst-icon{width: 120px;height: 30px; display: inline-block;float: right;}
 | 
			
		||||
.wst-icon li{float:left;}
 | 
			
		||||
.wst-icon .wst-remind{color:red;font-size: 12px;padding-left: 10px;height: 30px;line-height: 30px;}
 | 
			
		||||
.wst-img-icon{width: 23px;height: 23px; background: url(../img/icon_login02.png) no-repeat;background-size: contain;margin-top: 3px;}
 | 
			
		||||
.wst-login-banner{width: 99.9%;height: 160px; }
 | 
			
		||||
.wst-login-banner .img-banner{height:130px; margin: 10px 10px 10px 120px; float: left;}
 | 
			
		||||
.wst-login-banner .img-banner img{height: 100%;}
 | 
			
		||||
.wst-login-banner .wst-stript{width: 2px;height: 110px;margin-top: 25px;margin-left: 20px; background: #eee;float: left;}
 | 
			
		||||
.wst-login-banner .wst-login-action{width:630px;height: 130px; float: right; margin: 10px 10px 10px 10px;}
 | 
			
		||||
.wst-login-action .wst-left{width: 200px;height: 130px; float: left;text-align: center;line-height: 130px;font-family:微软雅黑;font-weight: bold;font-size: 25px;}
 | 
			
		||||
.wst-login-action .wst-right-action{width: 200px;height: 130px;float: right;}
 | 
			
		||||
.wst-login-action .action-box{padding-top: 50px; line-height: 27px;}
 | 
			
		||||
.action-box .wst-location{width: 100px;height: 25px;float: right;line-height: 25px;font-size: 12px;margin-right: 40px;}
 | 
			
		||||
.wst-login-middle{height: 527px; background: rgba(255,76,76,0.78);}
 | 
			
		||||
.wst-login-middle-shop{height: 477px; background: rgb(86,169,253);}
 | 
			
		||||
.wst-color{background: white;}
 | 
			
		||||
.wst-login-banner-regist{width: 99.9%;height: 100px; }
 | 
			
		||||
.wst-login-banner-regist .img-banner{height:90px; margin: 10px 10px 10px 100px; float: left;}
 | 
			
		||||
.wst-login-banner-regist .img-banner img{height: 100%;}
 | 
			
		||||
.wst-login-banner-regist .wst-login-action{width:400px;height: 80px; float: right; margin: 10px 10px 10px 10px;}
 | 
			
		||||
.wst-item{position: relative;margin-bottom: 20px;}
 | 
			
		||||
.wst-item-box{border: 1px solid #eee;height: 38px;width: 310px;}
 | 
			
		||||
.wst-item-box .login-img{ position: relative;z-index: 3;top: 0;left: 0; width: 28px;height: 28px;margin-top: 5px; margin-left: 4px;margin-right: 2px; border-right: 1px solid #eee;background: url(../img/icon_name.png) 1px no-repeat;background-size: 85%;float: left;}
 | 
			
		||||
.password-img{position: relative;z-index: 3;top: 0;left: 0; width: 28px;height: 28px;margin-top: 5px;margin-left: 4px; margin-right: 2px; border-right: 1px solid #eee;float: left;background: url(../img/icon_passard.png) 1px no-repeat;background-size: 85%;}
 | 
			
		||||
.yanzheng-img{position: relative;z-index: 3;top: 0;left: 0; width: 28px;height: 28px;margin-top: 5px; margin-left: 4px;margin-right: 2px; border-right: 1px solid #eee;float: left;background: url(../img/icon_yanzhengma.png) 1px no-repeat;background-size: 85%;}
 | 
			
		||||
.bottom-stript{width: 100%;height: 20px;border:1px solid red;}
 | 
			
		||||
.regist-border{border:1px solid #eee;}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.wst-login-code,.wst-regist-code{height:36px; border:1px solid #eee; }
 | 
			
		||||
	.wst-login-codeim{margin-left:188px; }
 | 
			
		||||
	 input.wst-login-codein{padding:0px; padding-left:5px; width:180px; height:36px; position:absolute; font-size: 15px; outline: none;border:0; }
 | 
			
		||||
							
								
								
									
										49
									
								
								hyhproject/home2/view/default/css/recharge.css
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										49
									
								
								hyhproject/home2/view/default/css/recharge.css
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,49 @@
 | 
			
		||||
 | 
			
		||||
/**支付方式**/
 | 
			
		||||
.pay-box{border-left:1px solid #eeeeee;border-right:1px solid #eeeeee;border-top:1px solid #eeeeee;padding:5px 0px 10px 5px;}
 | 
			
		||||
.pay-boxs{padding:10px 0px 5px 5px;}
 | 
			
		||||
.pay-box ul{padding-left:15px;}
 | 
			
		||||
.pay-box ul li{width:1185px;}
 | 
			
		||||
.pay-box .label{width:200px;float:left;height:30px;line-height:30px;}
 | 
			
		||||
.pay-box .txt{height:auto;line-height:30px;width:985px;float:left;color:#999999;}
 | 
			
		||||
.pay-sbox{padding:5px 0px;}
 | 
			
		||||
.pay-sbox-head{border-bottom: 2px solid #ddd;line-height:35px;}
 | 
			
		||||
.pay-tip1{height:37px;width:760px;text-align: center;margin:10px auto;background: url(../img/pay_liucheng.png) no-repeat 0px -10px;background-size: cover; }
 | 
			
		||||
.pay-tip2{height:37px;width:760px;text-align: center;margin:10px auto;background: url(../img/pay_liucheng.png) no-repeat 0px -71px;background-size: cover; }
 | 
			
		||||
.pay-tip3{height:37px;width:760px;text-align: center;margin:10px auto;background: url(../img/pay_liucheng.png) no-repeat 0px -132px;background-size: cover; }
 | 
			
		||||
.pay-sbox .qrcode-box{min-height: 300px;height: auto;}
 | 
			
		||||
.pay-sbox .tips-box{line-height:35px;text-align: left;font-weight: bold;padding:5px 10px;}
 | 
			
		||||
.pay-sbox .qrcode-box .pbox{text-align: center;margin-top: 10px;font-weight: bold;}
 | 
			
		||||
.pay-sbox .wst-qrcode{width:260px;height:260px;text-align:center;margin:0 auto;}
 | 
			
		||||
.pay-sbox .wst-qrcode img{width:260px;height:260px;}
 | 
			
		||||
.pay-sbox .bnt-box{line-height:35px;text-align:center;font-weight: bold;padding:5px 10px;line-height:50px;}
 | 
			
		||||
.pay-sbox .pay-type{text-align: left;font-weight: bold;padding:5px 10px;}
 | 
			
		||||
.pay-sbox .pay-list{text-align: left;font-weight: bold;padding:5px 20px;}
 | 
			
		||||
.pay-sbox .succ-box{text-align: center;padding: 50px;}
 | 
			
		||||
.wst-payCode-weixinpays {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/weixinpays.png) no-repeat 0px 0px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
 | 
			
		||||
.wst-payCode-weixinpays-curr {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/weixinpays.png) no-repeat 0px -75px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
 | 
			
		||||
.wst-payCode-alipays {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/alipays.png) no-repeat 0px 0px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
 | 
			
		||||
.wst-payCode-alipays-curr {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/alipays.png) no-repeat 0px -75px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
 | 
			
		||||
.pay-sbox .wst-pay-bnt {height:40px;width:132px;text-align: center;margin:10px auto;background: url(../img/btn_pay.png) no-repeat 0px 0px;cursor:pointer;}
 | 
			
		||||
.pay-sbox .wst-pay-bnt:hover {height:40px;width:132px;text-align: center;margin:10px auto;background: url(../img/btn_pay.png) no-repeat 0px -57px;cursor:pointer;}
 | 
			
		||||
.charge-money{font-size:18px;}
 | 
			
		||||
.charge-alone{line-height:50px; }
 | 
			
		||||
.charge-doub{padding-top: 8px;}
 | 
			
		||||
.charge-othermoney{width:80px;}
 | 
			
		||||
.j-charge-money{display: none;}
 | 
			
		||||
.j-show-box,.j-edit-box,.j-list-box,.wst-list-box{padding:5px 0px 20px 15px;}
 | 
			
		||||
.j-list-box li{height:40px;line-height:40px;}
 | 
			
		||||
.j-edit-box .rows{width:auto;height:auto;}
 | 
			
		||||
.j-edit-box .label{float:left;width:120px;text-align:right;padding:2px 0px 2px 0px;}
 | 
			
		||||
.j-edit-box .field{float:left;padding:2px 0px 2px 0px;}
 | 
			
		||||
.field label{margin-right:20px;}
 | 
			
		||||
#saveAddressBtn{margin-left:120px;}
 | 
			
		||||
.j-show-box .address{line-height:36px;}
 | 
			
		||||
.j-show-box .address a{color: #1c9eff;}
 | 
			
		||||
.j-show-box .address a:hover{text-decoration:underline;}
 | 
			
		||||
.j-default{padding:5px;background:#ccc;}
 | 
			
		||||
.wst-frame1{float: left;width:180px;margin: 2px 8px 2px 0px;background: #fff;border: 1px solid #ccc;padding:7px;cursor: pointer;text-align:center;overflow: hidden;position: relative;}
 | 
			
		||||
.wst-frame2{min-height:50px;float: left;min-width:120px;margin: 2px 20px 2px 0px;background: #fff;border: 1px solid #ccc;padding:7px;cursor: pointer;text-align:center;overflow: hidden;position: relative;}
 | 
			
		||||
.wst-frame1.j-selected i,.wst-frame2.j-selected i{font-size: 0;line-height: 0;background: url(../img/img_gd_sel.png) no-repeat 0 0;display: block; width: 11px;height: 11px;position: absolute;z-index: 1;right: -1px;bottom: -1px;}
 | 
			
		||||
.wst-frame1.j-selected,.wst-frame2.j-selected{border: 2px solid #e4393c;padding:6px;}
 | 
			
		||||
.wst-form input.charge-othermoney{padding: 8px;}
 | 
			
		||||
							
								
								
									
										78
									
								
								hyhproject/home2/view/default/css/right_cart.css
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										78
									
								
								hyhproject/home2/view/default/css/right_cart.css
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,78 @@
 | 
			
		||||
@CHARSET "UTF-8";.j-global-toolbar div a{margin:0;padding:0;font:12px/150% Arial,Verdana,"宋体";color:#666}
 | 
			
		||||
.toolbar-wrap{position:fixed;top:0;right:0;z-index:9990;width:35px;height:100%}
 | 
			
		||||
.toolbar-wrap a{text-decoration:none}
 | 
			
		||||
.toolbar{position:absolute;right:0;top:0;width:29px;height:100%;border-right:6px solid #333}
 | 
			
		||||
.toolbar-panels{position:absolute;left:35px;top:0;width:270px;height:100%;z-index:2;background:#eceaea none repeat scroll 0 0}
 | 
			
		||||
.toolbar-panel{width:270px;height:100%;position:absolute;background:#eceaea none repeat scroll 0 0}
 | 
			
		||||
.tbar-panel-header{position:relative;width:270px;height:40px;line-height:40px;background:#eceaea none repeat scroll 0 0;font-family:"microsoft yahei";font-weight:normal;margin:0;padding:0}
 | 
			
		||||
.tbar-panel-header .title{display:inline-block;height:40px;color:#5e5050;font:16px/40px "微软雅黑"}
 | 
			
		||||
.tbar-panel-cart .tbar-panel-header i{width:20px;height:18px;background-position:0 0;margin-top:11px}
 | 
			
		||||
.tbar-panel-header i{margin-right:4px;margin-left:10px;vertical-align:top}
 | 
			
		||||
.tbar-panel-header i,.tbar-panel-header .close-panel{display:inline-block;font-style:normal;background-image:url("../img/right_cart.png");background-repeat:no-repeat}
 | 
			
		||||
.tbar-panel-header .title em{display:inline-block;vertical-align:top}
 | 
			
		||||
.tbar-panel-header .close-panel{width:12px;height:12px;background-position:0 -250px;position:absolute;right:8px;top:16px;cursor:pointer;transition:transform .2s ease-out 0s}
 | 
			
		||||
.tbar-panel-main{position:relative;margin:0;padding:0;font:12px/150% Arial,Verdana,"宋体";color:#666}
 | 
			
		||||
.tbar-tipbox{display:block}
 | 
			
		||||
.tbar-panel-content{width:270px;overflow-y:auto;overflow-x:hidden;position:relative}
 | 
			
		||||
.tbar-tipbox .tip-inner{padding:6px 5px;border:1px solid #edd28b;background:#fffdee none repeat scroll 0 0;text-align:center}
 | 
			
		||||
.tbar-tipbox .tip-text{display:inline-block;line-height:20px;vertical-align:middle;color:#333}
 | 
			
		||||
.tbar-tipbox .tip-btn{display:inline-block;height:20px;line-height:20px;padding:0 5px;margin-left:5px;color:#FFF;vertical-align:middle;background:#c81623 none repeat scroll 0 0}
 | 
			
		||||
.tbar-panel-cart .tbar-panel-footer{height:50px;background-color:#eceaea;margin:0;padding:0}
 | 
			
		||||
.tbar-checkout{height:40px;padding:5px 110px 5px 5px;position:relative}
 | 
			
		||||
.tbar-checkout .jtc-number strong{font-family:verdana;color:#c81623}
 | 
			
		||||
.tbar-checkout .jtc-number{line-height:20px;font:12px/150% Arial,Verdana,"宋体";color:#666}
 | 
			
		||||
.tbar-checkout .jtc-sum{line-height:20px;font:12px/150% Arial,Verdana,"宋体";color:#666}
 | 
			
		||||
.tbar-checkout .jtc-sum strong{font-family:verdana;color:#c81623}
 | 
			
		||||
.tbar-checkout .jtc-btn{position:absolute;right:5px;top:7px;width:110px;height:35px;font:16px/35px "微软雅黑";text-align:center;background:#c81623 none repeat scroll 0 0;color:#FFF}
 | 
			
		||||
.tbar-cart-list{width:100%;margin:0;padding:0;font:12px/150% Arial,Verdana,"宋体";color:#666}
 | 
			
		||||
.tbar-cart-item{padding:0 5px;margin-bottom:10px;background:#FFF none repeat scroll 0 0}
 | 
			
		||||
.jtc-item-promo{padding:12px 0 12px 0;border-bottom:1px dashed #e1e1e1}
 | 
			
		||||
.jtc-item-promo .promo-tag{position:relative;float:left;width:40px;height:20px;margin-top:-1px;margin-left:-57px;margin-right:17px;text-align:center;font:12px/20px "宋体";color:#FFF;background-color:#f58813}
 | 
			
		||||
.jtc-item-promo .promo-text{height:18px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font:12px/18px verdana}
 | 
			
		||||
.jtc-item-goods{padding:10px 0;position:relative;overflow:hidden}
 | 
			
		||||
.jtc-item-goods .p-img{float:left;width:60px;height:60px;border:1px solid #DDD;padding:0;margin-right:5px}
 | 
			
		||||
.jtc-item-goods .p-img img{width:60px;height:60px}
 | 
			
		||||
.jtc-item-goods .p-name{height:32px;line-height:16px;margin-bottom:4px;overflow:hidden}
 | 
			
		||||
.jtc-item-goods .p-name a{color:#333}
 | 
			
		||||
.jtc-item-goods .p-price{height:25px;overflow:hidden;font:12px/16px verdana;color:#666;width:170px}
 | 
			
		||||
.jtc-item-goods .p-price strong{color:#c81623;font-weight:normal;float:left}
 | 
			
		||||
.jtc-item-goods .p-del{position:absolute;right:10px;top:46px;width:35px;height:16px;line-height:16px;color:#005aa0;text-align:right;display:none}
 | 
			
		||||
.tbar-panel-history div{padding:0}
 | 
			
		||||
.jt-history-wrap{width:235px;margin:0 auto}
 | 
			
		||||
.tbar-panel-history ul{overflow:hidden;margin-right:-15px;margin-top:0;list-style:outside none none;padding:0}
 | 
			
		||||
.tbar-panel-history .tbar-panel-header i{width:20px;height:17px;margin-top:11px;background-position:0 -100px}
 | 
			
		||||
.tbar-panel-follow .tbar-panel-header i{width:20px;height:17px;margin-top:11px;background-position:0 -50px}
 | 
			
		||||
.tbar-panel-history .jth-item{float:left;position:relative;width:100px;height:120px;margin-right:15px;background:#FFF none repeat scroll 0 0;margin-bottom:15px;padding:5px}
 | 
			
		||||
.tbar-panel-history .jth-item .img-wrap{display:block;width:100px;height:100px;text-align:center;margin-bottom:5px}
 | 
			
		||||
.tbar-panel-history .jth-item .add-cart-button{height:20px;line-height:20px;overflow:hidden;text-align:center;text-decoration:none;display:none;position:absolute;width:100px;bottom:25px;left:5px;z-index:3;color:#FFF;background:rgba(28,25,28,0.8) none repeat scroll 0 0}
 | 
			
		||||
.tbar-panel-history .jth-item .price{color:#c81623}
 | 
			
		||||
.tbar-panel-history .history-bottom-more{display:block;text-align:center;height:40px;line-height:40px;font-family:"宋体";color:#666}
 | 
			
		||||
.toolbar-header{position:absolute;top:0;right:-6px}
 | 
			
		||||
.toolbar-tabs{position:absolute;top:50%;left:0;width:35px;margin-top:-61px}
 | 
			
		||||
.toolbar-tab{position:relative;width:35px;height:35px;margin-bottom:1px;cursor:pointer;background-color:#333;border-radius:3px 0 0 3px;font:12px/150% Arial,Verdana,"宋体";color:#666;display:inline-block;background-image:url("../img/right_cart.png");background-repeat:no-repeat}
 | 
			
		||||
.tbar-tab-cart{background-position:-50px 0}
 | 
			
		||||
.tbar-tab-follow{background-position:-50px -50px}
 | 
			
		||||
.tbar-tab-history{background-position:-50px -100px}
 | 
			
		||||
.tbar-tab-message{background-position:-50px -144px}
 | 
			
		||||
.tab-ico{width:34px;height:35px;margin-left:1px;position:relative;z-index:2;background-color:#7a6e6e}
 | 
			
		||||
.tab-text{width:62px;height:35px;line-height:35px;color:#FFF;text-align:center;font-family:"微软雅黑";position:absolute;z-index:1;left:35px;top:0;background-color:#333;border-radius:3px 0 0 3px;transition:left .3s ease-in-out .1s;font-style:normal;margin:0;padding:0;cursor:pointer}
 | 
			
		||||
.tab-sub{position:absolute;z-index:3;right:2px;top:-5px;height:11px;padding:1px 2px;border:1px solid #b61d1d;overflow:hidden;color:#FFF;font:11px/11px verdana;text-align:center;min-width:11px;border-radius:10px;background-color:#cc6060;background-image:linear-gradient(to bottom,#cc6060 0,#b61d1d 100%)}
 | 
			
		||||
.toolbar-footer{position:absolute;bottom:-1px;width:100%;margin:0;padding:0;font:12px/150% Arial,Verdana,"宋体";color:#666}
 | 
			
		||||
.tbar-tab-top{background-position:-50px -250px}
 | 
			
		||||
.tbar-tab-feedback{background-position:-50px -300px}
 | 
			
		||||
.footer-tab-text{width:50px;height:35px;line-height:35px;color:#FFF;text-align:center;font-family:"微软雅黑";position:absolute;z-index:1;left:35px;top:0;background-color:#7a6e6e;border-radius:3px 0 0 3px;transition:left .3s ease-in-out .1s;font-style:normal;margin:0;padding:0;cursor:pointer}
 | 
			
		||||
.tbar-tab-hover{left:-60px;background-color:#c81623}
 | 
			
		||||
.tbar-tab-footer-hover{left:-48px;background-color:#c81623}
 | 
			
		||||
.tbar-tab-selected{background-color:#c81623}
 | 
			
		||||
.tbar-tab-selected .tab-sub{color:#c81623;background-color:#FFF;background-image:linear-gradient(to bottom,#FFF 0,#FFF 100%);box-shadow:1px 1px 3px rgba(0,0,0,0.3);text-shadow:1px 0 1px rgba(0,0,0,0.3)}
 | 
			
		||||
.tbar-tab-click-selected{background-color:#c81623}
 | 
			
		||||
.tbar-tab-click-selected .tab-sub{color:#c81623;background-color:#FFF;background-image:linear-gradient(to bottom,#FFF 0,#FFF 100%);box-shadow:1px 1px 3px rgba(0,0,0,0.3);text-shadow:1px 0 1px rgba(0,0,0,0.3)}
 | 
			
		||||
.survey-tab-ico{display:none}
 | 
			
		||||
.survey-tab-text{left:0;width:35px;height:30px;padding:2px 0 3px;line-height:15px;background:#c81623 none repeat scroll 0 0;color:#FFF;text-align:center;font-family:"微软雅黑";position:absolute;z-index:1;top:0;border-radius:3px 0 0 3px;transition:left .3s ease-in-out .1s;font-style:normal;margin:0;cursor:pointer}
 | 
			
		||||
.toolbar-open{right:270px}
 | 
			
		||||
.j-close:hover{transform:rotate(180deg);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);-ms-transform:rotate(180deg)}
 | 
			
		||||
.tbar-panel-history .jth-item .add-cart-button:hover{background:#c81623 none repeat scroll 0 0}
 | 
			
		||||
.tbar-cart-item .buy-btn{background:#eee none repeat scroll 0 0;border:1px solid #ddd;color:#666;cursor:pointer;display:block;float:left;height:20px;line-height:20px;padding:0 5px}
 | 
			
		||||
input.right-cart-buy-num[type="text"]{border-color:#ddd -moz-use-text-color;border-style:solid none;border-width:1px 0;float:left;height:16px;text-align:center;width:40px}
 | 
			
		||||
.goods-remove{background:rgba(0,0,0,0) url("../img/right_cart.png") no-repeat 0 -290px;cursor:pointer;height:20px;overflow:hidden;padding:5px;position:absolute;right:-8px;top:4px;width:20px}
 | 
			
		||||
.right-carts-empty{margin-left:40px;margin-top:20px}
 | 
			
		||||
							
								
								
									
										32
									
								
								hyhproject/home2/view/default/css/security.css
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										32
									
								
								hyhproject/home2/view/default/css/security.css
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
@CHARSET "UTF-8"; a{cursor:pointer; }
 | 
			
		||||
.wst-sec-info{padding:20px 0px 20px 30px; background: #fed1b0; }
 | 
			
		||||
.wst-sec-infor{float: left; margin-left:20px; }
 | 
			
		||||
.wst-sec-na{font-size:20px; color:#f06f69; line-height:20px; }
 | 
			
		||||
.wst-sec-grade img{width: 20px; margin-top:1px; margin-left:20px; }
 | 
			
		||||
.wst-sec-grade span{margin-left:8px; line-height:20px; font-family:"microsoft yahei"; }
 | 
			
		||||
.wst-sec-infoi{float: left; width: 100%; color:#3c3228; font-family:"microsoft yahei"; }
 | 
			
		||||
.wst-sec-infoin{color:#0cd8d5; }
 | 
			
		||||
.wst-sec-s{padding:30px 20px; font-family:"microsoft yahei"; }
 | 
			
		||||
.wst-sec-lists{float: left; width: 100%; min-height: 60px; line-height:60px; }
 | 
			
		||||
.wst-sec-green{color:#11cc71; }
 | 
			
		||||
.wst-sec-ash{color:#f1730f; }
 | 
			
		||||
.wst-sec-green img,.wst-sec-ash img{float: left; margin-top:24px; margin-right:3px; }
 | 
			
		||||
.wst-sec-w{color:#363636; font-size:17px; }
 | 
			
		||||
.wst-sec-strip{width: 300px; height: 20px; background: #d7cece; }
 | 
			
		||||
.wst-sec-strip2{width: 100px; height: 20px; background: #53e053; } /**/ .wst-sec-head2{margin-top:20px; padding: 28px; height: 30px; }
 | 
			
		||||
.wst-sec-min{width: 30%; text-align: center; height:26px; line-height:26px; background: #e0e0e0; color:#282828; font-size:15px; font-family:"microsoft yahei"; }
 | 
			
		||||
.wst-sec-mi{width: 13px; }
 | 
			
		||||
.wst-sec-min1{width: 0; height: 0; border-top: 13px solid transparent; border-left: 13px solid #e0e0e0; border-bottom: 13px solid transparent; }
 | 
			
		||||
.wst-sec-min2{width: 0; height: 0; border-top: 13px solid #e0e0e0; border-left: 13px solid transparent; }
 | 
			
		||||
.wst-sec-min3{width: 0; height: 0; border-bottom: 13px solid #e0e0e0; border-left: 13px solid transparent; }
 | 
			
		||||
.wst-sec-gr{color:#ffffff; background: #45d862; }
 | 
			
		||||
.wst-sec-gr1{border-left: 13px solid #45d862; }
 | 
			
		||||
.wst-sec-gr2{border-top: 13px solid #45d862; }
 | 
			
		||||
.wst-sec-gr3{border-bottom: 13px solid #45d862; } /*密码*/ .wst-form{float: left; margin-top:20px; margin-left:20px; } /*邮箱*/ .wst-sec-img{float: left; margin-top:3px; }
 | 
			
		||||
.wst-sec-prompt{margin-top:36px; margin-left:30px; }
 | 
			
		||||
.wst-sec-p1{margin-top:20px; font-size:15px; }
 | 
			
		||||
.wst-sec-p2{margin-top:20px; }
 | 
			
		||||
.wst-sec-su{margin: 0 auto; width: 260px; height: 120px; }
 | 
			
		||||
.wst-sec-sut,.wst-sec-sub{float: left; width: 100%; text-align:center; }
 | 
			
		||||
.wst-sec-sut{margin-top:60px; }
 | 
			
		||||
.wst-sec-sub{color: #11cd6e; font-size:18px; font-family:"microsoft yahei"; margin-top:6px; } /*手机*/ .wst-sec-obtain{width:130px; background:#f0efef; border-radius: 3px; border: 1px solid #d3c8c7; padding:8px 0px; cursor:pointer; color: #110f0f; }
 | 
			
		||||
							
								
								
									
										184
									
								
								hyhproject/home2/view/default/css/self_shop.css
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										184
									
								
								hyhproject/home2/view/default/css/self_shop.css
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,184 @@
 | 
			
		||||
.wst-shop-h{padding:10px 0}
 | 
			
		||||
.wst-shop-img{float:left;margin-top:3px;width:90px;height:90px;text-align:center;vertical-align:middle;display:block;position:relative}
 | 
			
		||||
.wst-shop-img img{max-width:90px;max-height:90px;border-radius:5px}
 | 
			
		||||
.wst-shop-info{float:left;width:45%;margin-left:10px}
 | 
			
		||||
.wst-shop-info p{float:left;line-height:50px;width:100%;color:#222;font-size:17px;font-family:"microsoft yahei"}
 | 
			
		||||
.wst-shop-info2,.wst-shop-info3{float:left;width:100%}
 | 
			
		||||
.wst-shop-info2 img{float:left;width:16px;margin-right:3px}
 | 
			
		||||
.wst-shop-info2 span{float:left;color:#dda315;margin-right:10px}
 | 
			
		||||
.wst-shop-info3{margin-top:7px}
 | 
			
		||||
.wst-shop-code{float:left;margin-top:-3px;width:24px;height:24px;cursor:pointer;background:url(../img/img_sjck.png) no-repeat;background-size:100%}
 | 
			
		||||
.wst-shop-codes{width:131px;height:131px;margin-top:24px;border:1px solid #dedbdb;position:absolute;z-index:1000;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,0.3);border-radius:5px}
 | 
			
		||||
.wst-shop-codes:after{top:-16px;border-color:transparent transparent #fff}
 | 
			
		||||
.wst-shop-eva,.wst-shop-evaa{float:left;margin-right:16px}
 | 
			
		||||
.wst-shop-evaa{padding-left:20px}
 | 
			
		||||
.wst-shop-info3 .j-fav,.wst-shop-info3 .j-fav:hover{background:url(../img/iconfont_guanzhu_sel.png) 1px 2px no-repeat}
 | 
			
		||||
.wst-shop-info3 .j-fav2{background:url(../img/iconfont_guanzhu_nor.png) 0 -23px no-repeat;transition:background-position .15s ease-in-out 0s}
 | 
			
		||||
.wst-shop-info3 .j-fav2:hover{background:url(../img/iconfont_guanzhu_nor.png) 0 1px no-repeat;text-decoration:none}
 | 
			
		||||
.wst-shop-red{color:#e25041}
 | 
			
		||||
.wst-shop-tu{text-align:center;width:100%;height:110px}
 | 
			
		||||
@media screen and (max-width:1200px){.wst-shop-tu{min-width:1200px}
 | 
			
		||||
.s-wst-nav-menus{min-width:1200px}}
 | 
			
		||||
.homepage{margin-top:6px;padding:0 8px;height:22px;line-height:22px;color:#fff;border:1px solid #fff;font-size:13px!important}
 | 
			
		||||
.homepage:hover{color:#fc6047;background:#fff;border:1px solid #fc6047}
 | 
			
		||||
.s-wst-nav-menus{background:#ff6a53;width:100%;margin:0 auto;height:38px}#s-wst-nav-items ul{width:1200px;margin:0 auto}
 | 
			
		||||
.s-nav-li a{color:#fff;font:400 15px/36px "microsoft yahei";height:36px;padding:0 15px;text-align:center;text-decoration:none}
 | 
			
		||||
.s-nav-li{float:left;padding:0 16px;height:38;line-height:36px}
 | 
			
		||||
.s-cat-head>a{color:#fff;font:400 15px/36px "microsoft yahei"}
 | 
			
		||||
.s-cat-head-hover{background:#df2003}
 | 
			
		||||
.s-cat-head{display:block;height:38px;padding:0 10px;text-decoration:none;width:190px}
 | 
			
		||||
.wst-shop-sea{float:right;width:42.999999%;margin-top:20px}
 | 
			
		||||
.wst-shop-sea input{float:left;outline:0;font-size:15px;height:28px;width:360px;margin-right:3px;padding-left:8px;border:1px solid #fc6047}
 | 
			
		||||
.wst-shop-sea .search{float:left;width:60px;height:34px;line-height:32px;text-align:center;color:#fff;margin-left:6px;background:url(../img/img_bg_search.png) no-repeat}
 | 
			
		||||
.wst-shop-word{float:left;margin-top:8px;width:100%;height:18px;overflow:hidden}
 | 
			
		||||
.s-cat-head em{margin-top:10px;margin-right:-10px;display:block;width:16px;height:16px;float:left;background:url(../img/icon_class_zydp.png) no-repeat}
 | 
			
		||||
.shop-ct1-ct2{width:200px;height:15px;overflow:hidden;padding:5px 0;border-bottom:1px solid #e7e7e7}
 | 
			
		||||
.ct1-hover{background:#ff6a53;color:#fff}
 | 
			
		||||
.ct1-hover h3 a{color:white}
 | 
			
		||||
.ct1-hover .shop-ct1-ct2{border-bottom:0}
 | 
			
		||||
.ct1-hover .shop-ct1-ct2 a{color:white}
 | 
			
		||||
.shop-cat2{display:none}
 | 
			
		||||
.shop-cat1 h3{float:left;margin-left:3px;margin-top:2px}
 | 
			
		||||
.shop-cat1-title{width:220px;height:26px;margin-top:15px}
 | 
			
		||||
.shop-cat1{position:relative}
 | 
			
		||||
.shop-cat1{width:190px;height:66.3px;float:left;padding:0 10px}
 | 
			
		||||
.em1,.em2,.em3,.em4,.em5,.em6{float:left;display:block;width:18px;height:18px;background:url(../img/sprite@1x.png) no-repeat}
 | 
			
		||||
.em1{background-position:-38px -106px}
 | 
			
		||||
.em2{background-position:0 -105px}
 | 
			
		||||
.em3{background-position:0 -144px}
 | 
			
		||||
.em4{background-position:-75px -106px}
 | 
			
		||||
.em5{background-position:-106px -38px}
 | 
			
		||||
.em6{background-position:-143px -38px}
 | 
			
		||||
.shop-cat2{width:500px;max-height:400px;float:right;overflow:hidden;position:absolute;left:210px;top:0;z-index:998;background:#f0f0f0;border:2px solid #ff6a53}
 | 
			
		||||
.shop-cat2 li{float:left;padding:5px 16px;width:84px}
 | 
			
		||||
.shop-cat2 li a:hover{color:#df2003}
 | 
			
		||||
.s-cat{z-index:998;display:none;position:absolute;width:210px;height:400px;background:#fff}
 | 
			
		||||
.history-box{width:1200px;height:360px;margin:0 auto;margin-top:20px}
 | 
			
		||||
.history-title{width:100%;background:#ddd;height:30px;margin-bottom:10px}
 | 
			
		||||
.history-title p{float:left;line-height:30px;text-indent:10px}
 | 
			
		||||
.history-goods-list{width:1200px;height:320px}
 | 
			
		||||
.history-goods-list .s-goods{width:233px;margin:0 -1px 5px 5px;border:1px solid #e5e5e5;float:left}
 | 
			
		||||
.history-goods-list .s-goods-h:hover{border:1px solid #df2003;-webkit-box-shadow:0 0 10px #df2003;-moz-box-shadow:0 0 10px #df2003;box-shadow:0 0 10px #df2003}
 | 
			
		||||
.history-goods-list .s-goods .img{width:233px;margin:0 auto;text-align:center;vertical-align:middle;display:block;position:relative;display:table-cell;padding:4px}
 | 
			
		||||
.history-goods-list .s-goods .img a{display:table-cell;vertical-align:middle;width:233px;height:233px}
 | 
			
		||||
.history-goods-list .s-goods .img a img{max-width:210px;max-height:210px}
 | 
			
		||||
.history-goods-list .s-goods .p-price{padding:5px 0 5px 10px;font-weight:bold;color:#df2003;width:115px;float:left}
 | 
			
		||||
.history-goods-list .s-goods .p-hsale{padding:5px 10px 5px 0;width:95px;float:right;text-align:right}
 | 
			
		||||
.history-goods-list .s-goods .p-market{padding:5px 0 5px 10px;font-weight:bold;color:gray;width:95px;float:left}
 | 
			
		||||
.history-goods-list .s-goods .p-appraise{padding:5px 10px 5px 0;width:95px;float:right;text-align:right}
 | 
			
		||||
.history-goods-list .s-goods .p-hsale span{font-weight:bold;color:#df2003}
 | 
			
		||||
.history-goods-list .s-goods .p-market span{font-weight:bold;color:gray}
 | 
			
		||||
.shop_rec_out{width: 100%; margin: 0 auto; }
 | 
			
		||||
.s-buy-new-best-hot{width:100%;height:335px;margin-top:30px}
 | 
			
		||||
.s-rec{width: 1200px; margin: 0 auto; overflow: hidden; background-image: url(../img/self_shop_rec_bg.png); background-repeat: no-repeat; padding-left: 45px; background-position: 0 13px; }
 | 
			
		||||
.s-rec li{height: 35px; line-height: 35px; float: left; border-bottom: 1px solid #ff6a53; }
 | 
			
		||||
.s-rec li a{display: block; font-size:21px; font-weight: bold; color: #333; float:left; text-align:center }
 | 
			
		||||
.j-s-rec-selected a{color:#df2003!important;}
 | 
			
		||||
.s-rec-glistbox{width: 100%; background:-webkit-linear-gradient(right,#ffe9dc, #ffb3ab 40%, #ffe9dc); background:-o-linear-gradient(right,#ffe9dc, #ffb3ab 40%, #ffe9dc); background:linear-gradient(to left,#ffe9dc, #ffb3ab 40%, #ffe9dc); }
 | 
			
		||||
.s-rec-goods-list{width: 1200px; overflow: hidden; margin: 0 auto; height: 250px; padding: 10px 0; box-sizing: border-box; }
 | 
			
		||||
.s-rec-goods-list li{background-color: #fff; float: left; margin-left: 10px; width: 290px; height: 100%; box-sizing: border-box; position: relative; }
 | 
			
		||||
.s-rec-goods-list li:hover .rec_ginfo{opacity: 1; visibility: visible; }
 | 
			
		||||
.rec_ginfo{transition:all ease .4s; visibility: hidden; opacity: 0; width: 100%; height: 100%; box-sizing: border-box; position: absolute; z-index: 55; top: 0; background-color: rgba(0,0,0,0.5); }
 | 
			
		||||
.s-rec-goods-list li a{display:block; width:100%; height:100%; box-sizing: border-box; position: relative; }
 | 
			
		||||
.s1-rec-goods-list li:hover{border:1px solid #ff6a53;-webkit-box-shadow:0 0 10px #ff6a53;-moz-box-shadow:0 0 10px #ff6a53;box-shadow:0 0 10px #ff6a53}
 | 
			
		||||
.s-rec-goods-list img{position: absolute; left: 0; top: 0; right: 0; bottom: 0; margin: auto; max-width: 100%; max-height: 100%; }
 | 
			
		||||
.s-rec-goods-price{margin-top:5px;text-align: center;}
 | 
			
		||||
.s-rec-goods-price>span{font-weight:bold;font-size:21px;color:#df2003}
 | 
			
		||||
.s-rec-goods-bottom{width:100%;overflow:hidden;box-sizing: border-box;padding: 0 60px;}
 | 
			
		||||
.s-rec-goods-bottom>a{line-height:20px; display:block; border:1px solid #fff; margin-top: 20px; width:80px; height:20px; text-align:center; color:#fff; border-radius:2px; }
 | 
			
		||||
.s-rec-goods-bottom>a:hover{background:#ff6a53;color:white;border:1px solid #ff6a53}
 | 
			
		||||
.s-rec-goods-desc{width: 100%; height: 41px; line-height: 38px; overflow: hidden; text-align: center; margin-top: 60px; }
 | 
			
		||||
.s-rec-goods-desc a{color:#fff;font-size: 20px;}
 | 
			
		||||
.s-floor-box{height:685px;width:100%;margin-top:15px}
 | 
			
		||||
.s-floor-header{width:1195px;height:36px;background:white}
 | 
			
		||||
.c1{border-bottom:1px solid #dc4bd1;border-left:5px solid #dc4bd1}
 | 
			
		||||
.c2{border-bottom:1px solid #8a5063;border-left:5px solid #8a5063}
 | 
			
		||||
.c3{border-bottom:1px solid #df2003;border-left:5px solid #df2003}
 | 
			
		||||
.c4{border-bottom:1px solid lightblue;border-left:5px solid lightblue}
 | 
			
		||||
.c5{border-bottom:1px solid #ff8043;border-left:5px solid #ff8043}
 | 
			
		||||
.c6{border-bottom:1px solid #24b0ed;border-left:5px solid #24b0ed}
 | 
			
		||||
.s-floor-header-f1,.s-floor-header-f2,.s-floor-header-f3,.s-floor-header-f4,.s-floor-header-f5,.s-floor-header-f6{float:left;height:100%;width:20%;margin-top:1px}
 | 
			
		||||
.s-floor-header .tab{float:right}
 | 
			
		||||
.s-floor-header .tab li{display:block;margin:0;float:left}
 | 
			
		||||
.s-floor-header .tab a{font-size:15px;display:block;height:15px;letter-spacing:1px}
 | 
			
		||||
.s-floor-header .tab-item1 a{color:gray;border:1px solid #e6e6e6;border-bottom:#dc4bd1;padding:10px}
 | 
			
		||||
.s-floor-header .j-tab-selected1 a{background:white;border-left:1px solid #dc4bd1;border-right:1px solid #dc4bd1;border-top:1px solid #dc4bd1;color:#dc4bd1;border-bottom:1px solid white}
 | 
			
		||||
.s-floor-header .tab-item2 a{color:gray;border:1px solid #e6e6e6;border-bottom:#8a5063;padding:10px}
 | 
			
		||||
.s-floor-header .j-tab-selected2 a{background:white;border-left:1px solid #8a5063;border-right:1px solid #8a5063;border-top:1px solid #8a5063;color:#8a5063;border-bottom:1px solid white}
 | 
			
		||||
.s-floor-header .tab-item3 a{color:gray;border:1px solid #e6e6e6;border-bottom:#df2003;padding:10px}
 | 
			
		||||
.s-floor-header .j-tab-selected3 a{background:white;border-left:1px solid #df2003;border-right:1px solid #df2003;border-top:1px solid #df2003;color:#df2003;border-bottom:1px solid white}
 | 
			
		||||
.s-floor-header .tab-item4 a{color:gray;border:1px solid #e6e6e6;border-bottom:#df2003;padding:10px}
 | 
			
		||||
.s-floor-header .j-tab-selected4 a{background:white;border-left:1px solid lightblue;border-right:1px solid lightblue;border-top:1px solid lightblue;color:lightblue;border-bottom:1px solid white}
 | 
			
		||||
.s-floor-header .tab-item5 a{color:gray;border:1px solid #e6e6e6;border-bottom:#df2003;padding:10px}
 | 
			
		||||
.s-floor-header .j-tab-selected5 a{background:white;border-left:1px solid #df2003;border-right:1px solid #df2003;border-top:1px solid #df2003;color:#df2003;border-bottom:1px solid white}
 | 
			
		||||
.s-floor-header .tab-item6 a{color:gray;border:1px solid #e6e6e6;border-bottom:#24b0ed;padding:10px}
 | 
			
		||||
.s-floor-header .j-tab-selected6 a{background:white;border-left:1px solid #24b0ed;border-right:1px solid #24b0ed;border-top:1px solid #24b0ed;color:#24b0ed;border-bottom:1px solid white}
 | 
			
		||||
.s-floor-right-title a{line-height:36px;font-size:16px;font-weight:bold;letter-spacing:2px}
 | 
			
		||||
.s-floor-right-title{height:36px;margin-right:70px;margin-left:5px}
 | 
			
		||||
.more{font-weight:bold}
 | 
			
		||||
.s-goods-list{width:1200px;border-left:1px solid #e5e5e5;height:634px}
 | 
			
		||||
.s-goods-list .s-goods{width:237px;height:316px;border-bottom:1px solid #e5e5e5;border-right:1px solid #e5e5e5;float:left}
 | 
			
		||||
.s-goods-list .s-goods-f1:hover{width:236px;height:316px;border-bottom:1px solid #dc4bd1;border-right:1px solid #dc4bd1;border-left:1px solid #dc4bd1;-webkit-box-shadow:0 0 10px #dc4bd1;-moz-box-shadow:0 0 10px #dc4bd1;box-shadow:0 0 10px #dc4bd1}
 | 
			
		||||
.s-goods-list .s-goods-f2:hover{width:236px;height:315px;border-bottom:1px solid #8a5063;border-right:1px solid #8a5063;border-left:1px solid #8a5063;-webkit-box-shadow:0 0 10px #8a5063;-moz-box-shadow:0 0 10px #8a5063;box-shadow:0 0 10px #8a5063}
 | 
			
		||||
.s-goods-list .s-goods-f3:hover{width:236px;height:315px;border-bottom:1px solid #df2003;border-right:1px solid #df2003;border-left:1px solid #df2003;-webkit-box-shadow:0 0 10px #df2003;-moz-box-shadow:0 0 10px #df2003;box-shadow:0 0 10px #df2003}
 | 
			
		||||
.s-goods-list .s-goods-f4:hover{width:236px;height:315px;border-bottom:1px solid lightblue;border-right:1px solid lightblue;border-left:1px solid lightblue;-webkit-box-shadow:0 0 10px lightblue;-moz-box-shadow:0 0 10px lightblue;box-shadow:0 0 10px lightblue}
 | 
			
		||||
.s-goods-list .s-goods-f5:hover{width:236px;height:315px;border-bottom:1px solid #ff8043;border-right:1px solid #ff8043;border-left:1px solid #ff8043;-webkit-box-shadow:0 0 10px #ff8043;-moz-box-shadow:0 0 10px #ff8043;box-shadow:0 0 10px #ff8043}
 | 
			
		||||
.s-goods-list .s-goods .img{width:232px;margin:0 auto;text-align:center;vertical-align:middle;display:block;position:relative;display:table-cell;padding:4px}
 | 
			
		||||
.s-goods-list .s-goods .img a{display:table-cell;vertical-align:middle;width:232px;height:232px}
 | 
			
		||||
.s-goods-list .s-goods .img a img{max-width:210px;max-height:210px}
 | 
			
		||||
.img{position:relative}
 | 
			
		||||
.img span{width:236px;height:30px;line-height:30px;color:#fff;opacity:.6;background:#d0260c;display:block;position:absolute;left:0;bottom:0;display:none}
 | 
			
		||||
.img span:hover{cursor:pointer;background:#e5280b}
 | 
			
		||||
.s-goods-list .s-goods .p-price{padding:5px 0 5px 10px;font-weight:bold;color:#df2003;width:115px;float:left}
 | 
			
		||||
.s-goods-list .s-goods .p-hsale{padding:5px 10px 5px 0;width:90px;float:right;text-align:right}
 | 
			
		||||
.s-goods-list .s-goods .p-market{padding:5px 0 5px 10px;font-weight:bold;color:gray;width:95px;float:left}
 | 
			
		||||
.s-goods-list .s-goods .p-appraise{padding:5px 10px 5px 0;width:95px;float:right;text-align:right}
 | 
			
		||||
.s-goods-list .s-goods .p-hsale span{font-weight:bold;color:#df2003}
 | 
			
		||||
.s-goods-list .s-goods .p-market span{font-weight:bold;color:gray}
 | 
			
		||||
.p-name{margin-left:10px;width:210px}
 | 
			
		||||
.more{height:35px}
 | 
			
		||||
.more a{line-height:35px;text-align:center;background:#fff;margin-left:10px}
 | 
			
		||||
.s-banner{width:100%;height:500px;margin:0 auto}
 | 
			
		||||
#s-wst-slide .s-wst-slide-items li{height:500px;overflow:hidden}
 | 
			
		||||
.wst-shop-info2 img.wangwang{padding-top:1px;width:65px;height:22px}
 | 
			
		||||
.wst-shop-share{float:right;position:relative;top:-6px}
 | 
			
		||||
.notice{display:flex;align-items:center}
 | 
			
		||||
.notice_img{vertical-align:text-top;width:15px;height:15px}
 | 
			
		||||
.f15{font-size:15px}
 | 
			
		||||
.pdl10{padding-left:10px}
 | 
			
		||||
 | 
			
		||||
.self_container_out{width: 100%; box-sizing:border-box;padding-top: 10px; }
 | 
			
		||||
.sf_headerbox{width: 1200px; margin-bottom: 10px; margin: 0 auto; }
 | 
			
		||||
.sfhl{float: left; height: 100%; background-image: url(./../img/self_shop_f1_bg.png); padding-left: 31px; background-repeat: no-repeat; padding-top: 18px; background-size: contain; background-position: 0px 4px; position: relative; }
 | 
			
		||||
/* 楼层标题背景图 */
 | 
			
		||||
.f1_tit_bg{background-image: url(./../img/self_shop_f1_bg.png)}
 | 
			
		||||
.f2_tit_bg{background-image: url(./../img/self_shop_f2_bg.png)}
 | 
			
		||||
.f3_tit_bg{background-image: url(./../img/self_shop_f3_bg.png)}
 | 
			
		||||
.f4_tit_bg{background-image: url(./../img/self_shop_f4_bg.png)}
 | 
			
		||||
.f5_tit_bg{background-image: url(./../img/self_shop_f5_bg.png)}
 | 
			
		||||
.f6_tit_bg{background-image: url(./../img/self_shop_f6_bg.png)}
 | 
			
		||||
.sfh_tit{font-size: 18px; color: #df2003; text-align: left; position: relative; top: -6px; left: 1px; }
 | 
			
		||||
.sfhr{float: right; height: 100%; line-height: 1.5; margin-top: 22px; }
 | 
			
		||||
.c18_333{font-size: 14px; color: #333; }
 | 
			
		||||
.separatory{padding: 0 10px; } 
 | 
			
		||||
.sf_adsbox{width: 1200px; height: 320px; box-sizing:border-box; margin: 0 auto; margin-top: 10px; }
 | 
			
		||||
.sf_adsbox img{width: 100%;height: 100%;}
 | 
			
		||||
.sf_glistbox{width: 100%;}
 | 
			
		||||
/* 楼层商品背景色 */
 | 
			
		||||
.f1_g_bg{background-color: #fff;}
 | 
			
		||||
.f2_g_bg{background:-webkit-linear-gradient(right, rgba(222,243,213,0.3) 8%, #def3d5 40%, rgba(222,243,213,0.3) 87%); background:-o-linear-gradient(right, rgba(222,243,213,0.3) 8%, #def3d5 40%, rgba(222,243,213,0.3) 87%); background:linear-gradient(right, rgba(222,243,213,0.3) 8%, #def3d5 40%, rgba(222,243,213,0.3) 87%); }
 | 
			
		||||
.f3_g_bg{background-color: #fff;}
 | 
			
		||||
.f4_g_bg{background:-webkit-linear-gradient(right, #f8feff 8%, #eefdff 40%, #f8feff 87%); background:-o-linear-gradient(right, #f8feff 8%, #eefdff 40%, #f8feff 87%); background:linear-gradient(right, #f8feff 8%, #eefdff 40%, #f8feff 87%); }
 | 
			
		||||
.f5_g_bg{background-color: #fff;}
 | 
			
		||||
.f6_g_bg{background:-webkit-linear-gradient(right, #f0f4ff 8%, #dae3ff 40%, #f8feff 87%); background:-o-linear-gradient(right, #f0f4ff 8%, #dae3ff 40%, #f8feff 87%); background:linear-gradient(to left, #f0f4ff 8%, #dae3ff 40%, #f8feff 87%); }
 | 
			
		||||
.sf_glist{width: 1200px;box-sizing:border-box; margin: 0 auto; padding: 0 19px; }
 | 
			
		||||
.sf_glist li:nth-child(n+6){margin-top:0; }
 | 
			
		||||
.sf_glist li:nth-child(5n){background-color: #fff; margin-right:0; }
 | 
			
		||||
.sf_glist li:hover a{background-color: #eee;}
 | 
			
		||||
.sf_glist li:hover{background-color: #eee;}
 | 
			
		||||
.sf_glist li{margin-top: 15px; margin-bottom: 15px; background-color: #fff; float: left; width: 200px; height: 300px; margin-right: 15px; padding: 0 10px; border-radius: 8px; transition:all ease .4s; }
 | 
			
		||||
.sf_glist li a{transition:all ease .4s; display: block; width: 100%; height: 100%; background-color: #fff; box-sizing: border-box; padding-top: 20px; }
 | 
			
		||||
.sf_img img{position: absolute; left: 0; right: 0; top: 0; bottom: 0; margin: auto; max-width: 100%; max-height: 100%; }
 | 
			
		||||
.sf_img{position: relative; width: 100%; height: 200px; }
 | 
			
		||||
.sf_gname{margin: 10px auto; font-size: 14px; color: #333; width: 100%; overflow: hidden; word-break:break-all; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; min-height: 35px; }
 | 
			
		||||
.sf_price{font-size: 14px; color: #df2003; }
 | 
			
		||||
							
								
								
									
										454
									
								
								hyhproject/home2/view/default/css/shop.css
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										454
									
								
								hyhproject/home2/view/default/css/shop.css
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,454 @@
 | 
			
		||||
@CHARSET "UTF-8";
 | 
			
		||||
body {margin: 0px auto;background: #F5F5F5}
 | 
			
		||||
select{box-shadow: 2px 2px 2px #f0f0f0 inset;font-family: inherit;font-size: 100%;padding: 2px;vertical-align: middle;}
 | 
			
		||||
.wst-wrap {margin: 0px auto}
 | 
			
		||||
.wst-header {}
 | 
			
		||||
.wst-main {margin: auto;width: 1200px;min-height: 600px;height: auto;padding-top: 15px;}
 | 
			
		||||
.wst-menu {background: #FFFFFF;width: 198px;float: left;margin-right: 15px;filter: progid : DXImageTransform.Microsoft.Shadow ( color = #909090,direction = 120, strength = 4 );-moz-box-shadow: 2px 2px 10px #909090;-webkit-box-shadow: 2px 2px 10px #909090;box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);}
 | 
			
		||||
.wst-content {background: #FFFFFF;min-height: 948px;height: auto;width: 990px;float: right;filter: progid : DXImageTransform.Microsoft.Shadow ( color = #909090,direction = 120, strength = 4 );-moz-box-shadow: 2px 2px 10px #909090;-webkit-box-shadow: 2px 2px 10px #909090;box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);}
 | 
			
		||||
.wst-footer {border-top: 1px solid #ddd;margin-top: 5px;}
 | 
			
		||||
.wst-menu-title {position: relative;width: 143px;display: block;padding: 10px 5px 10px 50px;font-weight: bolder;border-top: 1px solid #ccc;color: #000000;font-size: 16px;font-family:"microsoft yahei";background:#e9e9e9;cursor:pointer;}
 | 
			
		||||
.wst-menu-title img{padding: 0px 0px 3px 6px;}
 | 
			
		||||
.wst-menu {width: 198px;margin: 0px;padding: 0px;min-height: 948px;}
 | 
			
		||||
.wst-menu li {list-style-type: none;padding: 0px 0px 0px 50px;height: 35px;line-height: 35px;color: #6a6868;cursor: pointer}
 | 
			
		||||
.wst-menu li:hover,li.wst-menua{font-weight: bolder;color: #e23e3d;border-left: 2px solid #e23e3d;}
 | 
			
		||||
.wst-menu .selected {background-color: #e23e3d;font-weight: bolder;color: #ffffff;}
 | 
			
		||||
.wst-menu .liselect {background-color: #e23e3d;font-weight: bolder;color: #ffffff;}
 | 
			
		||||
.wst-list {width: 100%;border-collapse: collapse;}
 | 
			
		||||
.wst-list thead tr{line-height: 2;}
 | 
			
		||||
.wst-list thead tr th {height: 35px;border-bottom: 1px solid #ccc;text-align: left;padding-left:5px;background: #eeeeee;}
 | 
			
		||||
.wst-list tbody tr td {line-height: 35px;text-align: left;padding-left:5px;word-wrap: break-word;word-break:break-all;}
 | 
			
		||||
.wst-colour{background: #e6e6e6;}
 | 
			
		||||
.wst-form {border-collapse: collapse;width:99%;}
 | 
			
		||||
.wst-form tr {height: 30px;line-height: 30px;}
 | 
			
		||||
.wst-form tr th {color: #707070;text-align: right}
 | 
			
		||||
.wst-form tr td {text-align: left}
 | 
			
		||||
.wst-form input,textarea {background-color: white;border: 1px solid #ccc;border-radius: 3px;box-shadow: 2px 2px 2px #f0f0f0 inset;font-family: inherit;font-size: 100%;margin: 3px;padding: 2px;vertical-align: middle;outline: none;border:1px solid #bac4c3;}
 | 
			
		||||
.wst-form input:focus{border-radius:3px;border:1px solid #eb654a;}
 | 
			
		||||
.wst-form select{box-shadow: 2px 2px 2px #f0f0f0 inset;font-family: inherit;font-size: 100%;padding: 2px;vertical-align: middle;}
 | 
			
		||||
.wst-tab-box {width: 100%;height: auto;margin: 0px auto;}
 | 
			
		||||
.wst-tab-nav {margin: 0;padding: 0;height: 31px;border-bottom:1px solid #f7375c;}
 | 
			
		||||
.wst-tab-nav li {cursor: pointer;float: left;margin: 0 0px;list-style: none;border: 1px solid #ddd;border-bottom: none;border-left: none;line-height: 30px;text-align: center;background: #eeeeee;color: #000000;padding-left: 10px;padding-right: 10px;}
 | 
			
		||||
.wst-tab-nav .on {background: none repeat scroll 0 0 #e45050;border-bottom: 0 none;color: #ffffff;font-weight:bold;}
 | 
			
		||||
.wst-tab-content {padding: 5px;width: 99%;height: auto;border: 1px solid #ddd;background: #FFF;}
 | 
			
		||||
.wst-gallery-imgs {height: auto}
 | 
			
		||||
.wst-gallery-img {width: 140px;height: 100px;float: left;overflow: hidden;position:relative;margin: 10px 5px 5px 0px;cursor: pointer;}
 | 
			
		||||
.wst-gallery-del {background: url('../../../View/default/images/close_botton.png') no-repeat;display: block;height: 20px;position: absolute;width:20px;right: 0px;cursor: pointer;}
 | 
			
		||||
.wst-gallery-goods-del {background: url('../../../View/default/images/close_botton.png') no-repeat;display: block;height: 20px;position: absolute;width:20px;right: 0px;display:none;cursor: pointer;}
 | 
			
		||||
.wst-shop-nav {border-bottom:6px solid #e45050;text-align: center;}
 | 
			
		||||
.wst-nav-box {width: 1200px;margin: 0 auto;line-height: 33px;color: #ffffff;}
 | 
			
		||||
.wst-nav-box li{width: 156px;text-align: center;color: #e45050;font-size: 18px;font-family:"microsoft yahei";margin-bottom:-1px;}
 | 
			
		||||
.wst-nav-box li:hover,.wst-nav-box .wst-nav-boxa{color: #ffffff;background:url(../img/seller_img_bgnav.png) 0px 0px no-repeat;}
 | 
			
		||||
.wst-nav-box .liselect {list-style-type:none;}
 | 
			
		||||
.wst-appsaler {margin-top: 30px;text-align: center;margin-bottom: 30px;line-height: 30px;}
 | 
			
		||||
.wst-menu-title span {position: absolute;left: 20px;top: 8px;display: inline-block;width: 20px;height: 20px;background-image: url(../../../View/default/images/icon_leftmenu.png);background-repeat: no-repeat;}
 | 
			
		||||
.wst-tree-open{background-repeat: no-repeat;display: inline-block;width: 20px;vertical-align:middle;cursor:pointer}
 | 
			
		||||
.wst-tree-close{display: inline-block;width: 20px;vertical-align:middle;cursor:pointer}
 | 
			
		||||
.wst-tree-second{display: inline-block;width: 20px;margin-left:10px;vertical-align:middle;cursor:pointer}
 | 
			
		||||
.wst-fre-hov:hover{background: #fae9ec;}
 | 
			
		||||
.wst-state_yes{display:block;width:13px;}
 | 
			
		||||
.wst-state_no{display:block;width:13px;}
 | 
			
		||||
.wst-page-items{text-align: left;color: #ccc;}
 | 
			
		||||
.wst-page-items a{display: inline-block;color: #000000;display: inline-block;height: 25px;line-height: 25px;padding: 0 10px;border: 1px solid #D5D5D5;margin: 0 2px;border-radius: 4px;vertical-align: middle;}
 | 
			
		||||
.wst-page-items a:hover{text-decoration: none;color: #e23e3d;font-weight:bolder;border: 1px solid #D5D5D5;}
 | 
			
		||||
.wst-page-items span.current{display: inline-block;height: 25px;line-height: 25px;padding: 0 10px;margin: 0 2px;color: #e23e3d;font-weight:bolder;border: 1px solid #D5D5D5;border-radius: 4px;vertical-align: middle;}
 | 
			
		||||
.wst-page-items span.disabled{display: inline-block;height: 25px;line-height: 25px;padding: 0 10px;margin: 0 2px;color: #bfbfbf;background: #f2f2f2;border: 1px solid #bfbfbf;border-radius: 4px;vertical-align: middle;}
 | 
			
		||||
.wst-shophome-img{height:120px;height:120px;text-align:center;}
 | 
			
		||||
.wst-shophome-area{min-height:400px;border-top:1px solid #cccccc;}
 | 
			
		||||
.wst-shophome-nav{width:780px;float:left;min-height:400px;}
 | 
			
		||||
.wst-shophome-nav .header{height:36px;background-color:#f5f5f5;line-height:36px;padding-left:10px;font-weight:bolder;}
 | 
			
		||||
.wst-shophome-nav .main{height:66px;background-color:#feffd4;line-height:30px;padding-left:10px;margin:10px;}
 | 
			
		||||
.wst-shophome-nav .current{padding-left:20px;padding-bottom:10px;color:#000000;}
 | 
			
		||||
.wst-goods-price-table{width:100%;border:0px;border-collapse: collapse;}
 | 
			
		||||
.wst-goods-price-table tr th{border:0px;text-align:left;background:#eee;padding-left:5px}
 | 
			
		||||
.wst-goods-fieldset{border:2px double #ddd;padding:5px;display:none;}
 | 
			
		||||
.wst-goods-fieldset legend{margin-left:10px;}
 | 
			
		||||
.wst-complain-detail{width:100%;border-collapse: collapse;}
 | 
			
		||||
.wst-complain-detail tr{height: 25px;line-height: 25px;}
 | 
			
		||||
.wst-complain-detail tr th{color: #707070;text-align: right;font-size:12px;}
 | 
			
		||||
.wst-complain-detail tr td {text-align: left;color: #707070;}
 | 
			
		||||
.wst-complain-detail .head{font-weight:bold;border-bottom:1px dotted #ddd;}
 | 
			
		||||
.wst-complain-left{width:250px;height:100%;border:1px solid #ddd;text-align:left;background:#ffffff;float:left;}
 | 
			
		||||
.wst-complain-order-head{width:240px;height:25px;line-height:25px;border-bottom:1px solid #ddd;font-weight:bold;padding:5px;background:#f5f5f5;}
 | 
			
		||||
.wst-complain-order-goods{width:240px;height:180px;line-height:30px;padding:5px;border-bottom:1px solid #ddd;overflow-y:auto}
 | 
			
		||||
.wst-complain-main{float:right;width:718px;overflow:hidden;border:1px solid #ddd;margin-right:16px;}
 | 
			
		||||
.wst-complain-order-info{padding:5px;display: block;height:100%;}
 | 
			
		||||
.wst-complain-order-info dt {float: left;width: 70px;color: #999;padding: 1px 0;display: block;height:20px;}
 | 
			
		||||
.wst-complain-order-info dd{overflow: hidden;color: #666;padding: 1px 0;width:170px;display: block;height:20px;}
 | 
			
		||||
.wst-complain-box{border-bottom:1px solid #ddd;width:718px;padding:5px;}
 | 
			
		||||
.wst-complain-footer{clear:both;width:100%;text-align:center;padding:5px 0;}
 | 
			
		||||
/*头部*/
 | 
			
		||||
.wst-lite-bac{background:#ffffff;}
 | 
			
		||||
.wst-lite-tit{float:left;width: 100px;margin:16px 0px 0px 10px;}
 | 
			
		||||
.wst-lite-tit span{float:left;color: #e45050;font-size: 19px;margin-left:10px;font-family:"microsoft yahei";}
 | 
			
		||||
a.wst-lite-in{float:left;margin-top:6px;padding:3px 8px;color: #e45050;border:1px solid #e45050;}
 | 
			
		||||
a.wst-lite-in:hover{color: #ffffff;border:1px solid #ffffff;background:#e45050;}
 | 
			
		||||
.wst-lite-sea{float:right;background:#ffffff;margin-top:20px;}
 | 
			
		||||
.wst-lite-sea .search{border:2px solid #e23c3d;height: 35px;position: relative;}
 | 
			
		||||
.wst-lite-sea .search .j-search-type{width:78px;top:0;line-height:36px;position: absolute;padding:0;border-right:2px solid #e23c3d;border-left:2px solid #e23c3d;cursor: pointer;left:-2px;text-align:center;}
 | 
			
		||||
.wst-lite-sea .search .j-type-list{width:70px;top:35px;line-height:36px;position: absolute;padding:0 4px;border:2px solid #e23c3d;cursor: pointer;background-color: #fff;left:-2px;z-index: 100;border-top:0;display: none;text-align: center;}
 | 
			
		||||
.wst-lite-sea .search .j-search-type i {top: 15px;right: 6px;height: 7px;width: 0px;overflow: hidden;font-style: normal;color: #6A6A6A;display: block;position: absolute;}
 | 
			
		||||
.wst-lite-sea .search .j-search-type s{  position: relative;top: -17px;text-decoration: none;}.wst-lite-sea .search .j-type-list div:hover{color: #e23c3d}
 | 
			
		||||
.wst-lite-sea .search .search-ipt{border: 2px solid #e23c3d;color: #565656;float: left;font-family: Microsoft Yahei;font-size: 14px;line-height: 30px;overflow: hidden;padding: 0;width: 330px;height:30px;border:36px;outline:none;padding-left: 84px;box-shadow: none;}
 | 
			
		||||
.wst-lite-sea .search .search-btn{cursor: pointer;font-size: 15px;font-weight: bolder;height: 35px;line-height: 36px;position: absolute;right: 0;text-align: center;top: 0;width: 52px;background:url(../img/btn_search_red.png) 22px 6px no-repeat;}
 | 
			
		||||
/*首页*/
 | 
			
		||||
.wst-shop-name{margin-top:28px;margin-left:138px;}
 | 
			
		||||
.wst-shop-name a{color: #fe6047;font-size: 18px;font-family: "microsoft yahei";}
 | 
			
		||||
.wst-shop-info{padding:0px 0px 0px 10px;}
 | 
			
		||||
.wst-shop-img{float:left;margin-top:-32px;width:120px;height:120px;text-align:center;vertical-align:middle;display:block;position:relative;}
 | 
			
		||||
.wst-shop-img a{width:120px;height:120px;display:table-cell;vertical-align:middle;}
 | 
			
		||||
.wst-shop-img img{max-width:120px;max-height:120px;}
 | 
			
		||||
.wst-shop-na{float:left;margin-left:6px;width:20%;}
 | 
			
		||||
.wst-shop-na a{color: #fe6047;font-size: 18px;font-family: "microsoft yahei";}
 | 
			
		||||
.wst-shop-na2{float:left;margin-top:3px;}
 | 
			
		||||
.wst-shop-na2 img{float:left;width:15px;margin:4px 3px 0px 0px;cursor: pointer;}
 | 
			
		||||
.wst-shop-na2 span{float:left;line-height: 26px;margin-right:6px;}
 | 
			
		||||
.wst-shop-na3{float:left;width:100%;color: #010101;line-height:26px;}
 | 
			
		||||
.wst-shop-eva{float:left;width:15%;margin:0px;border-left:1px dashed #bfbfbf;}
 | 
			
		||||
.wst-shop-eva p{font-size: 15px;color: #010101;text-align:center;font-family: "microsoft yahei";margin:16px 0px 8px 0px;}
 | 
			
		||||
.wst-shop-evai{float:left;margin:8px 0px 16px 25px;}
 | 
			
		||||
.wst-shop-con{float:left;width:21%;margin:0px;border-left:1px dashed #bfbfbf;}
 | 
			
		||||
.wst-shop-con p{font-size: 15px;font-family: "microsoft yahei";line-height: 30px;margin-left:18px;}
 | 
			
		||||
.wst-list .wst-fre-th{padding-left: 23px;}
 | 
			
		||||
.wst-list .wst-fre-td{padding-left: 25px;}
 | 
			
		||||
/*标题*/
 | 
			
		||||
.wst-shop-head{float: left;width: 100%;border-bottom: 1px solid #e45050;}
 | 
			
		||||
.wst-shop-head span{float: left;line-height:28px;padding:0px 28px;color:#ffffff;background:#e45050;font-weight: bold;}
 | 
			
		||||
.wst-shop-head a{float: right;line-height:28px;padding:0px 28px;color:#ffffff;background:#df2003;}
 | 
			
		||||
.wst-shop-tbar{height: 45px;margin:15px 0 0 0px;clear:both;padding:5px 10px;}
 | 
			
		||||
.wst-shop-content{padding:12px;clear:both;}
 | 
			
		||||
/*button按钮*/
 | 
			
		||||
/*红*/
 | 
			
		||||
.wst-shop-but{outline: none;background:#E45050;color: #ffffff;border: 1px solid #d8193e;border-radius:3px;cursor:pointer;}
 | 
			
		||||
.wst-shop-but:hover{background: #ea3232 none repeat scroll 0 0;cursor:pointer;}
 | 
			
		||||
/*button按钮*/
 | 
			
		||||
.s-btn{height: 30px;line-height: 30px;margin-right: 10px;margin-top: 16px;padding: 7px 20px;color: #ffffff;background: #E45050;border-radius: 3px;cursor:pointer;}
 | 
			
		||||
.s-btn:hover{cursor:pointer;}
 | 
			
		||||
.s-btn2{height: 30px;line-height: 30px;margin-right: 10px;margin-top: 16px;padding: 7px 20px;background: #ebebeb;border:1px solid #dad7d7;border-radius: 3px;cursor:pointer;}
 | 
			
		||||
.s-btn:hover{cursor:pointer;}
 | 
			
		||||
.wst-shop-split{border-bottom:1px dotted #ccc;margin-top:10px;margin-bottom:10px;}
 | 
			
		||||
.wst-shop-jrdt{height:120px;}
 | 
			
		||||
.wst-shop-jrdt .wst-title{background:url("../img/img_majz_titlebg.png");background-size:100%;width:980px;height:40px;line-height: 40px;padding-left: 10px;font-weight: bold;}
 | 
			
		||||
.wst-shop-jrdt .item{width:170px;height: 58px; overflow:hidden;border:1px solid #ccc;margin-left: 20px;float:left;}
 | 
			
		||||
.wst-shop-jrdt .item .icon1{background:url("../img/icon-mjzxsy.png") no-repeat -45px -31px;height:58px;width:47px;float:left;}
 | 
			
		||||
.wst-shop-jrdt .item .icon2{background:url("../img/icon-mjzxsy.png") no-repeat -170px -31px;height:58px;width:47px;float:left;}
 | 
			
		||||
.wst-shop-jrdt .item .icon3{background:url("../img/icon-mjzxsy.png") no-repeat -296px -31px;height:58px;width:47px;float:left;}
 | 
			
		||||
.wst-shop-jrdt .item .icon4{background:url("../img/icon-mjzxsy.png") no-repeat -422px -31px;height:58px;width:47px;float:left;}
 | 
			
		||||
.wst-shop-jrdt .item .icon5{background:url("../img/icon-mjzxsy.png") no-repeat -550px -31px;height:58px;width:47px;float:left;}
 | 
			
		||||
.wst-shop-jrdt .item .title{float:left;text-align: center;height:58px;width:120px;padding-top:5px}
 | 
			
		||||
.wst-shop-jrdt .item .num{color:red}
 | 
			
		||||
.wst-shop-spxx{height:300px;margin-top: 25px;}
 | 
			
		||||
.wst-shop-spxx .wst-title{background:url("../img/img_majz_titlebg.png") no-repeat 0px -68px;background-size:100%;width:980px;height:40px;line-height: 40px;padding-left: 10px;font-weight: bold;}
 | 
			
		||||
.wst-shop-spxx .item{width:170px;height: 100px; overflow:hidden;border:1px solid #ccc;margin-left: 20px;float:left;margin-bottom: 10px;}
 | 
			
		||||
.wst-shop-spxx .item .rbox{height:60px;position:relative;}
 | 
			
		||||
.wst-shop-spxx .item .icon1{background:url("../img/icon-mjzxsy.png") no-repeat -38px -128px;position:absolute; left:55px;height:60px;width:60px;}
 | 
			
		||||
.wst-shop-spxx .item .icon2{background:url("../img/icon-mjzxsy.png") no-repeat -155px -128px;position:absolute; left:55px;height:60px;width:60px;}
 | 
			
		||||
.wst-shop-spxx .item .icon3{background:url("../img/icon-mjzxsy.png") no-repeat -274px -128px;position:absolute; left:55px;height:60px;width:60px;}
 | 
			
		||||
.wst-shop-spxx .item .icon4{background:url("../img/icon-mjzxsy.png") no-repeat -391px -128px;position:absolute; left:55px;height:60px;width:60px;}
 | 
			
		||||
.wst-shop-spxx .item .icon5{background:url("../img/icon-mjzxsy.png") no-repeat -507px -128px;position:absolute; left:55px;height:60px;width:60px;}
 | 
			
		||||
.wst-shop-spxx .item .icon6{background:url("../img/icon-mjzxsy.png") no-repeat -38px -232px;position:absolute; left:55px;height:60px;width:60px;}
 | 
			
		||||
.wst-shop-spxx .item .title{text-align: center;height:58px;padding-top:5px}
 | 
			
		||||
.wst-shop-spxx .item .num{color:red}
 | 
			
		||||
.wst-shop-ddxx{height:280px;}
 | 
			
		||||
.wst-shop-ddxx .wst-title{background:url("../img/img_majz_titlebg.png") no-repeat 0px -135px;background-size:100%;width:980px;height:40px;line-height: 40px;padding-left: 10px;font-weight: bold;}
 | 
			
		||||
.wst-shop-ddxx .item{width:170px;height: 100px; overflow:hidden;border:1px solid #ccc;margin-left: 20px;float:left;margin-bottom: 10px;}
 | 
			
		||||
.wst-shop-ddxx .item .rbox{height:60px;position:relative;}
 | 
			
		||||
.wst-shop-ddxx .item .icon1{background:url("../img/icon-mjzxsy.png") no-repeat -38px -320px;position:absolute; left:55px;height:60px;width:60px;}
 | 
			
		||||
.wst-shop-ddxx .item .icon2{background:url("../img/icon-mjzxsy.png") no-repeat -154px -320px;position:absolute; left:55px;height:60px;width:60px;}
 | 
			
		||||
.wst-shop-ddxx .item .icon3{background:url("../img/icon-mjzxsy.png") no-repeat -273px -320px;position:absolute; left:55px;height:60px;width:60px;}
 | 
			
		||||
.wst-shop-ddxx .item .icon4{background:url("../img/icon-mjzxsy.png") no-repeat -391px -320px;position:absolute; left:55px;height:60px;width:60px;}
 | 
			
		||||
.wst-shop-ddxx .item .icon5{background:url("../img/icon-mjzxsy.png") no-repeat -509px -320px;position:absolute; left:55px;height:60px;width:60px;}
 | 
			
		||||
.wst-shop-ddxx .item .icon6{background:url("../img/icon-mjzxsy.png") no-repeat -38px -415px;position:absolute; left:55px;height:60px;width:60px;}
 | 
			
		||||
.wst-shop-ddxx .item .title{text-align: center;height:58px;padding-top:5px}
 | 
			
		||||
.wst-shop-ddxx .item .num{color:red}
 | 
			
		||||
/********************************************** 新增商品页面 ****************************************************/
 | 
			
		||||
/*自定义单选框样式*/
 | 
			
		||||
.wst-radio + label {-webkit-appearance: none;background-color: #fafafa;border: 1px solid gray;padding: 6px;border-radius: 50px;display: inline-block;position: relative;}
 | 
			
		||||
.wst-radio + label:after {content: ' ';width: 6px;height: 6px;border-radius: 50px;position: absolute;top: 3px;background: #99a1a7;box-shadow: inset 0px 0px 10px rgba(0,0,0,0.3);text-shadow: 0px;left: 3px;font-size: 32px;}
 | 
			
		||||
.wst-radio:checked + label{border: 1px solid #ff9a02;/* 修改选框选中颜色*/}
 | 
			
		||||
.wst-radio:checked + label:after {content: ' ';width: 6px;height: 6px;border-radius: 50px;position: absolute;top: 3px;background: #ff9a02;/* 修改选框选中颜色*/box-shadow: inset 0px 0px 10px #ff9a02;/* 修改选框选中颜色*/text-shadow: 0px;left: 3px;font-size: 32px;}
 | 
			
		||||
.radio-box .wst-radio{position:relative;z-index:-654;left:16px;top:0px;}
 | 
			
		||||
.radio-box label{margin-left:-8px;margin-right:2px;}
 | 
			
		||||
.mt-1{position:relative;top:1px;left:0px;cursor:pointer;}
 | 
			
		||||
/*自定义复选框样式-行*/
 | 
			
		||||
.wst-checkbox + label {-webkit-appearance: none;background-color: #fafafa;border: 1px solid gray;padding: 6px;display: inline-block;position: relative;}
 | 
			
		||||
.wst-checkbox + label:after {content: ' ';width: 6px;height: 6px;position: absolute;top: 3px;background: #99a1a7;box-shadow: inset 0px 0px 10px rgba(0,0,0,0.3);text-shadow: 0px;left: 3px;font-size: 32px;}
 | 
			
		||||
.wst-checkbox:checked + label{border: 1px solid #ff9a02;/* 修改选框选中颜色*/}
 | 
			
		||||
.wst-checkbox:checked + label:after {content: ' ';width: 6px;height: 6px;position: absolute;top: 3px;background: #ff9a02;/* 修改选框选中颜色*/box-shadow: inset 0px 0px 10px #ff9a02;/* 修改选框选中颜色*/text-shadow: 0px;left: 3px;font-size: 32px;}
 | 
			
		||||
.checkbox-box .wst-checkbox{position:relative;z-index:-654;left:16px;top:-1px;}
 | 
			
		||||
.checkbox-box label{margin-left:-8px;margin-right:2px;}
 | 
			
		||||
.w-r{width:15px;height:15px;cursor:pointer;margin-left:8px;}
 | 
			
		||||
.wrong{background:url(../img/seller_icon_error.png) no-repeat;}
 | 
			
		||||
.right{background:url(../img/seller_icon_right.png) no-repeat;}
 | 
			
		||||
.g-handle{color:#1cbbef;display: inline-block;margin:0 3px;}
 | 
			
		||||
.g-handle:hover{color:#085cde;}
 | 
			
		||||
.spec-item{float:left;}
 | 
			
		||||
.spec-item .item-del{background:url(../img/icon_no.png);width:13px;height:13px;display:inline-block;position: relative;top:-10px;left:-10px;cursor:pointer;}
 | 
			
		||||
.spec-ipt{width:80px;}
 | 
			
		||||
.specs-sale-table{width:100%;border-collapse:collapse;border:1px solid #dddddd;margin-bottom:10px;}
 | 
			
		||||
.specs-sale-table th{padding-top:5px;text-align:center;background:#eeeeee;text-align:center;border:1px solid #dddddd}
 | 
			
		||||
.specs-sale-table td{text-align:center;text-align:center;border:1px solid #dddddd}
 | 
			
		||||
.spec-sale-goodsNo{width:150px}
 | 
			
		||||
.spec-sale-ipt{width:50px;}
 | 
			
		||||
.spec-sale-text{width:80%}
 | 
			
		||||
.attr-table{width:100%}
 | 
			
		||||
.attr-table th{text-align:right;}
 | 
			
		||||
.attr-table td{text-align:left;}
 | 
			
		||||
#goodsImgPicker{margin-left:20px;}
 | 
			
		||||
.spec-line{border-top:1px dashed #cccccc;margin:5px 0px 7px 0px}
 | 
			
		||||
.spec-head{font-weight:bold;height:30px;line-height:30px;background:url(../img/img_seller_ggjt.png) no-repeat 0px 7px;padding-left:25px;}
 | 
			
		||||
.spec-body{border:1px solid #cccccc;padding:5px;margin-bottom:10px;}
 | 
			
		||||
/************************ 商家商品管理页面 **************************/
 | 
			
		||||
.goods-img{width:60px; height:60px;text-align:center;vertical-align:middle;display:block;position:relative;float:left;margin:3px auto;line-height: 0px;}
 | 
			
		||||
.goods-img a{width:60px;height:60px;display:table-cell;vertical-align:middle;} 
 | 
			
		||||
.goods-img a img{max-width:60px;max-height:60px;}
 | 
			
		||||
.goodsName{height:50px;line-height:25px;overflow: hidden;float: left;max-width: 150px;margin-left: 5px;}
 | 
			
		||||
.s-menu{height:25px;margin-left: 4px;margin-top:10px;}
 | 
			
		||||
.s-menu a{display: block;float:left;width:48px;margin-right: 10px;}
 | 
			
		||||
.s-menu a span{display: block;float: right;}
 | 
			
		||||
.s-sale,.s-sale-up,.s-new,.s-hot,.s-best,.s-rec,.s-heart,.s-del,.s-add{display: inline-block;width:18px;height:18px;background: url(../img/seller_icon_cz.png) no-repeat;}
 | 
			
		||||
.s-sale{background-position: -20px -24px;}
 | 
			
		||||
.s-sale:hover{background-position: -20px -64px;color:#F7375C;margin-top: 1px;}
 | 
			
		||||
.s-sale-up{background-position: -473px -24px;}
 | 
			
		||||
.s-sale-up:hover{background-position: -473px -64px;color:#F7375C;margin-top: 1px;}
 | 
			
		||||
.s-rec{background-position: -83px -24px;}
 | 
			
		||||
.s-rec:hover{background-position: -83px -64px;color:#F7375C;margin-top: 1px;}
 | 
			
		||||
.s-new{background-position: -149px -24px;}
 | 
			
		||||
.s-new:hover{background-position: -149px -64px;color:#F7375C;margin-top: 1px;}
 | 
			
		||||
.s-best{background-position: -213px -25px;}
 | 
			
		||||
.s-best:hover{background-position: -213px -65px;color:#F7375C;margin-top: 1px;}
 | 
			
		||||
.s-hot{background-position: -280px -25px;}
 | 
			
		||||
.s-hot:hover{background-position: -280px -65px;color:#F7375C;margin-top: 1px;}
 | 
			
		||||
.s-heart{background-position: -276px -25px;}
 | 
			
		||||
.s-heart:hover{background-position: -276px -65px;color:#F7375C;margin-top: 1px;}
 | 
			
		||||
.s-del{background-position: -343px -25px;}
 | 
			
		||||
.s-del:hover{background-position: -343px -65px;color:#F7375C;margin-top: 1px;}
 | 
			
		||||
.s-add{background-position: -408px -25px;}
 | 
			
		||||
.s-add:hover{background-position: -408px -65px;color:#F7375C;margin-top: 1px;}
 | 
			
		||||
/*评价管理*/
 | 
			
		||||
.appra-img{width:150px; height:150px;margin:5px auto;text-align:center;vertical-align:middle;display:block;position:relative; float:left;}
 | 
			
		||||
.appra-img a{display:table-cell;vertical-align:middle;width:150px;height:150px;} 
 | 
			
		||||
.appra-img a img{max-width:150px;max-height:150px;}
 | 
			
		||||
.appra-goodsName{float: left;height: 150px;line-height: 25px;margin-left: 5px;max-width: 240px;overflow: hidden;}
 | 
			
		||||
/*自定义复选框-列--方*/
 | 
			
		||||
.checkbox-box-s{height:20px !important;}
 | 
			
		||||
.wst-checkbox-s + label {-webkit-appearance: none;background-color: #ffffff;border: 1px solid #d5d5d5;padding: 6px;display: inline-block;position: relative;}
 | 
			
		||||
.wst-checkbox-s + label:after {content: ' ';width: 6px;height: 6px;position: absolute;top: 3px;box-shadow: inset 0px 0px 10px #ccc;text-shadow: 0px;left: 3px;font-size: 32px;}
 | 
			
		||||
.wst-checkbox-s:checked + label{border: 1px solid #F7375C;/* 修改选框选中颜色*/}
 | 
			
		||||
.wst-checkbox-s:checked + label:after {content: ' ';width: 6px;height: 6px;position: absolute;top: 3px;background: #F7375C;/* 修改选框选中颜色*/box-shadow: inset 0px 0px 10px #F7375C;/* 修改选框选中颜色*/text-shadow: 0px;left: 3px;font-size: 32px;}
 | 
			
		||||
.checkbox-box-s .wst-checkbox-s{position:relative;z-index:-654;left:-5px;top:-1px;}
 | 
			
		||||
.checkbox-box-s label{position: relative;top:-38px;left: 1px;}
 | 
			
		||||
.checkbox-box-s-all label{position: relative;top:-27px;left: 1px;}
 | 
			
		||||
/**订单列表**/
 | 
			
		||||
.wst-box-top{margin-top:5px;}
 | 
			
		||||
.wst-order-list{width:100%;border-collapse:separate;border-spacing: 0;border-color:grey;}
 | 
			
		||||
.wst-order-list .head{max-height:32px;line-height: 32px;text-align: center;background: #f5f5f5;color: #666;font-weight: 400;}
 | 
			
		||||
.wst-order-list .empty-row{height: 20px;}
 | 
			
		||||
.wst-order-list .order-head{background: #f5f5f5;height: 31px;line-height: 31px;color: #aaa;overflow: hidden;}
 | 
			
		||||
.wst-order-list .order-head td{padding-left:5px;padding-right:5px;border:1px solid #e5e5e5;border-bottom:0px;}
 | 
			
		||||
.wst-order-list .goods-box td:first-child{border-left:1px solid #e5e5e5;}
 | 
			
		||||
.wst-order-list .goods-box td{padding:5px;border:1px solid #e5e5e5;border-top:0px;border-left:0px;}
 | 
			
		||||
.wst-order-list .time{float:left;margin-right:30px;}
 | 
			
		||||
.wst-order-list .orderno{float:left;margin-right:30px;width:300px;text-align:left;}
 | 
			
		||||
.wst-order-list .address{float:left;width:580px;text-align:left}
 | 
			
		||||
.wst-order-list .goods-img{width:60px;height:60px;float:left;border:1px solid #efefef;}
 | 
			
		||||
.wst-order-list .goods-name{float:left;margin-left:5px;line-height:25px;width:475px;}
 | 
			
		||||
.wst-order-list .goods-extra{float:right;margin-left:5px;}
 | 
			
		||||
.wst-order-list .j-warn .order-head{background:#fcf8e3;height: 31px;line-height: 31px;color:#8a6d3b;overflow: hidden;}
 | 
			
		||||
.wst-order-list .j-warn .order-head td{padding-left:5px;padding-right:5px;border:1px solid #faebcc;border-bottom:0px;}
 | 
			
		||||
.wst-order-list .j-warn .goods-box td:first-child{border-left:1px solid #faebcc;}
 | 
			
		||||
.wst-order-list .j-warn .goods-box td{padding:5px;border:1px solid #faebcc;border-top:0px;border-left:0px;}
 | 
			
		||||
.wst-order-list .line{border-bottom:1px solid #ddd;margin-bottom:2px;padding-bottom:2px;}
 | 
			
		||||
.j-warn-order-money{color:red;font-size:19px;font-weight:bold}
 | 
			
		||||
.order-pc{float:left;margin:7px 5px 0px 0px;width:18px;height: 18px;background:url(../img/order_source_1.png) 0px 0px no-repeat;background-size: 90%;}
 | 
			
		||||
.order-mo{float: left;margin: 7px 5px 0px 0px;width: 18px;height: 18px;background: url(../img/order_source_2.png) 0px 0px no-repeat;background-size: 100%;}
 | 
			
		||||
.order-wx{float:left;margin:7px 5px 0px 0px;width:18px;height: 18px;background:url(../img/order_source_3.png) 0px 0px no-repeat;background-size: 100%;}
 | 
			
		||||
.order-app{float:left;margin:7px 5px 0px 0px;width:18px;height: 18px;background: url(../img/order_source_4.png) 0px 0px no-repeat;background-size: 100%;}
 | 
			
		||||
.order-ios{float:left;margin:7px 5px 0px 0px;width:18px;height: 18px;background:url(../img/order_source_5.png) 0px 0px no-repeat;background-size: 100%;}
 | 
			
		||||
/**订单详情**/
 | 
			
		||||
.order-box{margin-bottom:5px;border-bottom:1px solid #ddd;}
 | 
			
		||||
.order-box .box-head{font-weight:bold;height:30px;line-height:30px}
 | 
			
		||||
/*流程展示*/
 | 
			
		||||
.order-box .log-box{height:132px;}
 | 
			
		||||
.order-box .log-box .icon{float:left;width:60px;height:60px;}
 | 
			
		||||
.order-box .log-box .icons{float:left;width:60px;height:60px;}
 | 
			
		||||
.order-box .log-box .icon11{background:url(../img/user_icon_rzxx.png) -15px -12px no-repeat;}
 | 
			
		||||
.order-box .log-box .icon21{background:url(../img/user_icon_rzxx.png) -105px -12px no-repeat;}
 | 
			
		||||
.order-box .log-box .icon31{background:url(../img/user_icon_rzxx.png) -194px -12px no-repeat;}
 | 
			
		||||
.order-box .log-box .icon41{background:url(../img/user_icon_rzxx.png) -282px -12px no-repeat;}
 | 
			
		||||
.order-box .log-box .icon51{background:url(../img/user_icon_rzxx.png) -373px -12px no-repeat;}
 | 
			
		||||
.order-box .log-box .icon12{background:url(../img/user_icon_rzxx.png) -15px -62px no-repeat;}
 | 
			
		||||
.order-box .log-box .icon22{background:url(../img/user_icon_rzxx.png) -105px -62px no-repeat;}
 | 
			
		||||
.order-box .log-box .icon32{background:url(../img/user_icon_rzxx.png) -194px -61px no-repeat;}
 | 
			
		||||
.order-box .log-box .icon42{background:url(../img/user_icon_rzxx.png) -282px -63px no-repeat;}
 | 
			
		||||
.order-box .log-box .icon52{background:url(../img/user_icon_rzxx.png) -373px -62px no-repeat;}
 | 
			
		||||
.order-box .log-box .icon13{background:url(../img/user_icon_rzxx.png) -19px -123px no-repeat;}
 | 
			
		||||
.order-box .log-box .icon23{background:url(../img/user_icon_rzxx.png) -105px -122px no-repeat;}
 | 
			
		||||
.order-box .log-box .icon33{background:url(../img/user_icon_rzxx.png) -194px -121px no-repeat;}
 | 
			
		||||
.order-box .log-box .icon43{background:url(../img/user_icon_rzxx.png) -282px -122px no-repeat;}
 | 
			
		||||
.order-box .log-box .icon53{background:url(../img/user_icon_rzxx.png) -373px -121px no-repeat;}
 | 
			
		||||
.order-box .log-box .arrow{float:left;color: #979797;font-size: 15px;font-weight: bold;margin-top:18px;}
 | 
			
		||||
.order-box .log-box .arrow2{color: #7ebb53;}
 | 
			
		||||
.order-box .log-box .state{float:left;width:100%;margin-left:18px;}
 | 
			
		||||
.order-box .log-box .state2{float:left;width:100%;position: relative;}
 | 
			
		||||
.order-box .log-box .state2 p{float:left;width:180px;height:50px;text-align:left;margin-left:12px;color:#f05858;font-size: 15px;}
 | 
			
		||||
.order-box .log-box .state2 .path{position: absolute;z-index: 10;}
 | 
			
		||||
.order-box .log-box .state2 .path span{float:left;width:178px;height:50px;text-align:left;margin-left:12px;background: #ffffff;}
 | 
			
		||||
.order-box .delivery-box{height:100px;border-bottom:1px solid #ddd;}
 | 
			
		||||
.order-box th{font-weight:normal;}
 | 
			
		||||
.order-box .goods-head{border-top:2px solid #FC7A64;background: #f3f3f3;display: block;height: 25px;line-height: 25px;margin: 0 0 10px;padding: 5px 0;}
 | 
			
		||||
.order-box .goods-head .goods{float:left;width:500px;padding-left:15px}
 | 
			
		||||
.order-box .goods-head .number{float:left;width:140px;}
 | 
			
		||||
.order-box .goods-head .price{float:left;width:100px;}
 | 
			
		||||
.order-box .goods-head .num{float:left;width:100px;}
 | 
			
		||||
.order-box .goods-head .t-price{float:left;width:105px;}
 | 
			
		||||
.order-box .shop{padding-left:15px;height:25px;line-height:25px;border-bottom:2px solid #FDD8D2;color:#E55356;font-weight:bold;font-size:15px;padding-bottom:5px;}
 | 
			
		||||
.order-box .item{padding-top:5px;padding-bottom:5px;border:1px solid #eeeeee;border-top:0px;}
 | 
			
		||||
.order-box .item .goods{float:left;width:500px;padding-left:15px;}
 | 
			
		||||
.order-box .item .number{float:left;width:140px;}
 | 
			
		||||
.order-box .item .goods .img{float:left;width:80px;height:80px;}
 | 
			
		||||
.order-box .item .goods .name{float:left;width:390px;height:80px;margin-left:5px;}
 | 
			
		||||
.order-box .item .goods .spec{float:left;width:165px;margin-left:5px;}
 | 
			
		||||
.order-box .item .price{float:left;width:100px;}
 | 
			
		||||
.order-box .item .num{float:left;width:100px;}
 | 
			
		||||
.order-box .item .t-price{float:left;width:100px;}
 | 
			
		||||
.order-box .goods-footer{padding-right:10px;margin-bottom:10px;}
 | 
			
		||||
.order-box .line{border-top:1px solid #dddddd;}
 | 
			
		||||
.order-box .goods-summary{margin-top:10px;}
 | 
			
		||||
.order-box .summary{height:30px;line-height:30px;}
 | 
			
		||||
.order-box .orderScore{margin-right:5px;}
 | 
			
		||||
.order-box .log td{height:25px;line-height:25px;padding-left:15px;}
 | 
			
		||||
/********** 店铺设置 *********/
 | 
			
		||||
.cfg-img-url{background: #f48c3a none repeat scroll 0 0;bottom: 0;height: 18px;left: -1px;top:178px;line-height: 18px;padding: 0 5px;position: absolute;z-index: 170;}
 | 
			
		||||
/************* 商家回复 *************/
 | 
			
		||||
.reply-content{line-height:15px;width:100%;margin-top:-15px;border-top:1px solid #ccc;padding-top:15px;color:orange;}
 | 
			
		||||
.reply-box{width:100%;max-height:140px;position:relative;margin-bottom:5px;margin-top:15px;}
 | 
			
		||||
.wst-msg-tips-box{background-color: #f0a869;border-radius: 12px;color: white;cursor: pointer;display: inline-block;height: 24px;left: 30px;line-height: 24px;position: relative;text-align: center;top: 0;width: 24px;}
 | 
			
		||||
/* 商家回复 */
 | 
			
		||||
.wst-list tbody tr td .spec{height: 45px;line-height: 15px;overflow: hidden;float: left;max-width: 160px;}
 | 
			
		||||
.wst-list tbody tr td .stockin{display:none;border:1px solid #bac4c3;width:100px;outline: none;}
 | 
			
		||||
.wst-list tbody tr td .stockin:focus{border:1px solid #eb654a;}
 | 
			
		||||
.j-messsage-box{padding:10px 5px;color:red;}
 | 
			
		||||
.head-ititle{background:url('../img/img_seller_ggjt.png') no-repeat 5px 4px;padding-left:28px;padding-bottom:5px;font-weight:bold;}
 | 
			
		||||
/**资金流水**/
 | 
			
		||||
.money-add{color:red;font-size:16px;font-weight: bold;}
 | 
			
		||||
.money-reduce{color:green;font-size:16px;font-weight: bold;}
 | 
			
		||||
.money-head{background:#eeeeee;height:120px;width:100%}
 | 
			
		||||
.money-head .shop-logo{float:left;margin-top:10px;margin-left:20px;width:100px;height:100px;}
 | 
			
		||||
.money-head .shop-logo img{-moz-border-radius: 100px; -webkit-border-radius: 100px; }
 | 
			
		||||
.money-head .shop-info{float:left;padding-top:25px;padding-left:20px;}
 | 
			
		||||
.money-head .shop-info .shopName{height:25px;line-height:25px;}
 | 
			
		||||
.money-head .shop-info .money-rows{width:700px;}
 | 
			
		||||
.money-head .shop-info .shopMoney{height:25px;line-height:25px;width:500px;}
 | 
			
		||||
.money-head .shop-info .draw-tips{color:red;margin-left:20px;}
 | 
			
		||||
.money-head .shop-info .cashmoney-box{margin-left:20px;}
 | 
			
		||||
.money-head .cashbtn{padding: 3px 5px;border: 1px solid #333;}
 | 
			
		||||
.money-head .cashbtn:hover{padding: 3px 5px;border: 1px solid #e45050;}
 | 
			
		||||
.money-head .usermoney{width:150px ; float:left;}
 | 
			
		||||
.money-head .cashbox{width:300px; float:left;}
 | 
			
		||||
.money-head .lockbox{width:150px ; float:left;}
 | 
			
		||||
 | 
			
		||||
.msgContent{padding:10px;}
 | 
			
		||||
.readMsg,.newMsg{width:36px;height:27px;background: url(../img/user_icon_info.png) no-repeat;}
 | 
			
		||||
.newMsg{background-position: -66px -6px;}
 | 
			
		||||
.readMsg{background-position: -11px -6px;}
 | 
			
		||||
.msg-content{width: 630px}
 | 
			
		||||
/* 商家中心首页 */
 | 
			
		||||
.main{background: #f6f6f6;width: auto;min-height: 800px;padding-top: 20px;}
 | 
			
		||||
.main_title{padding: 5px 0;}
 | 
			
		||||
.c16_555{font-size: 16px;color: #555;}
 | 
			
		||||
.tit_label{width: 12px;height: 12px;background: #e33c3c;border-radius: 50%;display: inline-block;}
 | 
			
		||||
.main_middle{width:auto;height:auto;}
 | 
			
		||||
.main_mid_box{display:flex;width:auto;height: 100%}
 | 
			
		||||
.main_mid_box .mid_l{flex:2;}
 | 
			
		||||
.mid_l_item{padding:0 10px;flex:1;background: #fff;height: 48%;}
 | 
			
		||||
.complain_num{display: inline-block;width: 25px;height: 25px;background: #e33c3c;border-radius: 50%;color:#fff;text-align: center;line-height: 25px;}
 | 
			
		||||
.mid_main{width: 100%;height: 90%;}
 | 
			
		||||
.order_info{width:100%;height:100%;display: flex;}
 | 
			
		||||
.order_info li{flex: 1;display: flex;height: 100%;flex-direction: column;justify-content: space-around;}
 | 
			
		||||
.order_info li:nth-child(2){flex:1.5;}
 | 
			
		||||
.c32_e33{font-size: 32px;color:#e33c3c;margin-bottom: 20px}
 | 
			
		||||
.info_item{padding:10px 0;text-align: center;}
 | 
			
		||||
.item_center{display: flex;justify-content:center;align-items:center;height: 148px!important;width:  148px !important;border-radius: 50% 50%  0 50%;border-color: #e33c3c;border-style: solid;border-width: 1px 0px 0px 1px;margin: 0 auto;}
 | 
			
		||||
.main_mid_box .mid_c{flex:1;margin:0 20px;background: #fff;}
 | 
			
		||||
.index-right-item{background:#fff;min-height: 492px;margin-bottom:20px;width: 100%;overflow: hidden;}
 | 
			
		||||
.right-list-tit{width: 97%;border-bottom: 1px solid #eee;display: flex;margin: 0 auto;}
 | 
			
		||||
.right-list-tit li{padding:14px 0px;flex:1;float: left;text-align: center;}
 | 
			
		||||
.orderInfoList li{padding: 13px 0px !important;}
 | 
			
		||||
.right-list-tit li:nth-child(2){flex:2;}
 | 
			
		||||
.right-list{border:0px;}
 | 
			
		||||
.right-list li{padding:13.7px 0px;}
 | 
			
		||||
.c14_ff90{font-size: 14px;color:#ff9000;}
 | 
			
		||||
.c14_ff66{font-size: 14px;color:#ff6666;}
 | 
			
		||||
.wst-textover{overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}
 | 
			
		||||
.gTop1,.gTop2,.gTop3{text-align: left;padding-left: 13px;background-image:url(./../img/flag-each-69x26.png);background-size: 80%;background-position: 0 0;background-repeat: no-repeat;color:#fff;}
 | 
			
		||||
.gTop2{background-position: 0 -37px;}
 | 
			
		||||
.gTop3{background-position: 0 -73px;}
 | 
			
		||||
.top-num{text-align: left;padding-left: 13px;}
 | 
			
		||||
.item_sale{border-radius: 50% 50% 50% 50%;border-width: 0px 1px 1px 0px;}
 | 
			
		||||
.main_mid_box .mid_r{flex:1;}
 | 
			
		||||
.mid_r_rtop{background: #fff;height: 29%;width: 96%;margin-bottom:20px;padding-left:10px;}
 | 
			
		||||
.rtop_main{padding:10px 0}
 | 
			
		||||
.rtop_item{margin-top:5px;}
 | 
			
		||||
.mid_r_rbottom{background: #fff;height: 67%;width: 96%;padding-left:10px;}
 | 
			
		||||
.sale_info{margin-top:20px;width: 99%;height: 300px;background: #fff;padding-left:10px;}
 | 
			
		||||
.shop_tips li{padding: 6px 15px;width: 200px}
 | 
			
		||||
.shop_tips li a:hover{color:#e33c3c;}
 | 
			
		||||
.order_remaker{color:#ff6c00;padding: 5px;border: 1px solid #ddd;border-top:none;}
 | 
			
		||||
.order_from{  margin-left: 10px;color: #fff;border: 1px solid red;padding: 2px 4px;border-radius: 10px;background-color: #FF247A;}
 | 
			
		||||
 | 
			
		||||
#shoprole th,#shoprole td{border: solid 1px #E6E6E6;}
 | 
			
		||||
#shoprole dl{  border-bottom: solid 1px #E6E6E6;}
 | 
			
		||||
#shoprole dl .dt1,#shoprole dl .dt2{  font-size: 12px;
 | 
			
		||||
  line-height: 30px;
 | 
			
		||||
  color: #333;
 | 
			
		||||
  vertical-align: top;
 | 
			
		||||
  letter-spacing: normal;
 | 
			
		||||
  word-spacing: normal;
 | 
			
		||||
  text-align: right;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  width: 120px;
 | 
			
		||||
  padding: 0 4px;
 | 
			
		||||
  margin: 0;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
#shoprole dl .dd1{  font-size: 12px;
 | 
			
		||||
    font-size: 12px;
 | 
			
		||||
  line-height: 30px;
 | 
			
		||||
  vertical-align: top;
 | 
			
		||||
  letter-spacing: normal;
 | 
			
		||||
  word-spacing: normal;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  width: 690px;
 | 
			
		||||
  padding: 0px 4px;
 | 
			
		||||
  border-left: solid 1px #E6E6E6;
 | 
			
		||||
}
 | 
			
		||||
#shoprole dl .dd2{
 | 
			
		||||
   font-size: 12px;
 | 
			
		||||
  line-height: 30px;
 | 
			
		||||
  vertical-align: top;
 | 
			
		||||
  letter-spacing: normal;
 | 
			
		||||
  word-spacing: normal;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  width: 500px;
 | 
			
		||||
  padding: 0px 4px;
 | 
			
		||||
  border-left: solid 1px #E6E6E6;
 | 
			
		||||
}
 | 
			
		||||
#shoprole td label{width:120px;text-align: left;display: inline-block;}
 | 
			
		||||
 | 
			
		||||
.uinfo>input{  width: 235px;}
 | 
			
		||||
.wst-form input, textarea {
 | 
			
		||||
  background-color: white;
 | 
			
		||||
  border: 1px solid #ccc;
 | 
			
		||||
  border-radius: 2px;
 | 
			
		||||
  box-shadow: 1px 1px 1px #f0f0f0 inset;
 | 
			
		||||
  font-family: inherit;
 | 
			
		||||
  font-size: 100%;
 | 
			
		||||
  margin: 3px;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
  vertical-align: middle;
 | 
			
		||||
}
 | 
			
		||||
.uinfo-form tr td {
 | 
			
		||||
  height: 40px;
 | 
			
		||||
}
 | 
			
		||||
.wst-list-add{float: right;line-height:16px;height:16px;margin-top:2px;}
 | 
			
		||||
							
								
								
									
										56
									
								
								hyhproject/home2/view/default/css/shopapply.css
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										56
									
								
								hyhproject/home2/view/default/css/shopapply.css
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,56 @@
 | 
			
		||||
.stepflex{float:right;border-top:5px solid #ccc;text-align:center;width:960px;margin:60px 0px 0px 50px;}
 | 
			
		||||
.stepflex dl{border-top:5px solid #ccc;float:left;position:relative;top:-5px;width:160px;}
 | 
			
		||||
dl.doing{border-top-color:#04bd3d;}
 | 
			
		||||
.doing .s-num{background-position:-23px 0;}
 | 
			
		||||
.s-num,.s-num1{color:#fff;font-weight: 700;height:23px;line-height:23px;margin:-15px auto 0;position:relative;width:23px;border-radius:25px;}
 | 
			
		||||
.s-num{background:#04bd3d;}
 | 
			
		||||
.s-num1{background:#ccc;}
 | 
			
		||||
.s-text1{line-height:30px;}
 | 
			
		||||
.s-text{line-height:30px;color:#04bd3d;}
 | 
			
		||||
select{height:29px;}
 | 
			
		||||
.webuploader-container{overflow:hidden;}
 | 
			
		||||
.apply-banner{width: 100%;height:320px;position: relative;z-index: 1;top:-8px;}
 | 
			
		||||
.apply-msg-box{filter:progid:DXImageTransform.Microsoft.gradient(enabled='true',startColorstr='#3F000000', endColorstr='#3F000000');background:rgba(0,0,0,0.25); width: 280px; height: 300px;  z-index: 9; margin-top:30px; border-radius: 5px;}
 | 
			
		||||
.apply-msg-box h3{color:#fff;font: 600 17px/24px; color: #FFF; padding: 12px 10px 4px 10px; margin: 0 10px 10px;box-shadow: 0 1px 0 rgba(0,0,0,0.1);}
 | 
			
		||||
.apply-msg-box .title{color: #FFF;margin-top:10px;line-height:30px;padding-left:15px;padding-right:15px;}
 | 
			
		||||
.apply-msg-box ul{color: #FFF;padding-left:15px;padding-right:15px;height:149px;}
 | 
			
		||||
.apply-msg-box ul li{margin-top:10px;line-height:23px;list-style-type: disc;margin-left:15px;}
 | 
			
		||||
.apply-msg-box .bottom{border-radius:0 0 5px 5px;margin-top:10px;padding-top:10px;padding-bottom:10px;padding-left:7px;filter:progid:DXImageTransform.Microsoft.gradient(enabled='true',startColorstr='#7F000000', endColorstr='#7F000000'); background:rgba(0,0,0,0.5); text-align: center;}
 | 
			
		||||
.wst-slide{position: relative;height:350px;overflow:hidden;top:-320px;z-index:-1}
 | 
			
		||||
.apply-tips{color: #777;background-color: #EEE;width: 100%;height: 60px;}
 | 
			
		||||
.apply-tips .title{width: 60px;height: 48px;display: inline-block;padding: 6px 12px 6px 24px;}
 | 
			
		||||
.apply-tips .title i{background: url(../img/ic_volume_24x24.png) no-repeat 0px 0;display: block;width: 24px;height: 24px;float: left;margin: 0 18px;}
 | 
			
		||||
.apply-tips .content{font: 12px/20px "microsoft yahei";vertical-align: top;display: inline-block;width: 920px;padding: 10px;}
 | 
			
		||||
.apply-step{font-size: 0;width: 800px;height: 110px;margin: 30px auto;overflow: hidden;}
 | 
			
		||||
.apply-step span { font-size: 12px; vertical-align: middle; letter-spacing: normal; word-spacing: normal; display: inline-block; *display: inline; *zoom: 1;}
 | 
			
		||||
.apply-step span.step { color:#777;line-height: 20px; text-align: center; width: 80px;}
 | 
			
		||||
.apply-step span.step i { background: url(../img/btn_80x80.png) no-repeat; display: block; width: 80px; height: 80px; margin-bottom: 10px;}
 | 
			
		||||
.apply-step span.step i.a { background-position: -12px 0px;}
 | 
			
		||||
.apply-step span.step i.b { background-position: -94px 0px;}
 | 
			
		||||
.apply-step span.step i.c { background-position: -176px 0px;}
 | 
			
		||||
.apply-step span.step i.d { background-position: -258px 0px;}
 | 
			
		||||
.apply-step span.step i.e { background-position: -340px 0px;}
 | 
			
		||||
.apply-step span.arrow { background: url(../img/btn_80x80.png) no-repeat -439px -30px; width: 60px; height: 22px; margin: 0 20px;margin-top:-25px;}
 | 
			
		||||
.apply-step-head{margin-top:20px;border-bottom:dotted 1px #CCC;font-weight:600;font-size:16px;line-height:30px;padding-left:10px;}
 | 
			
		||||
 | 
			
		||||
.main-head{font-size:17px;font-weight:bold;height:35px;line-height:35px;text-align:left;}
 | 
			
		||||
.apply-box {border-top: 2px solid #FC7A64;border-left: 1px solid #eeeeee;border-right: 1px solid #eeeeee;border-bottom: 1px solid #eeeeee;padding: 5px 0px 0px 5px;}
 | 
			
		||||
.apply-agreement-box{height:350px;border:1px solid #eeeeee;padding:5px;overflow:auto;margin:0 auto;}
 | 
			
		||||
.apply-agreement-box .tip{color:gray}
 | 
			
		||||
.agreement-table{width:100%;margin-bottom:10px;}
 | 
			
		||||
.agreement-table th{text-align: right;width:250px;}
 | 
			
		||||
.agreement-table td{text-align: left}
 | 
			
		||||
.agreement-table .head-ititle{background:url('../img/img_seller_ggjt.png') no-repeat 5px 4px;padding-left:28px;padding-bottom:5px;font-weight:bold;}
 | 
			
		||||
.agreement-table input[type=text]{margin:2px;}
 | 
			
		||||
.agreement-table textarea{margin:2px;}
 | 
			
		||||
.agreement_box{text-align:center;margin-top:5px;}
 | 
			
		||||
.agreement-bottom{padding:10px 5px;text-align: center}
 | 
			
		||||
.examine-tips{text-align: center;width:100%;padding-top:60px;padding-bottom:80px;font-weight: 600;font-size:16px;color:#999;}
 | 
			
		||||
label{margin-right:20px;}
 | 
			
		||||
.webuploader-pick{padding:3px 10px;}
 | 
			
		||||
.goodsCat{width:140px;margin-right:20px;float:left;}
 | 
			
		||||
.wst-tab-box {width: 100%;height: auto;margin: 0px auto;background: #ffffff;margin-top:10px;}
 | 
			
		||||
.wst-tab-nav {margin: 0;padding: 0;height: 35px;top: 0px;z-index: 30;background: #ffffff;width:100%;border-bottom: 1px solid #eeeeee;border-left: 1px solid #eeeeee}
 | 
			
		||||
.wst-tab-nav li {width:23.24%;cursor: pointer;float: left;margin: 0 0px;list-style: none;border: 1px solid #eee;border-bottom: none;border-left: none;line-height: 34px;text-align: center;color: #000000;padding-left: 10px;padding-right: 10px;}
 | 
			
		||||
.wst-tab-nav .on {border-top: 1px solid #ff2704;border-bottom: 1px solid #ffffff;color: #ff2704;font-weight:bold;}
 | 
			
		||||
.wst-tab-content {padding: 5px;width: 99%;height: auto;border: 1px solid #eee;border-top:none;background: #FFF;}
 | 
			
		||||
							
								
								
									
										105
									
								
								hyhproject/home2/view/default/css/shophome.css
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										105
									
								
								hyhproject/home2/view/default/css/shophome.css
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,105 @@
 | 
			
		||||
@CHARSET "UTF-8";
 | 
			
		||||
.wst-shop-h{padding:10px 0}
 | 
			
		||||
.wst-shop-img{float:left;margin-top:3px;width:90px;height:90px;text-align:center;vertical-align:middle;display:block;position:relative}
 | 
			
		||||
.wst-shop-img img{max-width:90px;max-height:90px;border-radius:5px}
 | 
			
		||||
.wst-shop-info{float:left;width:45%;margin-left:10px}
 | 
			
		||||
.wst-shop-info p{float:left;line-height:50px;width:100%;color:#222;font-size:17px;font-family:"microsoft yahei"}
 | 
			
		||||
.wst-shop-info2,.wst-shop-info3{float:left;width:100%}
 | 
			
		||||
.wst-shop-info2 img{float:left;width:16px;margin-right:3px}
 | 
			
		||||
.wst-shop-info2 span{float:left;color:#dda315;margin-right:10px}
 | 
			
		||||
.wst-shop-info3{margin-top:7px}
 | 
			
		||||
.wst-shop-code{float:left;margin-top:-3px;width:24px;height:24px;cursor:pointer;background:url(../img/img_sjck.png) no-repeat;background-size:100%}
 | 
			
		||||
.wst-shop-codes{width:131px;height:131px;margin-top:24px;border:1px solid #dedbdb;position:absolute;z-index:1000;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,0.3);border-radius:5px}
 | 
			
		||||
.wst-shop-codes:after{top:-16px;border-color:transparent transparent #fff}
 | 
			
		||||
.wst-shop-eva,.wst-shop-evaa{float:left;margin-right:16px}
 | 
			
		||||
.wst-shop-evaa{padding-left:20px}
 | 
			
		||||
.wst-shop-info3 .j-fav,.wst-shop-info3 .j-fav:hover{background:url(../img/iconfont_guanzhu_sel.png) 1px 2px no-repeat}
 | 
			
		||||
.wst-shop-info3 .j-fav2{background:url(../img/iconfont_guanzhu_nor.png) 0 -23px no-repeat;transition:background-position .15s ease-in-out 0s}
 | 
			
		||||
.wst-shop-info3 .j-fav2:hover{background:url(../img/iconfont_guanzhu_nor.png) 0 1px no-repeat;text-decoration:none}
 | 
			
		||||
.wst-shop-red{color:#e25041}
 | 
			
		||||
.wst-shop-sea{float:right;width:42.999999%;margin-top:20px}
 | 
			
		||||
.wst-shop-sea input{float:left;outline:0;font-size:15px;height:32px;width:360px;margin-right:3px;padding-left:8px;border:1px solid #fc6047}
 | 
			
		||||
.wst-shop-sea .search{float:left;width:60px;height:32px;line-height:32px;text-align:center;color:#fff;margin-left:6px;background:url(../img/img_bg_search.png) no-repeat}
 | 
			
		||||
.wst-shop-word{float:left;margin-top:8px;width:100%;height:18px;overflow:hidden}
 | 
			
		||||
.wst-shop-tu{text-align:center;width:100%;height:110px}@media screen and (max-width:1200px){.wst-shop-tu{min-width:1200px}
 | 
			
		||||
.wst-shop-nav{min-width:1200px}}
 | 
			
		||||
.wst-shop-nav{background-color:#fc6047}
 | 
			
		||||
.wst-nav-box{width:1200px;margin:0 auto;line-height:36px;color:#fff}
 | 
			
		||||
.wst-nav-box li{padding:0 26px;text-align:center;color:#fff;font-size:15px;font-family:"microsoft yahei"}
 | 
			
		||||
.wst-nav-box li:hover,.wst-nav-box .wst-nav-boxa{background:#cb2004;background-size:cover}
 | 
			
		||||
.wst-nav-box .liselect{list-style-type:none}
 | 
			
		||||
.wst-nav-box .homepage{float:right;margin-top:6px;padding:0 8px;height:22px;line-height:22px;color:#fff;border:1px solid #fff}
 | 
			
		||||
.wst-nav-box .homepage:hover{color:#fc6047;background:#fff;border:1px solid #fc6047}
 | 
			
		||||
.ck-slide{width:1200px;height:400px;margin:3px auto;margin-bottom:9px}
 | 
			
		||||
.ck-slide ul.ck-slide-wrapper{height:400px}
 | 
			
		||||
.wst-shop-contl{float:left;width:19.222222%;padding-bottom:20px}
 | 
			
		||||
.wst-shop-contr{float:right;width:79.555555%}
 | 
			
		||||
.wst-shop-cat{margin-top:9px;border:1px solid #ddd}
 | 
			
		||||
.wst-shop-best,.wst-shop-lat{margin-top:15px;border:1px solid #ddd}
 | 
			
		||||
.wst-shop-cat li{height:26px;line-height:26px;list-style-type:none}
 | 
			
		||||
.wst-shop-cat li:hover{color:#ff5605;cursor:pointer}
 | 
			
		||||
.wst-shop-cat a li{color:#666}
 | 
			
		||||
.wst-shop-conlp{height:35px;line-height:35px;text-align:center;background:#ebebeb;font-size:16px;font-family:"microsoft yahei"}
 | 
			
		||||
.wst-shop-catt{padding-left:10px}
 | 
			
		||||
.wst-shop-catts{padding-left:20px}
 | 
			
		||||
.js-shop-plus{text-indent:20px;background:url(../img/store_icon_zk.png) 2px 4px no-repeat}
 | 
			
		||||
.js-shop-redu{text-indent:20px;background:url(../img/store_icon_sq.png) 2px 4px no-repeat}
 | 
			
		||||
.wst-shop-bestg{float:left;margin:5px}
 | 
			
		||||
.wst-shop-besti{float:left;width:72px;height:72px;text-align:center;vertical-align:middle;display:block;position:relative}
 | 
			
		||||
.wst-shop-besti img{max-width:72px;max-height:72px}
 | 
			
		||||
.wst-shop-bestgp1{height:36px}
 | 
			
		||||
.wst-shop-bestgp2{line-height:20px}
 | 
			
		||||
.wst-shop-bestg p{float:left;width:142px;margin-left:3px;overflow:hidden}
 | 
			
		||||
.wst-shop-bestg a:hover{color:#ff5605}
 | 
			
		||||
.wst-shop-bestpi{color:#ee8f4f}
 | 
			
		||||
.wst-shop-bestpr{color:#d86232;font-weight:bold}
 | 
			
		||||
.wst-shop-bestpr2{float:right;color:#c4c2c2;text-decoration:line-through}
 | 
			
		||||
.wst-shop-conrp{height:35px;line-height:35px;text-indent:1em;background:#ebebeb;font-size:16px;font-family:"microsoft yahei";margin:9px 0 6px 0}
 | 
			
		||||
.wst-shop-recb{padding:5px 0;background:#f2efea}
 | 
			
		||||
.wst-shop-rgoods,.wst-shop-list .wst-shop-goods{float:left;width:218px;padding:5px;background:#fff;border:1px solid #dadada;margin:0 4px}
 | 
			
		||||
.wst-shop-rgoods:hover,.wst-shop-goods:hover{border:1px solid #e5e5e5;-webkit-box-shadow:0 0 10px #ddd;-moz-box-shadow:0 0 10px #ddd;box-shadow:0 0 10px #ddd}
 | 
			
		||||
.wst-shop-list .wst-shop-goimg{float:left;width:207px;height:207px;vertical-align:middle;display:block;position:relative}
 | 
			
		||||
.wst-shop-goimg a{width:207px;height:207px;padding-left:5px;padding-top:5px;display:table-cell;vertical-align:middle}
 | 
			
		||||
.wst-shop-goimg img{max-width:207px;max-height:207px}
 | 
			
		||||
.wst-shop-goimg span{width:230.5px;height:30px;line-height:30px;color:#fff;text-align:center;opacity:.8;background:#d0260c;display:block;position:absolute;left:-6px;bottom:-5px;display:none}
 | 
			
		||||
.wst-shop-goimg span:hover{background:#e5280b}
 | 
			
		||||
.wst-shop-gonam{float:left;width:100%;height:36px;color:#838383;font-size:15px;font-family:"microsoft yahei";margin-top:18px}
 | 
			
		||||
.wst-shop-gonam a:hover{color:#f60505}
 | 
			
		||||
.wst-shop-rect{float:left;width:100%;margin-top:8px;font-family:"microsoft yahei"}
 | 
			
		||||
.wst-shop-rect span{color:#ea523b;font-size:16px;line-height:26px;font-weight:bold}
 | 
			
		||||
.wst-shop-rect .wst-shop-recta{float:right;height:26px;color:#ff5605;line-height:26px;padding:0 12px;border-radius:2px;border:1px solid #dadada}
 | 
			
		||||
.wst-shop-rect .wst-shop-recta2{float:right;height:26px;color:#c9c3c2;line-height:26px;padding:0 12px;border-radius:2px;border:1px solid #dadada}
 | 
			
		||||
.wst-shop-rect .wst-shop-recta:hover{color:#fff;background:#ff5605;border:1px solid #ff5605}
 | 
			
		||||
.wst-shop-list{padding:10px 0}
 | 
			
		||||
.wst-shop-listh{float:left;width:100%;font-family:"microsoft yahei"}
 | 
			
		||||
.wst-shop-listh a{float:left;color:#525252;height:19px;padding:6px 16px;text-align:center;font-size:15px;border:1px solid #e9e7e7}
 | 
			
		||||
.wst-shop-listh a:hover{border:1px solid #ff8043}
 | 
			
		||||
a.wst-shop-a{color:#fff;background:#ff8043;border:1px solid #ff8043}
 | 
			
		||||
.wst-shop-store,.wst-shop-store2,.wst-shop-store3{float:right;width:16px;height:13px;margin:3px 0 0 3px}
 | 
			
		||||
.wst-shop-store{background:url(../img/store_icon_sx.png) 0 0 no-repeat}
 | 
			
		||||
.wst-shop-store2{background:url(../img/store_icon_sx_sel.png) 0 0 no-repeat}
 | 
			
		||||
.wst-shop-store3{background:url(../img/store_icon_sx_sel_up.png) 0 0 no-repeat}
 | 
			
		||||
.wst-price-ipts{float:left;position:relative}input.wst-price-ipt{width:66px;height:27px;outline:0;padding-left:18px;border:1px solid #e9e7e7}input.wst-price-ipt:focus{border:1px solid #ff8043}
 | 
			
		||||
.wst-price-ipt1{position:absolute;left:13px;top:8px}
 | 
			
		||||
.wst-price-ipt2{position:absolute;right:71px;top:8px}
 | 
			
		||||
.wst-shop-but{outline:0;background:#ebebeb;color:#9f9696;border:1px solid #dad7d7;cursor:pointer}
 | 
			
		||||
.wst-shop-but:not(.disabled):not(:disabled):active,.wst-shop-but.active{background:#f1f1f1;background-clip:padding-box}
 | 
			
		||||
.wst-shop-listg{padding-top:10px}
 | 
			
		||||
.wst-shop-list .wst-shop-goods{margin-bottom:6px}
 | 
			
		||||
.wst-shop-goodp1{margin-top:8px}
 | 
			
		||||
.wst-shop-goodp1,.wst-shop-goodp2{float:left;width:100%;line-height:20px;font-family:"microsoft yahei";padding:2px 0 2px 0}
 | 
			
		||||
.wst-shop-goodpr{color:#ea523b;font-size:16px;font-weight:bold;overflow:hidden;float:left}
 | 
			
		||||
.wst-shop-goodpr2{color:#ed1a8d}
 | 
			
		||||
.wst-shop-goodpr3{color:#c4c2c2;width:220px;overflow:hidden}
 | 
			
		||||
.wst-shop-goodpr4{color:#249ee7}
 | 
			
		||||
.wst-shop-pa{padding:28px 0 35px 300px}
 | 
			
		||||
.wst-shop-info2 img.wangwang{padding-top:1px;width:65px;height:22px}
 | 
			
		||||
.wst-shop-goimg img.goodsImg{max-width:207px;max-height:207px}
 | 
			
		||||
.wst-shop-share{float:right;position:relative;top:-6px;margin-right:6px}
 | 
			
		||||
.wst-shop-list img{max-width:1200px}@-webkit-keyframes a1{0%{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-o-transform:scale(1);transform:scale(1)}
 | 
			
		||||
100%{opacity:1;-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}}@-moz-keyframes a1{0%{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-o-transform:scale(1);transform:scale(1)}
 | 
			
		||||
100%{opacity:1;-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}}@-o-keyframes a1{0%{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-o-transform:scale(1);transform:scale(1)}
 | 
			
		||||
100%{opacity:1;-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}}@keyframes a1{0%{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-o-transform:scale(1);transform:scale(1)}
 | 
			
		||||
100%{opacity:1;-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}}
 | 
			
		||||
.wst-shop-rgoods:hover img{-webkit-animation:a1 1s .1s ease both;-moz-animation:a1 1s .1s ease both;animation:a1 .5s .1s ease both;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%}
 | 
			
		||||
.notice_img{width:15px;height:15px;vertical-align:middle}
 | 
			
		||||
							
								
								
									
										49
									
								
								hyhproject/home2/view/default/css/shopstreet.css
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										49
									
								
								hyhproject/home2/view/default/css/shopstreet.css
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,49 @@
 | 
			
		||||
@CHARSET "UTF-8";
 | 
			
		||||
a{cursor:pointer}
 | 
			
		||||
img{border:none}
 | 
			
		||||
.wst-shopstr-ads{padding:10px 0}
 | 
			
		||||
.wst-shopstr-ads img{width:1200px;height:220px}
 | 
			
		||||
.wst-shopstr-cat{margin:10px 0 20px 0;padding:10px 20px;border:1px solid #dddbdb}
 | 
			
		||||
.wst-shopstr-catt{height:23px;color:#333;border-bottom:1px dashed #b5b5b5}
 | 
			
		||||
.wst-shopstr-cat span{float:left;margin:8px 60px 0 0;padding:8px 5px}
 | 
			
		||||
.wst-shopstr-cat span:hover{cursor:pointer;color:#fff;background:#fc6047;border-radius:3px}
 | 
			
		||||
.js-selected{cursor:pointer;color:#fff;background:#fc6047;border-radius:3px}
 | 
			
		||||
.wst-shopstr-shop{margin-top:20px;padding:10px;border:1px solid #dddbdb}
 | 
			
		||||
.wst-shopstr-shop:hover{border:1px solid #fc6047}
 | 
			
		||||
.wst-shopstr-shopl{float:left;width:150px;height:150px;text-align:center;vertical-align:middle;display:block;position:relative}
 | 
			
		||||
.wst-shopstr-shopi{float:left;width:26%;margin-left:12px}
 | 
			
		||||
.wst-shopstr-shopr{float:right;width:60%}
 | 
			
		||||
.wst-shopstr-shopl a{width:150px;height:150px;display:table-cell;vertical-align:middle}
 | 
			
		||||
.wst-shopstr-shopl a img{max-width:150px;max-height:150px}
 | 
			
		||||
.wst-shopstr-name{height:32px;line-height:32px}
 | 
			
		||||
.wst-shopstr-name .name{float:left;font-size:18px;color:#2e2e2e;font-weight:700;width:170px;height:30px;display:block;overflow:hidden}
 | 
			
		||||
.wst-shopstr-name .name:hover{color:#f53e28}
 | 
			
		||||
.wst-shopstr-name .favorite{padding:5px 5px 5px 23px;loat:left;border:1px solid #ededed;margin-left:5px}
 | 
			
		||||
.wst-shopstr-name .j-fav,.wst-shopstr-name .j-fav:hover{background:url(../img/iconfont_guanzhu_sel.png) 4px 5px no-repeat}
 | 
			
		||||
.wst-shopstr-name .j-fav2{background:url(../img/iconfont_guanzhu_nor.png) 3px -19px no-repeat;transition:background-position .15s ease-in-out 0s}
 | 
			
		||||
.wst-shopstr-name .j-fav2:hover{background:url(../img/iconfont_guanzhu_nor.png) 3px 5px no-repeat;text-decoration:none}
 | 
			
		||||
.wst-shopstr-pr{float:left;width:100%;margin-top:7px;color:#807f7f}
 | 
			
		||||
.wst-shopstr-pr .company{text-decoration:underline;color:#57c4f5}
 | 
			
		||||
.wst-shopstr-pr .company:hover{color:#31b0e9}
 | 
			
		||||
.wst-shopstr-score{width:118px;height:96px;position:absolute;left:25px;bottom:-95px;color:#545252;text-indent:1em;cursor:pointer;background:url(../img/img_bg_xiala.png) 0 0 no-repeat}
 | 
			
		||||
.wst-shopstr-score .title{font-weight:700}
 | 
			
		||||
.wst-shopstr-more{float:left;width:100%}
 | 
			
		||||
.wst-shopstr-more a{font-size:13px;color:#666}
 | 
			
		||||
.wst-shopstr-more a:hover{color:#eb5f43}
 | 
			
		||||
.wst-shopstr-more span{width:100px;height:20px;color:#fff;line-height:20px;background:url(../img/img_dztj_bg.png) no-repeat}
 | 
			
		||||
.wst-shopstr-good{padding-top:2px;margin-left:26px}
 | 
			
		||||
.wst-shopstr-goods{float:left;margin:0 3px}
 | 
			
		||||
.wst-shopstr-goodimg{width:100px;height:100px;text-align:center;vertical-align:middle;display:block;position:relative}
 | 
			
		||||
.wst-shopstr-goodimg a{width:100px;height:100px;display:table-cell;vertical-align:middle}
 | 
			
		||||
.wst-shopstr-goodimg a img{max-width:100px;max-height:100px}
 | 
			
		||||
.wst-shopstr-goods span{float:left;width:100px;margin-top:1px;text-align:center;color:#fc6047;font-weight:700}
 | 
			
		||||
.shopstrPaging{padding:20px 0 50px 480px}
 | 
			
		||||
.als-container{position:relative;width:100%;margin:0 auto}
 | 
			
		||||
.als-viewport{position:relative;overflow:hidden;margin:0 auto}
 | 
			
		||||
.als-wrapper{position:relative;list-style:none}
 | 
			
		||||
.als-item{position:relative;display:block;text-align:center;cursor:pointer;float:left}
 | 
			
		||||
.als-next,.als-prev{position:absolute;cursor:pointer;clear:both}
 | 
			
		||||
.als-item img{width:135px;height:135px;vertical-align:middle}
 | 
			
		||||
.als-next,.als-prev{top:40px}
 | 
			
		||||
.als-prev{left:-25px}
 | 
			
		||||
.als-next{right:-30px}
 | 
			
		||||
							
								
								
									
										382
									
								
								hyhproject/home2/view/default/css/user.css
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										382
									
								
								hyhproject/home2/view/default/css/user.css
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,382 @@
 | 
			
		||||
@CHARSET "UTF-8";
 | 
			
		||||
.wst-wrap{margin:0 auto}
 | 
			
		||||
.wst-main{margin:auto;width:1200px;min-height:600px;height:auto;padding-top:15px}
 | 
			
		||||
.wst-menu{background:#fff;width:198px;float:left;margin-right:15px;filter:progid:DXImageTransform.Microsoft.Shadow(color = #909090,direction = 120,strength = 4);-moz-box-shadow:2px 2px 10px #909090;-webkit-box-shadow:2px 2px 10px #909090;box-shadow:0 1px 3px rgba(0,0,0,0.3)}
 | 
			
		||||
.wst-content{background:#fff;min-height:948px;height:auto;width:990px;float:right;filter:progid:DXImageTransform.Microsoft.Shadow(color = #909090,direction = 120,strength = 4);-moz-box-shadow:2px 2px 10px #909090;-webkit-box-shadow:2px 2px 10px #909090;box-shadow:0 1px 3px rgba(0,0,0,0.3)}
 | 
			
		||||
.wst-footer{border-top:1px solid #ddd;margin-top:5px}
 | 
			
		||||
.wst-menu-title{position:relative;width:143px;display:block;padding:10px 5px 10px 50px;font-weight:bolder;border-top:1px solid #ccc;color:#000;font-size:16px;font-family:"microsoft yahei";background:#e9e9e9;cursor:pointer}
 | 
			
		||||
.wst-menu-title img{padding:0 0 3px 6px}
 | 
			
		||||
.wst-menu{width:198px;margin:0;padding:0;min-height:948px}
 | 
			
		||||
.wst-menu li{list-style-type:none;padding:0 0 0 50px;height:35px;line-height:35px;color:#6a6868;cursor:pointer}
 | 
			
		||||
.wst-menu li:hover,li.wst-menua{font-weight:bolder;color:#e23e3d;border-left:2px solid #e23e3d}
 | 
			
		||||
.wst-menu .selected{background-color:#e23e3d;font-weight:bolder;color:#fff}
 | 
			
		||||
.wst-menu .liselect{background-color:#e23e3d;font-weight:bolder;color:#fff}
 | 
			
		||||
.wst-list{width:100%;border:1px solid #ddd;border-collapse:collapse}
 | 
			
		||||
.wst-list thead tr th{height:40px;line-height:40px;border-bottom:1px solid #ccc;text-align:left;padding-left:5px;background:#eee}
 | 
			
		||||
.wst-list tbody tr td{word-wrap:break-word;word-break:break-all;height:40px;line-height:40px;text-align:left;padding-left:5px}
 | 
			
		||||
.wst-list tbody tr:nth-child(even){background:#fcfae1}
 | 
			
		||||
a:active,a:hover{text-decoration:none;color:red}
 | 
			
		||||
.wst-form{border-collapse:collapse}
 | 
			
		||||
.wst-form tr{height:30px;line-height:30px}
 | 
			
		||||
.wst-form tr th{color:#707070;text-align:right}
 | 
			
		||||
.wst-form tr td{text-align:left}
 | 
			
		||||
.wst-form input,textarea{background-color:white;border:1px solid #ccc;border-radius:2px;box-shadow:1px 1px 1px #f0f0f0 inset;font-family:inherit;font-size:100%;margin:3px;padding:5px;vertical-align:middle}
 | 
			
		||||
.wst-form select{box-shadow:2px 2px 2px #f0f0f0 inset;font-family:inherit;font-size:100%;vertical-align:middle;margin:3px}
 | 
			
		||||
.wst-form select option{padding:2px}
 | 
			
		||||
.wst-shop-nav{background-color:#e45050;border-top:6px solid #e45050;text-align:center}
 | 
			
		||||
.wst-nav-box{width:1200px;margin:0 auto;line-height:33px;color:#fff}
 | 
			
		||||
.wst-nav-box li{width:145px;text-align:center;color:#fff;font-size:18px;font-family:"microsoft yahei";margin-bottom:-1px}
 | 
			
		||||
.wst-nav-box li:hover,.wst-nav-box .wst-nav-boxa{color:#e45050;background:url(../img/user_bg_nav.png) -10px 0 no-repeat}
 | 
			
		||||
.wst-nav-box .liselect{list-style-type:none}
 | 
			
		||||
.wst-appsaler{margin-top:30px;text-align:center;margin-bottom:30px;line-height:30px}
 | 
			
		||||
.wst-menu-title span{position:absolute;left:20px;top:8px;display:inline-block;width:20px;height:20px;background-image:url(../../../View/default/images/icon_leftmenu.png);background-repeat:no-repeat}
 | 
			
		||||
select{box-shadow:2px 2px 2px #f0f0f0 inset;font-family:inherit;font-size:100%;padding:2px;vertical-align:middle}input,textarea{background-color:white;border:1px solid #ccc;border-radius:4px;font-family:inherit;font-size:100%;margin:3px;padding:5px;vertical-align:middle}
 | 
			
		||||
.wst-tab-box{width:100%;height:auto;margin:0 auto}
 | 
			
		||||
.wst-tab-nav{margin:0;padding:0;height:31px}
 | 
			
		||||
.wst-tab-nav li{cursor:pointer;float:left;margin:0;list-style:none;border:1px solid #ddd;border-bottom:0;border-left:none;line-height:30px;text-align:center;background:#eee;color:#000;padding-left:10px;padding-right:10px}
 | 
			
		||||
.wst-tab-nav .on{background:none repeat scroll 0 0 #e23e3d;border-bottom:0 none;color:#fff;font-weight:bold}
 | 
			
		||||
.wst-tab-content{padding:5px;width:99%;height:auto;border:1px solid #ddd;background:#FFF}
 | 
			
		||||
.wst-appraise-box{margin:0 auto;margin-top:20px;margin-bottom:10px}
 | 
			
		||||
.wst-appraise-box .appraise-title{margin-top:10px;font-weight:bold;text-align:left;padding-left:30px;padding-bottom:10px}
 | 
			
		||||
.wst-appraise-box .appraise-title .tips{font-weight:normal;color:#999}
 | 
			
		||||
.wst-appraise-box .main{border:1px solid #e9e9e9;border-top:2px solid #999}
 | 
			
		||||
.wst-appraise-box .head{line-height:35px;background-color:#e9e9e9;font-weight:bold}
 | 
			
		||||
.wst-appraise-box .goods-no{float:left;width:50px;text-align:center}
 | 
			
		||||
.wst-appraise-box .goods-name{float:left;width:600px}
 | 
			
		||||
.wst-appraise-box .goods-name2{float:left;width:530px;line-height:30px}
 | 
			
		||||
.wst-appraise-box .goods-status{float:left;width:120px;text-align:center}
 | 
			
		||||
.wst-appraise-box .goods-buy-time{float:left;width:220px;text-align:center}
 | 
			
		||||
.wst-appraise-box .appraise-box{text-align:center;background-color:#dbeaf9;padding-top:5px}
 | 
			
		||||
.wst-appraise-box .goods-txt{line-height:70px}
 | 
			
		||||
.wst-appraise-box .goods-img{border:0;margin-top:5px;margin-bottom:5px}
 | 
			
		||||
.wst-appraise-box .appraise-box .main-box{width:800px;margin:0 auto}
 | 
			
		||||
.wst-appraise-box .appraise-box .item{line-height:40px;margin-top:5px}
 | 
			
		||||
.wst-appraise-box .appraise-box .item .title{float:left;width:80px;text-align:right}
 | 
			
		||||
.wst-appraise-box .appraise-box .item .content{float:left;width:700px;text-align:left}
 | 
			
		||||
.wst-appraise-box .appraise-box .btn-box{padding-right:80px;margin:15px;float:right}
 | 
			
		||||
.wst-goods-tb{margin-top:3px;margin-bottom:2px;border:0}
 | 
			
		||||
.wst-complain-detail{width:100%;border-collapse:collapse}
 | 
			
		||||
.wst-complain-detail tr{height:25px;line-height:25px}
 | 
			
		||||
.wst-complain-detail tr th{color:#707070;text-align:right;font-size:12px}
 | 
			
		||||
.wst-complain-detail tr td{text-align:left;color:#707070}
 | 
			
		||||
.wst-complain-detail .head{font-weight:bold;border-bottom:1px dotted #ddd}
 | 
			
		||||
.wst-complain-left{width:250px;height:100%;border:1px solid #ddd;text-align:left;background:#fff;float:left}
 | 
			
		||||
.wst-complain-order-head{width:240px;height:25px;line-height:25px;border-bottom:1px solid #ddd;font-weight:bold;padding:5px;background:#f5f5f5}
 | 
			
		||||
.wst-complain-order-goods{width:240px;height:200px;line-height:30px;padding:5px;border-bottom:1px solid #ddd;overflow-y:auto}
 | 
			
		||||
.wst-complain-main{float:right;width:732px;overflow:hidden;border:1px solid #ddd}
 | 
			
		||||
.wst-complain-order-info{padding:5px;display:block;height:100%}
 | 
			
		||||
.wst-complain-order-info dt{float:left;width:70px;color:#999;padding:1px 0;display:block;height:20px}
 | 
			
		||||
.wst-complain-order-info dd{overflow:hidden;color:#666;padding:1px 0;width:170px;display:block;height:20px}
 | 
			
		||||
.wst-complain-box{border-bottom:1px solid #ddd;width:732px;padding:5px}
 | 
			
		||||
.wst-complain-footer{clear:both;width:100%;text-align:center;padding:5px 0}
 | 
			
		||||
.jcrop-holder #preview-pane{display:block;position:absolute;z-index:2000;top:10px;right:10px;padding:6px;border:1px rgba(0,0,0,.4) solid;background-color:white;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:1px 1px 5px 2px rgba(0,0,0,0.2);-moz-box-shadow:1px 1px 5px 2px rgba(0,0,0,0.2);box-shadow:1px 1px 5px 2px rgba(0,0,0,0.2)}
 | 
			
		||||
#preview-pane .preview-container{width:150px;height:150px;overflow:hidden;border:1px dashed #777}
 | 
			
		||||
#userPhotoCutBox>p{min-width:500px;min-height:500px;background:url('../img/cut_bg.png') repeat 0 0}
 | 
			
		||||
#cutArea{border:1px dashed #777;position:relative;top:-2px;left:-2px;float:left}#c-btn{width:35%;margin-left:15%}
 | 
			
		||||
.cut-btn{width:80px;height:30px;background:#e02f2f;color:white;font-weight:bold}
 | 
			
		||||
.cut-help{width:150px;position:absolute;top:185px;right:10px}
 | 
			
		||||
.cut-help p{margin-top:7px;width:150px}
 | 
			
		||||
.wst-lite-bac{background:#fff}
 | 
			
		||||
.wst-lite-tit{float:left;width:100px;margin:16px 0 0 10px}
 | 
			
		||||
.wst-lite-tit span{float:left;color:#e45050;font-size:19px;margin-left:10px;font-family:"microsoft yahei"}a.wst-lite-in{float:left;margin-top:6px;padding:3px 8px;color:#e45050;border:1px solid #e45050}
 | 
			
		||||
a.wst-lite-in:hover{color:#fff;border:1px solid #fff;background:#e45050}
 | 
			
		||||
.wst-lite-sea{float:right;background:#fff;margin:20px 35px 0 0}
 | 
			
		||||
.wst-lite-sea .search{border:2px solid #e23c3d;height:35px;position:relative}
 | 
			
		||||
.wst-lite-sea .search .j-search-type{width:78px;top:0;line-height:36px;position:absolute;padding:0;border-right:2px solid #e23c3d;border-left:2px solid #e23c3d;cursor:pointer;left:-2px;text-align:center}
 | 
			
		||||
.wst-lite-sea .search .j-type-list{width:70px;top:35px;line-height:36px;position:absolute;padding:0 4px;border:2px solid #e23c3d;cursor:pointer;background-color:#fff;left:-2px;z-index:100;border-top:0;display:none;text-align:center}
 | 
			
		||||
.wst-lite-sea .search .j-search-type i{top:15px;right:6px;height:7px;width:0;overflow:hidden;font-style:normal;color:#6a6a6a;display:block;position:absolute}
 | 
			
		||||
.wst-lite-sea .search .j-search-type s{position:relative;top:-17px;text-decoration:none}
 | 
			
		||||
.wst-lite-sea .search .j-type-list div:hover{color:#e23c3d}
 | 
			
		||||
.wst-lite-sea .search .search-ipt{border:0 none;color:#565656;float:left;font-family:Microsoft Yahei;font-size:14px;line-height:30px;overflow:hidden;padding:0;width:330px;height:30px;border:36px;outline:0;padding-left:84px;box-shadow:none}
 | 
			
		||||
.wst-lite-sea .search .search-btn{cursor:pointer;font-size:15px;font-weight:bolder;height:35px;line-height:36px;position:absolute;right:0;text-align:center;top:0;width:52px;background:url(../img/btn_search_red.png) 22px 6px no-repeat}
 | 
			
		||||
.wst-lite-cart{float:right;width:163px;height:40px;margin-top:20px;background:#e23c3d;position:relative;cursor:pointer}
 | 
			
		||||
.wst-lite-cart .word{float:left;width:112px;margin-top:4px;margin-left:20px;padding:5px 6px 7px 28px;color:#fff;font-size:14px;font-family:"microsoft yahei";background:url(../img/icon_gouwuche.png) no-repeat left center;position:relative}
 | 
			
		||||
.wst-lite-cart .num{font-size:14px;color:#fff;line-height:24px;text-align:center;position:absolute;display:block;width:27px;height:25px;background:url(../img/icon_number.png) no-repeat;right:19px;top:-12px}
 | 
			
		||||
.wst-lite-carts{width:332px;min-height:130px;margin-top:18px;border:1px solid #dedbdb;position:absolute;z-index:1200;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,0.3);left:-171px;top:22px}
 | 
			
		||||
.wst-lite-carts:after{top:-16px;border-color:transparent transparent #fff}
 | 
			
		||||
.wst-lite-carts .carts{background:url(../img/top_icon_cartdown.png) 28px 47px no-repeat;width:332px;height:130px;text-indent:4.5em;line-height:130px;font-size:15px;color:#b9b6b6}
 | 
			
		||||
.wst-lite-cart .goods{float:left;width:96.666666%;border-bottom:1px dashed #bfbfbf;padding:5px}
 | 
			
		||||
.wst-lite-cart .goods .imgs{float:left;width:72px;height:72px;text-align:center;vertical-align:middle;display:block;position:relative}
 | 
			
		||||
.wst-lite-cart .goods .imgs a{width:72px;height:72px;display:table-cell;vertical-align:middle}
 | 
			
		||||
.wst-lite-cart .goods .imgs img{max-width:72px;max-height:72px}
 | 
			
		||||
.wst-lite-cart .goods .number{float:left;width:50%}
 | 
			
		||||
.wst-lite-cart .goods .number p{float:left;width:92%;margin-top:10px;padding-left:10px}
 | 
			
		||||
.wst-lite-cart .goods .price{float:right;text-align:right}
 | 
			
		||||
.wst-lite-cart .goods .price p{float:right;width:100%;line-height:20px;font-weight:bold;color:#df2003}
 | 
			
		||||
.wst-lite-cart .goods.price span{float:right;width:100%;line-height:20px}
 | 
			
		||||
.wst-lite-cart .goods .price span a:hover,.wst-lite-cart .goods .number p a:hover{color:#df2003}
 | 
			
		||||
.wst-lite-cart .comm{float:left;width:100%;font-weight:bold;line-height:32px}
 | 
			
		||||
.wst-lite-cart .comm span{font-size:15px;color:#e45050}
 | 
			
		||||
.wst-lite-cart .comm .span2{float:right;margin-right:10px}
 | 
			
		||||
.wst-lite-cart .btn{color:#fff;cursor:pointer;display:block;font-size:16px;font-weight:400;line-height:30px;margin:10px 0 16px 72px;max-width:200px;position:relative;text-align:center;text-decoration:none;text-transform:uppercase;vertical-align:middle;width:100%;border-radius:5px}
 | 
			
		||||
@media(min-width:400px){.wst-lite-cart .btn{display:inline-block;margin-right:2.5em}
 | 
			
		||||
.wst-lite-cart .btn:nth-of-type(even){margin-right:0}}@media(min-width:600px){.wst-lite-cart .btn:nth-of-type(even){margin-right:2.5em}
 | 
			
		||||
.wst-lite-cart .btn:nth-of-type(5){margin-right:0}}
 | 
			
		||||
.wst-lite-cart .btn:hover{text-decoration:none}
 | 
			
		||||
.wst-lite-cart .btn-3{background:#e3403a;border:1px solid #da251f;box-shadow:0 1px 0 #d6251f,1px 1px 1px #e02a24;font-weight:900;letter-spacing:1px;-webkit-transition:all 150ms linear;transition:all 150ms linear}
 | 
			
		||||
.wst-lite-cart .btn-3:hover{background:#e02c26;border:1px solid rgba(0,0,0,0.05);box-shadow:1px 1px 2px rgba(255,255,255,0.2);color:#ec817d;text-decoration:none;text-shadow:-1px -1px 0 #c2211c;-webkit-transition:all 250ms linear;transition:all 250ms linear}
 | 
			
		||||
.wst-nav-l{float:left;width:28px;height:33px}
 | 
			
		||||
.wst-nav-r{float:right;width:28px;height:33px}
 | 
			
		||||
.wst-bottom{margin:auto;width:1200px;padding-top:20px}
 | 
			
		||||
.wst-bottom-m{float:left;height:29px;width:100%;border-bottom:1px solid #f24040}
 | 
			
		||||
.wst-bottom-ml{float:left;height:28px;line-height:28px;padding:0 10px;cursor:pointer;background:#ebebeb;border-top:1px solid #e5e5e5;border-left:1px solid #e5e5e5;border-right:1px solid #e5e5e5;border-bottom:1px solid #f24040;font-family:"microsoft yahei"}
 | 
			
		||||
.wst-bottom-mr{float:right;margin-right:5px;font-family:"microsoft yahei"}
 | 
			
		||||
.wst-bottom-ms{background:#f5f5f5;border-top:1px solid #f24040;border-left:1px solid #f24040;border-right:1px solid #f24040;border-bottom:1px solid #f5f5f5}
 | 
			
		||||
.wst-bottom-mr img{margin-top:7px;margin-right:5px}
 | 
			
		||||
.wst-bottom-mr a{line-height:28px}
 | 
			
		||||
.wst-bottom-g{padding:10px 0}
 | 
			
		||||
.wst-bottom-gs{float:left;padding:10px;width:17.333333%;margin:0 5px;border-radius:3px;border:1px solid #dadada}
 | 
			
		||||
.wst-bottom-i{float:left;width:208px;height:208px;text-align:center;vertical-align:middle;display:block;position:relative}
 | 
			
		||||
.wst-bottom-i img{max-width:208px;max-height:208px}
 | 
			
		||||
.wst-bottom-n1,.wst-bottom-n2,.wst-bottom-n3,.wst-bottom-n4{float:left;width:100%;font-family:"microsoft yahei"}
 | 
			
		||||
.wst-bottom-n1{margin-top:16px;font-size:15px}
 | 
			
		||||
.wst-bottom-n2{margin-top:8px}
 | 
			
		||||
.wst-bottom-n4{margin-top:5px}
 | 
			
		||||
.wst-bottom-n2l{font-size:15px;color:#eb533e;font-weight:bold}
 | 
			
		||||
.wst-bottom-n2r,.wst-bottom-n3r{float:right;line-height:20px}
 | 
			
		||||
.wst-bottom-n2r span{color:#ec198a}
 | 
			
		||||
.wst-bottom-n3l{color:#bab8b8;line-height:20px}
 | 
			
		||||
.wst-bottom-n3r span{color:#1398e3}
 | 
			
		||||
.wst-bottom-gs:hover{cursor:pointer;border:1px solid #f24040}
 | 
			
		||||
.gray{color:#707070;font-weight:bold}
 | 
			
		||||
.uinfo-form tr td{width:330px;height:40px}
 | 
			
		||||
.uinfo>input{width:235px}
 | 
			
		||||
.uinfo-nav{border-bottom:1px solid #e45050}
 | 
			
		||||
.uinfo-nav .on{background:none repeat scroll 0 0 #e45050;border-bottom:0 none;color:#fff;font-weight:bold}
 | 
			
		||||
select{border:solid 1px #ccc;appearance:none;-moz-appearance:none;-webkit-appearance:none;padding-right:14px;background:url("../img/arrow.png") no-repeat scroll right center transparent}
 | 
			
		||||
select::-ms-expand{display:none}
 | 
			
		||||
.wst-radio+label{-webkit-appearance:none;background-color:#fafafa;border:1px solid gray;padding:6px;border-radius:50px;display:inline-block;position:relative}
 | 
			
		||||
.wst-radio+label:after{content:' ';width:6px;height:6px;border-radius:50px;position:absolute;top:3px;background:#99a1a7;box-shadow:inset 0 0 10px rgba(0,0,0,0.3);text-shadow:0;left:3px;font-size:32px}
 | 
			
		||||
.wst-radio:checked+label{border:1px solid #ff9a02}
 | 
			
		||||
.wst-radio:checked+label:after{content:' ';width:6px;height:6px;border-radius:50px;position:absolute;top:3px;background:#ff9a02;box-shadow:inset 0 0 10px #ff9a02;text-shadow:0;left:3px;font-size:32px}
 | 
			
		||||
.radio-box .wst-radio{position:relative;z-index:-654;left:16px;top:0}
 | 
			
		||||
.mt-1{position:relative;top:1px;left:0;cursor:pointer}
 | 
			
		||||
.checkbox-box-s{height:20px!important;cursor:pointer}
 | 
			
		||||
.wst-checkbox-s+label{-webkit-appearance:none;background-color:#fff;border:1px solid #d5d5d5;padding:6px;display:inline-block;position:relative}
 | 
			
		||||
.wst-checkbox-s+label:after{content:' ';width:6px;height:6px;position:absolute;top:3px;box-shadow:inset 0 0 10px #ccc;text-shadow:0;left:3px;font-size:32px}
 | 
			
		||||
.wst-checkbox-s:checked+label{border:1px solid #fc7373}
 | 
			
		||||
.wst-checkbox-s:checked+label:after{content:' ';width:6px;height:6px;position:absolute;top:3px;background:#fc7373;box-shadow:inset 0 0 10px #fc7373;text-shadow:0;left:3px;font-size:32px}
 | 
			
		||||
.checkbox-box-s .wst-checkbox-s{position:relative;z-index:-654;left:-5px;top:-1px;cursor:pointer}
 | 
			
		||||
.checkbox-box-s label{position:relative;top:-48px;left:1px}
 | 
			
		||||
.u-menu{height:25px;margin-left:4px;margin-top:10px}
 | 
			
		||||
.readMsg,.newMsg{width:36px;height:27px;background:url(../img/user_icon_info.png) no-repeat}
 | 
			
		||||
.newMsg{background-position:-66px -6px}
 | 
			
		||||
.readMsg{background-position:-11px -6px}
 | 
			
		||||
.msg-content{width: 630px}
 | 
			
		||||
.s-handle{color:#1cbbef!important;display:inline-block;margin:0 3px}
 | 
			
		||||
.s-handle:hover{color:#085cde}
 | 
			
		||||
.g{color:green}
 | 
			
		||||
.addr-btn{width:95px!important}
 | 
			
		||||
.wst-addr{width:98%;border:1px solid #ccc;margin:10px}
 | 
			
		||||
.wst-addr tbody tr td{height:20px}
 | 
			
		||||
.addr-title{text-align:right;width:130px}
 | 
			
		||||
.del{display:block;float:right;clear:right;padding-right:5px;font-size:15px;color:#c1c1c1!important}
 | 
			
		||||
.del:hover{color:red!important}
 | 
			
		||||
.edit>a{display:block;float:right;padding-right:20px;color:#4b4bfb}
 | 
			
		||||
.edit>a:hover{color:#0d0dc7}
 | 
			
		||||
.default{width:60px;height:25px;background:orange;line-height:25px;text-align:center;color:white;float:left;clear:left;margin-left:35px}
 | 
			
		||||
.wst-user-head{float:left;width:100%;border-bottom:1px solid #e45050}
 | 
			
		||||
.wst-user-head span{float:left;line-height:28px;padding:0 28px;color:#fff;background:#e45050;font-weight:bold}
 | 
			
		||||
.wst-user-head a{float:right;line-height:28px;padding:0 28px;color:#fff;background:#e45050}
 | 
			
		||||
.wst-user-tbar{height:35px;padding:2px;clear:both;padding-top:13px;padding-left:10px}
 | 
			
		||||
.wst-user-content{padding:2px;clear:both;margin-top:10px}
 | 
			
		||||
.wst-user-buta{height:30px;line-height:30px;margin-right:10px;margin-top:16px;padding:0 20px;color:#fff;background:#e45050;border-radius:3px}
 | 
			
		||||
.wst-user-buta:hover{color:#fff;background:#ea3232}
 | 
			
		||||
.wst-user-buta2{height:29px;padding:0 20px;background:#ebebeb;border-radius:3px;border:1px solid #dad7d7;box-shadow:0 0 1px rgba(0,0,0,0.3)}
 | 
			
		||||
.wst-user-buta2:hover{border-radius:3px;background:#f1f1f1;box-shadow:0 0 0 rgba(0,0,0,0.3)}
 | 
			
		||||
.wst-sec-but:not(.disabled):not(:disabled):active,.wst-sec-but.active{background:#f96a54;background-clip:padding-box;border:1px solid #f96a54}
 | 
			
		||||
.wst-sec-but2{outline:0;background:#ebebeb;color:#9f9696;border:1px solid #dad7d7;border-radius:3px;cursor:pointer}
 | 
			
		||||
.wst-sec-but2:not(.disabled):not(:disabled):active,.wst-sec-but2.active{background:#f1f1f1;background-clip:padding-box}
 | 
			
		||||
.wst-order-list{width:100%;border-color:grey;border-collapse:separate;border-spacing:0}
 | 
			
		||||
.wst-order-list .head{height:32px;line-height:32px;text-align:center;background:#f5f5f5;color:#666;font-weight:400}
 | 
			
		||||
.wst-order-list .empty-row{height:20px}
 | 
			
		||||
.wst-order-list .order-head{background:#f5f5f5;height:31px;line-height:31px;color:#aaa;overflow:hidden}
 | 
			
		||||
.wst-order-list .order-head td{padding-left:5px;padding-right:5px;border:1px solid #e5e5e5;border-bottom:0}
 | 
			
		||||
.wst-order-list .goods-box td:first-child{border-left:1px solid #e5e5e5}
 | 
			
		||||
.wst-order-list .goods-box td{padding:5px;border:1px solid #e5e5e5;border-top:0;border-left:0}
 | 
			
		||||
.wst-order-list .time{float:left;margin-right:30px}
 | 
			
		||||
.wst-order-list .orderno{float:left;margin-right:30px;width:250px;text-align:left}
 | 
			
		||||
.wst-order-list .shop{float:left;margin-right:20px;width:150px;text-align:left}
 | 
			
		||||
.wst-order-list .link{float:left}
 | 
			
		||||
.wst-order-list .goods-img{width:60px;height:60px;text-align:center;vertical-align:middle;display:block;position:relative;float:left}
 | 
			
		||||
.wst-order-list .goods-img a{display:table-cell;vertical-align:middle;width:60px;height:60px}
 | 
			
		||||
.wst-order-list .goods-img a img{max-width:60px;max-height:60px}
 | 
			
		||||
.wst-order-list .goods-name{float:left;margin-left:5px;line-height:25px;width:500px}
 | 
			
		||||
.wst-order-list .goods-extra{float:right;margin-left:5px}
 | 
			
		||||
.wst-order-list .line{border-bottom:1px solid #ddd;margin-bottom:2px;padding-bottom:2px}
 | 
			
		||||
.order-box{margin-bottom:5px;border-bottom:1px solid #ddd}
 | 
			
		||||
.order-box .box-head{font-weight:bold;height:30px;line-height:30px;padding-left:5px;}
 | 
			
		||||
.order-pc{float:left;margin:7px 5px 0 0;width:18px;height:18px;background:url(../img/order_source_1.png) 0 0 no-repeat;background-size:90%}
 | 
			
		||||
.order-mo{float:left;margin:7px 5px 0 0;width:18px;height:18px;background:url(../img/order_source_2.png) 0 0 no-repeat;background-size:100%}
 | 
			
		||||
.order-wx{float:left;margin:7px 5px 0 0;width:18px;height:18px;background:url(../img/order_source_3.png) 0 0 no-repeat;background-size:100%}
 | 
			
		||||
.order-app{float:left;margin:7px 5px 0 0;width:18px;height:18px;background:url(../img/order_source_4.png) 0 0 no-repeat;background-size:100%}
 | 
			
		||||
.order-ios{float:left;margin:7px 5px 0 0;width:18px;height:18px;background:url(../img/order_source_5.png) 0 0 no-repeat;background-size:100%}
 | 
			
		||||
.order-box .log-box{height:132px}
 | 
			
		||||
.order-box .log-box .icon{float:left;width:60px;height:60px}
 | 
			
		||||
.order-box .log-box .icons{float:left;width:60px;height:60px}
 | 
			
		||||
.order-box .log-box .icon11{background:url(../img/user_icon_rzxx.png) -15px -12px no-repeat}
 | 
			
		||||
.order-box .log-box .icon21{background:url(../img/user_icon_rzxx.png) -105px -12px no-repeat}
 | 
			
		||||
.order-box .log-box .icon31{background:url(../img/user_icon_rzxx.png) -194px -12px no-repeat}
 | 
			
		||||
.order-box .log-box .icon41{background:url(../img/user_icon_rzxx.png) -282px -12px no-repeat}
 | 
			
		||||
.order-box .log-box .icon51{background:url(../img/user_icon_rzxx.png) -373px -12px no-repeat}
 | 
			
		||||
.order-box .log-box .icon12{background:url(../img/user_icon_rzxx.png) -15px -62px no-repeat}
 | 
			
		||||
.order-box .log-box .icon22{background:url(../img/user_icon_rzxx.png) -105px -62px no-repeat}
 | 
			
		||||
.order-box .log-box .icon32{background:url(../img/user_icon_rzxx.png) -194px -61px no-repeat}
 | 
			
		||||
.order-box .log-box .icon42{background:url(../img/user_icon_rzxx.png) -282px -63px no-repeat}
 | 
			
		||||
.order-box .log-box .icon52{background:url(../img/user_icon_rzxx.png) -373px -62px no-repeat}
 | 
			
		||||
.order-box .log-box .icon13{background:url(../img/user_icon_rzxx.png) -19px -123px no-repeat}
 | 
			
		||||
.order-box .log-box .icon23{background:url(../img/user_icon_rzxx.png) -105px -122px no-repeat}
 | 
			
		||||
.order-box .log-box .icon33{background:url(../img/user_icon_rzxx.png) -194px -121px no-repeat}
 | 
			
		||||
.order-box .log-box .icon43{background:url(../img/user_icon_rzxx.png) -282px -122px no-repeat}
 | 
			
		||||
.order-box .log-box .icon53{background:url(../img/user_icon_rzxx.png) -373px -121px no-repeat}
 | 
			
		||||
.order-box .log-box .arrow{float:left;color:#979797;font-size:15px;font-weight:bold;margin-top:18px}
 | 
			
		||||
.order-box .log-box .arrow2{color:#7ebb53}
 | 
			
		||||
.order-box .log-box .state{float:left;width:100%;margin-left:18px}
 | 
			
		||||
.order-box .log-box .state2{float:left;width:100%;position:relative}
 | 
			
		||||
.order-box .log-box .state2 p{float:left;width:185px;height:50px;text-align:left;margin-left:12px;color:#f05858;font-size:15px}
 | 
			
		||||
.order-box .log-box .state2 .path{position:absolute;z-index:10}
 | 
			
		||||
.order-box .log-box .state2 .path span{float:left;width:185px;height:50px;text-align:left;margin-left:12px;background:#fff}
 | 
			
		||||
.order-box .delivery-box{height:100px;border-bottom:1px solid #ddd}
 | 
			
		||||
.order-box th{font-weight:normal}
 | 
			
		||||
.order-box .goods-head{border-top:2px solid #fc7a64;background:#f3f3f3;display:block;height:25px;line-height:25px;margin:0 0 10px;padding:5px 0}
 | 
			
		||||
.order-box .goods-head .goods{float:left;width:650px;padding-left:15px}
 | 
			
		||||
.order-box .goods-head .price{float:left;width:100px}
 | 
			
		||||
.order-box .goods-head .num{float:left;width:100px}
 | 
			
		||||
.order-box .goods-head .t-price{float:left;width:105px}
 | 
			
		||||
.order-box .shop{padding-left:15px;height:25px;line-height:25px;border-bottom:2px solid #fdd8d2;color:#e55356;font-weight:bold;font-size:15px;padding-bottom:5px}
 | 
			
		||||
.order-box .item{padding-top:5px;padding-bottom:5px;border:1px solid #eee;border-top:0}
 | 
			
		||||
.order-box .item .goods{float:left;width:650px;padding-left:15px}
 | 
			
		||||
.order-box .item .goods .img{float:left;width:80px;height:80px}
 | 
			
		||||
.order-box .item .goods .name{float:left;width:390px;height:80px;margin-left:5px}
 | 
			
		||||
.order-box .item .goods .spec{float:left;width:165px;margin-left:5px}
 | 
			
		||||
.order-box .item .price{float:left;width:100px}
 | 
			
		||||
.order-box .item .num{float:left;width:100px}
 | 
			
		||||
.order-box .item .t-price{float:left;width:100px}
 | 
			
		||||
.order-box .goods-footer{padding-right:10px;margin-bottom:10px}
 | 
			
		||||
.order-box .line{border-top:1px solid #ddd}
 | 
			
		||||
.order-box .goods-summary{margin-top:10px}
 | 
			
		||||
.order-box .summary{height:30px;line-height:30px}
 | 
			
		||||
.order-box .orderScore{margin-right:5px}
 | 
			
		||||
.order-box .log td{height:25px;line-height:25px;padding-left:15px}
 | 
			
		||||
.score-add{color:red;font-size:16px;font-weight:bold}
 | 
			
		||||
.score-reduce{color:green;font-size:16px;font-weight:bold}
 | 
			
		||||
.score-head{background:#eee;height:120px;width:100%}
 | 
			
		||||
.score-head .user-logo{float:left;margin-top:10px;margin-left:20px;width:100px;height:100px}
 | 
			
		||||
.score-head .user-logo img{-moz-border-radius:100px;-webkit-border-radius:100px}
 | 
			
		||||
.score-head .user-info{float:left;padding-top:25px;padding-left:20px}
 | 
			
		||||
.score-head .user-info .userName{height:25px;line-height:25px}
 | 
			
		||||
.score-head .user-info .userScore{height:25px;line-height:25px}
 | 
			
		||||
.score-head .user-info .draw-tips{color:red;margin-left:20px}
 | 
			
		||||
.money-add{color:red;font-size:16px;font-weight:bold}
 | 
			
		||||
.money-reduce{color:green;font-size:16px;font-weight:bold}
 | 
			
		||||
.money-head{background:#eee;height:120px;width:100%}
 | 
			
		||||
.money-head .user-logo{float:left;margin-top:10px;margin-left:20px;width:100px;height:100px}
 | 
			
		||||
.money-head .user-logo img{-moz-border-radius:100px;-webkit-border-radius:100px}
 | 
			
		||||
.money-head .user-info{float:left;padding-top:25px;padding-left:20px}
 | 
			
		||||
.money-head .user-info .userName{height:25px;line-height:25px}
 | 
			
		||||
.money-head .user-info .userScore{height:25px;line-height:25px}
 | 
			
		||||
 | 
			
		||||
.score-head .user-info .cashmoney-box{margin-left:20px;}
 | 
			
		||||
.score-head .cashbtn{padding: 3px 5px;border: 1px solid #333;}
 | 
			
		||||
.score-head .cashbtn:hover{padding: 3px 5px;border: 1px solid #e45050;}
 | 
			
		||||
.score-head .usermoney{width:150px ; float:left;}
 | 
			
		||||
.score-head .cashbox{width:300px; float:left;}
 | 
			
		||||
.score-head .lockbox{width:150px ; float:left;}
 | 
			
		||||
 | 
			
		||||
.wst-fav-listg{float:left;width:100%;padding-top:12px}
 | 
			
		||||
.wst-fav-listg a,.wst-fav-shop span{color:#6a6868}
 | 
			
		||||
.wst-fav-goods{float:left;width:21.88888888%;padding:10px;background:#fff;border:1px solid #dadada;border-radius:3px;margin-left:6px;margin-bottom:20px}
 | 
			
		||||
.wst-fav-goods:hover{border:1px solid #fe7f6c}
 | 
			
		||||
.wst-fav-goodp1{margin-top:8px}
 | 
			
		||||
.wst-fav-goodp1,.wst-fav-goodp2{float:left;width:100%;line-height:20px;font-family:"microsoft yahei"}
 | 
			
		||||
.wst-fav-goodpr{color:#ea523b;font-size:16px;font-weight:bold}
 | 
			
		||||
.wst-fav-goodpr2{color:#ed1a8d}
 | 
			
		||||
.wst-fav-goodpr3{color:#c4c2c2}
 | 
			
		||||
.wst-fav-goodpr4{color:#249ee7}
 | 
			
		||||
.wst-fav-goimg{float:left;width:216px;height:216px;text-align:center;vertical-align:middle;display:block;position:relative}
 | 
			
		||||
.wst-fav-goimg img{max-width:216px;max-height:216px;cursor:pointer}
 | 
			
		||||
.wst-fav-goimg span{width:216px;height:38px;line-height:38px;font-size:15px;color:#fff;opacity:.8;background:#605d56;display:block;position:absolute;left:0;bottom:0;display:none}
 | 
			
		||||
.wst-fav-goimg span:hover{background:#d0260c;cursor:pointer}
 | 
			
		||||
.wst-fav-gonam{float:left;width:100%;height:36px;color:#838383;font-size:15px;font-family:"microsoft yahei";margin-top:6px}
 | 
			
		||||
.wst-fav-shop{float:left;width:100%;margin-top:6px}
 | 
			
		||||
.wst-fav-shop span{margin-right:10px}
 | 
			
		||||
.wst-fav-shop img{float:left;margin-top:1px;width:15px;margin-right:3px}
 | 
			
		||||
.wst-fav-pa{padding:25px 0 0 350px}
 | 
			
		||||
.wst-favo-shop{margin-top:20px;padding:8px;border:1px solid #dddbdb}
 | 
			
		||||
.wst-favo-shop:hover{border:1px solid #ec7e67}
 | 
			
		||||
.wst-favo-shopl{float:left;width:150px}
 | 
			
		||||
.wst-favo-shopr{float:right;width:80%}
 | 
			
		||||
.wst-favo-shopimg{float:left;width:150px;height:150px;text-align:center;vertical-align:middle;display:block;position:relative}
 | 
			
		||||
.wst-favo-shopimg img{max-width:150px;max-height:150px}
 | 
			
		||||
.wst-favo-shopl p{float:left;height:25px;width:100%;line-height:25px;text-align:center;font-family:"microsoft yahei"}
 | 
			
		||||
.wst-favo-shopa{float:left;padding:0 8px;margin-left:3px;height:22px;line-height:22px;border:1px solid #7a7a7a;color:#7a7a7a;cursor:pointer}
 | 
			
		||||
.wst-favo-shopa:hover{color:#ec7e67;border:1px solid #ec7e67;box-shadow:0 0 1px rgba(0,0,0,0.3)}
 | 
			
		||||
.wst-favo-more{float:left;width:100%}
 | 
			
		||||
.wst-favo-more a{font-size:13px;color:#666}
 | 
			
		||||
.wst-favo-more a:hover{color:#eb5f43}
 | 
			
		||||
.wst-favo-more span{width:100px;height:20px;color:#ec7e67;line-height:20px;font-weight:bold;text-align:center;border-bottom:2px solid #ec7e67}
 | 
			
		||||
.wst-favo-good{padding-top:2px;margin-left:22px}
 | 
			
		||||
.wst-favo-goods{float:left;margin:0 5px}
 | 
			
		||||
.wst-favo-goodimg{width:135px;height:135px;text-align:center;vertical-align:middle;display:block;position:relative}
 | 
			
		||||
.wst-favo-goodimg a{width:135px;height:135px;display:table-cell;vertical-align:middle}
 | 
			
		||||
.wst-favo-goodimg a img{max-width:135px;max-height:135px}
 | 
			
		||||
.wst-favo-goods span{float:left;width:100%;margin-top:1px;text-align:center;color:#fc6047;font-weight:bold;font-size:15px}
 | 
			
		||||
.als-container{position:relative;width:100%;margin:0 auto}
 | 
			
		||||
.als-viewport{position:relative;overflow:hidden;margin:0 auto}
 | 
			
		||||
.als-wrapper{position:relative;list-style:none}
 | 
			
		||||
.als-item{position:relative;display:block;text-align:center;cursor:pointer;float:left}
 | 
			
		||||
.als-prev,.als-next{position:absolute;cursor:pointer;clear:both}
 | 
			
		||||
.als-item img{width:135px;height:135px;vertical-align:middle}
 | 
			
		||||
.als-prev,.als-next{top:40px}
 | 
			
		||||
.als-prev{left:-22px}
 | 
			
		||||
.als-next{right:-22px}
 | 
			
		||||
.goods-info img{margin-top:10px;display:block;float:left}
 | 
			
		||||
.goodsName{margin-top:10px;height:50px;line-height:50px;overflow:hidden;float:left}
 | 
			
		||||
.appraise-complate{width:980px;min-height:265px;margin-top:10px;border:1px solid #ccc}
 | 
			
		||||
.appraise-box{width:980px;height:350px;margin:10px 0;border:1px solid #ccc}
 | 
			
		||||
.o-goods-info{width:210px;height:258px;padding-left:5px;padding-top:5px;float:left;overflow:hidden}
 | 
			
		||||
.o-goods-info img{width:180px;height:180px}
 | 
			
		||||
.appraise-area{word-wrap:break-word;word-break:break-all;padding-top:5px;width:740px;height:100%;float:right}
 | 
			
		||||
.appraise-item{width:500px}
 | 
			
		||||
.appraise-title{margin-top:3px;float:left;width:70px;font-weight:bold}
 | 
			
		||||
.appraise-content{float:left;width:430px}
 | 
			
		||||
.complate-content{width:600px;max-height:180px;line-height:24px;overflow:hidden}
 | 
			
		||||
.webuploader-pick{height:25px;line-height:25px}
 | 
			
		||||
.appraise-btn{cursor:pointer;width:60px;height:30px;background:#e23e3d;border:0;color:#fff;border-radius:3px}
 | 
			
		||||
.wst-msg-tips-box{background-color:#f0a869;border-radius:12px;color:white;cursor:pointer;display:inline-block;height:24px;left:30px;line-height:24px;position:relative;text-align:center;top:0;width:24px}
 | 
			
		||||
.msgContent{padding:10px}
 | 
			
		||||
.wst-sec-but{outline:0;background:#e45050;color:#fff;border:1px solid #d33110;border-radius:3px;cursor:pointer}
 | 
			
		||||
.u-btn{width:80px;height:30px;font-weight:bold;cursor:pointer}
 | 
			
		||||
.u-btn:hover{background:#ea3232 none repeat scroll 0 0;cursor:pointer}
 | 
			
		||||
.s-btn{margin:10px}
 | 
			
		||||
.tc{text-align:center}
 | 
			
		||||
.g_bd{border:1px solid #f2f2f2}
 | 
			
		||||
.pd10{padding:10px}
 | 
			
		||||
.my_consultbox{margin:5px 0;width:100%;overflow:hidden}
 | 
			
		||||
.my_consult{width:70%;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;float:left}
 | 
			
		||||
.consult_time{float:right;margin-right:1%}
 | 
			
		||||
.gc_replytit{color:#ff6c00}
 | 
			
		||||
.c999{color:#999}
 | 
			
		||||
.gc_a{color:#005ea7}
 | 
			
		||||
.gc_a:hover{color:#005ea7}
 | 
			
		||||
.order_remaker{color:#ff6c00;padding:5px;border:1px solid #ddd;border-top:0}
 | 
			
		||||
.order_from{  margin-left: 10px;color: #fff;border: 1px solid red;padding: 2px 4px;border-radius: 10px;background-color: #FF247A;}
 | 
			
		||||
.wst-inform-head{float:left;width:100%;border-bottom:1px solid #e45050}
 | 
			
		||||
.wst-inform-head span{float:left;line-height:28px;padding:0 28px;color:#fff;background:#e45050;font-weight:bold}
 | 
			
		||||
.wst-inform-head a{float:right;line-height:28px;padding:0 28px;color:#fff;background:#e45050}
 | 
			
		||||
.wst-inform-box{border-bottom: 1px solid #ddd;height: auto;overflow:hidden;padding: 10px;line-height: 30px;}
 | 
			
		||||
.wst-inform-content{margin-right:50px;background:#fff;min-height:948px;height:auto;width:65%;float:left;filter:progid:DXImageTransform.Microsoft.Shadow(color = #909090,direction = 120,strength = 4);-moz-box-shadow:2px 2px 10px #909090;-webkit-box-shadow:2px 2px 10px #909090;box-shadow:0 1px 3px rgba(0,0,0,0.3)}
 | 
			
		||||
.wst-remind{width: 28%;float: left;}
 | 
			
		||||
.inform-log-box{line-height: 20px;padding: 20px;}
 | 
			
		||||
.wst-inform-box .wst-shopName{    border-bottom: 1px solid #ddd;display: inline-block;width: 20%;text-align:right;}
 | 
			
		||||
.wst-inform-box .title{width: 20%;text-align:right;display: inline-block;vertical-align: top;}
 | 
			
		||||
.wst-inform-box .goods-img{width: 70%;display: inline-block;}
 | 
			
		||||
.wst-inform-box .goods-img .wst-img img{width: 40px;height: 40px;}
 | 
			
		||||
.wst-inform-box .goods-img .wst-text a{text-decoration:none;}
 | 
			
		||||
.wst-remind .content{float: left;}
 | 
			
		||||
.wst-remind .alert {color: #C09853;background-color: #FCF8E3; padding: 9px 14px;border: 1px solid #FBEED5;text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
 | 
			
		||||
}
 | 
			
		||||
.wst-inform-box .model{width: 20%;height: 100%;display: inline-block;}
 | 
			
		||||
.order-box .log-box .state3{margin-left: 10px;}
 | 
			
		||||
.order-box .log-box .state3 p {float: left;width: 170px;margin-left: 20px;height: 30px;text-align: left;color: #f05858;font-size: 15px;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										17
									
								
								hyhproject/home2/view/default/error_lost.html
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										17
									
								
								hyhproject/home2/view/default/error_lost.html
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
{extend name="default/base" /}
 | 
			
		||||
{block name="title"}记录找不到了 - {:WSTConf('CONF.mallName')}{__block__}{/block}
 | 
			
		||||
{block name="css"}{/block}
 | 
			
		||||
{block name="main"}
 | 
			
		||||
<div class="wst-container">
 | 
			
		||||
	<div class="wst-empty empty3">
 | 
			
		||||
		<div class="prompt3">
 | 
			
		||||
		<p>很抱歉,你来晚了一步,它已经任性的消失了...</p>
 | 
			
		||||
		<p>你要坚强些,继续发掘别的宝贝吧</p>
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="button3">
 | 
			
		||||
			<a href="javascript:history.go(-1)" class="wst-empty-btn wst-empty-btn1">返回上一页</a>
 | 
			
		||||
		   <a href="{$Request.root.true}" class="wst-empty-btn wst-empty-btn1">返回首页</a>
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
{/block}
 | 
			
		||||
							
								
								
									
										15
									
								
								hyhproject/home2/view/default/error_msg.html
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										15
									
								
								hyhproject/home2/view/default/error_msg.html
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
{extend name="default/base" /}
 | 
			
		||||
{block name="title"}系统提示  - {:WSTConf('CONF.mallName')}{__block__}{/block}
 | 
			
		||||
{block name="css"}{/block}
 | 
			
		||||
{block name="main"}
 | 
			
		||||
<div class="wst-container">
 | 
			
		||||
	<div class="wst-empty empty1">
 | 
			
		||||
		<div class="prompt">
 | 
			
		||||
			<p>{$message}</p>
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="button">
 | 
			
		||||
		   <a href="{$Request.root.true}" class="wst-empty-btn wst-empty-btn1">返回首页</a>
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
{/block}
 | 
			
		||||
							
								
								
									
										18
									
								
								hyhproject/home2/view/default/error_switch.html
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										18
									
								
								hyhproject/home2/view/default/error_switch.html
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
<!doctype html>
 | 
			
		||||
<head>
 | 
			
		||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 | 
			
		||||
<title>提示信息 - {:WSTConf('CONF.mallName')}</title>
 | 
			
		||||
<meta name="auther" content="WSTMart,www.wstmart.net" />
 | 
			
		||||
<meta name="copyright" content="Copyright©2016-2066 Powered By WSTMart" />
 | 
			
		||||
<link href="__STYLE__/css/common.css?v={$v}" rel="stylesheet">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
<div class="wst-container">
 | 
			
		||||
	<div class="wst-empty empty1">
 | 
			
		||||
		<div class="prompt">
 | 
			
		||||
			<p>{if(WSTConf('CONF.seoMallSwitchDesc'))}{:WSTConf('CONF.seoMallSwitchDesc')}{else}商城暂时关闭{/if}</p>
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										18
									
								
								hyhproject/home2/view/default/error_sys.html
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										18
									
								
								hyhproject/home2/view/default/error_sys.html
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
{extend name="default/base" /}
 | 
			
		||||
{block name="title"}系统出错了 - {:WSTConf('CONF.mallName')}{__block__}{/block}
 | 
			
		||||
{block name="css"}{/block}
 | 
			
		||||
{block name="main"}
 | 
			
		||||
<div class="wst-container">
 | 
			
		||||
	<div class="wst-empty empty2">
 | 
			
		||||
		<div class="prompt2">
 | 
			
		||||
			<span>OMG,系统出错了!</span>
 | 
			
		||||
			<p>你竟然能来到这里  (╯﹏╰)</p>
 | 
			
		||||
			<p>看来我们要去面壁思过了...</p>
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="button2">
 | 
			
		||||
			<a href="javascript:history.go(-1)" class="wst-empty-btn wst-empty-btn1">返回上一页</a>
 | 
			
		||||
		   <a href="{$Request.root.true}" class="wst-empty-btn wst-empty-btn1">返回首页</a>
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
{/block}
 | 
			
		||||
							
								
								
									
										134
									
								
								hyhproject/home2/view/default/footer.html
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										134
									
								
								hyhproject/home2/view/default/footer.html
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,134 @@
 | 
			
		||||
<div style="border-top: 1px solid #df2003;padding-bottom:25px;margin-top:35px;min-width:1200px;"></div>
 | 
			
		||||
<div class="wst-footer-flink">
 | 
			
		||||
	<div class="wst-footer" >
 | 
			
		||||
 | 
			
		||||
		<div class="wst-footer-cld-box">
 | 
			
		||||
			<div class="wst-footer-fl" style="text-align: left;padding-left:10px;">友情链接</div>
 | 
			
		||||
 | 
			
		||||
			<div style="padding-left:40px;">
 | 
			
		||||
				{wst:friendlink cache='86400'}
 | 
			
		||||
				<div style="float:left;"><a class="flink-hover" href="{$vo['friendlinkUrl']}"  target="_blank">{$vo["friendlinkName"]}</a>  </div> 
 | 
			
		||||
				{/wst:friendlink}
 | 
			
		||||
				<div class="wst-clear"></div>
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
<ul class="wst-footer-info">
 | 
			
		||||
	<li><div class="wst-footer-info-img wst-fimg1"></div>
 | 
			
		||||
		<div class="wst-footer-info-text">
 | 
			
		||||
			<h1>支付宝支付</h1>
 | 
			
		||||
			<p>支付宝签约商家</p>
 | 
			
		||||
		</div>
 | 
			
		||||
	</li>
 | 
			
		||||
	<li><div class="wst-footer-info-img wst-fimg2"></div>
 | 
			
		||||
		<div class="wst-footer-info-text">
 | 
			
		||||
			<h1>正品保证</h1>
 | 
			
		||||
			<p>100%原产地</p>
 | 
			
		||||
		</div>
 | 
			
		||||
	</li>
 | 
			
		||||
	<li><div class="wst-footer-info-img wst-fimg3"></div>
 | 
			
		||||
		<div class="wst-footer-info-text">
 | 
			
		||||
			<h1>退货无忧</h1>
 | 
			
		||||
			<p>七天退货保障</p>
 | 
			
		||||
		</div>
 | 
			
		||||
	</li>
 | 
			
		||||
	<li><div class="wst-footer-info-img wst-fimg4"></div>
 | 
			
		||||
		<div class="wst-footer-info-text">
 | 
			
		||||
			<h1>免费配送</h1>
 | 
			
		||||
			<p>满额包邮</p>
 | 
			
		||||
		</div>
 | 
			
		||||
	</li>
 | 
			
		||||
	<li><div class="wst-footer-info-img wst-fimg5"></div>
 | 
			
		||||
		<div class="wst-footer-info-text">
 | 
			
		||||
			<h1>货到付款</h1>
 | 
			
		||||
			<p>400城市送货上门</p>
 | 
			
		||||
		</div>
 | 
			
		||||
	</li>
 | 
			
		||||
</ul>
 | 
			
		||||
<div class="wst-footer-help">
 | 
			
		||||
	<div class="wst-footer">
 | 
			
		||||
		<div class="wst-footer-hp-ck1">
 | 
			
		||||
			{volist name=":WSTHelps(5,6)" id="vo1"}
 | 
			
		||||
			<div class="wst-footer-wz-ca">
 | 
			
		||||
				<div class="wst-footer-wz-pt">
 | 
			
		||||
					<span class="wst-footer-wz-pn">{$vo1["catName"]}</span>
 | 
			
		||||
					<ul style='margin-left:25px;'>
 | 
			
		||||
						{volist name="vo1['articlecats']" id="vo2"}
 | 
			
		||||
						<li style='list-style:disc;color:#999;font-size:12px;'>
 | 
			
		||||
						<a href="{:Url('Home/Helpcenter/view',array('id'=>$vo2['articleId']))}">{:WSTMSubstr($vo2['articleTitle'],0,8)}</a>
 | 
			
		||||
						</li>
 | 
			
		||||
						{/volist}
 | 
			
		||||
					</ul>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
			{/volist}
 | 
			
		||||
 | 
			
		||||
			<div class="wst-contact">
 | 
			
		||||
				<ul>
 | 
			
		||||
					<li style="height:30px;">
 | 
			
		||||
						<div class="icon-phone"></div><p class="call-wst">服务热线:</p>
 | 
			
		||||
					</li>
 | 
			
		||||
					<li style="height:38px;">
 | 
			
		||||
						{if(WSTConf('CONF.serviceTel')!='')}<p class="email-wst">{:WSTConf('CONF.serviceTel')}</p>{/if}
 | 
			
		||||
					</li>
 | 
			
		||||
					<li style="height:150px;">
 | 
			
		||||
						<div class="qr-code" style="position:relative;">
 | 
			
		||||
							<img src="__IMGURL__/upload/sysconfigs/app.jpg"  style="height:90px;">
 | 
			
		||||
						
 | 
			
		||||
						</span>
 | 
			
		||||
						    {if(WSTConf('CONF.wxenabled')==1) && WSTConf('CONF.wxAppLogo')}
 | 
			
		||||
							<img src="__IMGURL__/{:WSTConf('CONF.wxAppLogo')}" style="height:110px;">
 | 
			
		||||
							{/if}
 | 
			
		||||
							<div class="focus-wst">
 | 
			
		||||
							    {if(WSTConf('CONF.serviceQQ')!='')}
 | 
			
		||||
								<p class="focus-wst-qr">在线客服:</p>
 | 
			
		||||
								<p class="focus-wst-qra">
 | 
			
		||||
						          <a href="tencent://message/?uin={:WSTConf('CONF.serviceQQ')}&Site=QQ交谈&Menu=yes">
 | 
			
		||||
									  <img border="0" src="http://wpa.qq.com/pa?p=1:{:WSTConf('CONF.serviceQQ')}:7" alt="QQ交谈" width="71" height="24" />
 | 
			
		||||
								  </a>
 | 
			
		||||
								</p>
 | 
			
		||||
          						{/if}
 | 
			
		||||
          						{if(WSTConf('CONF.serviceEmail')!='')}
 | 
			
		||||
								<p class="focus-wst-qr">商城邮箱:</p>
 | 
			
		||||
								<p class="focus-wst-qre">{:WSTConf('CONF.serviceEmail')}</p>
 | 
			
		||||
								{/if}
 | 
			
		||||
							</div>
 | 
			
		||||
							
 | 
			
		||||
						</div>
 | 
			
		||||
						<a style="float: left;margin-left: -70px;margin-top:5px; color: #999;">下载APP</a>	
 | 
			
		||||
					</li>
 | 
			
		||||
					
 | 
			
		||||
				</ul>
 | 
			
		||||
			</div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
			<div class="wst-clear"></div>
 | 
			
		||||
		</div>
 | 
			
		||||
 | 
			
		||||
	    <div class="wst-footer-hp-ck3">
 | 
			
		||||
	        <div class="links">
 | 
			
		||||
	           {php}$navs = WSTNavigations(1);{/php}
 | 
			
		||||
	           {volist name="$navs" id='vo'}
 | 
			
		||||
               <a href="{$vo['navUrl']}" {if $vo['isOpen']==1}target="_blank"{/if}>{$vo['navTitle']}</a>
 | 
			
		||||
               {if $i< count($navs)}  |  {/if}
 | 
			
		||||
               {/volist}
 | 
			
		||||
	        </div>
 | 
			
		||||
	        <div class="copyright">
 | 
			
		||||
	        {php}
 | 
			
		||||
	        	if(WSTConf('CONF.mallFooter')!=''){
 | 
			
		||||
	         		echo htmlspecialchars_decode(WSTConf('CONF.mallFooter'));
 | 
			
		||||
	        	}
 | 
			
		||||
	        {/php}
 | 
			
		||||
	      	{php}
 | 
			
		||||
				if(WSTConf('CONF.visitStatistics')!=''){
 | 
			
		||||
					echo htmlspecialchars_decode(WSTConf('CONF.visitStatistics'))."<br/>";
 | 
			
		||||
			    }
 | 
			
		||||
			{/php}
 | 
			
		||||
	       
 | 
			
		||||
	        </div>
 | 
			
		||||
	    </div>
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
{:hook('initCronHook')}
 | 
			
		||||
							
								
								
									
										66
									
								
								hyhproject/home2/view/default/forget_pass.html
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										66
									
								
								hyhproject/home2/view/default/forget_pass.html
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,66 @@
 | 
			
		||||
{extend name="default/base" /}
 | 
			
		||||
{block name="title"}忘记密码 - {:WSTConf('CONF.mallName')}{__block__}{/block}
 | 
			
		||||
{block name="css"}
 | 
			
		||||
<link href="__STATIC__/plugins/validator/jquery.validator.css?v={$v}" rel="stylesheet">
 | 
			
		||||
<link href="__STYLE__/css/login.css?v={$v}" rel="stylesheet">
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="nav"}
 | 
			
		||||
    {php}$liteTitle = "找回密码"{/php}
 | 
			
		||||
	{include file="default/header_lite" /}
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="main"}
 | 
			
		||||
	<div class="wst-container">
 | 
			
		||||
           <div id="stepflex" class="stepflex">
 | 
			
		||||
               <dl class="first doing">
 | 
			
		||||
                   <dt class="s-num">1</dt>
 | 
			
		||||
                   <dd class="s-text">填写账户名</dd>
 | 
			
		||||
                   <dd></dd>
 | 
			
		||||
               </dl>
 | 
			
		||||
               <dl class="normal">
 | 
			
		||||
                   <dt class="s-num1">2</dt>
 | 
			
		||||
                   <dd class="s-text">验证身份</dd>
 | 
			
		||||
               </dl>
 | 
			
		||||
               <dl class="normal">
 | 
			
		||||
                   <dt class="s-num1">3</dt>
 | 
			
		||||
                   <dd class="s-text">重置密码</dd>
 | 
			
		||||
               </dl>
 | 
			
		||||
               <dl class="last">
 | 
			
		||||
                   <dt class="s-num1">4</dt>
 | 
			
		||||
                   <dd class="s-text">完成</dd>
 | 
			
		||||
               </dl>
 | 
			
		||||
           </div>
 | 
			
		||||
         <div class="wst-clear"></div>
 | 
			
		||||
         <div class="forget-pwd">
 | 
			
		||||
           <form  id="forgetPwdForm" autocomplete="off">
 | 
			
		||||
           <input type="hidden" id="step" name="step" class="ipt" value="1" autocomplete="off">
 | 
			
		||||
               <table class="wst-table">
 | 
			
		||||
                   <tbody>
 | 
			
		||||
					<tr class="wst-login-tr">
 | 
			
		||||
						<td class="wst-regist-td">用户名</td>
 | 
			
		||||
						<td><input id="loginName" name="loginName" class="ipt wst-forget-input" type="text"  data-rule="用户名 required;remote(post:{:url('home/users/checkFindKey')})" data-msg-required="请输入用户名" data-tip="请输入用户名"   tabindex="1" value="" autocomplete="off" placeholder="邮箱/用户名/手机号"/></td>
 | 
			
		||||
					</tr>
 | 
			
		||||
				    <tr class="wst-login-tr">
 | 
			
		||||
						<td class="wst-regist-td">验证码</td>
 | 
			
		||||
						<td>
 | 
			
		||||
							<div class="wst-forget-code">
 | 
			
		||||
							<input id="verifyCode" style="ime-mode:disabled" name="verifyCode"  class="ipt wst-forget-codein" data-rule="验证码 required;" data-msg-required="请输入验证码" data-tip="请输入验证码" data-target="#verify" tabindex="6" autocomplete="off" maxlength="6" type="text"  data-target="#verifyCodeTips" placeholder="验证码"/>
 | 
			
		||||
							<img id='verifyImg' class='wst-forget-codeim' src="{:url('home/users/getVerify')}" onclick='javascript:WST.getVerify("#verifyImg")'><span id="verifyCodeTips"></span>
 | 
			
		||||
						   	</div>
 | 
			
		||||
						   	<label style="float:left;margin:10px 0px 0px 5px;">看不清?<a style="color:#69b7b5;" href="javascript:WST.getVerify('#verifyImg')">换一张</a></label><span id="verify" class="wst-lfloat"></span>
 | 
			
		||||
						</td>
 | 
			
		||||
					</tr>
 | 
			
		||||
					<tr class="wst-login-tr">
 | 
			
		||||
						<td colspan="2" style="padding-left:173px;">
 | 
			
		||||
							<input type="submit" class="wst-regist-but" value="下一步" style="width: 88px;height:32px;"/>
 | 
			
		||||
						</td>
 | 
			
		||||
					</tr>
 | 
			
		||||
                   </tbody>
 | 
			
		||||
                </table>
 | 
			
		||||
            </form>
 | 
			
		||||
          </div>
 | 
			
		||||
	</div>
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="js"}
 | 
			
		||||
	<script type="text/javascript" src="__STATIC__/plugins/validator/jquery.validator.min.js?v={$v}"></script>
 | 
			
		||||
	<script type='text/javascript' src='__STYLE__/js/findpass.js?v={$v}'></script>
 | 
			
		||||
{/block}
 | 
			
		||||
							
								
								
									
										136
									
								
								hyhproject/home2/view/default/forget_pass2.html
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										136
									
								
								hyhproject/home2/view/default/forget_pass2.html
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,136 @@
 | 
			
		||||
{extend name="default/base" /}
 | 
			
		||||
{block name="title"}忘记密码 - {:WSTConf('CONF.mallName')}{/block}
 | 
			
		||||
{block name="css"}
 | 
			
		||||
<link href="__STATIC__/plugins/validator/jquery.validator.css?v={$v}" rel="stylesheet">
 | 
			
		||||
<link href="__STYLE__/css/login.css?v={$v}" rel="stylesheet">
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="nav"}
 | 
			
		||||
    {php}$liteTitle = "找回密码"{/php}
 | 
			
		||||
	{include file="default/header_lite" /}
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="main"}
 | 
			
		||||
	<div class="wst-container">
 | 
			
		||||
           <div id="stepflex" class="stepflex">
 | 
			
		||||
               <dl class="first doing">
 | 
			
		||||
                   <dt class="s-num">1</dt>
 | 
			
		||||
                   <dd class="s-text">填写账户名</dd>
 | 
			
		||||
                   <dd></dd>
 | 
			
		||||
               </dl>
 | 
			
		||||
               <dl class="first doing">
 | 
			
		||||
                   <dt class="s-num">2</dt>
 | 
			
		||||
                   <dd class="s-text">验证身份</dd>
 | 
			
		||||
               </dl>
 | 
			
		||||
               <dl class="normal">
 | 
			
		||||
                   <dt class="s-num1">3</dt>
 | 
			
		||||
                   <dd class="s-text">重置密码</dd>
 | 
			
		||||
               </dl>
 | 
			
		||||
               <dl class="last">
 | 
			
		||||
                   <dt class="s-num1">4</dt>
 | 
			
		||||
                   <dd class="s-text">完成</dd>
 | 
			
		||||
               </dl>
 | 
			
		||||
           </div>
 | 
			
		||||
           <div class="wst-clear"></div>
 | 
			
		||||
           <div class="forget-pwd">
 | 
			
		||||
           <form  id="forgetPwdForm2" autocomplete="off">
 | 
			
		||||
           <input type="hidden" id="step" name="step" class="ipt" value="2" autocomplete="off">
 | 
			
		||||
           <input type="hidden" id="modes" name="modes" class="ipt" value="1" autocomplete="off">
 | 
			
		||||
               <table class="wst-table">
 | 
			
		||||
                   <tbody>
 | 
			
		||||
					<tr class="wst-login-tr">
 | 
			
		||||
						<td class="wst-forget-td">请选择验证身份方式</td>
 | 
			
		||||
						<td><select class="wst-forget-select" name="type" id="type">
 | 
			
		||||
                              <option value="phone">手机</option>
 | 
			
		||||
                              <option value="email">邮箱</option>
 | 
			
		||||
                        </select></td>
 | 
			
		||||
					</tr>
 | 
			
		||||
				    <tr class="wst-login-tr">
 | 
			
		||||
                         <td class="wst-forget-td">用户名</td>
 | 
			
		||||
                         <td colspan='2'><span class="wst-forget-te">{$forgetInfo['loginName']}</span></td>
 | 
			
		||||
                    </tr>
 | 
			
		||||
                 	  <tr class="phone-verify wst-login-tr">
 | 
			
		||||
                          <td class="wst-forget-td">手机</td>
 | 
			
		||||
                          <td colspan='2'><span class="wst-forget-te">{php} echo $forgetInfo['userPhone'] == '' ? "没有预留手机号码,请尝试用邮箱找回!" : $forgetInfo['userPhone'] ; {/php}</span></td>
 | 
			
		||||
                      </tr>
 | 
			
		||||
                      {if($forgetInfo['userPhone'] != '')}
 | 
			
		||||
                      <tr class="phone-verify wst-login-tr">
 | 
			
		||||
                          <td class="wst-forget-td">手机校验码</td>
 | 
			
		||||
                          <td>
 | 
			
		||||
                              <input type="text" class="ipt wst-forget-input" style='width:230px;' name="Checkcode" id="Checkcode" data-rule="校验码required;" data-msg-required="请输入校验码" data-tip="请输入校验码" data-target="#verifyPhone" placeholder="校验码">
 | 
			
		||||
                          </td>
 | 
			
		||||
                          <td><button id="timeObtain" class="wst-forget-obtain" type="button" onclick="javascript:phoneVerify();">点击获取校验码</button><span id="verifyPhone"></span></td>
 | 
			
		||||
                      </tr>
 | 
			
		||||
	                <tr class="phone-verify wst-login-tr">
 | 
			
		||||
						<td colspan="2" style="padding-left:282px;">
 | 
			
		||||
							<input type="button" class="wst-regist-but" value="下一步" style="width: 80px;height:32px;" onclick="javascript:forgetPhone()"/>
 | 
			
		||||
						</td>
 | 
			
		||||
					</tr>
 | 
			
		||||
                       {/if}
 | 
			
		||||
                       <tr class="email-verify wst-login-tr">
 | 
			
		||||
                           <td class="wst-forget-td">邮箱地址</td>
 | 
			
		||||
                           <td colspan='2'><span class="wst-forget-te">{php} echo $forgetInfo['userEmail'] == '' ? "没有预留邮箱,请尝试用手机号码找回!" : $forgetInfo['userEmail'] ; {/php}</span></td>
 | 
			
		||||
                       </tr>
 | 
			
		||||
                      {if($forgetInfo['userEmail'] != '')}
 | 
			
		||||
                    <tr class="email-verify wst-login-tr">
 | 
			
		||||
          						<td class="wst-regist-td">验证码</td>
 | 
			
		||||
          						<td>
 | 
			
		||||
          							<div class="wst-forget-code2">
 | 
			
		||||
          							<input id="verifyCode" style="ime-mode:disabled;" name="verifyCode"  class="ipt wst-forget-codein2" data-rule="验证码 required;" data-msg-required="请输入验证码" data-tip="请输入验证码" data-target="#verify" tabindex="6" autocomplete="off" maxlength="6" type="text"  data-target="#verifyCodeTips" placeholder="验证码"/>
 | 
			
		||||
          							<img id='verifyImg' class='wst-forget-codeim2' src="{:url('home/users/getVerify')}" onclick='javascript:WST.getVerify("#verifyImg")'><span id="verifyCodeTips"></span>
 | 
			
		||||
          						   	</div>
 | 
			
		||||
          						   	<label style="float:left;margin:10px 0px 0px 5px;">看不清?<a style="color:#69b7b5;" href="javascript:WST.getVerify('#verifyImg')">换一张</a></label><span id="verify" class="wst-lfloat"></span>
 | 
			
		||||
          						</td>
 | 
			
		||||
          					</tr>
 | 
			
		||||
 | 
			
		||||
                    <tr class="email-verify wst-login-tr">
 | 
			
		||||
                          <td class="wst-forget-td">邮箱校验码</td>
 | 
			
		||||
                          <td >
 | 
			
		||||
                              <input type="text" class="ipt wst-forget-input" style='width:230px;' name="secretCode" id="secretCode" data-rule="校验码required;" data-msg-required="请输入校验码" data-tip="请输入校验码" placeholder="校验码" data-target="#notice">
 | 
			
		||||
                              <button id="sendEmailBtn" class="wst-forget-obtain" type="button" onclick="javascript:forgetEmail();">点击获取校验码</button>
 | 
			
		||||
                          </td>
 | 
			
		||||
                          <td id="notice">
 | 
			
		||||
                            
 | 
			
		||||
                          </td>
 | 
			
		||||
                      </tr>
 | 
			
		||||
                      
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	                <tr class="email-verify wst-login-tr">
 | 
			
		||||
        						<td colspan="2" style="padding-left:282px;">
 | 
			
		||||
        							<input type="button" class="wst-regist-but" value="下一步" style="width: 120px;height:32px;" onclick="javascript:resetPass()"/>
 | 
			
		||||
        						</td>
 | 
			
		||||
        					</tr>
 | 
			
		||||
                          {/if}
 | 
			
		||||
                   </tbody></table>
 | 
			
		||||
               </form>
 | 
			
		||||
 | 
			
		||||
               <!-- <div id="email-prompt" style="margin-top:50px;font-size:20px;text-align: center;display: none;">邮箱成功发送,请登录邮箱查收<span style="color: #E23C3D;font-size:20px;">(30分钟有效)</span></div> -->
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
           </div>
 | 
			
		||||
	</div>
 | 
			
		||||
   <form method="post" id="phoneVerify" autocomplete="off" style="display:none;">
 | 
			
		||||
     <input type='hidden' id='VerifyId' value='' autocomplete="off"/>
 | 
			
		||||
      <table class='wst-form' style="width:500px;padding-top:10px;">
 | 
			
		||||
        <tr>
 | 
			
		||||
	        <th align='right'>验证码 <font color='red'>*</font>:</th>
 | 
			
		||||
			<td>
 | 
			
		||||
				<input id="smsVerfy" style="ime-mode:disabled;float: left;height: 30px;" name="smsVerfy" data-rule="验证码: required;" data-msg-required="请输入验证码" data-tip="请输入验证码" data-target="#verify" class="ipt" class="text text-1" tabindex="6" autocomplete="off" maxlength="6" type="text"/>
 | 
			
		||||
				<label style="float: left;">
 | 
			
		||||
					<img id='verifyImg2' src="{:url('home/users/getVerify')}" onclick='javascript:WST.getVerify("#verifyImg2")' style="width:115px;"> 
 | 
			
		||||
				</label>      	
 | 
			
		||||
			   	<label class="ftx23"><a href="javascript:WST.getVerify('#verifyImg2')" class="flk13"> 看不清?换一张</a></label><div id="verify"></div>
 | 
			
		||||
			</td>
 | 
			
		||||
		</tr>
 | 
			
		||||
         <tr>
 | 
			
		||||
           <td colspan='2' style='padding:10px 0px 0px 190px;'>
 | 
			
		||||
               <button  type="submit" style="width: 120px;height:30px;">确认</button>
 | 
			
		||||
           </td>
 | 
			
		||||
         </tr>
 | 
			
		||||
        </table>
 | 
			
		||||
      </form>
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="js"}
 | 
			
		||||
	<script type="text/javascript" src="__STATIC__/plugins/validator/jquery.validator.min.js?v={$v}"></script>
 | 
			
		||||
	<script type='text/javascript' src='__STYLE__/js/findpass.js?v={$v}'></script>
 | 
			
		||||
{/block}
 | 
			
		||||
							
								
								
									
										61
									
								
								hyhproject/home2/view/default/forget_pass3.html
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										61
									
								
								hyhproject/home2/view/default/forget_pass3.html
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,61 @@
 | 
			
		||||
{extend name="default/base" /}
 | 
			
		||||
{block name="title"}忘记密码 - {:WSTConf('CONF.mallName')}{/block}
 | 
			
		||||
{block name="css"}
 | 
			
		||||
<link href="__STATIC__/plugins/validator/jquery.validator.css?v={$v}" rel="stylesheet">
 | 
			
		||||
<link href="__STYLE__/css/login.css?v={$v}" rel="stylesheet">
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="nav"}
 | 
			
		||||
    {php}$liteTitle = "找回密码"{/php}
 | 
			
		||||
	{include file="default/header_lite" /}
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="main"}
 | 
			
		||||
	<div class="wst-container">
 | 
			
		||||
           <div id="stepflex" class="stepflex">
 | 
			
		||||
               <dl class="first doing">
 | 
			
		||||
                   <dt class="s-num">1</dt>
 | 
			
		||||
                   <dd class="s-text">填写账户名</dd>
 | 
			
		||||
                   <dd></dd>
 | 
			
		||||
               </dl>
 | 
			
		||||
               <dl class="first doing">
 | 
			
		||||
                   <dt class="s-num">2</dt>
 | 
			
		||||
                   <dd class="s-text">验证身份</dd>
 | 
			
		||||
               </dl>
 | 
			
		||||
               <dl class="first doing">
 | 
			
		||||
                   <dt class="s-num">3</dt>
 | 
			
		||||
                   <dd class="s-text">重置密码</dd>
 | 
			
		||||
               </dl>
 | 
			
		||||
               <dl class="last">
 | 
			
		||||
                   <dt class="s-num1">4</dt>
 | 
			
		||||
                   <dd class="s-text">完成</dd>
 | 
			
		||||
               </dl>
 | 
			
		||||
           </div>
 | 
			
		||||
         <div class="wst-clear"></div>
 | 
			
		||||
         <div class="forget-pwd">
 | 
			
		||||
           <form  id="forgetPwdForm3" autocomplete="off">
 | 
			
		||||
           <input type="hidden" id="token" value='{:WSTConf("CONF.pwdModulusKey")}'/>
 | 
			
		||||
           <input type="hidden" id="step" name="step" class="ipt" value="3" autocomplete="off">
 | 
			
		||||
	                <table class="phone-verify">
 | 
			
		||||
	                    <tbody>
 | 
			
		||||
	                        <tr class="wst-login-tr">
 | 
			
		||||
	                            <td class="wst-regist-td" style='width:220px;'>新密码:</td>
 | 
			
		||||
	                            <td><input type="password" class="ipt wst-forget-input"  name="loginPwd" id="loginPwd" placeholder="6-16位字符"></td>
 | 
			
		||||
	                        </tr>
 | 
			
		||||
	                        <tr class="wst-login-tr">
 | 
			
		||||
	                            <td class="wst-regist-td" style='width:220px;'>确认密码:</td>
 | 
			
		||||
	                            <td><input type="password" class="ipt wst-forget-input" name="repassword" id="repassword" placeholder="6-16位字符"></td>
 | 
			
		||||
	                        </tr>
 | 
			
		||||
	                        <tr class="wst-login-tr">
 | 
			
		||||
	                            <td colspan="2" style="padding-left:242px;">
 | 
			
		||||
	                                <input type="submit" class="wst-regist-but" value="提交" style="width: 100px;height:32px;">
 | 
			
		||||
	                            </td>
 | 
			
		||||
	                        </tr>
 | 
			
		||||
	                    </tbody></table>
 | 
			
		||||
               </form>
 | 
			
		||||
           </div>
 | 
			
		||||
	</div>
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="js"}
 | 
			
		||||
	<script type="text/javascript" src="__STATIC__/plugins/validator/jquery.validator.min.js?v={$v}"></script>
 | 
			
		||||
	<script type="text/javascript" src="__STATIC__/js/rsa.js"></script>
 | 
			
		||||
	<script type='text/javascript' src='__STYLE__/js/findpass.js?v={$v}'></script>
 | 
			
		||||
{/block}
 | 
			
		||||
							
								
								
									
										40
									
								
								hyhproject/home2/view/default/forget_pass4.html
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										40
									
								
								hyhproject/home2/view/default/forget_pass4.html
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
{extend name="default/base" /}
 | 
			
		||||
{block name="title"}忘记密码 - {:WSTConf('CONF.mallName')}{/block}
 | 
			
		||||
{block name="css"}
 | 
			
		||||
<link href="__STYLE__/css/login.css?v={$v}" rel="stylesheet">
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="nav"}
 | 
			
		||||
    {php}$liteTitle = "找回密码"{/php}
 | 
			
		||||
	{include file="default/header_lite" /}
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="main"}
 | 
			
		||||
	<div class="wst-container">
 | 
			
		||||
           <div id="stepflex" class="stepflex">
 | 
			
		||||
               <dl class="first doing">
 | 
			
		||||
                   <dt class="s-num">1</dt>
 | 
			
		||||
                   <dd class="s-text">填写账户名</dd>
 | 
			
		||||
                   <dd></dd>
 | 
			
		||||
               </dl>
 | 
			
		||||
               <dl class="first doing">
 | 
			
		||||
                   <dt class="s-num">2</dt>
 | 
			
		||||
                   <dd class="s-text">验证身份</dd>
 | 
			
		||||
               </dl>
 | 
			
		||||
               <dl class="first doing">
 | 
			
		||||
                   <dt class="s-num">3</dt>
 | 
			
		||||
                   <dd class="s-text">重置密码</dd>
 | 
			
		||||
               </dl>
 | 
			
		||||
               <dl class="first doing">
 | 
			
		||||
                   <dt class="s-num">4</dt>
 | 
			
		||||
                   <dd class="s-text">完成</dd>
 | 
			
		||||
               </dl>
 | 
			
		||||
           </div>
 | 
			
		||||
         <div class="wst-clear"></div>
 | 
			
		||||
         <div class="forget-pwd">
 | 
			
		||||
           <div class="wst-forget-c" style="margin-top:30px;"><img src="__STYLE__/img/icon_success.png"/></div>
 | 
			
		||||
           <div class="wst-forget-c wst-forget-ct" style="margin:12px 0px;">密码修改成功!</div>
 | 
			
		||||
           <div class="wst-forget-c" style="margin-bottom:16px;">
 | 
			
		||||
           	<a href="{:url('home/users/login')}"><input type="submit" class="wst-regist-but" value="立即登录" style="width:180px;height:36px;font-size: 15px;"/></a>
 | 
			
		||||
           </div>
 | 
			
		||||
         </div>
 | 
			
		||||
	</div>
 | 
			
		||||
{/block}
 | 
			
		||||
							
								
								
									
										130
									
								
								hyhproject/home2/view/default/goods_contrast.html
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										130
									
								
								hyhproject/home2/view/default/goods_contrast.html
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,130 @@
 | 
			
		||||
{extend name="default/base" /}
 | 
			
		||||
{block name="title"}商品对比 - {:WSTConf('CONF.mallName')}{__block__}{/block}
 | 
			
		||||
{block name="meta"}
 | 
			
		||||
<meta name="description" content="{:WSTConf('CONF.seoMallDesc')}">
 | 
			
		||||
<meta name="Keywords" content="{:WSTConf('CONF.seoMallKeywords')}">
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="css"}
 | 
			
		||||
<link href="__STYLE__/css/goodslist.css?v={$v}" rel="stylesheet">
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="nav"}
 | 
			
		||||
	{include file="default/header" /}
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="main"}
 | 
			
		||||
<div class='wst-filters'>
 | 
			
		||||
   <div class='item' style="border-left:2px solid #df2003;padding-left: 8px;">
 | 
			
		||||
      <a class='link' href='__ROOT__'>首页</a>
 | 
			
		||||
      <i class="arrow">></i>
 | 
			
		||||
      <span class='link'>商品对比</span>
 | 
			
		||||
   </div>
 | 
			
		||||
   <div class='wst-clear'></div>
 | 
			
		||||
</div>
 | 
			
		||||
{/* 商品展示  */}
 | 
			
		||||
<div class="wst-container">
 | 
			
		||||
	<div class="wst-contrast">
 | 
			
		||||
		<div class="goods" id="goodsTabs">
 | 
			
		||||
			<table class="table">
 | 
			
		||||
				<tbody><tr>
 | 
			
		||||
					<th>
 | 
			
		||||
						{if($data['list'])}
 | 
			
		||||
						<div class="choice">
 | 
			
		||||
							<input type="checkbox" onclick="screenContrast(this,0)">
 | 
			
		||||
							<label>高亮不同项</label>
 | 
			
		||||
						</div>
 | 
			
		||||
						<div class="choice">
 | 
			
		||||
							<input type="checkbox" onclick="screenContrast(this,1)">
 | 
			
		||||
							<label>隐藏相同项</label>
 | 
			
		||||
						</div>
 | 
			
		||||
						{else}
 | 
			
		||||
						<div class="choice">请选择商品对比</div>
 | 
			
		||||
						{/if}
 | 
			
		||||
					</th>
 | 
			
		||||
					{volist name="$data['list']" id="go"}
 | 
			
		||||
					<td>
 | 
			
		||||
						<div class="goods-item">
 | 
			
		||||
							<div class="img"><a href="{:Url('home/goods/detail','id='.$go['goodsId'])}" target="_blank">
 | 
			
		||||
							<img class="goodsImg"  data-original="__IMGURL__/{:WSTImg($go['goodsImg'])}" title="{$go['goodsName']}">
 | 
			
		||||
							</a></div>
 | 
			
		||||
							<p class="name"><a href="{:Url('home/goods/detail','id='.$go['goodsId'])}" target="_blank">{$go['goodsName']}</a></p>
 | 
			
		||||
							<p class="price" id="goods-price-{$go['goodsId']}">¥ <span>{$go['shopPrice']}</span></p>
 | 
			
		||||
							<div class="operation">
 | 
			
		||||
								<a href="{:Url('home/goods/detail','id='.$go['goodsId'])}" target="_blank" class="see">查看</a>
 | 
			
		||||
								{if(count($data['list'])!=1)}<a href="javascript:void(0);" onclick="javascript:contrastDel({$go['goodsId']})" class="del">删除</a>{/if}
 | 
			
		||||
							</div>
 | 
			
		||||
							<div class='wst-clear'></div>
 | 
			
		||||
						</div>
 | 
			
		||||
					</td>
 | 
			
		||||
					{/volist}
 | 
			
		||||
				</tr></tbody>
 | 
			
		||||
			</table>
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="goods goods-fixed2" id="goodsTabs2">
 | 
			
		||||
			<table class="table">
 | 
			
		||||
				<tbody><tr>
 | 
			
		||||
					<th>
 | 
			
		||||
						<div class="choice">空白</div>
 | 
			
		||||
					</th>
 | 
			
		||||
				</tr></tbody>
 | 
			
		||||
			</table>
 | 
			
		||||
		</div>
 | 
			
		||||
		<table class="table2">
 | 
			
		||||
		<tbody>
 | 
			
		||||
		{volist name="$data['lists']" id="lis"}
 | 
			
		||||
			<tr class="identical_{$lis['identical']}">
 | 
			
		||||
				<th>
 | 
			
		||||
					<div class="left-title">{$lis['name']}</div>
 | 
			
		||||
				</th>
 | 
			
		||||
				{volist name="$data['list']" id="go"}
 | 
			
		||||
				{php}$in = isset($lis['info'][$go['goodsId']])?$lis['info'][$go['goodsId']]:'--'{/php}
 | 
			
		||||
				<td>
 | 
			
		||||
					{if($lis['type']=='shop' || $lis['type']=='brand')}<div class="right-title">{$in}</div>{/if}
 | 
			
		||||
					{if($lis['type']=='score')}
 | 
			
		||||
						<div class="right-title">
 | 
			
		||||
						{for start="0" end="$in"}
 | 
			
		||||
          					<img src="__STATIC__/plugins/raty/img/star-on.png">
 | 
			
		||||
          				{/for}
 | 
			
		||||
          				{for start="1" end="6-$in"}
 | 
			
		||||
          					<img src="__STATIC__/plugins/raty/img/star-off.png">
 | 
			
		||||
          				{/for}
 | 
			
		||||
						</div>
 | 
			
		||||
					{/if}
 | 
			
		||||
					{if($lis['type']=='spec')}
 | 
			
		||||
						{if(isset($in['list']))}
 | 
			
		||||
						<ul class="list-box">
 | 
			
		||||
							{volist name="$in['list']" id="sp"}
 | 
			
		||||
							{if($sp['isDefault']==1)}<input type="hidden" id="defaultSpec_{$go['goodsId']}_{$sp['catId']}" class="defaultSpec_{$go['goodsId']}" value="{$sp['itemId']}"/>{/if}
 | 
			
		||||
							{if($sp['isAllowImg']==1)}
 | 
			
		||||
								<li class="img {if($sp['isDefault']==1)}active{/if}" onclick="javascript:choiceContrast(this,{$sp['itemId']},{$sp['catId']},{$go['goodsId']});">
 | 
			
		||||
									<img class="goodsImg" data-original="__IMGURL__/{:WSTImg($sp['itemImg'])}" title="{$sp['itemName']}">
 | 
			
		||||
								</li>
 | 
			
		||||
							{else}
 | 
			
		||||
								<li class="{if($sp['isDefault']==1)}active{/if}" onclick="javascript:choiceContrast(this,{$sp['itemId']},{$sp['catId']},{$go['goodsId']});">{$sp['itemName']}</li>
 | 
			
		||||
							{/if}
 | 
			
		||||
							{/volist}
 | 
			
		||||
						</ul>
 | 
			
		||||
						{else}
 | 
			
		||||
						<div class="right-title">{$in}</div>
 | 
			
		||||
						{/if}
 | 
			
		||||
					{/if}
 | 
			
		||||
				</td>
 | 
			
		||||
				{/volist}
 | 
			
		||||
			</tr>
 | 
			
		||||
		{/volist}
 | 
			
		||||
		</tbody>
 | 
			
		||||
		</table>
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
{/block}
 | 
			
		||||
{block name="js"}
 | 
			
		||||
<script>
 | 
			
		||||
var saleSpec = {
 | 
			
		||||
		{if isset($data['saleSpec'])}
 | 
			
		||||
		sku:{:json_encode($data['saleSpec'])}
 | 
			
		||||
		{/if}
 | 
			
		||||
	}
 | 
			
		||||
$(function(){
 | 
			
		||||
	fixedGoods();
 | 
			
		||||
})	
 | 
			
		||||
</script>
 | 
			
		||||
<script type='text/javascript' src='__STYLE__/js/goodslist.js?v={$v}'></script>
 | 
			
		||||
{/block}
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user