315 lines
13 KiB
PHP
315 lines
13 KiB
PHP
<?php
|
||
/**
|
||
* tpshop
|
||
* ============================================================================
|
||
* * 版权所有 2015-2027 深圳搜豹网络科技有限公司,并保留所有权利。
|
||
* 网站地址: http://www.tp-shop.cn
|
||
* ----------------------------------------------------------------------------
|
||
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用 .
|
||
* 不允许对程序代码以任何形式任何目的的再发布。
|
||
* 采用最新Thinkphp5助手函数特性实现单字母函数M D U等简写方式
|
||
* ============================================================================
|
||
* $Author: 当燃 2016-01-09
|
||
*/
|
||
namespace app\mobile\controller;
|
||
|
||
use Think\Db;
|
||
use app\common\logic\wechat\WechatUtil;
|
||
|
||
class Index extends MobileBase {
|
||
|
||
public function index(){
|
||
$diy_index = M('mobile_template')->where('is_index=1')->field('template_html,block_info')->find();
|
||
if($diy_index){
|
||
$html = htmlspecialchars_decode($diy_index['template_html']);
|
||
$logo=tpCache('shop_info.wap_home_logo');
|
||
$this->assign('wap_logo',$logo);
|
||
$this->assign('html',$html);
|
||
$this->assign('is_index',"1");
|
||
$this->assign('info',$diy_index['block_info']);
|
||
return $this->fetch('index2');
|
||
exit();
|
||
}
|
||
/*
|
||
//获取微信配置
|
||
$wechat_list = M('wx_user')->select();
|
||
$wechat_config = $wechat_list[0];
|
||
$this->weixin_config = $wechat_config;
|
||
// 微信Jssdk 操作类 用分享朋友圈 JS
|
||
$jssdk = new \Mobile\Logic\Jssdk($this->weixin_config['appid'], $this->weixin_config['appsecret']);
|
||
$signPackage = $jssdk->GetSignPackage();
|
||
print_r($signPackage);
|
||
*/
|
||
$hot_goods = M('goods')->where("is_hot=1 and is_on_sale=1")->order('goods_id DESC')->limit(20)->cache(true,TPSHOP_CACHE_TIME)->select();//首页热卖商品
|
||
$thems = M('goods_category')->where('level=1')->order('sort_order')->limit(9)->cache(true,TPSHOP_CACHE_TIME)->select();
|
||
$this->assign('thems',$thems);
|
||
$this->assign('hot_goods',$hot_goods);
|
||
$favourite_goods = M('goods')->where("is_recommend=1 and is_on_sale=1")->order('sort DESC')->limit(20)->cache(true,TPSHOP_CACHE_TIME)->select();//首页推荐商品
|
||
|
||
//秒杀商品
|
||
$now_time = time(); //当前时间
|
||
if(is_int($now_time/7200)){ //双整点时间,如:10:00, 12:00
|
||
$start_time = $now_time;
|
||
}else{
|
||
$start_time = floor($now_time/7200)*7200; //取得前一个双整点时间
|
||
}
|
||
$end_time = $start_time+7200; //结束时间
|
||
$flash_sale_list = Db::name('goods')->alias('g')
|
||
->field('g.goods_id,f.price,s.item_id')
|
||
->join('flash_sale f','g.goods_id = f.goods_id','LEFT')
|
||
->join('__SPEC_GOODS_PRICE__ s','s.prom_id = f.id AND g.goods_id = s.goods_id','LEFT')
|
||
->where("start_time >= $start_time and end_time <= $end_time and f.is_end=0")
|
||
->limit(3)->select();
|
||
$this->assign('flash_sale_list',$flash_sale_list);
|
||
$this->assign('start_time',$start_time);
|
||
$this->assign('end_time',$end_time);
|
||
$this->assign('favourite_goods',$favourite_goods);
|
||
return $this->fetch();
|
||
}
|
||
|
||
public function index2(){
|
||
$id=I('get.id');
|
||
$role=I('get.role');
|
||
|
||
if($role){
|
||
$arr=M('industry_template')->where('id='.$id)->field('template_html,block_info')->find();
|
||
}else{
|
||
if($id){
|
||
$arr=M('mobile_template')->where('id='.$id)->field('template_name ,template_html,block_info,is_index')->find();
|
||
}else{
|
||
$arr=M('mobile_template')->order('id DESC')->limit(1)->field('template_name ,template_html,block_info,is_index')->find();
|
||
}
|
||
}
|
||
|
||
$html=htmlspecialchars_decode($arr['template_html']);
|
||
$logo=tpCache('shop_info.wap_home_logo');
|
||
$this->assign('wap_logo',$logo);
|
||
$this->assign('html',$html);
|
||
$this->assign('is_index',$arr['is_index']); //是否为首页, 如果不是首页, 则显示"返回"按钮
|
||
$this->assign('info',$arr['block_info']);
|
||
$this->assign('template_name',$arr['template_name']);
|
||
return $this->fetch();
|
||
}
|
||
|
||
//商品列表板块参数设置
|
||
public function goods_list_block(){
|
||
$data=I('post.');
|
||
$sql_where = input('sql_where');
|
||
// 13时,轮播传的是sql_where
|
||
if($sql_where){
|
||
if(!empty($sql_where['label']) && !isset($data['label'])){
|
||
$data['label'] = $sql_where['label'];
|
||
}
|
||
if(!empty($sql_where['ids']) && !isset($data['ids'])){
|
||
$data['ids'] = $sql_where['ids'];
|
||
}
|
||
if(!empty($sql_where['min_price']) && !empty($sql_where['max_price']) && $sql_where['min_price'] < $sql_where['max_price']){
|
||
$data['min_price'] = $sql_where['min_price'];
|
||
$data['max_price'] = $sql_where['max_price'];
|
||
}
|
||
}
|
||
|
||
|
||
$block = new \app\common\logic\Block();
|
||
$goodsList = $block->goods_list_block($data);
|
||
|
||
$html='';
|
||
if($data['block_type']==13){
|
||
foreach ($goodsList as $k => $v) {
|
||
$html.='<div class="containers-slider-item">';
|
||
$html.='<div class="seckill-item-img">';
|
||
$html.='<a href="/Mobile/Goods/goodsInfo/id/'.$v["goods_id"].'"><img src="'.$v["original_img"].'" /></a>';
|
||
$html.='</div>';
|
||
$html.='<div class="seckill-item-name"><p>'.$v["goods_name"].'</p></div>';
|
||
$html.='<div class="seckill-item-price" class="p"><span class="fl">¥<em>'.$v['shop_price'].'</em></span>';
|
||
$html.='</div></div>';
|
||
}
|
||
}else{
|
||
foreach ($goodsList as $k => $v) {
|
||
$html.='<li>';
|
||
$html.='<a class="tpdm-goods-pic" href="/Mobile/Goods/goodsInfo/id/'.$v["goods_id"].'"><img src="'.$v["original_img"].'" alt="" /></a>';
|
||
$html.='<a href="/Mobile/Goods/goodsInfo/id/'.$v["goods_id"].'" class="tpdm-goods-name">'.$v["goods_name"].'</a>';
|
||
$html.='<div class="tpdm-goods-des">';
|
||
$html.='<div class="tpdm-goods-price">¥'.$v['shop_price'].'</div>';
|
||
$html.='<a class="tpdm-goods-like">'.$v["comment_count"].'条评论</a>';
|
||
$html.='</div>';
|
||
$html.='</li>';
|
||
}
|
||
}
|
||
$this->ajaxReturn(['status' => 1, 'msg' => '成功', 'result' =>$html]);
|
||
}
|
||
|
||
|
||
//自定义页面获取秒杀商品数据
|
||
public function get_flash(){
|
||
$now_time = time(); //当前时间
|
||
if(is_int($now_time/7200)){ //双整点时间,如:10:00, 12:00
|
||
$start_time = $now_time;
|
||
}else{
|
||
$start_time = floor($now_time/7200)*7200; //取得前一个双整点时间
|
||
}
|
||
$end_time = $start_time+7200; //结束时间
|
||
$flash_sale_list = M('goods')->alias('g')
|
||
->field('g.goods_id,g.original_img,g.shop_price,f.price,s.item_id')
|
||
->join('flash_sale f','g.goods_id = f.goods_id','LEFT')
|
||
->join('__SPEC_GOODS_PRICE__ s','s.prom_id = f.id AND g.goods_id = s.goods_id','LEFT')
|
||
->where("start_time = $start_time and end_time = $end_time and is_end = 0")
|
||
->limit(4)->select();
|
||
$str='';
|
||
if($flash_sale_list){
|
||
foreach ($flash_sale_list as $k => $v) {
|
||
$str.='<a href="'.U('Mobile/Activity/flash_sale_list').'">';
|
||
$str.='<img src="'.$v['original_img'].'" alt="" />';
|
||
$str.='<span>¥'.$v['price'].'</span>';
|
||
$str.='<i>¥'.$v['shop_price'].'</i></a>';
|
||
}
|
||
}
|
||
$time=date('H',$start_time);
|
||
$this->ajaxReturn(['status' => 1, 'msg' => '成功','html' => $str, 'start_time'=>$time, 'end_time'=>$end_time]);
|
||
}
|
||
|
||
|
||
/**
|
||
* 分类列表显示
|
||
*/
|
||
public function categoryList(){
|
||
return $this->fetch();
|
||
}
|
||
|
||
/**
|
||
* 模板列表
|
||
*/
|
||
public function mobanlist(){
|
||
$arr = glob("D:/wamp/www/svn_tpshop/mobile--html/*.html");
|
||
foreach($arr as $key => $val)
|
||
{
|
||
$html = end(explode('/', $val));
|
||
echo "<a href='http://www.php.com/svn_tpshop/mobile--html/{$html}' target='_blank'>{$html}</a> <br/>";
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 门店列表
|
||
* province,如果有省名,传省名字
|
||
* lng,lat,search_radius,经伟度,查找半径范围内的门店
|
||
*/
|
||
public function shopList(){
|
||
$data = input('param.');
|
||
if(isset($data['province'])){
|
||
$province_id = Db::name('region')->where('name',$data['province'])->value('id');
|
||
if($province_id){
|
||
$where['province_id'] = $province_id;
|
||
}
|
||
}
|
||
$where['deleted'] = 0;
|
||
$where['shop_status'] = 1;
|
||
$shop_list = Db::name('shop')->field('shop_id,shop_name,province_id,city_id,district_id,shop_address,longitude,latitude,deleted,shop_desc')->where($where)->select();
|
||
$shop_logic = new \app\common\logic\Shop();
|
||
$shop_list = $shop_logic->filterDistance($shop_list,$data['lng'], $data['lat'],$data['search_radius']);
|
||
$this->ajaxReturn(['status' => 1, 'result' => $shop_list]);
|
||
}
|
||
public function newsList(){
|
||
$ids = input('ids');
|
||
if($ids){
|
||
$ids_arr = explode(',',$ids);
|
||
$where['article_id'] = ['in', $ids_arr];
|
||
}
|
||
$num = input('new_num/d', 2);
|
||
$num = $num > 10 ? $num : $num;
|
||
$where['publish_time'] = ['elt',time()];
|
||
$where['is_open'] = 1;
|
||
$list= Db::view('news')
|
||
->view('newsCat','cat_name','newsCat.cat_id=news.cat_id','left')
|
||
->where($where)
|
||
->order('publish_time DESC')
|
||
->limit($num)
|
||
->select();
|
||
foreach($list as $k=>$v){
|
||
$list[$k]['content'] = htmlspecialchars_decode($list[$k]['content']);
|
||
}
|
||
$this->ajaxReturn(['status' => 1, 'result' => $list]);
|
||
}
|
||
public function news_list(){
|
||
return $this->fetch();
|
||
}
|
||
public function ajax_news_list(){
|
||
$page = input('page/d', 1);
|
||
$where['publish_time'] = ['elt',time()];
|
||
$where['is_open'] = 1;
|
||
$list= Db::view('news')
|
||
->view('newsCat','cat_name','newsCat.cat_id=news.cat_id','left')
|
||
->where($where)
|
||
->order('publish_time DESC')
|
||
->page($page, 10)
|
||
->select();
|
||
foreach($list as $k=>$v){
|
||
$list[$k]['content'] = htmlspecialchars_decode($list[$k]['content']);
|
||
}
|
||
$this->ajaxReturn(['status' => 1, 'result' => $list]);
|
||
}
|
||
|
||
/**
|
||
* 商品列表页
|
||
*/
|
||
public function goodsList(){
|
||
$id = I('get.id/d',0); // 当前分类id
|
||
$lists = getCatGrandson($id);
|
||
$this->assign('lists',$lists);
|
||
return $this->fetch();
|
||
}
|
||
|
||
public function ajaxGetMore(){
|
||
$p = I('p/d',1);
|
||
$where = [
|
||
'is_recommend' => 1,
|
||
'exchange_integral'=>0, //积分商品不显示
|
||
'is_on_sale' => 1,
|
||
'virtual_indate' => ['exp', ' = 0 OR virtual_indate > ' . time()]
|
||
];
|
||
$favourite_goods = Db::name('goods')->where($where)->order('sort DESC')->page($p,C('PAGESIZE'))->cache(true,TPSHOP_CACHE_TIME)->select();//首页推荐商品
|
||
$this->assign('favourite_goods',$favourite_goods);
|
||
return $this->fetch();
|
||
}
|
||
|
||
//微信Jssdk 操作类 用分享朋友圈 JS
|
||
public function ajaxGetWxConfig()
|
||
{
|
||
$askUrl = input('askUrl');//分享URL
|
||
$askUrl = urldecode($askUrl);
|
||
|
||
$wechat = new WechatUtil;
|
||
$signPackage = $wechat->getSignPackage($askUrl);
|
||
if (!$signPackage) {
|
||
exit($wechat->getError());
|
||
}
|
||
|
||
$this->ajaxReturn($signPackage);
|
||
}
|
||
/**
|
||
* APP下载地址, 如果APP不存在则显示WAP端地址
|
||
* @return \think\mixed
|
||
*/
|
||
public function app_down(){
|
||
|
||
$server_host = 'http://'.$_SERVER['HTTP_HOST'];
|
||
$showTip = false;
|
||
if(tpCache('ios.app_path') && strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone')||strpos($_SERVER['HTTP_USER_AGENT'], 'iPad')){
|
||
//苹果:直接指向AppStore下载
|
||
$down_url = tpCache('ios.app_path');
|
||
}else if(tpCache('android.app_path') && strpos($_SERVER['HTTP_USER_AGENT'], 'Android')){
|
||
// 安卓:需要拼接下载地址
|
||
$down_url = $server_host.'/'.tpCache('android.app_path');
|
||
//如果是安卓手机微信打开, 则显示"其他浏览器打开"提示
|
||
(strstr($_SERVER['HTTP_USER_AGENT'],'MicroMessenger') && strpos($_SERVER['HTTP_USER_AGENT'], 'Android')) && $showTip = true;
|
||
}
|
||
|
||
$wap_url = $server_host.'/Mobile';
|
||
/* echo "down_url : ".$down_url;
|
||
echo "wap_url : ".wap_url;
|
||
echo "<br/>showTip : ".$showTip; */
|
||
$this->assign('showTip' , $showTip);
|
||
$this->assign('down_url' , $down_url);
|
||
$this->assign('wap_url' , $wap_url);
|
||
return $this->fetch();
|
||
}
|
||
} |