12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- <?php
- if (!defined('BASEPATH'))exit('No direct script access allowed');
- include_once(FCPATH . 'application/models/Base_model.php');
- class Statistics_model extends Base_model {
- protected $table = 'statistics';
- public function __construct() {
- parent::__construct();
- }
- public function get_data($ids, $date, $type){
- if (empty($ids)) return array();
- if (is_array($ids)) {
- $where = 'lampid in ('.implode(',', $ids).')';
- }else{
- $where = 'lampid = '.$ids;
- }
- if ($type == 'power') {
- $field = 't1.dayGeneration,t1.dayConsumption,t1.totalGeneration,t1.totalConsumption,t1.monthGeneration,t1.monthConsumption,t1.yearGeneration,t1.yearConsumption,t1.updatetime';
- }elseif ($type == 'current') {
- $field = 't1.dayCharMaxCurr,t1.dayDischarMaxCurr,t1.monthCharMaxCurr,t1.monthDischarMaxCurr,t1.yearCharMaxCurr,t1.yearDischarMaxCurr,t1.updatetime';
- }elseif ($type == 'temper') {
- $field = 't1.dayMinTemper,t1.dayMaxTemper,t1.monthMinTemper,t1.monthMaxTemper,t1.yearMinTemper,t1.yearMaxTemper,t1.updatetime';
- }elseif ($type == 'capacity') {
- $field = 't1.dayCharMaxPower,t1.dayDischarMaxPower,t1.monthCharMaxPower,t1.monthDischarMaxPower,t1.yearCharMaxPower,t1.yearDischarMaxPower,t1.updatetime';
- }else{
- $field = 't1.dayMinVoltage,t1.dayMaxVoltage,t1.monthMinVoltage,t1.monthMaxVoltage,t1.yearMinVoltage,t1.yearMaxVoltage,t1.updatetime';
- }
- $field .= ',t1.lampid';
- $sql = 'SELECT '.$field.' from new_statistics AS t1 JOIN (SELECT lampid,max(updatetime) as maxTime from new_statistics WHERE updatetime <= "'.$date.'" AND '.$where.' group by lampid) AS t2 on t1.lampid = t2.lampid AND t1.updatetime = t2.maxTime';
- $query = $this->db->query($sql);
- $temp = $query->result_array();
- $res = [];
- foreach ($temp as $v) {
- $res[$v['lampid']] = $v;
- }
- return $res;
- }
- }
|