market_323_2
This commit is contained in:
@@ -166,6 +166,22 @@ class groupsCustomer extends BaseController
|
||||
$order = $params['order'];
|
||||
!$page && $page = 1;
|
||||
!$limit && $limit = 10;
|
||||
$levels = [];
|
||||
if ($page == 1) {
|
||||
$re_gro = $this->mdSyliveGroups->get(['activityId' => $activityId, 'parentId' => 0, 'status>=' => 0]);
|
||||
if ($re_gro['statisticsType']) {
|
||||
$this->load->model('market/Market_sys_dictionary_data_model', 'mdSysDictionaryData');
|
||||
$res_dit = $this->mdSysDictionaryData->select(['status>=' => 0, 'dictId' => $re_gro['statisticsType']], 'sortNumber asc,dictDataId desc'
|
||||
, 0, 0, 'dictDataCode,dictDataName');
|
||||
foreach ($res_dit as $k => $v) {
|
||||
$groupsLevel = intval($v['dictDataCode']);
|
||||
$re_gro = $this->mdSyliveGroups->get(['activityId' => $activityId, 'groupsLevel' => $groupsLevel, 'status>=' => 0]);
|
||||
if ($re_gro) {
|
||||
$levels[] = ['label' => $v['dictDataName'], 'prop' => "levelName{$groupsLevel}"];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$sort_order = 'customerId desc';
|
||||
if ($sort && $order) {
|
||||
$sort_order = $sort . ' ' . $order;
|
||||
@@ -208,7 +224,7 @@ class groupsCustomer extends BaseController
|
||||
, 'bizId' => $v['bizId'], 'cfUserId' => $v['cfUserId']]);
|
||||
$status = intval($v['status']);
|
||||
$statusName = $statusAry[$status];
|
||||
$visitTagName = '-';
|
||||
$visitTagName = '';
|
||||
$visitTagId = $v['visitTagId'];
|
||||
if ($visitTagId) {
|
||||
$visitTagName = $visitTagAry[$visitTagId];
|
||||
@@ -216,19 +232,50 @@ class groupsCustomer extends BaseController
|
||||
$visitTagName = $visitTagName . '(' . $jsonData['visitTag'][$visitTagId] . ')';
|
||||
}
|
||||
}
|
||||
$item = [
|
||||
'customerId' => $v['customerId'], 'name' => $v['name'], 'mobile' => $v['mobile'], 'level' => $v['level']
|
||||
, 'statusName' => $statusName, 'visitTagName' => $visitTagName, 'levelName1' => $consultant['levelName1']
|
||||
, 'levelName2' => $consultant['levelName2'], 'levelName3' => $consultant['levelName3']
|
||||
, 'stores' => $consultant['stores'], 'consultant' => $consultant['consultant']
|
||||
$list1 = [
|
||||
'customerId' => $v['customerId'], 'name' => $v['name'], 'mobile' => $v['mobile']
|
||||
, 'statusName' => $statusName, 'visitTagName' => $visitTagName, 'consultant' => $consultant['consultant']
|
||||
];
|
||||
if ($limit == 10000) {
|
||||
unset($list1['customerId']);
|
||||
}
|
||||
$list2 = [];
|
||||
foreach ($levels as $k2 => $v2) {
|
||||
$list2[$v2['prop']] = $consultant[$v2['prop']] ? $consultant[$v2['prop']] : '';
|
||||
}
|
||||
$item = count($list2) ? array_merge($list1, $list2) : $list1;
|
||||
$item['stores'] = $consultant['stores'];
|
||||
$list[] = $item;
|
||||
}
|
||||
}
|
||||
if ($limit == 10000) {
|
||||
return $list;
|
||||
$columns1 = ['姓名', '手机号', '状态', '回访标签', '顾问'];
|
||||
$columns2 = [];
|
||||
foreach ($levels as $k => $v) {
|
||||
$columns2[] = $v['label'];
|
||||
}
|
||||
$columns3 = count($columns2) ? array_merge($columns1, $columns2) : $columns1;
|
||||
$columns = array_merge($columns3, ['门店']);
|
||||
return ['list' => $list, 'columns' => $columns];
|
||||
} else {
|
||||
return ['list' => $list, 'count' => $count];
|
||||
$columns = '';
|
||||
if ($page == 1) {
|
||||
$columns1 = [
|
||||
['prop' => 'customerId', 'label' => 'ID', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 45, 'fixed' => 'left'],
|
||||
['prop' => 'name', 'label' => '姓名', 'showOverflowTooltip' => true, 'minWidth' => 60],
|
||||
['prop' => 'mobile', 'label' => '手机号', 'showOverflowTooltip' => true, 'minWidth' => 60],
|
||||
['prop' => 'statusName', 'label' => '状态', 'showOverflowTooltip' => true, 'minWidth' => 60, 'align' => 'center'],
|
||||
['prop' => 'visitTagName', 'label' => '回访标签', 'showOverflowTooltip' => true, 'minWidth' => 100, 'align' => 'center'],
|
||||
['prop' => 'consultant', 'label' => '顾问', 'showOverflowTooltip' => true, 'minWidth' => 60]
|
||||
];
|
||||
$columns2 = [];
|
||||
foreach ($levels as $k => $v) {
|
||||
$columns2[] = ['prop' => $v['prop'], 'label' => $v['label'], 'showOverflowTooltip' => true, 'minWidth' => 80];
|
||||
}
|
||||
$columns = count($columns2) ? array_merge($columns1, $columns2) : $columns1;
|
||||
$columns[] = ['prop' => 'stores', 'label' => '门店', 'showOverflowTooltip' => true, 'minWidth' => 80];
|
||||
}
|
||||
return ['list' => $list, 'count' => $count, 'columns' => $columns];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -244,6 +244,22 @@ class groupsExchange extends BaseController
|
||||
$itemId = $params['itemId'];
|
||||
!$page && $page = 1;
|
||||
!$limit && $limit = 10;
|
||||
$levels = [];
|
||||
if ($page == 1) {
|
||||
$re_gro = $this->mdSyliveGroups->get(['activityId' => $activityId, 'parentId' => 0, 'status>=' => 0]);
|
||||
if ($re_gro['statisticsType']) {
|
||||
$this->load->model('market/Market_sys_dictionary_data_model', 'mdSysDictionaryData');
|
||||
$res_dit = $this->mdSysDictionaryData->select(['status>=' => 0, 'dictId' => $re_gro['statisticsType']], 'sortNumber asc,dictDataId desc'
|
||||
, 0, 0, 'dictDataCode,dictDataName');
|
||||
foreach ($res_dit as $k => $v) {
|
||||
$groupsLevel = intval($v['dictDataCode']);
|
||||
$re_gro = $this->mdSyliveGroups->get(['activityId' => $activityId, 'groupsLevel' => $groupsLevel, 'status>=' => 0]);
|
||||
if ($re_gro) {
|
||||
$levels[] = ['label' => $v['dictDataName'], 'prop' => "levelName{$groupsLevel}"];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$sort_order = 'id desc';
|
||||
if ($sort && $order) {
|
||||
$sort_order = $sort . ' ' . $order;
|
||||
@@ -302,14 +318,25 @@ class groupsExchange extends BaseController
|
||||
$useStatusName = '驳回';
|
||||
}
|
||||
$ifAddress = intval($map_items[$v['itemId']]);
|
||||
$item = [
|
||||
$list1 = [
|
||||
'id' => $v['id'], 'sid' => $v['sid'], 'uname' => $v['uname'], 'mobile' => $v['mobile'], 'itemTitle' => $v['itemTitle']
|
||||
, 'totalPrice' => $v['totalPrice'], 'payTime' => $v['payTime'] != '0000-00-00 00:00:00' ? $v['payTime'] : ''
|
||||
, 'winTime' => $v['winTime'] ? $v['winTime'] : '', 'useStatusName' => $useStatusName, 'useStatus' => intval($useStatus)
|
||||
, 'levelName1' => $consultant['levelName1'], 'levelName2' => $consultant['levelName2'], 'levelName3' => $consultant['levelName3']
|
||||
, 'stores' => $consultant['stores'], 'consultant' => $consultant['consultant'], 'exchangeName' => $exchangeName
|
||||
, 'ifAddress' => $ifAddress
|
||||
, 'totalPrice' => $v['totalPrice'], 'exchangeName' => $exchangeName
|
||||
, 'useStatusName' => $useStatusName, 'consultant' => $consultant['consultant']
|
||||
, 'ifAddress' => $ifAddress, 'useStatus' => intval($useStatus)
|
||||
];
|
||||
if ($limit == 10000) {
|
||||
unset($list1['id']);
|
||||
unset($list1['ifAddress']);
|
||||
unset($list1['useStatus']);
|
||||
} else {
|
||||
unset($list1['sid']);
|
||||
}
|
||||
$list2 = [];
|
||||
foreach ($levels as $k2 => $v2) {
|
||||
$list2[$v2['prop']] = $consultant[$v2['prop']] ? $consultant[$v2['prop']] : '';
|
||||
}
|
||||
$item = count($list2) ? array_merge($list1, $list2) : $list1;
|
||||
$item['stores'] = $consultant['stores'];
|
||||
if ($limit == 10000) {
|
||||
$address = $biz = '';
|
||||
$jsondata = $v['jsondata'] ? json_decode($v['jsondata'], true) : [];
|
||||
@@ -319,16 +346,44 @@ class groupsExchange extends BaseController
|
||||
if ($jsondata['biz']) {
|
||||
$biz = $jsondata['biz'];
|
||||
}
|
||||
$item['address'] = $address;
|
||||
$item['biz'] = $biz;
|
||||
$item['address'] = $address;
|
||||
}
|
||||
$list[] = $item;
|
||||
}
|
||||
}
|
||||
if ($limit == 10000) {
|
||||
return $list;
|
||||
$columns1 = ['订单号', '姓名', '手机号', '商品标题', '订单价格', '核销类型', '状态', '顾问'];
|
||||
$columns2 = [];
|
||||
foreach ($levels as $k => $v) {
|
||||
$columns2[] = $v['label'];
|
||||
}
|
||||
$columns3 = count($columns2) ? array_merge($columns1, $columns2) : $columns1;
|
||||
$columns = array_merge($columns3, ['门店', '所选经销商', '地址']);
|
||||
return ['list' => $list, 'columns' => $columns];
|
||||
} else {
|
||||
return ['list' => $list, 'count' => $count];
|
||||
$columns = '';
|
||||
if ($page == 1) {
|
||||
$columns1 = [
|
||||
['prop' => 'id', 'label' => 'ID', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 45, 'fixed' => 'left'],
|
||||
['prop' => 'uname', 'label' => '姓名', 'showOverflowTooltip' => true, 'minWidth' => 60],
|
||||
['prop' => 'mobile', 'label' => '手机号', 'showOverflowTooltip' => true, 'minWidth' => 80],
|
||||
['prop' => 'itemTitle', 'label' => '商品标题', 'showOverflowTooltip' => true, 'minWidth' => 130],
|
||||
['prop' => 'totalPrice', 'label' => '订单价格', 'showOverflowTooltip' => true, 'minWidth' => 60],
|
||||
['prop' => 'exchangeName', 'label' => '核销类型', 'showOverflowTooltip' => true, 'minWidth' => 60, 'align' => 'center'],
|
||||
['prop' => 'useStatus', 'label' => '状态', 'showOverflowTooltip' => true, 'minWidth' => 60, 'align' => 'center', 'slot' => 'useStatus'],
|
||||
['prop' => 'consultant', 'label' => '顾问', 'showOverflowTooltip' => true, 'minWidth' => 60]
|
||||
];
|
||||
$columns2 = [];
|
||||
foreach ($levels as $k => $v) {
|
||||
$columns2[] = ['prop' => $v['prop'], 'label' => $v['label'], 'showOverflowTooltip' => true, 'minWidth' => 80];
|
||||
}
|
||||
$columns = count($columns2) ? array_merge($columns1, $columns2) : $columns1;
|
||||
$columns[] = ['prop' => 'stores', 'label' => '门店', 'showOverflowTooltip' => true, 'minWidth' => 80];
|
||||
$columns[] = ['columnKey' => 'action', 'label' => '操作', 'showOverflowTooltip' => true, 'width' => 150, 'align' => 'center'
|
||||
, 'resizable' => false, 'slot' => 'action'];
|
||||
}
|
||||
return ['list' => $list, 'count' => $count, 'columns' => $columns];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -61,6 +61,22 @@ class groupsOrder extends BaseController
|
||||
$itemId = $params['itemId'];
|
||||
!$page && $page = 1;
|
||||
!$limit && $limit = 10;
|
||||
$levels = [];
|
||||
if ($page == 1) {
|
||||
$re_gro = $this->mdSyliveGroups->get(['activityId' => $activityId, 'parentId' => 0, 'status>=' => 0]);
|
||||
if ($re_gro['statisticsType']) {
|
||||
$this->load->model('market/Market_sys_dictionary_data_model', 'mdSysDictionaryData');
|
||||
$res_dit = $this->mdSysDictionaryData->select(['status>=' => 0, 'dictId' => $re_gro['statisticsType']], 'sortNumber asc,dictDataId desc'
|
||||
, 0, 0, 'dictDataCode,dictDataName');
|
||||
foreach ($res_dit as $k => $v) {
|
||||
$groupsLevel = intval($v['dictDataCode']);
|
||||
$re_gro = $this->mdSyliveGroups->get(['activityId' => $activityId, 'groupsLevel' => $groupsLevel, 'status>=' => 0]);
|
||||
if ($re_gro) {
|
||||
$levels[] = ['label' => $v['dictDataName'], 'prop' => "levelName{$groupsLevel}"];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$sort_order = 'id desc';
|
||||
if ($sort && $order) {
|
||||
if ($sort == 'statusName') {
|
||||
@@ -105,14 +121,23 @@ class groupsOrder extends BaseController
|
||||
$consultant = $this->consultantGet(['activityId' => $v['activityId'], 'userId' => $v['userId']
|
||||
, 'levelId1' => $v['levelId1'], 'levelId2' => $v['levelId2'], 'levelId3' => $v['levelId3']
|
||||
, 'bizId' => $v['bizId'], 'cfUserId' => $v['cfUserId']]);
|
||||
$item = [
|
||||
$list1 = [
|
||||
'id' => $v['id'], 'sid' => $v['sid'], 'uname' => $v['uname'], 'mobile' => $v['mobile'], 'itemTitle' => $v['itemTitle']
|
||||
, 'totalPrice' => $v['totalPrice'], 'payTime' => $v['payTime'] != '0000-00-00 00:00:00' ? $v['payTime'] : ''
|
||||
, 'typeName' => $this->mdSyliveOrder->typeAry($v['type']), 'createTime' => $v['createTime']
|
||||
, 'statusName' => $this->mdSyliveOrder->statusAry($v['status'])
|
||||
, 'levelName1' => $consultant['levelName1'] , 'levelName2' => $consultant['levelName2'] , 'levelName3' => $consultant['levelName3']
|
||||
, 'stores' => $consultant['stores'], 'consultant' => $consultant['consultant']
|
||||
, 'createTime' => $v['createTime'], 'typeName' => $this->mdSyliveOrder->typeAry($v['type'])
|
||||
, 'statusName' => $this->mdSyliveOrder->statusAry($v['status']), 'consultant' => $consultant['consultant']
|
||||
];
|
||||
if ($limit == 10000) {
|
||||
unset($list1['id']);
|
||||
} else {
|
||||
unset($list1['sid']);
|
||||
}
|
||||
$list2 = [];
|
||||
foreach ($levels as $k2 => $v2) {
|
||||
$list2[$v2['prop']] = $consultant[$v2['prop']] ? $consultant[$v2['prop']] : '';
|
||||
}
|
||||
$item = count($list2) ? array_merge($list1, $list2) : $list1;
|
||||
$item['stores'] = $consultant['stores'];
|
||||
if ($limit == 10000) {
|
||||
$address = $biz = '';
|
||||
$jsondata = $v['jsondata'] ? json_decode($v['jsondata'], true) : [];
|
||||
@@ -122,16 +147,44 @@ class groupsOrder extends BaseController
|
||||
if ($jsondata['biz']) {
|
||||
$biz = $jsondata['biz'];
|
||||
}
|
||||
$item['address'] = $address;
|
||||
$item['biz'] = $biz;
|
||||
$item['address'] = $address;
|
||||
}
|
||||
$list[] = $item;
|
||||
}
|
||||
}
|
||||
if ($limit == 10000) {
|
||||
return $list;
|
||||
$columns1 = ['订单号', '姓名', '手机号', '商品标题', '订单价格', '付款时间', '创建时间', '订单类型', '状态', '顾问'];
|
||||
$columns2 = [];
|
||||
foreach ($levels as $k => $v) {
|
||||
$columns2[] = $v['label'];
|
||||
}
|
||||
$columns3 = count($columns2) ? array_merge($columns1, $columns2) : $columns1;
|
||||
$columns = array_merge($columns3, ['门店', '所选经销商', '地址']);
|
||||
return ['list' => $list, 'columns' => $columns];
|
||||
} else {
|
||||
return ['list' => $list, 'count' => $count];
|
||||
$columns = '';
|
||||
if ($page == 1) {
|
||||
$columns1 = [
|
||||
['prop' => 'id', 'label' => 'ID', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 45, 'fixed' => 'left'],
|
||||
['prop' => 'uname', 'label' => '姓名', 'showOverflowTooltip' => true, 'minWidth' => 60],
|
||||
['prop' => 'mobile', 'label' => '手机号', 'showOverflowTooltip' => true, 'minWidth' => 80],
|
||||
['prop' => 'itemTitle', 'label' => '商品标题', 'showOverflowTooltip' => true, 'minWidth' => 130],
|
||||
['prop' => 'totalPrice', 'label' => '订单价格', 'showOverflowTooltip' => true, 'minWidth' => 70, 'sortable' => 'custom'],
|
||||
['prop' => 'payTime', 'label' => '付款时间', 'showOverflowTooltip' => true, 'minWidth' => 100, 'sortable' => 'custom'],
|
||||
['prop' => 'createTime', 'label' => '创建时间', 'showOverflowTooltip' => true, 'minWidth' => 100, 'sortable' => 'custom'],
|
||||
['prop' => 'typeName', 'label' => '订单类型', 'showOverflowTooltip' => true, 'minWidth' => 70],
|
||||
['prop' => 'statusName', 'label' => '状态', 'showOverflowTooltip' => true, 'minWidth' => 70],
|
||||
['prop' => 'consultant', 'label' => '顾问', 'showOverflowTooltip' => true, 'minWidth' => 60]
|
||||
];
|
||||
$columns2 = [];
|
||||
foreach ($levels as $k => $v) {
|
||||
$columns2[] = ['prop' => $v['prop'], 'label' => $v['label'], 'showOverflowTooltip' => true, 'minWidth' => 80];
|
||||
}
|
||||
$columns = count($columns2) ? array_merge($columns1, $columns2) : $columns1;
|
||||
$columns[] = ['prop' => 'stores', 'label' => '门店', 'showOverflowTooltip' => true, 'minWidth' => 80];
|
||||
}
|
||||
return ['list' => $list, 'count' => $count, 'columns' => $columns];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ class GroupsStatistics extends BaseController
|
||||
$re_gro = $this->mdSyliveGroups->get(['activityId' => $activityId, 'groupsLevel' => $groupsLevel, 'status>=' => 0]);
|
||||
if ($re_gro) {
|
||||
$levelData[] = ['title' => $v['dictDataName'] . '统计', 'value' => $groupsLevel];
|
||||
$levels[] = ['label' => $v['dictDataName'], 'prop' => "levelName{$groupsLevel}"];
|
||||
$levels[] = "{$v['dictDataName']},$groupsLevel";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -466,11 +466,18 @@ class GroupsStatistics extends BaseController
|
||||
$order = $params['order'];
|
||||
$day = $params['day'];
|
||||
$itemId = intval($params['itemId']);//商品
|
||||
$levels = $params['levels'];
|
||||
!$page && $page = 1;
|
||||
!$limit && $limit = 10;
|
||||
$list = [];
|
||||
$count = 0;
|
||||
$re = $this->mdSyliveActivity->get(['activityId' => $activityId]);
|
||||
if ($levels && count($levels)) {
|
||||
foreach ($levels as $k => $v) {
|
||||
$arr_unit = explode(',', $v);
|
||||
$levels[$k] = ['label' => $arr_unit[0], 'prop' => "levelName{$arr_unit[1]}", 'levelId' => "levelId{$arr_unit[1]}"];
|
||||
}
|
||||
}
|
||||
if ($re) {
|
||||
$channelId = intval($re['channelId']);
|
||||
!$sort && $sort = 'browse';
|
||||
@@ -518,10 +525,7 @@ class GroupsStatistics extends BaseController
|
||||
["groupsId in({$str_groups})" => null, 'activityId' => $activityId, 'status>=' => 0]);
|
||||
foreach ($res as $v) {
|
||||
$bizId = intval($v['bizId']);
|
||||
$levelName1 = $levelName2 = $levelName3 = $bizName = '-';
|
||||
$map_groups[$v['levelId1']] && $levelName1 = $map_groups[$v['levelId1']];
|
||||
$map_groups[$v['levelId2']] && $levelName2 = $map_groups[$v['levelId2']];
|
||||
$map_groups[$v['levelId3']] && $levelName3 = $map_groups[$v['levelId3']];
|
||||
$bizName = '-';
|
||||
$map_groups[$bizId] && $bizName = $map_groups[$bizId];
|
||||
$where_sort['bizId'] = $bizId;
|
||||
if ($sort == 'browse') {
|
||||
@@ -563,9 +567,14 @@ class GroupsStatistics extends BaseController
|
||||
}
|
||||
}
|
||||
$consultantPer = number_format_com($consultant / $allConsultant * 100, 2, '') . '%';
|
||||
$list[] = ['levelName1' => $levelName1, 'levelName2' => $levelName2, 'levelName3' => $levelName3, 'bizName' => $bizName
|
||||
, 'consultant' => $consultant, 'allConsultant' => $allConsultant, 'consultantPer' => $consultantPer, 'browse' => $browse, 'subscribe' => $subscribe
|
||||
, 'watch' => $watch, 'order' => $orderTotal, 'livePV' => $livePV, 'watchDuration' => $watchDuration];
|
||||
$list1 = [];
|
||||
foreach ($levels as $k2 => $v2) {
|
||||
$levelId = $v2['levelId'];
|
||||
$list1[$v2['prop']] = $map_groups[$v[$levelId]] ? $map_groups[$v[$levelId]] : '';
|
||||
}
|
||||
$list2 = ['bizName' => $bizName, 'consultant' => $consultant, 'allConsultant' => $allConsultant, 'consultantPer' => $consultantPer
|
||||
, 'browse' => $browse, 'subscribe' => $subscribe, 'watch' => $watch, 'order' => $orderTotal, 'livePV' => $livePV, 'watchDuration' => $watchDuration];
|
||||
$list[] = count($list1) ? array_merge($list1, $list2) : $list2;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -621,10 +630,7 @@ class GroupsStatistics extends BaseController
|
||||
["groupsId in({$str_groups})" => null, 'activityId' => $activityId, 'status>=' => 0]);
|
||||
foreach ($res as $v) {
|
||||
$bizId = intval($v['bizId']);
|
||||
$levelName1 = $levelName2 = $levelName3 = $bizName = '-';
|
||||
$map_groups[$v['levelId1']] && $levelName1 = $map_groups[$v['levelId1']];
|
||||
$map_groups[$v['levelId2']] && $levelName2 = $map_groups[$v['levelId2']];
|
||||
$map_groups[$v['levelId3']] && $levelName3 = $map_groups[$v['levelId3']];
|
||||
$bizName = '-';
|
||||
if ($v['groupsName']) {
|
||||
$bizName = $v['groupsName'];
|
||||
} else {
|
||||
@@ -654,9 +660,14 @@ class GroupsStatistics extends BaseController
|
||||
$v['watch'] = intval($re['watch']);
|
||||
}
|
||||
$consultantPer = number_format_com($consultant / $allConsultant * 100, 2, '') . '%';
|
||||
$list[] = ['levelName1' => $levelName1, 'levelName2' => $levelName2, 'levelName3' => $levelName3, 'bizName' => $bizName
|
||||
, 'consultant' => $consultant, 'allConsultant' => $allConsultant, 'consultantPer' => $consultantPer, 'browse' => $v['browse'], 'subscribe' => $v['subscribe']
|
||||
, 'watch' => $v['watch'], 'order' => $order, 'livePV' => $livePV, 'watchDuration' => $watchDuration];
|
||||
$list1 = [];
|
||||
foreach ($levels as $k2 => $v2) {
|
||||
$levelId = $v2['levelId'];
|
||||
$list1[$v2['prop']] = $map_groups[$v[$levelId]] ? $map_groups[$v[$levelId]] : '';
|
||||
}
|
||||
$list2 = ['bizName' => $bizName, 'consultant' => $consultant, 'allConsultant' => $allConsultant, 'consultantPer' => $consultantPer
|
||||
, 'browse' => $v['browse'], 'subscribe' => $v['subscribe'], 'watch' => $v['watch'], 'order' => $order, 'livePV' => $livePV, 'watchDuration' => $watchDuration];
|
||||
$list[] = count($list1) ? array_merge($list1, $list2) : $list2;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -664,7 +675,27 @@ class GroupsStatistics extends BaseController
|
||||
if ($limit == 10000) {
|
||||
return $list;
|
||||
} else {
|
||||
return ['list' => $list, 'count' => $count];
|
||||
$columns = '';
|
||||
if ($page == 1) {
|
||||
$columns1 = [];
|
||||
foreach ($levels as $k => $v) {
|
||||
$columns1[] = ['prop' => $v['prop'], 'label' => $v['label'], 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 80];
|
||||
}
|
||||
$columns2 = [
|
||||
['prop' => 'bizName', 'label' => '门店', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 120],
|
||||
['prop' => 'consultant', 'label' => '参与顾问数', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 85],
|
||||
['prop' => 'allConsultant', 'label' => '全部顾问数', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 85],
|
||||
['prop' => 'consultantPer', 'label' => '开工率', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 75],
|
||||
['prop' => 'browse', 'label' => '浏览数(人)', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 115, 'sortable' => 'custom'],
|
||||
['prop' => 'subscribe', 'label' => '预约数(人)', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 115, 'sortable' => 'custom'],
|
||||
['prop' => 'watch', 'label' => '观看数(人)', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 115, 'sortable' => 'custom'],
|
||||
['prop' => 'order', 'label' => '订单数(单)', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 115, 'sortable' => 'custom'],
|
||||
['prop' => 'livePV', 'label' => '观看数(人次)', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 100, 'sortable' => 'custom'],
|
||||
['prop' => 'watchDuration', 'label' => '人均观看(分)', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 100, 'sortable' => 'custom'],
|
||||
];
|
||||
$columns = count($columns1) ? array_merge($columns1, $columns2) : $columns2;
|
||||
}
|
||||
return ['list' => $list, 'count' => $count, 'columns' => $columns];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -677,10 +708,17 @@ class GroupsStatistics extends BaseController
|
||||
$order = $params['order'];
|
||||
$day = $params['day'];
|
||||
$itemId = intval($params['itemId']);//商品
|
||||
$levels = $params['levels'];
|
||||
!$page && $page = 1;
|
||||
!$limit && $limit = 10;
|
||||
$list = [];
|
||||
$count = 0;
|
||||
if ($levels && count($levels)) {
|
||||
foreach ($levels as $k => $v) {
|
||||
$arr_unit = explode(',', $v);
|
||||
$levels[$k] = ['label' => $arr_unit[0], 'prop' => "levelName{$arr_unit[1]}", 'levelId' => "levelId{$arr_unit[1]}"];
|
||||
}
|
||||
}
|
||||
$re = $this->mdSyliveActivity->get(['activityId' => $activityId]);
|
||||
if ($re) {
|
||||
$channelId = intval($re['channelId']);
|
||||
@@ -732,10 +770,7 @@ class GroupsStatistics extends BaseController
|
||||
$map_user = $this->mdSyliveUser->map('userId', 'uname', ["userId in({$str_user})" => null]);
|
||||
foreach ($res as $v) {
|
||||
$cfUserId = intval($v['cfUserId']);
|
||||
$levelName1 = $levelName2 = $levelName3 = $bizName = $consultantName = '-';
|
||||
$map_groups[$v['levelId1']] && $levelName1 = $map_groups[$v['levelId1']];
|
||||
$map_groups[$v['levelId2']] && $levelName2 = $map_groups[$v['levelId2']];
|
||||
$map_groups[$v['levelId3']] && $levelName3 = $map_groups[$v['levelId3']];
|
||||
$bizName = $consultantName = '-';
|
||||
$map_groups[$v['bizId']] && $bizName = $map_groups[$v['bizId']];
|
||||
$map_user[$cfUserId] && $consultantName = $map_user[$cfUserId];
|
||||
$where_sort['cfUserId'] = $cfUserId;
|
||||
@@ -774,9 +809,14 @@ class GroupsStatistics extends BaseController
|
||||
$watchDuration = round($playDuration / $livePV);
|
||||
}
|
||||
}
|
||||
$list[] = ['levelName1' => $levelName1, 'levelName2' => $levelName2, 'levelName3' => $levelName3,
|
||||
'bizName' => $bizName, 'consultantName' => $consultantName, 'browse' => $browse,
|
||||
$list1 = [];
|
||||
foreach ($levels as $k2 => $v2) {
|
||||
$levelId = $v2['levelId'];
|
||||
$list1[$v2['prop']] = $map_groups[$v[$levelId]] ? $map_groups[$v[$levelId]] : '';
|
||||
}
|
||||
$list2 = ['bizName' => $bizName, 'consultantName' => $consultantName, 'browse' => $browse,
|
||||
'subscribe' => $subscribe, 'watch' => $watch, 'order' => $order, 'livePV' => $livePV, 'watchDuration' => $watchDuration];
|
||||
$list[] = count($list1) ? array_merge($list1, $list2) : $list2;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -818,10 +858,7 @@ class GroupsStatistics extends BaseController
|
||||
$map_user = $this->mdSyliveUser->map('userId', 'uname', ["userId in({$str_user})" => null]);
|
||||
foreach ($res as $v) {
|
||||
$cfUserId = intval($v['cfUserId']);
|
||||
$levelName1 = $levelName2 = $levelName3 = $bizName = $consultantName = '-';
|
||||
$map_groups[$v['levelId1']] && $levelName1 = $map_groups[$v['levelId1']];
|
||||
$map_groups[$v['levelId2']] && $levelName2 = $map_groups[$v['levelId2']];
|
||||
$map_groups[$v['levelId3']] && $levelName3 = $map_groups[$v['levelId3']];
|
||||
$bizName = $consultantName = '-';
|
||||
$map_groups[$v['bizId']] && $bizName = $map_groups[$v['bizId']];
|
||||
$map_user[$cfUserId] && $consultantName = $map_user[$cfUserId];
|
||||
if ($sort != 'order' && $itemId) {//有商品id,区分订单
|
||||
@@ -848,9 +885,14 @@ class GroupsStatistics extends BaseController
|
||||
$watchDuration = round($playDuration / $livePV);
|
||||
}
|
||||
}
|
||||
$list[] = ['levelName1' => $levelName1, 'levelName2' => $levelName2, 'levelName3' => $levelName3,
|
||||
'bizName' => $bizName, 'consultantName' => $consultantName, 'browse' => $browse,
|
||||
$list1 = [];
|
||||
foreach ($levels as $k2 => $v2) {
|
||||
$levelId = $v2['levelId'];
|
||||
$list1[$v2['prop']] = $map_groups[$v[$levelId]] ? $map_groups[$v[$levelId]] : '';
|
||||
}
|
||||
$list2 = ['bizName' => $bizName, 'consultantName' => $consultantName, 'browse' => $browse,
|
||||
'subscribe' => $subscribe, 'watch' => $watch, 'order' => $order, 'livePV' => $livePV, 'watchDuration' => $watchDuration];
|
||||
$list[] = count($list1) ? array_merge($list1, $list2) : $list2;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -858,7 +900,23 @@ class GroupsStatistics extends BaseController
|
||||
if ($limit == 10000) {
|
||||
return $list;
|
||||
} else {
|
||||
return ['list' => $list, 'count' => $count];
|
||||
$columns = '';
|
||||
if ($page == 1) {
|
||||
$columns1 = [];
|
||||
foreach ($levels as $k => $v) {
|
||||
$columns1[] = ['prop' => $v['prop'], 'label' => $v['label'], 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 80];
|
||||
}
|
||||
$columns2 = [
|
||||
['prop' => 'bizName', 'label' => '门店', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 120],
|
||||
['prop' => 'consultantName', 'label' => '顾问', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 90],
|
||||
['prop' => 'browse', 'label' => '浏览数(人)', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 120, 'sortable' => 'custom'],
|
||||
['prop' => 'subscribe', 'label' => '预约数(人)', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 120, 'sortable' => 'custom'],
|
||||
['prop' => 'watch', 'label' => '观看数(人)', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 120, 'sortable' => 'custom'],
|
||||
['prop' => 'order', 'label' => '订单数(单)', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 120, 'sortable' => 'custom'],
|
||||
];
|
||||
$columns = count($columns1) ? array_merge($columns1, $columns2) : $columns2;
|
||||
}
|
||||
return ['list' => $list, 'count' => $count, 'columns' => $columns];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -872,10 +930,17 @@ class GroupsStatistics extends BaseController
|
||||
$itemId = intval($params['itemId']);//商品
|
||||
$insiders = intval($params['insiders']);//内部人员
|
||||
$groupsId = intval($params['groupsId']);//分组id
|
||||
$levels = $params['levels'];
|
||||
!$page && $page = 1;
|
||||
!$limit && $limit = 10;
|
||||
$list = [];
|
||||
$count = 0;
|
||||
if ($levels && count($levels)) {
|
||||
foreach ($levels as $k => $v) {
|
||||
$arr_unit = explode(',', $v);
|
||||
$levels[$k] = ['label' => $arr_unit[0], 'prop' => "levelName{$arr_unit[1]}", 'levelId' => "levelId{$arr_unit[1]}"];
|
||||
}
|
||||
}
|
||||
$re = $this->mdSyliveActivity->get(['activityId' => $activityId]);
|
||||
if ($re) {
|
||||
$channelId = intval($re['channelId']);
|
||||
@@ -948,10 +1013,7 @@ class GroupsStatistics extends BaseController
|
||||
$cfUserId = intval($v['cfUserId']);
|
||||
$insiders = '否';//内部人员
|
||||
$createTime = $browseTime = $subscribeTime = $liveTime = $playDuration = $livePV = '';
|
||||
$nickname = $consultantName = $levelName1 = $levelName2 = $levelName3 = $bizName = '-';
|
||||
$map_groups[$v['levelId1']] && $levelName1 = $map_groups[$v['levelId1']];
|
||||
$map_groups[$v['levelId2']] && $levelName2 = $map_groups[$v['levelId2']];
|
||||
$map_groups[$v['levelId3']] && $levelName3 = $map_groups[$v['levelId3']];
|
||||
$nickname = $consultantName = $bizName = '-';
|
||||
$map_groups[$v['bizId']] && $bizName = $map_groups[$v['bizId']];
|
||||
$map_user[$cfUserId] && $consultantName = $map_user[$cfUserId]['uname'];
|
||||
$user = $map_user[$userId];
|
||||
@@ -977,17 +1039,41 @@ class GroupsStatistics extends BaseController
|
||||
$re_sum = $this->mdSyliveViewlog->sum('playDuration', ['userId' => $userId, 'activityId' => $activityId]);
|
||||
$re_sum['playDuration'] && $playDuration = ceil($re_sum['playDuration'] / 60);
|
||||
}
|
||||
$list[] = ['nickname' => $nickname, 'createTime' => $createTime, 'browseTime' => $browseTime, 'subscribeTime' => $subscribeTime,
|
||||
'consultantName' => $consultantName, 'levelName1' => $levelName1, 'levelName2' => $levelName2
|
||||
, 'levelName3' => $levelName3, 'bizName' => $bizName,
|
||||
'liveTime' => $liveTime, 'livePV' => $livePV, 'playDuration' => $playDuration, 'insiders' => $insiders];
|
||||
$list1 = [];
|
||||
foreach ($levels as $k2 => $v2) {
|
||||
$levelId = $v2['levelId'];
|
||||
$list1[$v2['prop']] = $map_groups[$v[$levelId]] ? $map_groups[$v[$levelId]] : '';
|
||||
}
|
||||
$list2 = ['bizName' => $bizName, 'nickname' => $nickname, 'createTime' => $createTime, 'browseTime' => $browseTime, 'subscribeTime' => $subscribeTime,
|
||||
'liveTime' => $liveTime, 'livePV' => $livePV, 'playDuration' => $playDuration, 'insiders' => $insiders, 'consultantName' => $consultantName];
|
||||
$list[] = count($list1) ? array_merge($list1, $list2) : $list2;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($limit == 10000) {
|
||||
return $list;
|
||||
} else {
|
||||
return ['list' => $list, 'count' => $count];
|
||||
$columns = '';
|
||||
if ($page == 1) {
|
||||
$columns1 = [];
|
||||
foreach ($levels as $k => $v) {
|
||||
$columns1[] = ['prop' => $v['prop'], 'label' => $v['label'], 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 80];
|
||||
}
|
||||
$columns2 = [
|
||||
['prop' => 'bizName', 'label' => '门店', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 110],
|
||||
['prop' => 'nickname', 'label' => '昵称', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 80],
|
||||
['prop' => 'createTime', 'label' => '创建时间', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 90],
|
||||
['prop' => 'browseTime', 'label' => '首次浏览时间', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 90],
|
||||
['prop' => 'subscribeTime', 'label' => '预约时间', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 90],
|
||||
['prop' => 'liveTime', 'label' => '首次观看时间', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 90],
|
||||
['prop' => 'playDuration', 'label' => '观看时长(分)', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 80],
|
||||
['prop' => 'livePV', 'label' => '观看次数', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 80],
|
||||
['prop' => 'insiders', 'label' => '内部人员', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 80],
|
||||
['prop' => 'consultantName', 'label' => '归属顾问', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 80],
|
||||
];
|
||||
$columns = count($columns1) ? array_merge($columns1, $columns2) : $columns2;
|
||||
}
|
||||
return ['list' => $list, 'count' => $count, 'columns' => $columns];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -80,6 +80,22 @@ class groupsWin extends BaseController
|
||||
$winType = $params['winType'];
|
||||
!$page && $page = 1;
|
||||
!$limit && $limit = 10;
|
||||
$levels = [];
|
||||
if ($page == 1) {
|
||||
$re_gro = $this->mdSyliveGroups->get(['activityId' => $activityId, 'parentId' => 0, 'status>=' => 0]);
|
||||
if ($re_gro['statisticsType']) {
|
||||
$this->load->model('market/Market_sys_dictionary_data_model', 'mdSysDictionaryData');
|
||||
$res_dit = $this->mdSysDictionaryData->select(['status>=' => 0, 'dictId' => $re_gro['statisticsType']], 'sortNumber asc,dictDataId desc'
|
||||
, 0, 0, 'dictDataCode,dictDataName');
|
||||
foreach ($res_dit as $k => $v) {
|
||||
$groupsLevel = intval($v['dictDataCode']);
|
||||
$re_gro = $this->mdSyliveGroups->get(['activityId' => $activityId, 'groupsLevel' => $groupsLevel, 'status>=' => 0]);
|
||||
if ($re_gro) {
|
||||
$levels[] = ['label' => $v['dictDataName'], 'prop' => "levelName{$groupsLevel}"];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$sort_order = 'winTime desc';
|
||||
if ($sort && $order) {
|
||||
$sort_order = $sort . ' ' . $order;
|
||||
@@ -124,13 +140,22 @@ class groupsWin extends BaseController
|
||||
, 'levelId1' => $v['levelId1'], 'levelId2' => $v['levelId2'], 'levelId3' => $v['levelId3']
|
||||
, 'bizId' => $v['bizId'], 'cfUserId' => $v['cfUserId']]);
|
||||
$winName = $winTypeAry[$v['winType']] ? $winTypeAry[$v['winType']] : '';
|
||||
$item = [
|
||||
$list1 = [
|
||||
'id' => $v['id'], 'sid' => $v['sid'], 'uname' => $v['uname'], 'mobile' => $v['mobile'], 'itemTitle' => $v['itemTitle']
|
||||
, 'totalPrice' => $v['totalPrice'], 'payTime' => $v['payTime'] != '0000-00-00 00:00:00' ? $v['payTime'] : ''
|
||||
, 'winTime' => $v['winTime'] ? $v['winTime'] : '', 'winName' => $winName
|
||||
, 'levelName1' => $consultant['levelName1'], 'levelName2' => $consultant['levelName2'], 'levelName3' => $consultant['levelName3']
|
||||
, 'stores' => $consultant['stores'], 'consultant' => $consultant['consultant']
|
||||
, 'winTime' => $v['winTime'] ? $v['winTime'] : '', 'winName' => $winName, 'consultant' => $consultant['consultant']
|
||||
];
|
||||
if ($limit == 10000) {
|
||||
unset($list1['id']);
|
||||
} else {
|
||||
unset($list1['sid']);
|
||||
}
|
||||
$list2 = [];
|
||||
foreach ($levels as $k2 => $v2) {
|
||||
$list2[$v2['prop']] = $consultant[$v2['prop']] ? $consultant[$v2['prop']] : '';
|
||||
}
|
||||
$item = count($list2) ? array_merge($list1, $list2) : $list1;
|
||||
$item['stores'] = $consultant['stores'];
|
||||
if ($limit == 10000) {
|
||||
$address = $biz = '';
|
||||
$jsondata = $v['jsondata'] ? json_decode($v['jsondata'], true) : [];
|
||||
@@ -140,16 +165,43 @@ class groupsWin extends BaseController
|
||||
if ($jsondata['biz']) {
|
||||
$biz = $jsondata['biz'];
|
||||
}
|
||||
$item['address'] = $address;
|
||||
$item['biz'] = $biz;
|
||||
$item['address'] = $address;
|
||||
}
|
||||
$list[] = $item;
|
||||
}
|
||||
}
|
||||
if ($limit == 10000) {
|
||||
return $list;
|
||||
$columns1 = ['订单号', '姓名', '手机号', '商品标题', '订单价格', '付款时间', '中奖时间', '中奖类型', '顾问'];
|
||||
$columns2 = [];
|
||||
foreach ($levels as $k => $v) {
|
||||
$columns2[] = $v['label'];
|
||||
}
|
||||
$columns3 = count($columns2) ? array_merge($columns1, $columns2) : $columns1;
|
||||
$columns = array_merge($columns3, ['门店', '所选经销商', '地址']);
|
||||
return ['list' => $list, 'columns' => $columns];
|
||||
} else {
|
||||
return ['list' => $list, 'count' => $count];
|
||||
$columns = '';
|
||||
if ($page == 1) {
|
||||
$columns1 = [
|
||||
['prop' => 'id', 'label' => 'ID', 'align' => 'center', 'showOverflowTooltip' => true, 'minWidth' => 45, 'fixed' => 'left'],
|
||||
['prop' => 'uname', 'label' => '姓名', 'showOverflowTooltip' => true, 'minWidth' => 60],
|
||||
['prop' => 'mobile', 'label' => '手机号', 'showOverflowTooltip' => true, 'minWidth' => 80],
|
||||
['prop' => 'itemTitle', 'label' => '商品标题', 'showOverflowTooltip' => true, 'minWidth' => 130],
|
||||
['prop' => 'totalPrice', 'label' => '订单价格', 'showOverflowTooltip' => true, 'minWidth' => 70, 'sortable' => 'custom'],
|
||||
['prop' => 'payTime', 'label' => '付款时间', 'showOverflowTooltip' => true, 'minWidth' => 100, 'sortable' => 'custom'],
|
||||
['prop' => 'winTime', 'label' => '中奖时间', 'showOverflowTooltip' => true, 'minWidth' => 100, 'sortable' => 'custom'],
|
||||
['prop' => 'winName', 'label' => '中奖类型', 'showOverflowTooltip' => true, 'minWidth' => 90],
|
||||
['prop' => 'consultant', 'label' => '顾问', 'showOverflowTooltip' => true, 'minWidth' => 60]
|
||||
];
|
||||
$columns2 = [];
|
||||
foreach ($levels as $k => $v) {
|
||||
$columns2[] = ['prop' => $v['prop'], 'label' => $v['label'], 'showOverflowTooltip' => true, 'minWidth' => 80];
|
||||
}
|
||||
$columns = count($columns2) ? array_merge($columns1, $columns2) : $columns1;
|
||||
$columns[] = ['prop' => 'stores', 'label' => '门店', 'showOverflowTooltip' => true, 'minWidth' => 80];
|
||||
}
|
||||
return ['list' => $list, 'count' => $count, 'columns' => $columns];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user