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

403 lines
17 KiB
PHTML

<?php
class Feedback_model extends CI_Model {
function __construct() {
parent::__construct();
$this->HT = $this->load->database('HT', TRUE);
}
/**
* 返回最新反馈信息,默认 20条
*/
function get_feedback_newest($row_limit = 20) {
$total_limit = $row_limit * 2;
$feedback_query =
$this->HT->query("
select top ?
tad_content, tai_customerid, tai_title, tai_getdate, tai_url
from Eva_TAInfo tai
left join Eva_TADetail on TAD_TAI_SN=TAI_SN
left join Eva_TAGuidePrize tgp on tgp.TGP_TAI_SN = tai.TAI_SN
where TAD_Content is not null
and isnull(TAI_DeleteFlag,0) = 0 and isnull(tgp.TGP_CheckState, 0) = 136002
order by tai_getdate desc", $total_limit);
$feedback_result = $feedback_query->result();
$feedback_list = [];
$customer_id_list = [];
foreach ($feedback_result as $feedback_row) {
$createdOn = new DateTime($feedback_row->tai_getdate);
$createdOnString = $createdOn->format('M Y');
$feedback_count = COUNT($feedback_list);
if (!in_array($feedback_row->tai_customerid, $customer_id_list) && $feedback_count < $row_limit) {
$feedback = [
'title' => $feedback_row->tai_title,
'customer' => $feedback_row->tai_customerid,
'content' => $feedback_row->tad_content,
'url' => $feedback_row->tai_url,
'createdOn' => $createdOnString
];
$feedback_list[] = $feedback;
$customer_id_list[] = $feedback_row->tai_customerid;
}
}
return $feedback_list;
}
function test_feedback_newest() {
$feedback_query =
$this->HT->query("
select top 40
tad_content, tai_customerid, tai_title, tai_getdate, tai_url
from Eva_TAInfo tai
left join Eva_TADetail on TAD_TAI_SN=TAI_SN
left join Eva_TAGuidePrize tgp on tgp.TGP_TAI_SN = tai.TAI_SN
where TAD_Content is not null
and isnull(TAI_DeleteFlag,0) = 0 and isnull(tgp.TGP_CheckState, 0) = 136002
order by tai_getdate desc");
$feedback_result = $feedback_query->result();
$feedback_list = [];
$customer_id_list = [];
foreach ($feedback_result as $feedback_row) {
$createdOn = new DateTime($feedback_row->tai_getdate);
$createdOnString = $createdOn->format('M Y');
$feedback_count = COUNT($feedback_list);
if (!in_array($feedback_row->tai_customerid, $customer_id_list) && $feedback_count < 20) {
$feedback = [
'title' => $feedback_row->tai_title,
'customer' => $feedback_row->tai_customerid,
// 'content' => $feedback_row->tad_content,
'url' => $feedback_row->tai_url,
'createdOn' => $createdOnString
];
$feedback_list[] = $feedback;
$customer_id_list[] = $feedback_row->tai_customerid;
}
}
return $feedback_list;
}
/**
* 根据城市英文名查找最新八条反馈信息
*/
function get_feedback_by_city_list($city_name_list, $all=TRUE) {
$feedback_query =
$this->HT->query("
select top 40 tai_url,tad_content, tai_customerid, tai_title, tai_getdate, vci.cii2_name, g.GRI_EntranceDate, coi2.COI2_Country
from Eva_TAInfo
left join Eva_TADetail on TAD_TAI_SN=TAI_SN
left join V_CIty_Info vci on vci.cii_sn = tai_cii_sn and vci.LGC_LGC = 1
left join GRoupInfo g on g.GRI_SN = TAI_GRI_SN
left JOIN ConfirmLineInfo cli on cli.COLI_GRI_SN = g.GRI_SN
left join CUstomerList cul on cul.CUL_COLI_SN = cli.COLI_SN and CUL_IsLinkMan = 1
left join MEmberInfo mei on mei.MEI_SN = cul.CUL_CUI_SN
left join COuntryInfo2 coi2 on coi2.COI2_COI_SN = mei.MEI_Country and COI2_LGC = 1
where TAD_Content is not null and vci.cii2_name = ? and tai_url not LIKE '%trustpilot.com%'
order by tai_getdate desc",
array($city_name_list[0]));
if ($all) {
$feedback_query =
$this->HT->query("
select top 40
tad_content, tai_customerid, tai_title, tai_getdate, tai_url, vci.cii2_name, g.GRI_EntranceDate, coi2.COI2_Country
from Eva_TAInfo
left join Eva_TADetail on TAD_TAI_SN=TAI_SN
left join V_CIty_Info vci on vci.cii_sn = tai_cii_sn and vci.LGC_LGC = 1
left join GRoupInfo g on g.GRI_SN = TAI_GRI_SN
left JOIN ConfirmLineInfo cli on cli.COLI_GRI_SN = g.GRI_SN
left join CUstomerList cul on cul.CUL_COLI_SN = cli.COLI_SN and CUL_IsLinkMan = 1
left join MEmberInfo mei on mei.MEI_SN = cul.CUL_CUI_SN
left join COuntryInfo2 coi2 on coi2.COI2_COI_SN = mei.MEI_Country and COI2_LGC = 1
where TAD_Content is not null and vci.cii2_name = ?
order by tai_getdate desc",
array($city_name_list[0]));
}
$first_city_num = $feedback_query->num_rows();
$feedback_result = $feedback_query->result();
$feedback_list = [];
$customer_id_list = [];
foreach ($feedback_result as $feedback_row) {
$createdOn = new DateTime($feedback_row->tai_getdate);
$createdOnString = $createdOn->format('M Y');
$entranceDate = new DateTime($feedback_row->GRI_EntranceDate);
$entranceDateString = $entranceDate->format('M Y');
$feedback_count = COUNT($feedback_list);
if (!in_array($feedback_row->tai_customerid, $customer_id_list) && $feedback_count < 20) {
$feedback = [
'title' => $feedback_row->tai_title,
'customer' => $feedback_row->tai_customerid,
'content' => $feedback_row->tad_content,
'url' => $feedback_row->tai_url,
'createdOn' => $createdOnString,
'entranceDate' => $entranceDateString,
'nationality' => $feedback_row->COI2_Country
];
$feedback_list[] = $feedback;
$customer_id_list[] = $feedback_row->tai_customerid;
}
}
$enough_count = 40 - $first_city_num;
if ($enough_count > 0 && count($city_name_list) > 1) {
$feedback_query =
$this->HT->query("
select top ?
tad_content, tai_customerid, tai_title, tai_getdate, tai_url, vci.cii2_name, g.GRI_EntranceDate, coi2.COI2_Country
from Eva_TAInfo
left join Eva_TADetail on TAD_TAI_SN=TAI_SN
left join V_CIty_Info vci on vci.cii_sn = tai_cii_sn and vci.LGC_LGC = 1
left join GRoupInfo g on g.GRI_SN = TAI_GRI_SN
left JOIN ConfirmLineInfo cli on cli.COLI_GRI_SN = g.GRI_SN
left join CUstomerList cul on cul.CUL_COLI_SN = cli.COLI_SN and CUL_IsLinkMan = 1
left join MEmberInfo mei on mei.MEI_SN = cul.CUL_CUI_SN
left join COuntryInfo2 coi2 on coi2.COI2_COI_SN = mei.MEI_Country and COI2_LGC = 1
where TAD_Content is not null and vci.cii2_name = ? and tai_url not LIKE '%trustpilot.com%'
order by tai_getdate desc",
array($enough_count, $city_name_list[1]));
if ($all) {
$feedback_query =
$this->HT->query("
select top ?
tad_content, tai_customerid, tai_title, tai_getdate, tai_url, vci.cii2_name, g.GRI_EntranceDate, coi2.COI2_Country
from Eva_TAInfo
left join Eva_TADetail on TAD_TAI_SN=TAI_SN
left join V_CIty_Info vci on vci.cii_sn = tai_cii_sn and vci.LGC_LGC = 1
left join GRoupInfo g on g.GRI_SN = TAI_GRI_SN
left JOIN ConfirmLineInfo cli on cli.COLI_GRI_SN = g.GRI_SN
left join CUstomerList cul on cul.CUL_COLI_SN = cli.COLI_SN and CUL_IsLinkMan = 1
left join MEmberInfo mei on mei.MEI_SN = cul.CUL_CUI_SN
left join COuntryInfo2 coi2 on coi2.COI2_COI_SN = mei.MEI_Country and COI2_LGC = 1
where TAD_Content is not null and vci.cii2_name = ?
order by tai_getdate desc",
array($enough_count, $city_name_list[1]));
}
$feedback_result = $feedback_query->result();
foreach ($feedback_result as $feedback_row) {
$createdOn = new DateTime($feedback_row->tai_getdate);
$createdOnString = $createdOn->format('M Y');
$entranceDate = new DateTime($feedback_row->GRI_EntranceDate);
$entranceDateString = $entranceDate->format('M Y');
$feedback_count = COUNT($feedback_list);
if (!in_array($feedback_row->tai_customerid, $customer_id_list) && $feedback_count < 20) {
$feedback = [
'title' => $feedback_row->tai_title,
'customer' => $feedback_row->tai_customerid,
'content' => $feedback_row->tad_content,
'url' => $feedback_row->tai_url,
'createdOn' => $createdOnString,
'entranceDate' => $entranceDateString,
'nationality' => $feedback_row->COI2_Country
];
$feedback_list[] = $feedback;
$customer_id_list[] = $feedback_row->tai_customerid;
}
}
}
return $feedback_list;
}
/**
* 根据城市英文名查找反馈信息
*/
function get_feedback_by_city_name($city_name, $top = 30, $all=TRUE) {
$feedback_query =
$this->HT->query("
select top ?
tad_content, tai_customerid, tai_title, tai_getdate, tai_url, vci.cii2_name, g.GRI_EntranceDate, coi2.COI2_Country
from Eva_TAInfo
left join Eva_TADetail on TAD_TAI_SN=TAI_SN
left join V_CIty_Info vci on vci.cii_sn = tai_cii_sn and vci.LGC_LGC = 1
left join GRoupInfo g on g.GRI_SN = TAI_GRI_SN
left JOIN ConfirmLineInfo cli on cli.COLI_GRI_SN = g.GRI_SN
left join CUstomerList cul on cul.CUL_COLI_SN = cli.COLI_SN and CUL_IsLinkMan = 1
left join MEmberInfo mei on mei.MEI_SN = cul.CUL_CUI_SN
left join COuntryInfo2 coi2 on coi2.COI2_COI_SN = mei.MEI_Country and COI2_LGC = 1
where TAD_Content is not null and vci.cii2_name = ? and tai_url not LIKE '%trustpilot.com%'
order by tai_getdate desc",
array($top, $city_name));
if ($all) {
$feedback_query =
$this->HT->query("
select top ?
tad_content, tai_customerid, tai_title, tai_getdate, tai_url, vci.cii2_name, g.GRI_EntranceDate, coi2.COI2_Country
from Eva_TAInfo
left join Eva_TADetail on TAD_TAI_SN=TAI_SN
left join V_CIty_Info vci on vci.cii_sn = tai_cii_sn and vci.LGC_LGC = 1
left join GRoupInfo g on g.GRI_SN = TAI_GRI_SN
left JOIN ConfirmLineInfo cli on cli.COLI_GRI_SN = g.GRI_SN
left join CUstomerList cul on cul.CUL_COLI_SN = cli.COLI_SN and CUL_IsLinkMan = 1
left join MEmberInfo mei on mei.MEI_SN = cul.CUL_CUI_SN
left join COuntryInfo2 coi2 on coi2.COI2_COI_SN = mei.MEI_Country and COI2_LGC = 1
where TAD_Content is not null and vci.cii2_name = ?
order by tai_getdate desc",
array($top, $city_name));
}
$feedback_result = $feedback_query->result();
$feedback_list = [];
$customer_id_list = [];
foreach ($feedback_result as $feedback_row) {
$createdOn = new DateTime($feedback_row->tai_getdate);
$createdOnString = $createdOn->format('M Y');
$entranceDate = new DateTime($feedback_row->GRI_EntranceDate);
$entranceDateString = $entranceDate->format('M Y');
if (!in_array($feedback_row->tai_customerid, $customer_id_list)) {
$feedback = [
'title' => $feedback_row->tai_title,
'customer' => $feedback_row->tai_customerid,
'content' => $feedback_row->tad_content,
'url' => $feedback_row->tai_url,
'createdOn' => $createdOnString,
'entranceDate' => $entranceDateString,
'nationality' => $feedback_row->COI2_Country
];
$feedback_list[] = $feedback;
$customer_id_list[] = $feedback_row->tai_customerid;
}
}
return $feedback_list;
}
/**
* 根据顾问英文名查找反馈信息
*/
function get_feedback_by_advisor_name($advisor_name) {
$feedback_query =
$this->HT->query("
select top 3
tad.tad_content,
tai.tai_customerid,
tai.tai_title,
tai.tai_getdate,
tai.tai_url,
vci.cii2_name
from Eva_TAInfo tai
join Eva_TADetail tad on tad.TAD_TAI_SN = tai.TAI_SN
join V_CIty_Info vci on vci.cii_sn = tai.tai_cii_sn and vci.LGC_LGC = 1
where tad.TAD_SN in (
select TAD_SN
from Eva_TADetail e
join V_Operator_Info v on e.TAD_ObjList like '%,' + cast(v.OPI_SN as varchar) + ',%'
where e.TAD_ObjType = 99002
and v.LGC_LGC = 1
and v.OPI2_Name = ?
)
and tai_url not LIKE '%trustpilot.com%'
order by tai.tai_getdate desc;
",
array($advisor_name));
$feedback_result = $feedback_query->result();
$feedback_list = [];
$customer_id_list = [];
foreach ($feedback_result as $feedback_row) {
$createdOn = new DateTime($feedback_row->tai_getdate);
$createdOnString = $createdOn->format('M Y');
if (!in_array($feedback_row->tai_customerid, $customer_id_list)) {
$feedback = [
'title' => $feedback_row->tai_title,
'customer' => $feedback_row->tai_customerid,
'content' => $feedback_row->tad_content,
'url' => $feedback_row->tai_url,
'createdOn' => $createdOnString
];
$feedback_list[] = $feedback;
$customer_id_list[] = $feedback_row->tai_customerid;
}
}
return $feedback_list;
}
/***
* CT站获取反馈信息列表根据城市
* // HTLM: <div><!--@FEEDBACK_Shanghai,Beijing@--></div>
// 解析结果:<!--@FEEDBACK_Shanghai,Beijing@-->; Shanghai,Beijing
*/
function get_CT_feedback_by_cityname($city,$top=30){
$sql = "
select top ?
tad_content, tai_customerid, tai_title, tai_getdate, tai_url, vci.cii2_name
from Eva_TAInfo
left join Eva_TADetail on TAD_TAI_SN=TAI_SN
left join V_CIty_Info vci on vci.cii_sn = tai_cii_sn and vci.LGC_LGC = 1
where TAD_Content is not null
and tai_url not LIKE '%trustpilot.com%'
";
//根据传递的城市名称进行判断
if ($city == "All" || empty($city)){
}else{
// 使用 explode 函数分割字符串,并去除空格
$cityArray = array_map('trim', explode(',', $city));
// 将每个字符串元素用引号包围,然后用逗号连接起来
$cityList = "'" . implode("','", $cityArray) . "'";
$sql .= "and vci.cii2_name in ($cityList) ";
}
$sql .=" and TAI_GRI_SN in ( select coli_gri_sn from ConfirmLineInfo
where COLI_OPI_ID in ( select OPI_SN from OperatorInfo where OPI_DEI_SN=18)
and COLI_GRI_SN>'' and isnull(DeleteFlag,0)=0 )
order by tai_getdate desc";
// echo ($sql);
// die();
$feedback_query =
$this->HT->query($sql, array($top));
$feedback_result = $feedback_query->result();
$feedback_list = [];
$customer_id_list = [];
foreach ($feedback_result as $feedback_row) {
$createdOn = new DateTime($feedback_row->tai_getdate);
$createdOnString = $createdOn->format('M Y');
if (!in_array($feedback_row->tai_customerid, $customer_id_list)) {
$feedback = [
'title' => $feedback_row->tai_title,
'customer' => $feedback_row->tai_customerid,
'content' => $feedback_row->tad_content,
'url' => $feedback_row->tai_url,
'createdOn' => $createdOnString
];
$feedback_list[] = $feedback;
$customer_id_list[] = $feedback_row->tai_customerid;
}
}
return $feedback_list;
}
}