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

278 lines
9.7 KiB
PHP

<?php
class Infotaskarticles_model extends CI_Model {
var $insert_id = -1;
var $top_num = false;
var $ta_id = false;
var $ta_t_id = false;
var $order_by = false;
var $ta_status = false;
function __construct() {
parent::__construct();
$this->HT = $this->load->database('HT', TRUE);
}
function init() {
$this->top_num = false;
$this->ta_id = false;
$this->ta_t_id = false;
$this->order_by = " ORDER BY i.ta_id DESC ";
$this->ta_status = false;
}
//获取版本列表
function version_list($ta_t_id) {
$this->init();
$this->ta_status = " AND i.ta_status= 'version' ";
$this->ta_t_id = " AND i.ta_t_id= " . $this->HT->escape($ta_t_id);
return $this->get_list();
}
//获取最后的版本
function version_last($ta_t_id) {
$sql = "SELECT TOP 1
i.ta_id,
i.ta_t_id,
i.ta_ic_id,
i.ta_title,
i.ta_content,
i.ta_summary,
i.ta_seo_title,
i.ta_seo_description,
i.ta_seo_keywords,
i.ta_status,
i.ta_photo,
i.ta_count,
i.ta_charge,
i.ta_datetime,
ic.ic_url,
ic.ic_sitecode
FROM infotaskarticles i
LEFT JOIN infoContents ic ON ic.ic_id=i.ta_ic_id
WHERE 1 = 1 AND i.ta_status= 'version' AND i.ta_t_id= " . $this->HT->escape($ta_t_id) . "ORDER BY i.ta_id DESC";
$query = $this->HT->query($sql);
if ($query->num_rows() > 0) {
$row = $query->row();
return $row;
} else {
return FALSE;
}
}
//获取当前编辑版本
function detail($ta_t_id) {
$this->init();
$this->top_num = 1;
$this->ta_status = " AND i.ta_status= 'used' ";
$this->ta_t_id = " AND i.ta_t_id= " . $this->HT->escape($ta_t_id);
return $this->get_list();
}
//获取原始版本版本
function detail_original($ta_t_id) {
if (empty($ta_t_id)) {
return false;
}
$this->init();
$this->top_num = 1;
$this->ta_status = " AND i.ta_status= 'original' ";
$this->ta_t_id = " AND i.ta_t_id= " . $this->HT->escape($ta_t_id);
return $this->get_list();
}
//设置审核字数和金额
function update_review($ta_t_id, $ta_count, $ta_charge) {
$sql = "UPDATE infotaskarticles \n"
. "SET ta_count = ? , \n"
. " ta_charge = ? \n"
. "WHERE ta_id = ( \n"
. " SELECT TOP 1 ta_id \n"
. " FROM infotaskarticles \n"
. " WHERE ta_status = 'version' \n"
. " AND ta_t_id = ? \n"
. " ORDER BY \n"
. " ta_id DESC \n"
. " )";
return $this->HT->query($sql, array($ta_count, $ta_charge, $ta_t_id));
}
function get_list() {
$this->top_num ? $sql = "SELECT TOP " . $this->top_num : $sql = "SELECT ";
$sql .= " i.ta_id, \n"
. " i.ta_t_id, \n"
. " i.ta_ic_id, \n"
. " i.ta_title, \n"
. " i.ta_content, \n"
. " i.ta_summary, \n"
. " i.ta_seo_title, \n"
. " i.ta_seo_description, \n"
. " i.ta_seo_keywords, \n"
. " i.ta_status, \n"
. " i.ta_photo, \n"
. " i.ta_count, \n"
. " i.ta_charge, \n"
. " i.ta_isbest, \n"
. " i.ta_datetime \n"
. "FROM infotaskarticles i \n"
. "WHERE 1 = 1 ";
$this->ta_id ? $sql.=$this->ta_id : false;
$this->ta_t_id ? $sql.=$this->ta_t_id : false;
$this->ta_status ? $sql.=$this->ta_status : 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();
}
}
//写入
function add($ta_t_id, $ta_ic_id, $ta_title, $ta_content, $ta_summary, $ta_seo_title, $ta_seo_description, $ta_seo_keywords, $ta_photo, $ta_status = 'used') {
$sql = " INSERT INTO infotaskarticles \n"
. " ( \n"
. " ta_t_id, \n"
. " ta_ic_id, \n"
. " ta_title, \n"
. " ta_content, \n"
. " ta_summary, \n"
. " ta_seo_title, \n"
. " ta_seo_description, \n"
. " ta_seo_keywords, \n"
. " ta_photo, \n"
. " ta_status, \n"
. " ta_count, \n"
. " ta_charge, \n"
. " ta_datetime \n"
. " ) \n"
. " VALUES \n"
. " ( \n"
. " ?,?,N?,N?,N?,N?,N?,N?,?,?,0,0,GETDATE() \n"
. " )";
$query = $this->HT->query($sql, array($ta_t_id, $ta_ic_id, $ta_title, $ta_content, $ta_summary, $ta_seo_title, $ta_seo_description, $ta_seo_keywords, $ta_photo, $ta_status));
$this->insert_id = $this->HT->last_id('infotaskarticles');
return $query;
//print_r($this->HT->queries);
}
function update($ta_id, $ta_title, $ta_content, $ta_summary, $ta_seo_title, $ta_seo_description, $ta_seo_keywords, $ta_photo) {
$sql = "UPDATE infotaskarticles \n"
. "SET ta_title = N?, \n"
. " ta_content = N?, \n"
. " ta_summary = N?, \n"
. " ta_seo_title = N?, \n"
. " ta_seo_description = N?, \n"
. " ta_seo_keywords = N?, \n"
. " ta_photo = ?, \n"
. " ta_datetime = GETDATE() \n"
. "WHERE ta_id = ?";
return $this->HT->query($sql, array($ta_title, $ta_content, $ta_summary, $ta_seo_title, $ta_seo_description, $ta_seo_keywords, $ta_photo, $ta_id));
}
//设置任务为原始版本状态
function set_original($ta_id) {
$sql = "UPDATE infotaskarticles \n"
. "SET ta_status = 'original' \n"
. "WHERE ta_id = ? ";
return $this->HT->query($sql, array($ta_id));
}
//关联任务到信息平台
//把所有任务都关联到新的信息中
function link($ta_id, $ta_ic_id) {
$sql = "UPDATE infotaskarticles \n"
. "SET ta_ic_id = ? \n"
. "WHERE ta_t_id IN (SELECT TOP 1 ita.ta_t_id \n"
. " FROM infotaskarticles ita \n"
. " WHERE ita.ta_id = ?)";
$query = $this->HT->query($sql, array($ta_ic_id, $ta_id));
return $query;
}
//获取网前url和标题等
function get_information($ta_id) {
$sql = "SELECT TOP 1 \n"
. " ic.ic_url, \n"
. " ic.ic_sitecode, \n"
. " ic.ic_title \n"
. "FROM infoContents ic \n"
. "WHERE ic_status = 1 \n"
. " AND ic.ic_id = ?";
$query = $this->HT->query($sql, array($ta_id));
if ($query->num_rows() > 0) {
$row = $query->row();
return $row;
} else {
return FALSE;
}
}
//获取公告列表
public function get_announce($announce_id = '', $announce_type = 'notice') {
$map = '';
if ($announce_id != '') {
$map = " AND i.ta_id = $announce_id";
}
$sql = "SELECT i.ta_id,
i.ta_title,
i.ta_content,
i.ta_status,
i.ta_datetime
FROM infotaskarticles i
WHERE i.ta_status='announce' AND i.ta_seo_title=? $map
ORDER BY i.ta_datetime DESC";
$query = $this->HT->query($sql, array($announce_type));
return $query->result();
}
//根据页面路径获取指定信息页的成效信息
public function get_analytics_list($kwa_pagepath, $kwa_sitecode, $top = 50, $startdate = '', $enddate = '') {
$topsql = '';
if ($top != 0)
$topsql = "TOP $top";
if ($startdate == '') {
$startdate = time() - 7 * 24 * 60 * 60;
}
if ($enddate == '') {
$enddate = time();
}
$sql = "SELECT $topsql
kwa_pagepath,
kwa_keyword,
kwa_source,
kwa_pageviews,
kwa_uniquepageviews,
kwa_avgtimeonpage,
kwa_entrances,
kwa_exitrate,
kwa_conversionrate,
kwa_datetime,
kwa_sitecode
FROM infoKeywordsanalytics
WHERE kwa_sitecode = ? AND kwa_pagepath=? AND (kwa_datetime BETWEEN ? and ? )
ORDER BY kwa_pageviews DESC";
$query = $this->HT->query($sql, array($kwa_sitecode, $kwa_pagepath, $startdate, $enddate));
return $query->result();
}
//获取任务审核次数
public function get_review_count($t_id) {
$sql = "select count(0) as review_count from infoTaskArticles where ta_t_id=? AND ta_status='version'";
$query = $this->HT->query($sql, array($t_id));
$result = $query->result();
$num = 0;
if (!empty($result)) {
$num = $result[0]->review_count;
}
return $num;
}
}