联系官方销售客服
QQ1835022299
028-61286886
基于layUI动态数据表格。创建后台控制台数据统计。并添加分页以及查询
PS:这种写法就是典型的api接口,不会写接口的看完了就知道怎么去写接口,需要的可以收藏保存哦,制作不易需要的大大们稍微打赏一下,支持一下小弟,后面会放更多干货,您的支持就是我的动力,顺便推广一下我的火车头插件哈哈/shop/app/529.html,需要的可以去插件商城下载,有问题随时找我,知无不言。
第一步:创建插件
创建插件必须的几个文件为
/dayrui/App/插件目录/Config/App.php
/dayrui/App/插件目录/Config/Version.php
可以先用开发者工具插件去创建一个应用控制器然后讲这两个文件加入进去,这样插件就创建完成
app.php代码 'app', 'name' => '学员信息统计', 'icon' => 'fa fa-bar-chart-o (alias)', 'author' => '琉惗', // 作者名字 ]; Version.php代码 '399', 'version' => '2.1.1', 'license' => '', 'updatetime' => '2020-02-17', 'downtime' => '2020-02-17', ];
第二步,创建后台面板文件,具体操作方法请查看手册/doc/719.html
第三步,在模版文件中使用layui创建表格,代码如下
学生数据统计
- 总数据
- 客户统计
客户名称:
第四步,写后台逻辑代码,并将数据进行返回
public function statistic() { $data = \Phpcmf\Service::M()->db->table(SITE_ID.'_student') ->select('inputtime,enroll') ->get()->getResultArray(); $total = count($data); $day = count(\Phpcmf\Service::M()->db->table(SITE_ID.'_student') ->select('inputtime,enroll') ->where('DATEDIFF(from_unixtime(inputtime),now())=0') ->get()->getResultArray()); $enroll = count(\Phpcmf\Service::M()->db->table(SITE_ID.'_student') ->select('enroll') ->where('enroll', 1) ->get()->getResultArray()); $enroll_no = count(\Phpcmf\Service::M()->db->table(SITE_ID.'_student') ->select('enroll') ->where('enroll', 0) ->get()->getResultArray()); return json_encode([ 'code' => 0, 'msg' => '', 'count' => $total, 'data' => [ [ 'total' => $total, 'day' => $day, 'enroll' => $enroll, 'enroll_no' => $enroll_no ] ] ]); } public function client() { $page = $this->request->getGet('page'); $size = $this->request->getGet('limit'); $keyword = $this->request->getGet('key'); if(empty($keyword['name'])) { $where = ''; $total = count(\Phpcmf\Service::M()->db->query('SELECT a.id as clientid, a.name as clientname, b.id as schoolid, b.name as schoolname, b.childids as schoolchildids, b.class as schoolclass FROM info_linkage_data_5 a INNER JOIN info_linkage_data_3 b ON b.pid = 0')->getResultArray()); }else{ $where = ' AND a.id = '.$keyword['name']; $total = count(\Phpcmf\Service::M()->db->query('SELECT a.id as clientid, a.name as clientname, b.id as schoolid, b.name as schoolname, b.childids as schoolchildids, b.class as schoolclass FROM info_linkage_data_5 a INNER JOIN info_linkage_data_3 b ON b.pid = 0'.$where)->getResultArray()); } $up = ($page-1)*$size; $array_info = \Phpcmf\Service::M()->db->query('SELECT a.id as clientid, a.name as clientname, b.id as schoolid, b.name as schoolname, b.childids as schoolchildids, b.class as schoolclass FROM info_linkage_data_5 a INNER JOIN info_linkage_data_3 b ON b.pid = 0'.$where.' ORDER BY clientid asc,b.displayorder ASC limit '.$up.','.$size.'')->getResultArray(); foreach($array_info as $key => $arr_in) { $data[$key]['school'] = $arr_in['schoolname']; $data[$key]['name'] = $arr_in['clientname']; $data[$key]['enter'] = count(\Phpcmf\Service::M()->db->table(SITE_ID . '_student') ->select('client') ->where('client', $arr_in['clientid']) ->where('school in ('.$arr_in['schoolchildids'].')') ->get()->getResultArray()); $data[$key]['day'] = count(\Phpcmf\Service::M()->db->table(SITE_ID.'_student') ->select('inputtime') ->where('client', $arr_in['clientid']) ->where('school in ('.$arr_in['schoolchildids'].')') ->where('DATEDIFF(from_unixtime(inputtime),now())=0') ->get()->getResultArray()); $data[$key]['inschool'] = count(\Phpcmf\Service::M()->db->table(SITE_ID . '_student') ->select('client') ->where('client', $arr_in['clientid']) ->where('school in ('.$arr_in['schoolchildids'].')') ->where('inschool', 0) ->get()->getResultArray()); $data[$key]['outschool'] = count(\Phpcmf\Service::M()->db->table(SITE_ID . '_student') ->select('client') ->where('client', $arr_in['clientid']) ->where('school in ('.$arr_in['schoolchildids'].')') ->where('inschool', 2) ->get()->getResultArray()); $data[$key]['graduate'] = count(\Phpcmf\Service::M()->db->table(SITE_ID . '_student') ->select('client') ->where('client', $arr_in['clientid']) ->where('school in ('.$arr_in['schoolchildids'].')') ->where('inschool', 1) ->get()->getResultArray()); $data[$key]['specialist'] = count(\Phpcmf\Service::M()->db->query('SELECT a.id,b.name,b.class FROM info_'.SITE_ID.'_student a INNER JOIN info_linkage_data_3 b ON a.client = '.$arr_in['clientid'].' AND a.school = b.id AND a.school IN ('.$arr_in['schoolchildids'].') AND b.class = 2')->getResultArray()); $data[$key]['undergraduate'] = count(\Phpcmf\Service::M()->db->query('SELECT a.id,b.name,b.class FROM info_'.SITE_ID.'_student a INNER JOIN info_linkage_data_3 b ON a.client = '.$arr_in['clientid'].' AND a.school = b.id AND a.school IN ('.$arr_in['schoolchildids'].') AND b.class = 1')->getResultArray()); $data[$key]['enroll'] = count(\Phpcmf\Service::M()->db->table(SITE_ID . '_student') ->select('client') ->where('client', $arr_in['clientid']) ->where('school in ('.$arr_in['schoolchildids'].')') ->where('enroll', 1) ->get()->getResultArray()); $data[$key]['noenroll'] = count(\Phpcmf\Service::M()->db->table(SITE_ID . '_student') ->select('client') ->where('client', $arr_in['clientid']) ->where('school in ('.$arr_in['schoolchildids'].')') ->where('enroll', 0) ->get()->getResultArray()); } return json_encode([ 'code' => 0, 'msg' => '', 'count' => $total, 'data' => $data ]); }
PS:具体接口数据格式如下图所示,是一个二维数组转化成的json数据
火车头采集器
火车头采集器,即装即用,支持所有模块,多文件采集,默认news模块,可以发布独立模块以及...
学习一下
学习一下
创建插件必须的几个文件为