model = new \app\admin\model\statistics\Printsync; } /** * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法 * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑 * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改 */ /** * 查看 */ public function index() { //设置过滤方法 $this->request->filter(['strip_tags']); if ($this->request->isAjax()) { //如果发送的来源是Selectpage,则转发到Selectpage if ($this->request->request('keyField')) { return $this->selectpage(); } list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $childInsIds = $this->auth->getMyInsId(); if($childInsIds == false){ $more = false; } else { $more = ['institution_id' => ['in', $childInsIds]]; } $list = $this->model ->where($more) ->where($where) ->field("COUNT(*) as times,code,name,DATE_FORMAT(print_time,'%Y-%m-%d') as c,institution_id") ->limit($offset, $limit) ->group("code,name,DATE_FORMAT(print_time,'%Y-%m-%d'),institution_id") ->select(); $all = $this->model ->where($more) ->where($where) ->field("COUNT(*) as times,code,name,DATE_FORMAT(print_time,'%Y-%m-%d') as c,institution_id") ->group("code,name,DATE_FORMAT(print_time,'%Y-%m-%d'),institution_id") ->select(); $total = count($all); $list = collection($list)->toArray(); $institution = Db::table('institution')->column('id,name'); foreach ($list as $k=>$v) { if(isset($institution[$v['institution_id']])) { $list[$k]['ins_name'] = $institution[$v['institution_id']]; }else{ $list[$k]['ins_name'] = ''; } } $result = array("total" => $total, "rows" => $list); return json($result); } return $this->view->fetch(); } public function getAllTimes() { $filter = $this->request->get("filter", ''); $filter = (array)json_decode($filter, true); $ins_where = []; if(isset($filter['institution_id']) && !empty($filter['institution_id'])) { $ins_where = ['institution_id' =>$filter['institution_id']]; }else{ $this->error('需要选择医院或者先进行搜索在点击查看'); } $time_where = []; if(isset($filter['print_time']) && !empty($filter['print_time'])) { $print_time = explode(',',$filter['print_time']); $time_where = "print_time between '$print_time[0]' and '$print_time[1]'"; } $childInsIds = $this->auth->getMyInsId(); if($childInsIds == false){ $more = false; } else { $more = ['institution_id' => ['in', $childInsIds]]; } $times = Db::table('print_sync')->where($more)->where($time_where)->where($ins_where)->fetchSql(false)->sum('times'); $this->success('','',$times); } }