You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
information-system/application/third_party/pagespeed/models/PageSpeedData_model.php

128 lines
4.2 KiB
PHP

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
class PageSpeedData_model extends CI_Model {
var $topnum = false; //返回记录数
var $orderby = false;
var $where = false; //查询条件
function __construct() {
parent::__construct();
$this->HT = $this->load->database('HT', TRUE);
$this->INFO = $this->load->database('INFO', TRUE);
}
public function init() {
$this->topnum = false;
$this->where = false;
$this->orderby = ' ORDER BY psd_Datetime ASC ';
}
public function detail($psd_URL, $psd_SiteCode) {
$this->init();
$this->topnum = 1;
$this->where = ' AND psd.psd_URL=' . $this->INFO->escape($psd_URL);
$this->where .= ' AND psd.psd_SiteCode=' . $this->INFO->escape($psd_SiteCode);
return $this->get_list();
}
public function add($table, $data) {
if ($this->INFO->insert($table, $data)) {
return $this->INFO->last_id($table);
} else {
return false;
}
}
public function insert_list($psd_SiteCode) {
$sql = "
INSERT INTO PageSpeedData
(
psd_URL
,psd_SiteCode
)
SELECT TOP 200 ic.ic_url
,ic.ic_sitecode
FROM Tourmanager.dbo.infoContents ic
WHERE ic.ic_status = 1
AND ic.ic_url<>''
AND ic.ic_sitecode = ?
AND NOT EXISTS(
SELECT TOP 1 1
FROM PageSpeedData psd
WHERE psd.psd_URL = ic.ic_url
AND psd.psd_SiteCode = ic.ic_sitecode
)
ORDER BY
ic.ic_datetime ASC
";
$this->INFO->query($sql,array($psd_SiteCode));
}
public function get_update_list($psd_SiteCode, $topnum = 3) {
$this->init();
$this->topnum = $topnum;
$this->where = ' AND psd.psd_SiteCode=' . $this->INFO->escape($psd_SiteCode);
$this->where .= ' AND ISNULL(psd.psd_Datetime,1999) < GETDATE()-1 ';
$this->orderby = ' ORDER BY psd_Datetime ASC ';
return $this->get_list();
}
public function update($table, $data, $where) {
$this->INFO->update($table, $data, $where);
}
//记录错误次数
public function update_error($psd_id) {
$sql = "
UPDATE PageSpeedData
SET psd_ErrorCount = psd_ErrorCount+1
, psd_Datetime=GETDATE()
WHERE psd_id = ?
";
$this->INFO->query($sql, array($psd_id));
//删除错误数大于3的数据保持没有冗余数据
$sql = " DELETE FROM PageSpeedData WHERE psd_ErrorCount>3 ";
$this->INFO->query($sql);
}
//删除数据
// public function delete($psd_id) {
// $sql = " DELETE FROM PageSpeedData WHERE psd_id=? ";
// return $this->INFO->query($sql, array($psd_id));
// }
public function get_list() {
$this->topnum ? $sql = "SELECT TOP " . $this->topnum : $sql = "SELECT ";
$sql .= "
psd.psd_id,
psd.psd_DesktopScore,
psd.psd_MobileScore,
psd.psd_DesktopData,
psd.psd_MobileData,
psd.psd_URL,
psd.psd_Datetime,
psd.psd_SiteCode,
psd.psd_ErrorCount
FROM
PageSpeedData psd
WHERE 1 = 1
";
$this->where ? $sql.=$this->where : false;
$this->orderby ? $sql.=$this->orderby : false;
$query = $this->INFO->query($sql);
//print_r($this->INFO->queries);
if ($this->topnum === 1) {
if ($query->num_rows() > 0) {
$row = $query->row();
return $row;
} else {
return FALSE;
}
} else {
return $query->result();
}
}
}