524 lines
26 KiB
PHP
524 lines
26 KiB
PHP
<?php
|
||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||
|
||
/**
|
||
* Notes:狸车宝顾问_日志
|
||
* Created on: 2022/4/15 16:43
|
||
* Created by: dengbw
|
||
*/
|
||
class Userslog extends HD_Controller
|
||
{
|
||
private $tabAry = [1 => '客户统计', 2 => '回访统计'];
|
||
|
||
public function __construct()
|
||
{
|
||
parent::__construct();
|
||
$this->load->model('app/licheb/app_licheb_users_model', 'mdUsers');
|
||
$this->load->model('app/licheb/app_licheb_users_log_model', 'mdUsersLog');
|
||
$this->load->model('app/licheb/app_licheb_bizs_log_model', 'mdBizsLog');
|
||
$this->load->model('receiver/receiver_customers_visit_sales_model', 'mdCustomerVisitSales');
|
||
$this->load->model('receiver/receiver_customers_model', 'mdCustomers');
|
||
$this->load->model("biz/biz_model", 'mdBiz');
|
||
$this->load->model('area_model', 'mdArea');
|
||
}
|
||
|
||
public function index()
|
||
{
|
||
return $this->lists();
|
||
}
|
||
|
||
public function lists()
|
||
{
|
||
$params = $this->input->get();
|
||
$params['page'] = $params['page'] ? intval($params['page']) : 1;
|
||
$params['size'] = $params['size'] ? intval($params['size']) : 20;
|
||
$data = $this->dataBizSelect($params);
|
||
$data['typeAry'] = $this->mdBiz->type_ary();
|
||
$this->data = $data;
|
||
$this->show_view('app/licheb/userslog/lists', true);
|
||
}
|
||
|
||
public function lists_users()
|
||
{
|
||
$params = $this->input->get();
|
||
$params['page'] = $params['page'] ? intval($params['page']) : 1;
|
||
$params['size'] = $params['size'] ? intval($params['size']) : 20;
|
||
$params['tab'] = $params['tab'] ? intval($params['tab']) : 1;
|
||
if ($params['tab'] == 2) {
|
||
$view = 'app/licheb/userslog/lists_visit';
|
||
$data = $this->visitSelect($params);
|
||
} else {
|
||
$view = 'app/licheb/userslog/lists_users';
|
||
$data = $this->dataUsersSelect($params);
|
||
}
|
||
$data['tabAry'] = $this->tabAry;
|
||
$this->data = $data;
|
||
$this->show_view($view, true);
|
||
}
|
||
|
||
private function dataBizSelect($params)
|
||
{
|
||
$lists = $where = $where_c = $where_dt = [];
|
||
$same_day = 0;
|
||
if ($params['time']) {
|
||
$time = explode(' ~ ', $params['time']);
|
||
$time[0] == $time[1] && $same_day = 1;
|
||
if ($time[0]) {
|
||
$where["log_date>="] = $time[0];
|
||
$where_c["c_time>="] = strtotime("{$time[0]} 00:00:00");
|
||
$where_dt["dt_time>="] = "{$time[0]} 00:00:00";
|
||
}
|
||
if ($time[1]) {
|
||
$where["log_date<="] = $time[1];
|
||
$where_c["c_time<="] = strtotime("{$time[1]} 23:59:59");
|
||
$where_dt["dt_time<="] = "{$time[1]} 23:59:59";
|
||
}
|
||
} else {
|
||
$where_c["c_time>="] = strtotime("2022-04-15 00:00:00");
|
||
$where_dt["dt_time>="] = "2022-04-15 00:00:00";
|
||
}
|
||
//门店搜索
|
||
if (!$same_day && ($params['type'] || $params['biz_id'] || $params['city_id'] || $params['county_id'])) {
|
||
$where_cdt['status'] = 1;
|
||
$params['type'] && $where_cdt['type'] = $params['type'];
|
||
$params['biz_id'] && $where_cdt['id'] = $params['biz_id'];
|
||
$params['city_id'] && $where_cdt['city_id'] = $params['city_id'];
|
||
$params['county_id'] && $where_cdt['county_id'] = $params['county_id'];
|
||
$res_biz = $this->mdBiz->select($where_cdt, 'id desc', 0, 0, 'id');
|
||
if ($res_biz) {
|
||
$str_ids = implode(',', array_column($res_biz, 'id'));
|
||
$where_c["biz_id in ({$str_ids})"] = null;
|
||
$where_dt["biz_id in ({$str_ids})"] = null;
|
||
} else {
|
||
$where_c['biz_id'] = -2;
|
||
$where_dt['biz_id'] = -2;
|
||
}
|
||
}
|
||
if ($params['type']) {
|
||
$where["type"] = $params['type'];
|
||
} else {
|
||
$params['type'] = '';
|
||
}
|
||
if ($params['biz_id']) {
|
||
$where['biz_id'] = $params['biz_id'];
|
||
} else if ($params['city_id']) {
|
||
$where_biz['status'] = 1;
|
||
$params['city_id'] && $where_biz['city_id'] = $params['city_id'];
|
||
$params['county_id'] && $where_biz['county_id'] = $params['county_id'];
|
||
$res_biz = $this->mdBiz->select($where_biz, 'id desc', 0, 0, 'id');
|
||
if ($res_biz) {
|
||
$str_ids = implode(',', array_column($res_biz, 'id'));
|
||
$where["biz_id in ({$str_ids})"] = null;
|
||
} else {
|
||
$where['biz_id'] = -2;
|
||
}
|
||
} else {
|
||
$params['city_id'] = '';
|
||
$params['county_id'] = '';
|
||
$params['biz_id'] = '';
|
||
}
|
||
$total = $this->mdBizsLog->count($where);
|
||
$offlineSources = $this->mdCustomers->offlineSources();
|
||
if ($total) {
|
||
$res = $this->mdBizsLog->select($where, "id desc", $params['page'], $params['size']);
|
||
if ($res) {
|
||
$str_ids = implode(',', array_unique(array_column($res, 'biz_id')));
|
||
$map_biz = $this->mdBiz->map('id', 'biz_name', ["id in ({$str_ids})" => null]);
|
||
foreach ($res as $v) {
|
||
$biz_name = $biz_type = $customer_info = $c_num_info = $order_info = '';
|
||
$customers = $c_num = $orders = 0;
|
||
$map_biz[$v['biz_id']] && $biz_name = $params['size'] == 10000 ? $map_biz[$v['biz_id']] : "<a href=\"javascript:void(0);\"
|
||
data-open=\"/app/licheb/userslog/lists_users?tab=1&biz_id={$v['biz_id']}&time={$v['log_date']} ~ {$v['log_date']}\">
|
||
{$map_biz[$v['biz_id']]}</a>";
|
||
$temp = ['biz_name' => $biz_name, 'defeats' => $v['defeats']
|
||
, 't_num' => $v['t_num'], 'orders' => $v['orders']
|
||
, 'bills' => $v['bills'], 'reassigns' => $v['reassigns'], 'receives' => $v['receives']
|
||
, 'qy_adds' => $v['qy_adds'], 'log_date' => $v['log_date']];
|
||
$customer_json = $v['customer_json'] ? json_decode($v['customer_json'], true) : [];
|
||
$c_num_json = $v['customer_json'] ? json_decode($v['c_num_json'], true) : [];
|
||
$order_json = $v['customer_json'] ? json_decode($v['order_json'], true) : [];
|
||
foreach ($offlineSources as $key1 => $value1) {
|
||
$nums = intval($v['customer_' . $key1]);
|
||
$nums_c_num = intval($v['c_num_' . $key1]);
|
||
$nums_orders = intval($v['order_' . $key1]);
|
||
if ($nums) {
|
||
$customers += $nums;
|
||
if ($params['size'] != 10000) {
|
||
if ($customer_info) {
|
||
$customer_info .= "<br>{$value1['name']}:{$nums}";
|
||
} else {
|
||
$customer_info = "<br>{$value1['name']}:{$nums}";
|
||
}
|
||
}
|
||
}
|
||
if ($nums_c_num) {
|
||
$c_num += $nums_c_num;
|
||
if ($params['size'] != 10000) {
|
||
if ($c_num_info) {
|
||
$c_num_info .= "<br>{$value1['name']}:{$nums_c_num}";
|
||
} else {
|
||
$c_num_info = "<br>{$value1['name']}:{$nums_c_num}";
|
||
}
|
||
}
|
||
}
|
||
if ($nums_orders) {
|
||
$orders += $nums_orders;
|
||
if ($params['size'] != 10000) {
|
||
if ($order_info) {
|
||
$order_info .= "<br>{$value1['name']}:{$nums_orders}";
|
||
} else {
|
||
$order_info = "<br>{$value1['name']}:{$nums_orders}";
|
||
}
|
||
}
|
||
}
|
||
if ($params['size'] == 10000) {//导出使用
|
||
$temp['customer_' . $key1] = $nums;
|
||
$temp['c_num_' . $key1] = $nums_c_num;
|
||
$temp['order_' . $key1] = $nums_orders;
|
||
foreach ($value1['list'] as $key2 => $value2) {
|
||
$temp['customer_' . $key2] = intval($customer_json[$key1]['list'][$key2]['num']);
|
||
$temp['c_num_' . $key2] = intval($c_num_json[$key1]['list'][$key2]['num']);
|
||
$temp['order_' . $key2] = intval($order_json[$key1]['list'][$key2]['num']);
|
||
}
|
||
}
|
||
}
|
||
$temp['customers'] = $customer_info ? "总数:{$customers}{$customer_info}" : $customers;
|
||
$temp['c_num'] = $c_num_info ? "总数:{$c_num}{$c_num_info}" : $c_num;
|
||
$temp['orders'] = $order_info ? "总数:{$orders}{$order_info}" : $orders;
|
||
$lists[] = $temp;
|
||
}
|
||
}
|
||
}
|
||
if ($params['size'] != 10000) {
|
||
$customers = $c_num = $orders = 0;
|
||
$customers_info = $c_num_info = $orders_info = '';
|
||
foreach ($offlineSources as $k => $v) {
|
||
if ($same_day) {
|
||
$sum2 = $this->mdUsersLog->sum("customer_{$k}", $where);//客户数
|
||
if ($sum2['customer_' . $k]) {//客户数
|
||
$customers += $sum2['customer_' . $k];
|
||
$customers_info .= "<br>{$v['name']}:{$sum2['customer_'.$k]}";
|
||
}
|
||
$sum2 = $this->mdUsersLog->sum("c_num_{$k}", $where);//进店人数
|
||
if ($sum2['c_num_' . $k]) {
|
||
$c_num += $sum2['c_num_' . $k];
|
||
$c_num_info .= "<br>{$v['name']}:{$sum2['c_num_'.$k]}";
|
||
}
|
||
} else {
|
||
$count2 = $this->mdCustomers->count(array_merge($where_c, ['of_id' => $k]));//客户数
|
||
if ($count2) {
|
||
$customers += $count2;
|
||
$customers_info .= "<br>{$v['name']}:{$count2}";
|
||
}
|
||
$count2 = $this->mdCustomers->count(array_merge($where_dt, ['of_id' => $k]));//进店人数
|
||
if ($count2) {
|
||
|
||
$c_num += $count2;
|
||
$c_num_info .= "<br>{$v['name']}:{$count2}";
|
||
}
|
||
}
|
||
$sum2 = $this->mdUsersLog->sum("order_{$k}", $where);//订单数
|
||
if ($sum2['order_' . $k]) {
|
||
$orders += $sum2['order_' . $k];
|
||
$orders_info .= "<br>{$v['name']}:{$sum2['order_'.$k]}";
|
||
}
|
||
}
|
||
$menus[] = ['title' => "客户数", 'note' => $customers ? "总数:{$customers}{$customers_info}" : '0人'];
|
||
$menus[] = ['title' => "进店人数", 'note' => $c_num ? "总数:{$c_num}{$c_num_info}" : '0人'];
|
||
$menus[] = ['title' => "订单数", 'note' => $orders ? "总数:{$orders}{$orders_info}" : '0个'];
|
||
$sum = $this->mdUsersLog->sum('t_num', $where);
|
||
$menus[] = ['title' => "试驾数", 'value' => intval($sum['t_num']), 'tag' => '次'];
|
||
$sum = $this->mdUsersLog->sum('defeats', $where);
|
||
$menus[] = ['title' => "战败数", 'value' => intval($sum['defeats']), 'tag' => '个'];
|
||
$sum = $this->mdUsersLog->sum('bills', $where);
|
||
$menus[] = ['title' => "开票数", 'value' => intval($sum['bills']), 'tag' => '个'];
|
||
$sum = $this->mdUsersLog->sum('qy_adds', $where);
|
||
$menus[] = ['title' => "企微数", 'value' => intval($sum['qy_adds']), 'tag' => '人'];
|
||
$sum = $this->mdUsersLog->sum('reassigns', $where);
|
||
$menus[] = ['title' => "改派数", 'value' => intval($sum['reassigns']), 'tag' => '个'];
|
||
$sum = $this->mdUsersLog->sum('receives', $where);
|
||
$menus[] = ['title' => "接收数", 'value' => intval($sum['receives']), 'tag' => '个'];
|
||
$data['menus'] = $menus;
|
||
}
|
||
$data['pager'] = array('count' => ceil($total / $params['size']), 'curr' => $params['page'], 'totle' => $total);
|
||
$data['lists'] = $lists;
|
||
$data['params'] = $params;
|
||
$data['_title'] = "门店日志";
|
||
return $data;
|
||
}
|
||
|
||
private function dataUsersSelect($params)
|
||
{
|
||
$_title = '顾问日志';
|
||
$lists = $where = [];
|
||
if ($params['uname']) {
|
||
$where["sale_id in(select id from lc_app_licheb_users where uname like '%{$params['uname']}%')"] = null;
|
||
}
|
||
if ($params['biz_id']) {
|
||
$where['biz_id'] = $params['biz_id'];
|
||
$re_biz = $this->mdBiz->get(['id' => $params['biz_id']]);
|
||
$re_biz && $_title = $re_biz['biz_name'] . '_顾问日志';
|
||
}
|
||
if ($params['time']) {
|
||
$time = explode(' ~ ', $params['time']);
|
||
$time[0] && $where["log_date>="] = $time[0];
|
||
$time[1] && $where["log_date<="] = $time[1];
|
||
}
|
||
$total = $this->mdUsersLog->count($where);
|
||
if ($total) {
|
||
$res = $this->mdUsersLog->select($where, "log_date desc,id desc", $params['page'], $params['size']);
|
||
$sale_ids = [];
|
||
foreach ($res as $v) {
|
||
$v['sale_id'] && !in_array($v['sale_id'], $sale_ids) && $sale_ids[] = $v['sale_id'];
|
||
}
|
||
$map_sale = [];
|
||
if ($sale_ids) {
|
||
$str_ids = implode(',', $sale_ids);
|
||
$map_sale = $this->mdUsers->map('id', 'uname', ["id in ({$str_ids})" => null]);
|
||
}
|
||
$offlineSources = $this->mdCustomers->offlineSources();
|
||
foreach ($res as $v) {
|
||
$uname = $map_sale[$v['sale_id']] ? $map_sale[$v['sale_id']] : '';
|
||
$temp = ['uname' => $uname, 't_num' => $v['t_num'], 'defeats' => $v['defeats'], 'bills' => $v['bills']
|
||
, 'qy_adds' => $v['qy_adds'], 'qy_dels' => $v['qy_dels'], 'log_date' => $v['log_date']];
|
||
$customer_json = $v['customer_json'] ? json_decode($v['customer_json'], true) : [];
|
||
$c_num_json = $v['customer_json'] ? json_decode($v['c_num_json'], true) : [];
|
||
$order_json = $v['customer_json'] ? json_decode($v['order_json'], true) : [];
|
||
$customers = $c_num = $orders = 0;
|
||
foreach ($offlineSources as $key1 => $value1) {
|
||
$nums = intval($v['customer_' . $key1]);
|
||
$nums_c_num = intval($v['c_num_' . $key1]);
|
||
$nums_orders = intval($v['order_' . $key1]);
|
||
$nums && $customers += $nums;
|
||
$nums_c_num && $c_num += $nums_c_num;
|
||
$nums_orders && $orders += $nums_orders;
|
||
if ($params['size'] == 10000) {//导出使用
|
||
$temp['customer_' . $key1] = $nums;
|
||
$temp['c_num_' . $key1] = $nums_c_num;
|
||
$temp['order_' . $key1] = $nums_orders;
|
||
foreach ($value1['list'] as $key2 => $value2) {
|
||
$temp['customer_' . $key2] = intval($customer_json[$key1]['list'][$key2]['num']);
|
||
$temp['c_num_' . $key2] = intval($c_num_json[$key1]['list'][$key2]['num']);
|
||
$temp['order_' . $key2] = intval($order_json[$key1]['list'][$key2]['num']);
|
||
}
|
||
}
|
||
}
|
||
$temp['customers'] = $customers;
|
||
$temp['c_num'] = $c_num;
|
||
$temp['orders'] = $orders;
|
||
$lists[] = $temp;
|
||
}
|
||
}
|
||
if ($params['size'] != 10000) {
|
||
$sum = $this->mdUsersLog->sum('customers', $where);
|
||
$menus[] = ['title' => "客户数", 'value' => intval($sum['customers']), 'tag' => '人'];
|
||
$sum_c = $this->mdUsersLog->sum('c_num', $where);
|
||
$menus[] = ['title' => "进店人数", 'value' => intval($sum_c['c_num']), 'tag' => '人'];
|
||
$sum = $this->mdUsersLog->sum('orders', $where);
|
||
$menus[] = ['title' => "订单数", 'value' => intval($sum['orders']), 'tag' => '个'];
|
||
$sum = $this->mdUsersLog->sum('t_num', $where);
|
||
$menus[] = ['title' => "试驾数", 'value' => intval($sum['t_num']), 'tag' => '次'];
|
||
$sum = $this->mdUsersLog->sum('defeats', $where);
|
||
$menus[] = ['title' => "战败数", 'value' => intval($sum['defeats']), 'tag' => '个'];
|
||
$sum = $this->mdUsersLog->sum('bills', $where);
|
||
$menus[] = ['title' => "开票数", 'value' => intval($sum['bills']), 'tag' => '个'];
|
||
$sum = $this->mdUsersLog->sum('qy_adds', $where);
|
||
$menus[] = ['title' => "新增企微", 'value' => intval($sum['qy_adds']), 'tag' => '人'];
|
||
$sum = $this->mdUsersLog->sum('qy_dels', $where);
|
||
$menus[] = ['title' => "删除企微", 'value' => intval($sum['qy_dels']), 'tag' => '人'];
|
||
$data['menus'] = $menus;
|
||
}
|
||
$data['pager'] = array('count' => ceil($total / $params['size']), 'curr' => $params['page'], 'totle' => $total);
|
||
$data['lists'] = $lists;
|
||
$data['params'] = $params;
|
||
$data['_title'] = $_title;
|
||
return $data;
|
||
}
|
||
|
||
public function visitSelect($params)
|
||
{
|
||
$_title = '顾问日志';
|
||
$lists = $where = [];
|
||
if ($params['uname']) {
|
||
$where["sales_id in(select id from lc_app_licheb_users where uname like '%{$params['uname']}%')"] = null;
|
||
}
|
||
if ($params['biz_id']) {
|
||
$where['biz_id'] = $params['biz_id'];
|
||
$re_biz = $this->mdBiz->get(['id' => $params['biz_id']]);
|
||
$re_biz && $_title = $re_biz['biz_name'] . '_顾问日志';
|
||
}
|
||
if ($params['time']) {
|
||
$time = explode(' ~ ', $params['time']);
|
||
$time[0] && $where["t_day>="] = $time[0];
|
||
$time[1] && $where["t_day<="] = $time[1];
|
||
}
|
||
$total = $this->mdCustomerVisitSales->count($where);
|
||
if ($total) {
|
||
$res = $this->mdCustomerVisitSales->select($where, "t_day desc,id desc", $params['page'], $params['size']);
|
||
$sales_ids = [];
|
||
foreach ($res as $v) {
|
||
$v['sales_id'] && !in_array($v['sales_id'], $sales_ids) && $sales_ids[] = $v['sales_id'];
|
||
}
|
||
$map_sale = [];
|
||
if ($sales_ids) {
|
||
$str_ids = implode(',', $sales_ids);
|
||
$map_sale = $this->mdUsers->map('id', 'uname', ["id in ({$str_ids})" => null]);
|
||
}
|
||
foreach ($res as $v) {
|
||
$uname = '';
|
||
$map_sale[$v['sales_id']] && $uname = $map_sale[$v['sales_id']];
|
||
$follows = $v['t_follows'] + $v['h_follows'] + $v['w_follows'];
|
||
$temp = ['uname' => $uname, 'follows' => $follows, 't_follows' => $v['t_follows']
|
||
, 'h_follows' => $v['h_follows'], 'w_follows' => $v['w_follows'], 't_day' => $v['t_day']];
|
||
$lists[] = $temp;
|
||
}
|
||
}
|
||
if ($params['size'] != 10000) {
|
||
$sum_h = $this->mdCustomerVisitSales->sum('h_follows', $where);
|
||
$sum_t = $this->mdCustomerVisitSales->sum('t_follows', $where);
|
||
$sum_w = $this->mdCustomerVisitSales->sum('w_follows', $where);
|
||
$sum = $sum_h['h_follows'] + $sum_t['t_follows'] + $sum_w['w_follows'];
|
||
$menus[] = ['title' => "计划跟进数", 'value' => intval($sum), 'tag' => '个'];
|
||
$menus[] = ['title' => "已跟进数", 'value' => intval($sum_h['h_follows']), 'tag' => '个'];
|
||
$menus[] = ['title' => "新增未跟进数", 'value' => intval($sum_t['t_follows']), 'tag' => '个'];
|
||
$menus[] = ['title' => "逾期未跟进数", 'value' => intval($sum_w['w_follows']), 'tag' => '个'];
|
||
$data['menus'] = $menus;
|
||
}
|
||
$data['pager'] = array('count' => ceil($total / $params['size']), 'curr' => $params['page'], 'totle' => $total);
|
||
$data['lists'] = $lists;
|
||
$data['params'] = $params;
|
||
$data['_title'] = $_title;
|
||
return $data;
|
||
}
|
||
|
||
public function get()
|
||
{
|
||
}
|
||
|
||
public function add()
|
||
{
|
||
}
|
||
|
||
public function edit()
|
||
{
|
||
}
|
||
|
||
public function del()
|
||
{
|
||
}
|
||
|
||
|
||
public function batch()
|
||
{
|
||
}
|
||
|
||
public function export()
|
||
{
|
||
$params = $this->input->get();
|
||
$params['page'] = 1;
|
||
$params['size'] = 10000;
|
||
$data = $indexs = [];
|
||
$this->load->library('excel');
|
||
if ($params['tab'] == 1) {//客户统计
|
||
$res = $this->dataUsersSelect($params);
|
||
$offlineSources = $this->mdCustomers->offlineSources();
|
||
$fileName = $res['_title'] . '_' . $this->tabAry[$params['tab']] . "_" . date('YmdHis');
|
||
$list[1] = ['顾问', '日期', '客户数', '进店人数', '订单数', '试驾数', '战败数', '开票数', '新增企微', '删除企微'];
|
||
$list[2] = ['顾问', '日期', '客户数'];
|
||
$list[3] = ['顾问', '日期', '进店人数'];
|
||
$list[4] = ['顾问', '日期', '订单数'];
|
||
foreach ($offlineSources as $k1 => $v1) {
|
||
$list[2][] = "【{$v1['name']}】";
|
||
$list[3][] = "【{$v1['name']}】";
|
||
$list[4][] = "【{$v1['name']}】";
|
||
foreach ($v1['list'] as $k2 => $v2) {
|
||
$list[2][] = $v2;
|
||
$list[3][] = $v2;
|
||
$list[4][] = $v2;
|
||
}
|
||
}
|
||
//第一条标题
|
||
$sheet['总览'][] = $list[1];
|
||
$sheet['客户'][] = $list[2];
|
||
$sheet['进店'][] = $list[3];
|
||
$sheet['订单'][] = $list[4];
|
||
foreach ($res['lists'] as $k => $v) {
|
||
$list[1] = [$v['uname'], $v['log_date'], $v['customers'], $v['c_num'], $v['orders'], $v['t_num'], $v['defeats']
|
||
, $v['bills'], $v['qy_adds'], $v['qy_dels']];
|
||
$list[2] = [$v['uname'], $v['log_date'], $v['customers']];
|
||
$list[3] = [$v['uname'], $v['log_date'], $v['c_num']];
|
||
$list[4] = [$v['uname'], $v['log_date'], $v['orders']];
|
||
foreach ($offlineSources as $k2 => $v2) {
|
||
$list[2][] = $v['customer_' . $k2];
|
||
$list[3][] = $v['c_num_' . $k2];
|
||
$list[4][] = $v['order_' . $k2];
|
||
foreach ($v2['list'] as $k3 => $v3) {
|
||
$list[2][] = $v['customer_' . $k3];
|
||
$list[3][] = $v['c_num_' . $k3];
|
||
$list[4][] = $v['order_' . $k3];
|
||
}
|
||
}
|
||
$sheet['总览'][] = $list[1];
|
||
$sheet['客户'][] = $list[2];
|
||
$sheet['进店'][] = $list[3];
|
||
$sheet['订单'][] = $list[4];
|
||
}
|
||
$this->excel->exportExcel($sheet, $fileName);
|
||
} else if ($params['tab'] == 2) {//回访统计
|
||
$res = $this->visitSelect($params);
|
||
$indexs = ['biz_name' => '门店', 'uname' => '顾问', 'follows' => '计划跟进数', 'h_follows' => '已跟进数'
|
||
, 't_follows' => '今日新增未跟进数', 'w_follows' => '逾期未跟进数', 't_day' => '日期'];
|
||
$fileName = $res['_title'] . '_' . $this->tabAry[$params['tab']];
|
||
foreach ($res['lists'] as $key => $value) {
|
||
$data[] = $value;
|
||
}
|
||
array_unshift($data, $indexs);
|
||
$this->excel->out_csv($data, $indexs, $fileName . "_" . date('YmdHis'));
|
||
} else {//门店统计
|
||
$res = $this->dataBizSelect($params);
|
||
$offlineSources = $this->mdCustomers->offlineSources();
|
||
$fileName = $res['_title'] . "_" . date('YmdHis');
|
||
$list[1] = ['门店', '日期', '客户数', '进店人数', '订单数', '试驾数', '战败数', '开票数', '企微数', '改派数', '接收数'];
|
||
$list[2] = ['门店', '日期', '客户数'];
|
||
$list[3] = ['门店', '日期', '进店人数'];
|
||
$list[4] = ['门店', '日期', '订单数'];
|
||
foreach ($offlineSources as $k1 => $v1) {
|
||
$list[2][] = "【{$v1['name']}】";
|
||
$list[3][] = "【{$v1['name']}】";
|
||
$list[4][] = "【{$v1['name']}】";
|
||
foreach ($v1['list'] as $k2 => $v2) {
|
||
$list[2][] = $v2;
|
||
$list[3][] = $v2;
|
||
$list[4][] = $v2;
|
||
}
|
||
}
|
||
//第一条标题
|
||
$sheet['总览'][] = $list[1];
|
||
$sheet['客户'][] = $list[2];
|
||
$sheet['进店'][] = $list[3];
|
||
$sheet['订单'][] = $list[4];
|
||
foreach ($res['lists'] as $k => $v) {
|
||
$list[1] = [$v['biz_name'], $v['log_date'], $v['customers'], $v['c_num'], $v['orders'], $v['t_num'], $v['defeats']
|
||
, $v['bills'], $v['qy_adds'], $v['reassigns'], $v['receives']];
|
||
$list[2] = [$v['biz_name'], $v['log_date'], $v['customers']];
|
||
$list[3] = [$v['biz_name'], $v['log_date'], $v['c_num']];
|
||
$list[4] = [$v['biz_name'], $v['log_date'], $v['orders']];
|
||
foreach ($offlineSources as $k2 => $v2) {
|
||
$list[2][] = $v['customer_' . $k2];
|
||
$list[3][] = $v['c_num_' . $k2];
|
||
$list[4][] = $v['order_' . $k2];
|
||
foreach ($v2['list'] as $k3 => $v3) {
|
||
$list[2][] = $v['customer_' . $k3];
|
||
$list[3][] = $v['c_num_' . $k3];
|
||
$list[4][] = $v['order_' . $k3];
|
||
}
|
||
}
|
||
$sheet['总览'][] = $list[1];
|
||
$sheet['客户'][] = $list[2];
|
||
$sheet['进店'][] = $list[3];
|
||
$sheet['订单'][] = $list[4];
|
||
}
|
||
$this->excel->exportExcel($sheet, $fileName);
|
||
}
|
||
}
|
||
} |