Browse Source

达梦类新增执行sql查看,统计数量,分页方法。修改数据查询来源为达梦数据库

master
wanghongjun 3 years ago
parent
commit
d030ce7ff6
  1. 46
      source/application/admin/controller/pass/Pass.php
  2. 64
      source/application/admin/extra/menus.php
  3. 21
      source/application/common.php
  4. 78
      source/application/common/dm/Dm.php

46
source/application/admin/controller/pass/Pass.php

@ -3,7 +3,10 @@
namespace app\admin\controller\pass;
use app\admin\controller\Controller;
use app\common\dm\Dm;
use think\Config;
use think\Db;
use think\paginator\driver\Bootstrap;
class Pass extends Controller
{
@ -11,39 +14,42 @@ class Pass extends Controller
public function index()
{
$limit = request()->request('limit') ?: 10;
$list = Db::table('bt_passenger_flow')->order('granularity')->paginate($limit,false,[
'query' => request()->request()]
);
$pageData = $list->render();
$page = request()->request('page') ?: 1;
$dm = new Dm();
$pageList = $dm->getPaginate('bt_passenger_flow',null,'*','granularity',$limit,$page);
return $this->fetch('index', [
'list' => $list,
'pageData' => $pageData
'list' => $pageList['list'],
'pageData' => $pageList['pageData']
]);
}
public function allIndex()
{
$limit = request()->request('limit') ?: 10;
$list = Db::table('bt_passenger_flow_all')->paginate($limit,false,[
'query' => request()->request()]
);
$pageData = $list->render();
return $this->fetch('allIndex', [
'list' => $list,
'pageData' => $pageData
$page = request()->request('page') ?: 1;
$dm = new Dm();
$pageList = $dm->getPaginate('bt_passenger_flow_all',null,'*',null,$limit,$page);
return $this->fetch('index', [
'list' => $pageList['list'],
'pageData' => $pageList['pageData']
]);
}
public function realIndex()
{
$limit = request()->request('limit') ?: 10;
$list = Db::table('bt_passenger_flow_real')->paginate($limit,false,[
'query' => request()->request()]
);
$pageData = $list->render();
return $this->fetch('realIndex', [
'list' => $list,
'pageData' => $pageData
$page = request()->request('page') ?: 1;
$dm = new Dm();
$pageList = $dm->getPaginate('bt_passenger_flow_real',null,'*',null,$limit,$page);
return $this->fetch('index', [
'list' => $pageList['list'],
'pageData' => $pageList['pageData']
]);
}
}

64
source/application/admin/extra/menus.php

@ -8,26 +8,44 @@
* ],
*/
return [
'store' => [
'name' => '小程序商城',
'icon' => 'icon-shangcheng',
// 'store' => [
// 'name' => '小程序商城',
// 'icon' => 'icon-shangcheng',
// 'submenu' => [
// [
// 'name' => '商城列表',
// 'index' => 'store/index',
// 'uris' => [
// 'store/index',
// 'store/add',
// ]
// ],
// [
// 'name' => '回收站',
// 'index' => 'store/recycle'
// ],
// [
// 'name' => '权限管理',
// 'index' => 'store.access/index'
// ]
// ],
// ],
'statistics' => [
'name' => '数据统计',
'icon' => 'icon-shezhi',
'submenu' => [
[
'name' => '商城列表',
'index' => 'store/index',
'uris' => [
'store/index',
'store/add',
]
'name' => '客流统计数据',
'index' => 'pass.pass/index'
],
[
'name' => '回收站',
'index' => 'store/recycle'
'name' => '总客流统计数据',
'index' => 'pass.pass/allIndex'
],
[
'name' => '权限管理',
'index' => 'store.access/index'
]
'name' => '客流实时统计数据',
'index' => 'pass.pass/realIndex'
],
],
],
'setting' => [
@ -42,23 +60,9 @@ return [
'name' => '环境检测',
'index' => 'setting.science/index'
],
],
],
'statistics' => [
'name' => '数据统计',
'icon' => 'icon-shezhi',
'submenu' => [
[
'name' => '客流统计数据',
'index' => 'pass.pass/index'
],
[
'name' => '总客流统计数据',
'index' => 'pass.pass/allIndex'
],
[
'name' => '客流实时统计数据',
'index' => 'pass.pass/realIndex'
'name' => '配置',
'index' => 'setting.config/index'
],
],
],

21
source/application/common.php

@ -494,3 +494,24 @@ function formatNumber($number)
}
}
}
function get_paginate($totalPages,$page,$href = ''){
$str = '<ul class="pagination">';
$str .= '<li><a href="'.$href.'&page=1">首页</a></li>';
if ($page > 1) {
$str .= '<li><a href="'.$href.'&page='.($page-1).'">上一页</a></li>';
}
for ($i = max(1, $page - 2); $i <= min($totalPages, $page + 2); $i++) {
if ($i == $page) {
$str .= '<li class="disabled"><span> '.$i.'</span></li>';
} else {
$str .= '<li><a href="'.$href.'&page='.$i.'">'.$i.'</a></li>';
}
}
if ($page < $totalPages) {
$str .= '<li><a href="'.$href.'&page='.($page+1).'">下一页</a></li>';
}
$str .= '<li><a href="'.$href.'&page='.$totalPages.'">末页</a></li>';
$str .= '</ul>';
return $str;
}

