IndexController.php 6.0 KB
<?php
// +----------------------------------------------------------------------
// | bronet [ 以客户为中心 以奋斗者为本 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2017 http://www.bronet.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
namespace app\portal\controller;
use cmf\controller\HomeBaseController;
use cmf\controller\WeChatBaseController;
use EasyWeChat\Foundation\Application;
use think\Db;
class IndexController extends WeChatBaseController
{
    public function _initialize()
    {
        parent::_initialize();
        $this->checkWeChatUserLogin();
    }

    //首页
    public function index(){
        $this->checkLogin();
        $data=Db::name('temple')->select()->each(function ($item) {
            $item['count'] = Db::name('light_order')
                ->alias('lo')
                ->join('light l','lo.light_id=l.id')
                ->join('temple t','l.temple_id=t.id')
                ->where(['lo.status'=>1,'t.id'=>$item['id']/*,'lo.end_time'=>['<',time()]*/])
                ->count();
            return $item;
        });
        $address=Db::name('temple')->distinct(true)->column('address');
        $this->assign('address',$address);
        $this->assign('list',$data);
        return $this->fetch(":index");
    }

    public function search(){
        $param=$this->request->param();
        $where=[];
        $name = empty($param['name']) ? "" : $param['name'];
        $search_address = empty($param['address']) ? "" : $param['address'];
        if (!empty($name)){
            $where['name']=['like',"%$name%"];
        }
        if (!empty($search_address)){
            $where['address']=['like',"%$search_address%"];
        }
        $data=Db::name('temple')->where($where)->select()->each(function ($item) {
            $item['thumbnail']=cmf_get_image_preview_url($item['thumbnail']);
            $item['url']=url('portal/index/area',array('id'=>$item['id']));
            $item['count'] = Db::name('light_order')
                ->alias('lo')
                ->join('light l','lo.light_id=l.id')
                ->join('temple t','l.temple_id=t.id')
                ->where(['lo.status'=>1,'t.id'=>$item['id']/*,'lo.end_time'=>['<',time()]*/])
                ->count();
            return $item;
        });
        return $data;
    }

    //区域
    public function area(){
        $this->checkLogin();
        $param=$this->request->param();
        $data=Db::name('temple_area')->where('temple_id',$param['id'])->select()->each(function ($item) {
            $not_empty=Db::name('light_order')->where(['status'=>1,'end_time'=>['>',time()]])->column('light_id');
            $item['empty'] = Db::name('light')
                ->alias('l')
                ->join('temple_area ta','l.area_id=ta.id')
                ->where(['l.id'=>['not in',$not_empty],'l.area_id'=>$item['id']])
                ->count();
            return $item;
        });
        $this->assign('list',$data);
        return$this->fetch(":area");
    }

    //区域下财神灯
    public function light(){
        $this->checkLogin();
        $param=$this->request->param();
        $area=Db::name('temple_area')->where('id',$param['id'])->find();
        $not_empty=Db::name('light_order')->where(['status'=>1,'end_time'=>['>',time()]])->column('light_id');
        $area['empty'] = Db::name('light')
                ->alias('l')
                ->join('temple_area ta','l.area_id=ta.id')
                ->where(['l.id'=>['not in',$not_empty],'l.area_id'=>$area['id']])
                ->count();
        $row= $data=Db::name('light')
            ->alias('l')
            ->join('temple_area ta','l.area_id=ta.id')
            ->where(['l.area_id'=>$param['id']])
            ->distinct(true)
            ->field('l.row')
            ->order('l.row','dec')
            ->column('l.row');
        foreach ($row as $k=>$v){
            $arr[$v]=Db::name('light')->alias('l')->join('temple_area ta','l.area_id=ta.id')->where(['l.row'=>$v,'l.area_id'=>$param['id']])->select()->each(function ($item) {
                if(Db::name('light_order') ->where(['light_id'=>$item['id'],'end_time'=>['>',time()]])->find()){
                    $item['can_light'] =0;
                }else{
                    $item['can_light'] =1;
                }
                return $item;
            })->toArray();
        }
        $this->assign('area',$area);
        $this->assign('list',$arr);
        return $this->fetch(":light");
    }



    public function lightOrder(){
        //用户检测
        $re=$this->checkLogin();
        //jssdk
        $options = [
            'app_id' => config('wechat_config.app_id'),
            'secret' => config('wechat_config.secret'),
            'payment' => config('wechat_config.payment'),
        ];
        $app = new Application($options);
        $js = $app->js;
        $jss = $js->config(['chooseImage', 'uploadImage', 'previewImage'], $debug = false, $beta = false, $json = true);
        $this->assign('js', $jss);

        $param=$this->request->param();
        $data=Db::name('light')->where('id',$param['id'])->find();
        $data['end_time']=date('Y年m月d日',strtotime('+'."$data[term]". 'year',time()));
        $area=Db::name('temple_area')->where('id',$data['area_id'])->find();
        $this->assign('area',$area);
        $this->assign('users',$re);
        $this->assign('list',$data);
        return $this->fetch(':light_order');
    }

    public function listOrderPost()
    {
        $options = [
            'app_id' => config('wechat_config.app_id'),
            'secret' => config('wechat_config.secret'),
            'payment' => config('wechat_config.payment'),
        ];
        $app = new Application($options);
        $js = $app->js;
        $jss = $js->config(['chooseImage', 'uploadImage', 'previewImage'], $debug = false, $beta = false, $json = true);
        $this->assign('js', $jss);    }


}