Files
liche/admin/controllers/app/licheb/Channel.php
T
2022-06-08 17:13:53 +08:00

215 lines
8.9 KiB
PHP

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Channel extends HD_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('app/licheb/App_licheb_users_model', 'mdUsers');
$this->load->model('app/licheb/App_licheb_channel_biz_model', 'mdChannelBiz');
$this->load->model('receiver/receiver_customers_model', 'mdCustomers');
$this->load->model('receiver/order/receiver_orders_model', 'mdOrders');
$this->load->model("biz/biz_model", 'mdBiz');
$this->load->model("area_model", 'mdArea');
}
//首页信息
public function index()
{
$this->lists();
}
//数据列表
public function lists()
{
$params = $this->input->get();
$params['page'] = $params['page'] ? intval($params['page']) : 1;
$params['size'] = $params['size'] ? intval($params['size']) : 50;
$lists = [];
$where = ['group_id' => 4, 'status' => 1, 'biz_id<>' => 0];
if ($params['uname']) {
$where['uname like "%' . $params['uname'] . '%"'] = null;
}
if ($params['mobile']) {
$where['mobile like "%' . $params['mobile'] . '%"'] = null;
}
$count = $this->mdUsers->count($where);
if ($count) {
$fileds = "id,uname,mobile,c_time";
$res = $this->mdUsers->select($where, "id desc", $params['page'], $params['size'], $fileds);
foreach ($res as $key => $value) {
$setValue = [];
$bizs = $this->db->select('lc_app_licheb_channel_biz.biz_id')
->join('lc_biz', 'lc_biz.id = lc_app_licheb_channel_biz.biz_id', 'left')
->where(['lc_app_licheb_channel_biz.uid' => $value['id'], 'lc_biz.status' => 1])
->count_all_results('lc_app_licheb_channel_biz');
if ($bizs > 0) {
$setValue['id'] = $value['id'];
$setValue['uname'] = $value['uname'];
$setValue['mobile'] = $value['mobile'];
$setValue['bizs'] = $bizs;
$setValue['c_time'] = date('Y-m-d H:i:s', $value['c_time']);
$lists[] = $setValue;
} else {
$count--;
}
}
}
$this->data['lists'] = $lists;
$this->data['params'] = $params;
$this->data['_title'] = '渠道列表';
$this->data['pager'] = array('count' => ceil($count / $params['size']), 'curr' => $params['page'], 'totle' => $count);
return $this->show_view('/app/licheb/channel/lists', true);
}
public function lists_biz()
{
$params = $this->input->get();
if (!$params['uid']) {
return $this->show_json(SYS_CODE_FAIL, '参数错误');
}
$params['page'] = $params['page'] ? intval($params['page']) : 1;
$params['size'] = $params['size'] ? intval($params['size']) : 20;
$result = $this->dataSelect($params);
$count = $result['count'];
$this->data['lists'] = $result['lists'];
$this->data['params'] = $result['params'];
$this->data['_title'] = $result['_title'];
$this->data['pager'] = array('count' => ceil($count / $params['size']), 'curr' => $params['page'], 'totle' => $count);
return $this->show_view('/app/licheb/channel/lists_biz', true);
}
private function dataSelect($params)
{
$lists = [];
$where['lc_biz.status'] = 1;
$_title = '门店列表';
if ($params['uid']) {
$where['lc_app_licheb_channel_biz.uid'] = $params['uid'];
$re = $this->mdUsers->get(array('id' => $params['uid']));
$re['uname'] && $_title = $re['uname'] . '_门店列表';
}
!$params['city_id'] && $params['city_id'] = '';
!$params['county_id'] && $params['county_id'] = '';
if ($params['biz_name']) {
$where['lc_biz.biz_name like "%' . $params['biz_name'] . '%"'] = null;
}
if ($params['city_id']) {
$where['lc_biz.city_id'] = $params['city_id'];
}
if ($params['county_id']) {
$where['lc_biz.county_id'] = $params['county_id'];
}
$count = $this->db->select('lc_app_licheb_channel_biz.biz_id')
->join('lc_biz', 'lc_biz.id = lc_app_licheb_channel_biz.biz_id', 'left')
->where($where)
->count_all_results('lc_app_licheb_channel_biz');
if ($count) {
$offset = ($params['page'] - 1) * $params['size'];
$limit = $params['size'];
$this->db->from('lc_app_licheb_channel_biz');
$this->db->join('lc_biz', "lc_biz.id = lc_app_licheb_channel_biz.biz_id", 'left');
$this->db->select('lc_biz.id,lc_biz.biz_name,lc_biz.county_id,lc_biz.c_time');
$this->db->where($where);
$this->db->order_by('lc_app_licheb_channel_biz.id Desc');
$this->db->limit($limit, $offset);
!$params['uid'] && $this->db->group_by('lc_app_licheb_channel_biz.biz_id');
$res = $this->db->get()->result_array();
$county_id_arr = array_unique(array_column($res, 'county_id'));
$Areas = $this->mdArea->get_map_by_county_ids($county_id_arr, 'city_name,county_name,county_id', 'county_id');
foreach ($res as $key => $value) {
$setValue = [];
$county = $Areas[$value['county_id']][0];
$setValue['biz_name'] = $value['biz_name'];
$setValue['county_name'] = $county ? $county['city_name'] . '-' . $county['county_name'] : '';
$setValue['wjkhs'] = $this->mdCustomers->count(['biz_id' => $value['id'], 'status' => 0, 'brand_id<>' => 3, 'biz_id<>' => 1]);
$setValue['dtkhs'] = $this->mdCustomers->count(['biz_id' => $value['id'], 'dt_time<>' => '0000-00-00 00:00:00', 'brand_id<>' => 3, 'biz_id<>' => 1]);
$setValue['ddkhs'] = $this->mdCustomers->count(['biz_id' => $value['id'], 'status' => 2, 'brand_id<>' => 3, 'biz_id<>' => 1]);
$setValue['zbkhs'] = $this->mdCustomers->count(['biz_id' => $value['id'], 'status' => 3, 'brand_id<>' => 3, 'biz_id<>' => 1]);
$setValue['orders'] = $this->mdOrders->count(['biz_id' => $value['id'], 'status>=' => 0, 'brand_id<>' => 3, 'biz_id<>' => 1]);
$setValue['days'] = round((time() - $value['c_time']) / 3600 / 24) . '天';
if (!$params['uid']) {
$this->db->from('lc_app_licheb_channel_biz');
$this->db->join('lc_app_licheb_users', "lc_app_licheb_users.id = lc_app_licheb_channel_biz.uid", 'left');
$this->db->select('lc_app_licheb_users.uname');
$this->db->where(['lc_app_licheb_channel_biz.biz_id' => $value['id']]);
$res_u = $this->db->get()->result_array();
$unames = $res_u ? implode(',', array_column($res_u, 'uname')) : '';
$setValue['uname'] = $unames;
}
$lists[] = $setValue;
}
}
$data['lists'] = $lists;
$data['params'] = $params;
$data['count'] = $count;
$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 = array();
$result = $this->dataSelect($params);
$fileName = $result['_title'] . '数据统计';
foreach ($result['lists'] as $key => $value) {
$temp['biz_name'] = $value['biz_name'];
$temp['county_name'] = $value['county_name'];
$temp['wjkhs'] = $value['wjkhs'];
$temp['dtkhs'] = $value['dtkhs'];
$temp['ddkhs'] = $value['ddkhs'];
$temp['zbkhs'] = $value['zbkhs'];
$temp['orders'] = $value['orders'];
$temp['days'] = $value['days'];
!$params['uid'] && $temp['uname'] = $value['uname'];
$data[] = $temp;
}
$indexs = [
'biz_name' => '门店',
'county_name' => '地区',
'wjkhs' => '未见客户数',
'dtkhs' => '到店客户数',
'ddkhs' => '订单客户数',
"zbkhs" => "战败客户数",
"orders" => "订单数",
"days" => "创建时间",
];
!$params['uid'] && $indexs['uname'] = "渠道经理";
array_unshift($data, $indexs);
$this->load->library('excel');
$this->excel->out_csv($data, $indexs, $fileName . "_" . date('YmdHis'));
}
}