Files
liche/common/libraries/market/Sylive2_data_entity.php
T
2022-12-08 16:02:30 +08:00

125 lines
5.1 KiB
PHP

<?php
/**
* 私域直播
*/
class Sylive2_data_entity{
const DF_IMG = 'https://qs.haodian.cn/web/images/project/H5-ShiYu/goodslogo.jpg'; //东风图标
private $ci;
private $map_kpi_biz = [
'browse' => 'browse', 'subscribe' => 'subscribe', 'order' => 'orderTotal','watch' => 'watch'
];
public function __construct(){
$this->ci = &get_instance();
$this->ci->load->model('market/market_sylive_user_model', 'user_model');
$this->ci->load->model('market/market_sylive_activity_user_model', 'act_user_model');
$this->ci->load->model('market/market_sylive_activity_model');
$this->ci->load->model('market/market_sylive_activity_biz_model','mdSytActivityBiz');
$this->ci->load->model('market/market_sylive_activity_team_model','mdSytActivityTeam');
$this->ci->load->model('market/market_sylive_activity_kpidata_model','mdSytActivityKpiData');
$this->ci->load->model('market/market_sylive_organization_model');
$this->ci->load->model('market/market_sylive_activity_orders_model','mdSytActivityOrders');
$this->ci->load->model('market/market_sylive_viewlog_model');
$this->load->model('market/market_sylive_groups_model', 'groups_model');
$this->load->model('market/market_sylive_groups_user_model', 'groups_user_model');
}
/**
* @return void
*/
public function top_kpidata($groupby,$where,$order,$page=1,$page_size=20,$select='',$tagId=0){
$total = $this->ci->mdSytActivityKpiData->count($where,$groupby);
$lists = [];
if($total){
$rows = $this->ci->mdSytActivityKpiData->select_groupby($groupby, $where, $order, $page, $page_size, $select);
$biz_rows = $org_rows = [];
if($groupby=='cfUserId'){//顾问
$user_ids = implode(',',array_column($rows,'cfUserId'));
if($user_ids){
$org_rows = $this->ci->user_model->map('userId','',["userId in ($user_ids)"=>null],'','','','userId,uname as name,headimg');
}
}
if($groupby=='bizId'){
$biz_ids = implode(',',array_column($rows,'bizId'));
$biz_ids && $biz_rows = $this->ci->groups_model->map('groupsId','',["groupsId in ($biz_ids)"=>null],'','','','groupsId,groupsName');
}
$num_tip = $where['kpi'] == 'order' ? '单' : '人';
$start = $page>1 ? ($page-1)*$page_size : 0;
foreach ($rows as $key=>$val) {
$name = $tip = $headimg = $biz_name = '';
if($groupby=='cfUserId'){
$org = $org_rows[$val['cfUserId']] ? $org_rows[$val['cfUserId']][0] : [];
$tip = $tagId==$val['cfUserId'] ? '本人' : '';
$name = $org['name'];
$headimg = $org['headimg'];
}
if($groupby=='bizId'){
$biz = $biz_rows[$val['bizId']][0];
$name = $biz['groupsName'];
$tip = $tagId==$val['bizId'] ? '本店' : '';
}
$lists[] = [
'ranking' => $start+$key+1,
'name' => $name,
'num' => $val['t'].$num_tip,
'headimg' => $headimg,
'tip' => $tip,
];
}
}
$data = [
'total' => $total,
'lists' => $lists
];
return $data;
}
/**
* @return void
*/
public function top_groups_user($groupby,$where,$order,$page=1,$page_size=20,$select='',$kpi,$tagId=0){
$total = $this->ci->groups_user_model->count($where,$groupby);
$lists = [];
if($total){
$rows = $this->ci->groups_user_model->select_groupby($groupby, $where, $order, $page, $page_size, $select);
$biz_rows = [];
if($groupby=='bizId'){
$biz_ids = implode(',',array_column($rows,'bizId'));
$biz_ids && $biz_rows = $this->ci->groups_model->map('groupsId','',["groupsId in ($biz_ids)"=>null],'','','','groupsId,groupsName');
}
$start = $page>1 ? ($page-1)*$page_size : 0;
$num_tip = $kpi == 'order' ? '单' : '人';
foreach ($rows as $key=>$val) {
$tip = $headimg = $name = '';
if($groupby=='bizId'){
$biz = $biz_rows[$val['bizId']][0];
$name = $biz['groupsName'];
$tip = $tagId==$val['bizId'] ? '本店' : '';
}
$lists[] = [
'ranking' => $start+$key+1,
'name' => $name,
'num' => $val['t'].$num_tip,
'headimg' => $headimg,
'tip' => $tip,
];
}
}
$data = [
'total' => $total,
'lists' => $lists
];
return $data;
}
public function __get($name)
{
if ('_model' === substr($name, -6)) {
return $this->ci->$name;
} elseif ('load' == $name) {
return $this->ci->load;
}
return null;
}
}