From a5dd2cb795231214bb320340bfcab2172aea3959 Mon Sep 17 00:00:00 2001 From: qixinzhi Date: Tue, 30 Apr 2024 06:56:42 +0000 Subject: [PATCH] * Add support single query. --- module/metric/calc.class.php | 73 ++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/module/metric/calc.class.php b/module/metric/calc.class.php index b45868a419..29023214f8 100644 --- a/module/metric/calc.class.php +++ b/module/metric/calc.class.php @@ -109,6 +109,30 @@ class baseCalc */ public $reuse = false; + /** + * 是否支持独立查询 + * + * @var bool + * @access public + */ + public $supportSingleQuery = false; + + /** + * 是否使用独立查询 + * + * @var bool + * @access public + */ + public $useSingleQuery = false; + + /** + * 独立查询sql + * + * @var string + * @access public + */ + public $singleSql = ''; + /** * 设置DAO 。 * Set DAO. @@ -185,6 +209,7 @@ class baseCalc */ protected function filterByOptions($rows, $options) { + if(empty($options)) return $rows; $rows = (array)$rows; @@ -305,6 +330,8 @@ class baseCalc */ public function getRecords($keyNames, $result = null) { + if($this->useSingleQuery) return $this->singleQuery(); + if(empty($result)) $result = $this->result; if(empty($keyNames)) return $result; @@ -336,6 +363,52 @@ class baseCalc return $records; } + /** + * 独立查询。 + * + * @access public + * @return void + */ + public function singleQuery() + { + $sql = $this->singleSql; + return $this->dao->select('*')->from("($sql) tt")->fetchAll(); + } + + /** + * 设置独立查询sql语句。 + * + * @param string $sql + * @access public + * @return void + */ + public function setSingleSql($sql) + { + $this->singleSql = $sql; + } + + /** + * 获取独立查询sql语句。 + * + * @access public + * @return void + */ + public function getSingleSql() + { + return "({$this->singleSql}) tt"; + } + + /** + * 启用独立查询。 + * + * @access public + * @return void + */ + public function enableSingleQuery() + { + $this->useSingleQuery = true; + } + /** * 获取日期的周数。 * Get week of date.