78
source/application/common/dm/Dm.php

@ -13,6 +13,7 @@ class Dm
public $conn;
public $database = 'STADIUM';
public $sql;
public function __construct()
{
@ -53,6 +54,8 @@ class Dm
$res = dm_exec($this->conn, $sql);
$this->sql = $sql;
dm_free_result($res);
return $res;
@ -77,6 +80,8 @@ class Dm
$res = dm_exec($this->conn, $sql);
$this->sql = $sql;
dm_free_result($res);
return $res;
@ -95,6 +100,8 @@ class Dm
$result = dm_exec($this->conn, $sql);
$this->sql = $sql;
dm_free_result($result);
return $result;
@ -113,6 +120,8 @@ class Dm
$result = dm_exec($this->conn, $sql);
$this->sql = $sql;
dm_free_result($result);
return $result;
@ -142,6 +151,9 @@ class Dm
}
$result = dm_exec($this->conn, $sql);
$this->sql = $sql;
$data = array();
while ($row = dm_fetch_array($result)) {
@ -153,4 +165,70 @@ class Dm
return $data;
}
/**
* 查询数据总数
* @param string $table // 查询表名
* @param string $where // 查询条件
* @return array // 返回数组
*/
public function count($table, $where = null)
{
$tableName = $this->splitTableName($table);
$sql = 'SELECT COUNT(*) as count FROM '.$tableName;
if ($where != null) {
$sql .= ' WHERE '.$where;
}
$result = dm_exec($this->conn, $sql);
$this->sql = $sql;
$count = 0;
while ($row = dm_fetch_array($result)) {
$count = $row['COUNT'];
}
dm_free_result($result);
return $count;
}
/**
* 获取上次执行数据Sql
* @return mixed
*/
public function getLastSql()
{
return $this->sql;
}
/**
* @param $table
* @param $where
* @param $fields
* @param $order
* @param $limit
* @param $page
* @return array
*/
public function getPaginate($table, $where = null, $fields = '*', $order = null, $limit = 10, $page = 1)
{
# 查询条数
$pageLimit = ($page - 1) * $limit;
# 总数
$total = $this->count($table);
# 数据
$list = $this->select($table,$where,$fields,$order,$pageLimit.','.$limit);
# 计算总页数
$totalPages = ceil($total / $limit);
# 组合分页按钮
$pageData = $totalPages >= 2 ? get_paginate($totalPages,$page,'/?s=/admin/pass.pass/index') : '';
return [
'list' => $list ?: [],
'pageData' => $pageData,
];
}
}
Loading…
Cancel
Save