AdminTempleController.php 8.0 KB
<?php
// +----------------------------------------------------------------------
// | bronet [ 以客户为中心 以奋斗者为本 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2017 http://www.bronet.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author:kane < chengjin005@163.com>
// +----------------------------------------------------------------------
namespace app\portal\controller;

use cmf\controller\AdminBaseController;
use think\Db;

/**
 * Class AdminTempleController
 * @package app\portal\controller
 * @adminMenuRoot(
 *     'name'   =>'寺庙管理',
 *     'action' =>'default',
 *     'parent' =>'',
 *     'display'=> true,
 *     'order'  => 30,
 *     'icon'   =>'th',
 *     'remark' =>'寺庙管理'
 * )
 */
class AdminTempleController extends AdminBaseController
{
    /**
     * 寺庙列表
     * @adminMenu(
     *     'name'   => '寺庙列表',
     *     'parent' => 'portal/AdminTemple/default',
     *     'display'=> true,
     *     'hasView'=> true,
     *     'order'  => 10000,
     *     'icon'   => '',
     *     'remark' => '寺庙列表',
     *     'param'  => ''
     * )
     */
    public function index()
    {
        //接收搜索参数
        $param = $this->request->param();
        //添加搜索条件
        $where=[];
        $keyword = empty($param['keyword']) ? '' : $param['keyword'];
        if (!empty($keyword)) {
            $where['t.name'] = ['like', "%$keyword%"];
        }
        $address=empty($param['address']) ? '' : $param['address'];
        if (!empty($address)) {
            $where['t.address'] = $address;
        }
        $data = Db::name('temple')
            ->alias('t')
            ->join('user u','t.user_id=u.id')
            ->where($where)
            ->field('t.*,u.id as uid,u.user_status,u.user_login')
            ->order('t.create_time','desc')
            ->paginate('10')
            ->each(function ($item) {
                $item['area'] = Db::name('temple_area') ->where('temple_id',$item['id'])->count();
                $item['light'] = Db::name('light') ->where(['temple_id'=>$item['id'],'status'=>0])->count();
                return $item;
            });

        $data->appends($param);

        $address_choose=Db::name('temple')->field('address')->distinct('true')->select();
        $this->assign('page',$data->render());
        $this->assign('keyword', isset($param['keyword']) ? $param['keyword'] : '');
        $this->assign('address', isset($param['address']) ? $param['address'] : '');
        $this->assign('address_choose',$address_choose);
        $this->assign('list', $data);
        return $this->fetch();
    }

    /**
     * 添加寺庙
     * @adminMenu(
     *     'name'   => '添加寺庙',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> true,
     *     'order'  => 10000,
     *     'icon'   => '',
     *     'remark' => '添加寺庙',
     *     'param'  => ''
     * )
     */
    public function add()
    {
        $user=Db::name('user')->alias('u')->join('role_user r','u.id=r.user_id')->where('r.role_id',2)->field('u.*')->select();
        $this->assign('user',$user);
        return $this->fetch();
    }

    /**
     * 添加寺庙提交
     * @adminMenu(
     *     'name'   => '添加寺庙提交',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 10000,
     *     'icon'   => '',
     *     'remark' => '添加寺庙提交',
     *     'param'  => ''
     * )
     */
    public function addPost()
    {
        $param = $this->request->param();
        $param['create_time'] = time();
        $param['percent']=intval($param['percent'])/intval(100);
        $re = Db::name('temple')->insert($param);
        if ($re) {
            $this->success('添加成功', 'AdminTemple/index');
        } else {
            $this->error('添加失败', 'AdminTemple/index');
        }
    }

    /**
     * 编辑寺庙
     * @adminMenu(
     *     'name'   => '编辑寺庙',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> true,
     *     'order'  => 10000,
     *     'icon'   => '',
     *     'remark' => '编辑寺庙',
     *     'param'  => ''
     * )
     */
    public function edit()
    {
        $id = $this->request->param('id');
        $data = Db::name('temple')
//            ->alias('t')
//            ->join('user u','t.user_id=u.id')
            ->where('id', $id)
//            ->field('t.*,u.user_login')
            ->find();
        $user=Db::name('user')->alias('u')->join('role_user r','u.id=r.user_id')->where('r.role_id',2)->field('u.*')->select();
        $this->assign('user',$user);
        $this->assign('list', $data);
        return $this->fetch();
    }
    /**
     * 编辑寺庙提交
     * @adminMenu(
     *     'name'   => '编辑寺庙提交',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 10000,
     *     'icon'   => '',
     *     'remark' => '编辑寺庙提交',
     *     'param'  => ''
     * )
     */
    public function editPost()
    {
        $param = $this->request->param();
        $param['create_time'] = time();
        $param['percent']=intval($param['percent'])/intval(100);
        Db::name('temple')->where('id', $param['id'])->update($param);
        $this->success('编辑成功');
    }


    /**
     * 寺庙详情
     * @adminMenu(
     *     'name'   => '寺庙详情',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> true,
     *     'order'  => 10000,
     *     'icon'   => '',
     *     'remark' => '寺庙详情',
     *     'param'  => ''
     * )
     */
    public function details(){
        $id = $this->request->param('id');
        $data = Db::name('temple')
            ->alias('t')
            ->join('user u','t.user_id=u.id')
            ->where('t.id', $id)
            ->field('t.*,u.user_login')
            ->find();
        $this->assign('list', $data);
        return $this->fetch();
    }

    /**
     * 删除寺庙
     * @adminMenu(
     *     'name'   => '删除寺庙',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 10000,
     *     'icon'   => '',
     *     'remark' => '删除寺庙',
     *     'param'  => ''
     * )
     */
    public function delete()
    {
        $id = $this->request->param('id');
        $re=Db::name('light_order')
            ->alias('lo')
            ->join('light l','lo.light_id=l.id')
            ->where(['l.temple_id'=>$id,'lo.end_time'=>['>',time()]])
            ->find();
        if ($re){
            $this->error('该寺庙下有进行中的订单,不允许删除');
        }
        Db::name('temple')->where('id', $id)->delete();
        $this->success('删除成功');
    }

    /**
     * 账户启用
     * @adminMenu(
     *     'name'   => '账户启用',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 10000,
     *     'icon'   => '',
     *     'remark' => '账户启用',
     *     'param'  => ''
     * )
     */
    public function accountOpen(){
        $id=$this->request->param('id');
        Db::name('user')->where('id',$id)->update(['user_status'=>1]);
        $this->success('账户启用成功');
    }


    /**
     * 账户禁止
     * @adminMenu(
     *     'name'   => '账户禁止',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 10000,
     *     'icon'   => '',
     *     'remark' => '账户禁止',
     *     'param'  => ''
     * )
     */
    public function accountClose(){
        $id=$this->request->param('id');
        Db::name('user')->where('id',$id)->update(['user_status'=>0]);
        $this->success('账户禁用成功');
    }
}