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

281 lines
8.4 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 Logs_model extends CI_Model
{
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;
public function __construct()
{
parent::__construct();
$this->HT = $this->load->database('INFORMATION', true);
}
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 ";
}
//获取日志详情.
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();
}
//获取备份信息内容
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();
}
//获取最近的备份信息内容
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();
}
//获取所有备份信息内容
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);
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();
}
//获取最后操作信息
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();
}
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();
}
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();
}
public function get_uncdn_list($last_id = false)
{
$map = '';
if ($last_id) {
$map = " AND log_id > $last_id";
}
$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();
}
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();
}
public function get_list()
{
$this->top_num ? $sql = "SELECT TOP " . $this->top_num : $sql = "SELECT ";
$sql .= " il.log_id, \n"
. " 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 {
return false;
}
} else {
return $query->result();
}
}
//备份信息内容
public function backup_project($p_id, $log_content)
{
return $this->write('backup_project', $p_id, $log_content);
}
//备份信息内容
public function backup($is_id, $log_content)
{
return $this->write('backup_info', $is_id, $log_content);
}
//备份信息meta内容,lmr - 2020/03/12
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;
}
//列表信息meta内容,lmr - 2020/03/23
public function list_backup_meta($is_id, $meta_code)
{
$this->init();
$this->top_num = 100;
$this->log_res_id = " AND il.log_res_id =" . $this->HT->escape($is_id);
$this->log_action = " AND il.log_action like 'backup_meta_" . $meta_code . "_%'";
return $this->get_list();
}
//制定读取信息meta内容,lmr - 2020/03/23
public function pick_backup_meta($action)
{
$this->init();
$this->top_num = 1;
$this->log_action = " AND il.log_action =" . $this->HT->escape($action);
return $this->get_list();
}
//备份信息简介
public function backup_summary($is_id, $log_content)
{
return $this->write('backup_summary', $is_id, $log_content);
}
//添加信息
public function add($is_id)
{
return $this->write('add_info', $is_id);
}
//删除信息
public function delete($is_id, $log_content)
{
return $this->write('delete_info', $is_id, $log_content);
}
//移动信息
public function move($is_id_array)
{
//移动是很多个信息节点变动的在日志内容中记录所有几点id
return $this->write('move_info', 0, $is_id_array);
}
//写入测试,看看数据库写入是否正常
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;
}
}
//写入操作日志
public function write($log_action, $is_id, $log_content = '')
{
$admin_info = $this->session->userdata('session_admin');
$sql = "INSERT INTO infoLogs \n"
. " ( \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"
. " )";
$query = $this->HT->query($sql, array($log_action, $is_id, $log_content, $admin_info['OPI_Code'], $admin_info['OPI_Name']));
$this->insert_id = $this->HT->last_id('infoLogs');
return $query;
//print_r($this->HT->queries);
}
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;
}
//查询上一次修改记录
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();
}
}