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/models/logs_model.php

291 lines
8.7 KiB
PHTML

<?php
5 years ago
class Logs_model extends CI_Model
{
5 years ago
public $insert_id = -1;
public $top_num = false;
public $log_res_id = false;
public $log_id = false;
public $log_action = false;
public $order_by = false;
public $log_datetime = false;
5 years ago
public function __construct()
{
parent::__construct();
$this->HT = $this->load->database('INFORMATION', true);
}
5 years ago
public function init()
{
$this->top_num = false;
$this->log_res_id = false;
$this->log_id = false;
$this->log_action = false;
$this->log_datetime = false;
$this->order_by = " ORDER BY il.log_id DESC ";
}
5 years ago
//获取日志详情.
public function read($log_id)
{
$this->init();
$this->top_num = 1;
$this->log_id = " AND il.log_id =" . $this->HT->escape($log_id);
return $this->get_list();
}
//获取备份信息内容
5 years ago
public function get_backup_list($is_id)
{
$this->init();
$this->top_num = 16;
$this->log_res_id = " AND il.log_res_id =" . $this->HT->escape($is_id);
$this->log_action = " AND il.log_action = 'backup_info'";
return $this->get_list();
}
//获取最近的备份信息内容
5 years ago
public function get_last_backup($is_id)
{
$this->init();
$this->top_num = 1;
$this->log_res_id = " AND il.log_res_id =" . $this->HT->escape($is_id);
$this->log_action = " AND il.log_action = 'backup_info'";
return $this->get_list();
}
//获取所有备份信息内容
5 years ago
public function get_all_backup_list($is_id, $amp = false)
{
$this->init();
$this->log_res_id = " AND il.log_res_id =" . $this->HT->escape($is_id);
5 years ago
if ($amp) {
$this->log_action = " AND (il.log_action = 'backup_amp')";
} else {
$this->log_action = " AND (il.log_action = 'backup_info')";
}
return $this->get_list();
}
//获取最后操作信息
5 years ago
public function get_last_edit($is_id)
{
$this->init();
$this->top_num = 1;
$this->log_res_id = " AND il.log_res_id =" . $this->HT->escape($is_id);
return $this->get_list();
}
5 years ago
public function get_last_log()
{
$this->init();
$this->top_num = 1;
$this->log_action = " AND il.log_action = 'backup_info'";
$this->order_by = " ORDER BY log_id DESC";
return $this->get_list();
}
5 years ago
public function get_last_cdn_update_info()
{
$this->init();
$this->top_num = 1;
$this->log_action = " AND il.log_action = 'update_cdn'";
return $this->get_list();
}
5 years ago
public function get_uncdn_list($last_id = false)
{
$map = '';
5 years ago
if ($last_id) {
$map = " AND log_id > $last_id";
5 years ago
}
$sql = " SELECT log_id,is_sitecode,ic_url
FROM infoLogs
LEFT JOIN infoStructures ON is_id=log_res_id
LEFT JOIN infoContents ON is_ic_id=ic_id
WHERE ic_url != ''
AND log_action = 'backup_info'
$map
ORDER BY log_id ASC";
$query = $this->HT->query($sql);
return $query->result();
}
5 years ago
public function get_list_by_action()
{
$this->init();
$this->top_num = 50;
$this->log_action = " AND il.log_action = 'send_mail'";
$this->order_by = " ORDER BY log_id DESC";
return $this->get_list();
}
5 years ago
public function get_list()
{
$this->top_num ? $sql = "SELECT TOP " . $this->top_num : $sql = "SELECT ";
$sql .= " il.log_id, \n"
5 years ago
. " il.log_action, \n"
. " il.log_res_id, \n"
. " il.log_ht_usercode, \n"
. " il.log_ht_username, \n"
. " il.log_content, \n"
. " il.log_datetime \n"
. "FROM infoLogs il \n"
. "WHERE 1=1 \n";
$this->log_res_id ? $sql .= $this->log_res_id : false;
$this->log_id ? $sql .= $this->log_id : false;
$this->log_action ? $sql .= $this->log_action : false;
$this->log_datetime ? $sql .= $this->log_datetime : false;
$this->order_by ? $sql .= $this->order_by : false;
$query = $this->HT->query($sql);
if ($this->top_num == 1) {
if ($query->num_rows() > 0) {
$row = $query->row();
return $row;
} else {
5 years ago
return false;
}
} else {
return $query->result();
}
}
//备份信息内容
5 years ago
public function backup_project($p_id, $log_content)
{
return $this->write('backup_project', $p_id, $log_content);
}
//备份信息内容
5 years ago
public function backup($is_id, $log_content)
{
return $this->write('backup_info', $is_id, $log_content);
}
//备份信息meta内容,lmr - 2020/03/12
5 years ago
public function backup_meta($is_id, $log_content, $meta_code)
{
$add_icid_time_flug = 'backup_meta_' . $meta_code . '_' . $is_id . '_' . time();
$this->write($add_icid_time_flug, $is_id, $log_content);
return $add_icid_time_flug;
}
5 years ago
//列表信息meta内容,lmr - 2020/03/23
5 years ago
public function list_backup_meta($is_id, $meta_code)
{
5 years ago
$this->init();
2 years ago
$this->top_num = 50;
5 years ago
$this->log_res_id = " AND il.log_res_id =" . $this->HT->escape($is_id);
5 years ago
$this->log_action = " AND il.log_action like 'backup_meta_" . $meta_code . "_%'";
5 years ago
return $this->get_list();
}
//制定读取信息meta内容,lmr - 2020/03/23
5 years ago
public function pick_backup_meta($action)
{
5 years ago
$this->init();
$this->top_num = 1;
5 years ago
$this->log_action = " AND il.log_action =" . $this->HT->escape($action);
5 years ago
return $this->get_list();
}
//备份信息简介
5 years ago
public function backup_summary($is_id, $log_content)
{
return $this->write('backup_summary', $is_id, $log_content);
}
//添加信息
5 years ago
public function add($is_id)
{
return $this->write('add_info', $is_id);
}
//删除信息
5 years ago
public function delete($is_id, $log_content)
{
return $this->write('delete_info', $is_id, $log_content);
}
//移动信息
5 years ago
public function move($is_id_array)
{
//移动是很多个信息节点变动的在日志内容中记录所有几点id
return $this->write('move_info', 0, $is_id_array);
}
//写入测试,看看数据库写入是否正常
5 years ago
public function write_test()
{
$sql = "
INSERT INTO infoLogs
(
log_action
,log_res_id
,log_content
,log_ht_usercode
,log_ht_username
,log_datetime
)
VALUES
( ?,?,N?,?,N?,GETDATE())
";
$query = $this->HT->query($sql, array('write_test', 0, '数据库写入测试', 'system', 'system'));
$this->insert_id = $this->HT->last_id('infoLogs');
if (empty($this->insert_id)) {
return false;
} else {
return $this->insert_id;
}
}
//写入操作日志
5 years ago
public function write($log_action, $is_id, $log_content = '')
{
$admin_info = $this->session->userdata('session_admin');
$sql = "INSERT INTO infoLogs \n"
5 years ago
. " ( \n"
. " log_action, log_res_id, log_content, log_ht_usercode, log_ht_username, \n"
. " log_datetime \n"
. " ) \n"
. "VALUES \n"
. " ( \n"
. " ?, ?, N?, ?, N?, GETDATE() \n"
5 years ago
. " )";
// fix 外部站点调用
2 years ago
$op_code = null;
if ($admin_info['OPI_Code']) {
$op_code = $admin_info['OPI_Code'];
}
$op_name = 'outside';
2 years ago
if ($admin_info['OPI_Name']) {
$op_name = $admin_info['OPI_Name'];
}
$query = $this->HT->query($sql, array($log_action, $is_id, $log_content, $op_code, $op_name));
$this->insert_id = $this->HT->last_id('infoLogs');
return $query;
//print_r($this->HT->queries);
}
5 years ago
public function update($log_action, $log_res_id)
{
$sql = "UPDATE infoLogs SET log_res_id=? WHERE log_action=?";
$query = $this->HT->query($sql, array($log_res_id, $log_action));
return $query;
}
5 years ago
//查询上一次修改记录
public function get_last_edit_amp($ic_id)
{
$sql = 'select top 1 log_id from infoLogs where log_res_id = ? order by log_datetime desc';
$query = $this->HT->query($sql, array($ic_id));
return $query->row();
5 years ago
}
2 years ago
}