Files

315 lines
13 KiB
PHP
Raw Permalink Normal View History

2019-02-28 19:48:21 +08:00
<?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();
}
}