Files
2019-02-28 19:48:21 +08:00

315 lines
13 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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();
}
}