title = '列表'; $where = []; $where[] = ['f.is_deleted','=',0]; if($title = input('title')) $where[] = ['f.title','like','%'.$title.'%']; $query = $this->_query($this->table)->alias('f') ->field('f.*') ->where($where) ->order('sort desc,f.id asc')->page(); } /** * 添加 * @auth true * @menu true * @throws \think\Exception * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException * @throws \think\exception\PDOException */ public function add() { $this->title = '添加'; $this->_form($this->table, 'form'); } /** * 编辑 * @auth true * @menu true * @throws \think\Exception * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException * @throws \think\exception\PDOException */ public function edit() { $this->title = '编辑'; $this->_form($this->table, 'form'); } /** * 删除 * @auth true * @throws \think\Exception * @throws \think\exception\PDOException */ public function del() { $this->_save($this->table, ['is_deleted' => '1']); } /** * 批量删除 * @auth true * @throws \think\Exception * @throws \think\exception\PDOException */ public function remove() { $this->_save($this->table, ['is_deleted' => '1']); } /** * 表单数据处理 * @param array $data */ protected function _form_filter(&$data) { if ($this->request->isGet() && $this->request->action() == 'add') { $this->isAddMode = 1; $this->ladder = []; } if ($this->request->isGet() && $this->request->action() == 'edit') { $this->isAddMode = 0; $this->ladder = isset_full($data,'ladder') ? json_decode($data['ladder'],true):[]; } } /** * 报名记录 * @auth true * @menu true * @throws \think\Exception * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException * @throws \think\exception\PDOException */ public function apply() { $id = $this->request->get('act_id'); $name = $this->request->get('name'); $phone = $this->request->get('phone'); $this->title = '报名记录'; $where = []; $where[]= ['a.act_id','=' ,$id]; $where[]= ['a.is_deleted','=' ,0]; $where[]= ['a.status','=' ,1]; $where[]= ['a.status','=' ,1]; if($name) $where[]= ['a.name','like' ,'%'.$name.'%']; if($phone) $where[]= ['a.phone','like' ,'%'.$phone.'%']; $query = $this->_query('activity_apply') ->alias('a') ->field('a.*,u.name user_name,u.headimg') ->where($where) ->leftJoin('store_member u','u.id = a.user_id') ->order('a.id desc')->page(); $this->fetch(); } /** * 上架 * @auth true * @menu true * @throws \think\Exception * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException * @throws \think\exception\PDOException */ public function up() { $this->_save($this->table, ['status' => '1']); } /** * 取消 * @auth true * @menu true * @throws \think\Exception * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException * @throws \think\exception\PDOException */ public function down() { $this->_save($this->table, ['status' => '2']); } public function export(){ $id = $this->request->get('act_id'); $name = $this->request->get('name'); $phone = $this->request->get('phone'); $this->title = '报名记录'; $where = []; $where[]= ['a.act_id','=' ,$id]; $where[]= ['a.is_deleted','=' ,0]; $where[]= ['a.status','=' ,1]; $where[]= ['a.status','=' ,1]; if($name) $where[]= ['a.name','like' ,'%'.$name.'%']; if($phone) $where[]= ['a.phone','like' ,'%'.$phone.'%']; $data =Db::name('activity_apply') ->alias('a') ->field('a.*,u.name user_name,u.headimg') ->where($where) ->leftJoin('store_member u','u.id = a.user_id') ->order('a.id desc')->select(); if(empty($data)) $this->error('暂无可以导出的数据'); foreach ($data as $k=>&$v) { } $field=array( 'A' => array('order_no', '订单号'), 'B' => array('name', '联系人'), 'C' => array('phone', '电话'), 'D' => array('money','订单金额'), 'E' => array('num','人数'), 'F' => array('email','邮箱'), 'G' => array('create_at', '时间'), ); $this->phpExcelList($field,$data,'报名列表'); } public function phpExcelList($field=[],$list=[],$title='文件'){ $PHPExcel=new \PHPExcel(); $PHPSheet=$PHPExcel->getActiveSheet(); $PHPSheet->setTitle('demo'); //给当前主办方sheet设置名称 foreach($list as $key=>$value) { foreach($field as $k=>$v){ if($key == 0){ $PHPSheet= $PHPExcel->getActiveSheet()->setCellValue($k.'1',$v[1]); } $i=$key+2; $PHPExcel->getActiveSheet()->setCellValue($k . $i, $value[$v[0]]); } } $PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel,'Excel2007'); //按照指定格式生成Excel文件, header('Content-Type: application/vnd.ms-excel'); // 告诉浏览器生成一个excel05版的表格 header("Content-Disposition: attachment;filename={$title}.xls"); //告诉浏览器输出文件的名称 header('Cache-Control: max-age=0'); //禁止缓存 $PHPWriter->save("php://output"); //输出到浏览器 } protected function _form_result(&$data) { $this->success('操作成功', 'javascript:history.back()'); } }