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/infoMetas_model.php

235 lines
8.0 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 InfoMetas_model extends CI_Model
{
function __construct()
{
parent::__construct();
$this->HT = $this->load->database('INFORMATION', TRUE);
}
function add($im_ic_id, $im_key, $im_value)
{
$sql = "INSERT INTO infoMetas \n"
. " ( \n"
. " im_ic_id, im_key, im_value \n"
. " ) \n"
. "VALUES \n"
. " ( \n"
. " ?, ?, N? \n"
. " )";
return $this->HT->query($sql, array($im_ic_id, $im_key, (string) $im_value));
}
function get_list($im_ic_id, $im_key)
{
$sql = "
SELECT im.im_id
,im.im_ic_id
,im.im_key
,im.im_value
FROM infoMetas im
WHERE im.im_ic_id = ?
AND im.im_key = ?
ORDER BY im.im_id ASC
";
$query = $this->HT->query($sql, array($im_ic_id, $im_key));
return $query->result();
}
function get_list_by_key($im_ic_id, $im_key)
{
$sql = "
SELECT im.im_id
,im.im_ic_id
,im.im_key
,im.im_value
FROM infoMetas im
WHERE im.im_ic_id = ?
AND im.im_key = ?
ORDER BY im.im_id ASC
";
$query = $this->HT->query($sql, array($im_ic_id, $im_key));
return $query->result();
}
//列表所有含AMPmeta的信息。
public function list_amp($site_code)
{
$sql = "
SELECT im.im_id
,im.im_ic_id
,c.ic_url
,c.ic_id
,empty_tpl = case when c.ic_template in ('r_tpl_empty', 'r_empty_container', 'r_empty2', 'r_tpl_empty_2017', 'tpl_empty', 'tpl_empty_h1', 'tpl_empty_navi_h1') then 'yes' else 'no' end
FROM infoMetas im
INNER JOIN infoContents c
ON c.ic_id = im.im_ic_id
LEFT JOIN infoMetas im2
ON im2.im_ic_id = im.im_ic_id AND im2.im_key = 'AMP_STATUS'
LEFT JOIN infoMetas im3
ON im3.im_ic_id = im.im_ic_id AND im2.im_key = 'AMP_SCHEMA'
WHERE im.im_key = 'AMP_JSON'
AND c.ic_sitecode = ?
AND c.ic_status = 1
AND CONVERT(varchar, im2.im_value) = '1'
";
$query = $this->HT->query($sql, array($site_code));
return $query->result();
}
//列表所有不含AMPmeta的信息。
public function list_no_amp($site_code)
{
$sql = "
SELECT c0.ic_id, c0.ic_url
FROM infoContents c0
WHERE c0.ic_id not in (
SELECT c.ic_id
FROM infoMetas im
LEFT JOIN infoContents c
ON c.ic_id = im.im_ic_id
LEFT JOIN infoMetas im2
ON im2.im_ic_id = im.im_ic_id AND im2.im_key = 'AMP_STATUS'
LEFT JOIN infoMetas im3
ON im3.im_ic_id = im.im_ic_id AND im2.im_key = 'AMP_SCHEMA'
WHERE im.im_key = 'AMP_JSON'
AND c.ic_sitecode = ?
AND c.ic_status = 1
AND CONVERT(varchar, im2.im_value) = '1'
)
AND c0.ic_sitecode = ?
AND c0.ic_status = 1
AND c0.ic_url <> ''
AND datalength(c0.ic_content) > 0
AND CHARINDEX('search', c0.ic_url) = 0
AND CHARINDEX('faq', c0.ic_url) = 0
AND CHARINDEX('feedback', c0.ic_url) = 0
AND CHARINDEX('test', c0.ic_url) = 0
";
$query = $this->HT->query($sql, array($site_code, $site_code));
return $query->result();
}
//按节点列表信息含meta数据
function list_info_by_path_with_meta($is_path, $site_code)
{
$sql = "SELECT is1.is_id, \n"
. " is1.is_path, \n"
. " ic.ic_id, \n"
. " ic.ic_url, \n"
. " ic.ic_status, \n"
. " ic.ic_template, \n"
. " ic.ic_sitecode, \n"
. " ic.ic_content, \n"
. " ic.ic_photo, \n"
. " ic.ic_title, \n"
. " ic.ic_type, \n"
. " im.im_id \n"
. " FROM infoStructures is1 \n"
. " INNER JOIN infoContents ic ON ic.ic_id = is1.is_ic_id \n"
. " AND ic.ic_sitecode = is1.is_sitecode \n"
. " LEFT JOIN infoMetas im ON im.im_ic_id = ic.ic_id AND im.im_key=?"
. " WHERE is1.is_path LIKE '$is_path%' AND is_sitecode = ? AND ic_status = 1"
. " ORDER BY is1.is_level, is1.is_sort, is1.is_path";
$query = $this->HT->query($sql, array('AMP_JSON', $site_code));
//print_r($this->HT->queries);
return $query->result();
}
function get($im_ic_id, $im_key)
{
$sql = "SELECT im.im_value \n"
. "FROM infoMetas im \n"
. "WHERE im.im_ic_id = ? \n"
. " AND im.im_key = ?";
$query = $this->HT->query($sql, array($im_ic_id, $im_key));
if ($query->num_rows() > 0) {
return $query->row()->im_value;
} else {
return false;
}
}
function get_gm($im_ic_id, $im_key)
{
$sql = "SELECT im.im_value \n"
. "FROM information_gm.dbo.infoMetas im \n"
. "WHERE im.im_ic_id = ? \n"
. " AND im.im_key = ?";
$query = $this->HT->query($sql, array($im_ic_id, $im_key));
if ($query->num_rows() > 0) {
return $query->row()->im_value;
} else {
return false;
}
}
function detail($im_ic_id, $im_key)
{
$sql = "SELECT im.im_value \n"
. "FROM infoMetas im \n"
. "WHERE im.im_ic_id = ? \n"
. " AND im.im_key = ? ORDER BY im.im_id asc";
$query = $this->HT->query($sql, array($im_ic_id, $im_key));
return $query->result();
}
//获取未收录的信息
public function get_unembody_content($datetime, $top_num = 1)
{
$sql = " SELECT TOP $top_num
im_ic_id,
im_value,
ic_url,
ic_sitecode,
log_ht_usercode AS ic_author
FROM infoMetas
INNER JOIN infoStructures ON is_ic_id=im_ic_id
INNER JOIN infoContents ON ic_id=im_ic_id
INNER JOIN infologs ON log_res_id=is_id
WHERE im_key = 'meta_embody'
AND convert(varchar(500),im_value) != '1'
AND convert(varchar(500),im_value)<N?
ORDER BY im_id DESC";
$query = $this->HT->query($sql, array($datetime));
return $query->result();
}
function update($im_ic_id, $im_key, $im_value)
{
$sql = "UPDATE infoMetas \n"
. "SET im_value = N? \n"
. "WHERE im_ic_id = ? \n"
. " AND im_key = ?";
return $this->HT->query($sql, array((string) $im_value, $im_ic_id, $im_key));
}
function delete($im_ic_id, $im_key)
{
$sql = "DELETE \n"
. "FROM infoMetas \n"
. "WHERE im_ic_id = ? \n"
. " AND im_key = ?";
return $this->HT->query($sql, array($im_ic_id, $im_key));
}
function update_by_id($im_id, $im_value)
{
$sql = "UPDATE infoMetas \n"
. "SET im_value = N? \n"
. "WHERE im_id = ? \n";
return $this->HT->query($sql, array($im_value, $im_id));
}
function delete_by_id($im_id)
{
$sql = "DELETE \n"
. "FROM infoMetas \n"
. "WHERE im_id = ? \n";
return $this->HT->query($sql, array($im_id));
}
}