Files
duolamaojiazhen/application/admin/controller/Chart.php
2025-12-22 13:59:40 +08:00

980 lines
33 KiB
PHP

<?php
namespace app\admin\controller;
use app\admin\logic\ChartLogic;
use think\Db;
/**
* 数据的统计
* Class Cache
* @package app\admin\controller
*/
class Chart extends AdminBase
{
/**
* 总订单数据统计
* Class Cache
* @package app\admin\controller
*/
public function order_chart()
{
if ($this->request->isAjax()) {
$get = input();
$year = empty($get['date']) ? date('Y') : $get['date'];
$_year = $year;
$year = $this->getYearStartAndEnd($year);
$data = [
'zdd'=>0,//总订单
'xse'=>0,//销售额
'ys'=>0,//已收
'ys2'=>0,//应收
'yxse'=>[],//月销售额
'xlph'=>[],//销量排行
'xszb'=>[],//销售占比
];
$zdd_where = [
['del','=',0],
['create_time','>=',$year['start_timestamp']],
['create_time','<=',$year['end_timestamp']],
];
$data['zdd'] = Db::name('order')->where($zdd_where)->count();
$data['xse'] = Db::name('order')->where($zdd_where)->sum('total_amount');
$data['ys'] = Db::name('order')->where($zdd_where)->where('pay_zd',1)->sum('total_amount');
$data['ys2'] = Db::name('order')->where($zdd_where)->where('pay_zd',0)->sum('total_amount');
$query = "
SELECT
m.month,
COALESCE(SUM(o.total_amount), 0) AS total_sales
FROM (
SELECT 1 AS month UNION ALL
SELECT 2 UNION ALL
SELECT 3 UNION ALL
SELECT 4 UNION ALL
SELECT 5 UNION ALL
SELECT 6 UNION ALL
SELECT 7 UNION ALL
SELECT 8 UNION ALL
SELECT 9 UNION ALL
SELECT 10 UNION ALL
SELECT 11 UNION ALL
SELECT 12
) m
LEFT JOIN ls_order o
ON MONTH(FROM_UNIXTIME(o.create_time)) = m.month
AND YEAR(FROM_UNIXTIME(o.create_time)) = :year
GROUP BY m.month
ORDER BY m.month;
";
$yxse_list = Db::query($query,['year'=>$_year]);
$yxse_data = [];
foreach ($yxse_list as $v){
$yxse_data[] = $v['total_sales'];
}
$yxse = [
'list'=>$yxse_list,
'data'=>$yxse_data
];
$data['yxse'] = $yxse;
$query = "
SELECT
goods_id,
SUM(total_amount) AS sales_count
FROM
ls_order
WHERE
create_time >= {$year['start_timestamp']}
AND
create_time <= {$year['end_timestamp']}
GROUP BY
goods_id
ORDER BY
sales_count DESC
";
$xlph_list = Db::query($query);
$xlph_data_data = [];
$xlph_data_goods = [];
foreach ($xlph_list as $v){
$xlph_data_data[] = $v['sales_count'];
$xlph_data_goods[] = Db::name('goods')->where('id',$v['goods_id'])->value('name');
}
$xlph_data = [
'goods'=>$xlph_data_goods,
'data'=>$xlph_data_data
];
$xlph = [
'list'=>$xlph_list,
'data'=>$xlph_data
];
$data['xlph'] =$xlph;
//销售占比
$query = "
SELECT
admin_id,
SUM(total_amount) AS sales_count
FROM
ls_order
WHERE
create_time >= {$year['start_timestamp']}
AND
create_time <= {$year['end_timestamp']}
GROUP BY
admin_id
ORDER BY
sales_count DESC
";
$xszb_list = Db::query($query);
$xszb_data_data = [];
$xszb_data_goods = [];
foreach ($xszb_list as $v){
$xszb_data_data[] = $v['sales_count'];
$name = Db::name('admin')->where('id',$v['admin_id'])->value('name');
$xszb_data_goods[] = $name?$name:'其它';
}
// $xszb_data = [
// 'goods'=>$xszb_data_goods,
// 'data'=>$xszb_data_data
// ];
$xszb_data = [];
foreach ($xszb_data_goods as $k=>$v){
$xszb_data[] = ['value'=>$xszb_data_data[$k],'name'=>$v];
}
$xszb = [
'list'=>$xszb_list,
'data'=>$xszb_data
];
$data['xszb'] =$xszb;
$this->_success('获取成功',$data);
}
return $this->fetch();
}
function getYearStartAndEnd($year) {
// 创建年份的开始时间
$startDateTime = new \DateTime("$year-01-01 00:00:00");
$startTimestamp = $startDateTime->getTimestamp();
// 创建年份的结束时间
$endDateTime = new \DateTime("$year-12-31 23:59:59");
$endTimestamp = $endDateTime->getTimestamp();
return [
'start' => $startDateTime,
'end' => $endDateTime,
'start_timestamp' => $startTimestamp,
'end_timestamp' => $endTimestamp,
];
}
/**
* 财务中心数据统计
* Class Cache
* @package app\admin\controller
*/
public function finance_chart()
{
if ($this->request->isAjax()) {
$get = input();
$year = empty($get['date']) ? date('Y') : $get['date'];
$admin_id = empty($get['admin_id']) ?null : $get['admin_id'];
$admin_id2 = empty($get['admin_id2']) ?null : $get['admin_id2'];
$admin_id4 = empty($get['admin_id4']) ?null : $get['admin_id4'];
$_year = $year;
$year = $this->getYearStartAndEnd($year);
$data = [
'zdd'=>0,//总订单
'xse'=>0,//销售额
'ys'=>0,//已收
'ys2'=>0,//应收
'xse_ys'=>[],//销售额-应收-已收
];
$zdd_where = [
['del','=',0],
['create_time','>=',$year['start_timestamp']],
['create_time','<=',$year['end_timestamp']],
];
$data['zdd'] = Db::name('order')->where($zdd_where)->count();
$data['xse'] = Db::name('order')->where($zdd_where)->sum('total_amount');
$data['ys'] = Db::name('order')->where($zdd_where)->where('pay_zd',0)->sum('total_amount');
$data['ys2'] = Db::name('order')->where($zdd_where)->where('pay_zd',1)->sum('total_amount');
//销售额-应收-已收
$query = "
SELECT
m.month,
COALESCE(SUM(o.total_amount), 0) AS total_sales
FROM (
SELECT 1 AS month UNION ALL
SELECT 2 UNION ALL
SELECT 3 UNION ALL
SELECT 4 UNION ALL
SELECT 5 UNION ALL
SELECT 6 UNION ALL
SELECT 7 UNION ALL
SELECT 8 UNION ALL
SELECT 9 UNION ALL
SELECT 10 UNION ALL
SELECT 11 UNION ALL
SELECT 12
) m
LEFT JOIN ls_order o
ON MONTH(FROM_UNIXTIME(o.create_time)) = m.month
AND YEAR(FROM_UNIXTIME(o.create_time)) = :year
GROUP BY m.month
ORDER BY m.month;
";
$xse_list = Db::query($query,['year'=>$_year]);
$xse_data = [];
$xse = [];
foreach ($xse_list as $v){
$xse_data[] = $v['total_sales'];
}
$xse['xse'] = $xse_data;
$query = "
SELECT
o.pay_zd,
m.month,
COALESCE(SUM(o.total_amount), 0) AS total_sales
FROM (
SELECT 1 AS month UNION ALL
SELECT 2 UNION ALL
SELECT 3 UNION ALL
SELECT 4 UNION ALL
SELECT 5 UNION ALL
SELECT 6 UNION ALL
SELECT 7 UNION ALL
SELECT 8 UNION ALL
SELECT 9 UNION ALL
SELECT 10 UNION ALL
SELECT 11 UNION ALL
SELECT 12
) m
LEFT JOIN ls_order o
ON MONTH(FROM_UNIXTIME(o.create_time)) = m.month
AND YEAR(FROM_UNIXTIME(o.create_time)) = :year
AND o.pay_zd = 0
GROUP BY m.month
ORDER BY m.month;
";
$xse_list = Db::query($query,['year'=>$_year]);
$xse_ys_data = [];
foreach ($xse_list as $v){
$xse_ys_data[] = $v['total_sales'];
}
$xse['ys2'] =$xse_ys_data;
$query = "
SELECT
o.pay_zd,
m.month,
COALESCE(SUM(o.total_amount), 0) AS total_sales
FROM (
SELECT 1 AS month UNION ALL
SELECT 2 UNION ALL
SELECT 3 UNION ALL
SELECT 4 UNION ALL
SELECT 5 UNION ALL
SELECT 6 UNION ALL
SELECT 7 UNION ALL
SELECT 8 UNION ALL
SELECT 9 UNION ALL
SELECT 10 UNION ALL
SELECT 11 UNION ALL
SELECT 12
) m
LEFT JOIN ls_order o
ON MONTH(FROM_UNIXTIME(o.create_time)) = m.month
AND YEAR(FROM_UNIXTIME(o.create_time)) = :year
AND o.pay_zd = 1
GROUP BY m.month
ORDER BY m.month;
";
$xse_list = Db::query($query,['year'=>$_year]);
$xse_ys_data = [];
foreach ($xse_list as $v){
$xse_ys_data[] = $v['total_sales'];
}
$xse['ys'] =$xse_ys_data;
$data['xse_ys'] = $xse;
//客户渠道 channel_id
$query = "
SELECT
channel_id,
SUM(total_amount) AS value
FROM
ls_order
WHERE
create_time >= {$year['start_timestamp']}
AND
create_time <= {$year['end_timestamp']}
GROUP BY
channel_id
ORDER BY
value DESC
";
if($admin_id2){
$query = "
SELECT
channel_id,
SUM(total_amount) AS value
FROM
ls_order
WHERE
create_time >= {$year['start_timestamp']}
AND
create_time <= {$year['end_timestamp']}
AND admin_id = $admin_id2
GROUP BY
channel_id
ORDER BY
value DESC
";
}
$qd_list = Db::query($query);
foreach ($qd_list as $k=>$v){
$name = Db::name('orderchannel')->where('id',$v['channel_id'])->value('name');
$qd_list[$k]['name'] = $name?$name:'其它';
}
$data['qd'] = $qd_list;
//第二个客户渠道
//客户渠道 channel_id
$query = "
SELECT
brand_id,
count(*) AS value
FROM
ls_user_address
WHERE
createtime >= {$year['start_timestamp']}
AND
createtime <= {$year['end_timestamp']}
GROUP BY
brand_id
ORDER BY
value DESC
";
if($admin_id4){
$query = "
SELECT
brand_id,
count(*) AS value
FROM
ls_user_address
WHERE
createtime >= {$year['start_timestamp']}
AND
createtime <= {$year['end_timestamp']}
AND admin_id = $admin_id4
GROUP BY
brand_id
ORDER BY
value DESC
";
}
$qd2_list = Db::query($query);
foreach ($qd2_list as $k=>$v){
$name = Db::name('staffchannel')->where('id',$v['brand_id'])->value('name');
$qd2_list[$k]['name'] = $name?$name:'其它';
}
$data['qd2'] = $qd2_list;
//月目标完成率// 获取当前日期
$currentDate = new \DateTime();
// 获取当前月份的第一天
$firstDayOfMonth = new \DateTime($currentDate->format('Y-m-01 00:00:00'));
// 获取当前月份的最后一天
$lastDayOfMonth = new \DateTime($currentDate->format('Y-m-t 23:59:59'));
// 获取时间戳
$firstDayTimestamp = $firstDayOfMonth->getTimestamp();
$lastDayTimestamp = $lastDayOfMonth->getTimestamp();
$query = "
SELECT
admin_id,
SUM(total_amount) AS price
FROM
ls_order
WHERE
create_time >= {$firstDayTimestamp}
AND
create_time <= {$lastDayTimestamp}
AND pay_status = 1
GROUP BY
admin_id
ORDER BY
price DESC
";
$mb_list = Db::query($query);
foreach ($mb_list as $k=>$v){
$m = Db::name('admin')->where('id',$v['admin_id'])->find();
if($m){
$mb_list[$k]['index'] = $k+1;
$mb_list[$k]['name'] = $m['name'];
$mb_list[$k]['mb'] = $m['mb'];
$m_where = [
['admin_id','=',$v['admin_id']],
['create_time','>=',$firstDayTimestamp],
['create_time','<=',$lastDayTimestamp],
['pay_status','=',1]
];
$mb_list[$k]['num'] = Db::name('order')->where($m_where)->count('*');
$lv = round($v['price']/$m['mb'],2)*100;
$mb_list[$k]['lv'] = $lv.'%';
}else{
unset($mb_list[$k]);
}
}
$data['ymb'] = $mb_list;
//年卡销量情况
$ka = [
['value'=>'','name'=>'单次服务'],
['value'=>'','name'=>'年卡销量'],
['value'=>'','name'=>'次卡销量'],
['value'=>'','name'=>'其它服务'],
];
$ka_where = [
['del','=',0],
['create_time','>=',$year['start_timestamp']],
['create_time','<=',$year['end_timestamp']],
];
if($admin_id){
$ka_where[] = ['admin_id','=',$admin_id];
}
$ka[0]['value'] = Db::name('order')->where($ka_where)->where([
['number','=',1]
])->sum('total_amount');
$ka[1]['value'] = Db::name('order')->where($ka_where)->where([
['number','>',6]
])->sum('total_amount');
$ka[2]['value'] = Db::name('order')->where($ka_where)->where([
['number','>=',2],
['number','<=',6]
])->sum('total_amount');
$ka[3]['value'] = Db::name('order')->where($ka_where)->where([
['number','=',0]
])->sum('total_amount');
$data['ka'] = $ka;
$this->_success('获取成功',$data);
}
$admin = Db::name('admin')->where('root',0)->select();
$st = empty($input['st']) ? date('Y-m-d') : $input['st'];
$et = empty($input['et']) ? date('Y-m').'-31' : $input['et'];
$this->assign('st',$st);
$this->assign('et',$et);
$st = strtotime($st);
$et = strtotime($et);
$this->assign('admin',$admin);
return $this->fetch();
}
//按时间区间
public function date_range(){
//默认本月
$input = input();
$st = empty($input['st']) ? date('Y-m-d') : $input['st'];
$et = empty($input['et']) ? date('Y-m').'-31 23:59:59' : ($input['et'].' 23:59:59');
$admin_id = empty($input['admin_id']) ?null : $input['admin_id'];
$st = strtotime($st);
$et = strtotime($et);
// echo $st;
// echo '=';
// echo $et;
$data = [
'cn'=>[]
];
//产能
$cn = [];
//客户渠道 channel_id
$query = "
SELECT
admin_id,
SUM(number) AS value
FROM
ls_order
WHERE
create_time >= {$st}
AND
create_time <= {$et}
GROUP BY
admin_id
ORDER BY
value DESC
";
$cn_list = Db::query($query);
$cn_where = [
['create_time','>=',$st],
['create_time','<=',$et]
];
foreach ($cn_list as $k=>$v){
$cn_list[$k]['index'] =$k+1;
$fw = 0;
$yc = 0;
$fw_order_sn = Db::name('order')->where($cn_where)->where('admin_id',$v['admin_id'])->column('order_sn');
if(!empty($fw_order_sn)){
$fw = Db::name('order_exe')->whereIn('order_sn',$fw_order_sn)->where('staff_status',3)->count();
$yc = Db::name('order_exe')->whereIn('order_sn',$fw_order_sn)->where('abnormal',1)->count();
}
$name = Db::name('admin')->where('id',$v['admin_id'])->value('name');
$cn_list[$k]['name'] =$name ? $name:'其它';
// $cn_list[$k]['fw_sn'] = $fw_order_sn;
$cn_list[$k]['fw'] = $fw;
$cn_list[$k]['yc'] = $yc;
$cn_list[$k]['sy'] = $v['value']-$fw;
$cn_list[$k]['$fw_order_sn'] = $fw_order_sn;
//加时
$js = 0;
if(!empty($fw_order_sn)){
$js_exe_ids = Db::name('order_exe')->whereIn('order_sn',$fw_order_sn)->column('id');
$js = Db::name('order_timeadd')->whereIn('orderid',$js_exe_ids)->where('status',2)->sum('minute');
}
$cn_list[$k]['js'] = $js;
//报销
$bx = 0;
if(!empty($fw_order_sn)){
$yq_exe_ids = Db::name('order_exe')->whereIn('order_sn',$fw_order_sn)->column('id');
//报销
if(!empty($yq_exe_ids)){
$bx = Db::name('finance')->whereIn('order_id',$yq_exe_ids)->where('status',2)->sum('pay');
}
}
$cn_list[$k]['bx'] = $bx;
}
$data['cn'] = $cn_list;
//圆圈
$yq = [
'dd'=>0,//订单量
'fw'=>0,
'sy'=>0,
'bx'=>0,
'js'=>0
];
if($admin_id){
$cn_where[] = ['admin_id','=',$admin_id];
}
$yq['dd'] = Db::name('order')->where($cn_where)->sum('number');
$fw_order_sn = Db::name('order')->where($cn_where)->column('order_sn');
$yq['fw'] = Db::name('order_exe')->whereIn('order_sn',$fw_order_sn)->where('staff_status',3)->count();
$yq['sy'] = $yq['dd'] - $yq['fw'];
//加时
$yq_exe_ids = Db::name('order_exe')->whereIn('order_sn',$fw_order_sn)->column('id');
$yq['js'] = Db::name('order_timeadd')->whereIn('orderid',$yq_exe_ids)->where('status',2)->sum('minute');
//报销
$yq['bx'] = Db::name('finance')->whereIn('order_id',$yq_exe_ids)->where('status',2)->sum('pay');
//异常
$yq['yc'] = Db::name('order_exe')->whereIn('order_sn',$fw_order_sn)->where('abnormal',1)->count();
$yq_data = [
['name'=>'总订单量','value'=> $yq['dd']],
['name'=>'服务量','value'=> $yq['fw']],
['name'=>'剩余量','value'=> $yq['sy']],
['name'=>'报销数量','value'=> $yq['bx']],
['name'=>'加时数量','value'=> $yq['js']],
['name'=>'异常','value'=> $yq['yc']],
];
$data['yq'] = $yq_data;
//卡
$ka = [
['value'=>'','name'=>'单次服务'],
['value'=>'','name'=>'年卡销量'],
['value'=>'','name'=>'次卡销量'],
['value'=>'','name'=>'其它服务'],
];
$ka_where = [
['del','=',0],
['create_time','>=',$st],
['create_time','<=',$et],
];
if($admin_id){
$ka_where[] = ['admin_id','=',$admin_id];
}
$ka[0]['value'] = Db::name('order')->where($ka_where)->where([
['number','=',1]
])->sum('total_amount');
$ka[1]['value'] = Db::name('order')->where($ka_where)->where([
['number','>',6]
])->sum('total_amount');
$ka[2]['value'] = Db::name('order')->where($ka_where)->where([
['number','>=',2],
['number','<=',6]
])->sum('total_amount');
$ka[3]['value'] = Db::name('order')->where($ka_where)->where([
['number','=',0]
])->sum('total_amount');
$data['ka'] = $ka;
//排行
$ph = [];
if($admin_id){
$query = "
SELECT
goods_id,
SUM(total_amount) AS value
FROM
ls_order
WHERE
create_time >= {$st}
AND
create_time <= {$et}
AND admin_id = $admin_id
GROUP BY
goods_id
ORDER BY
value DESC
";
}else{
$query = "
SELECT
goods_id,
SUM(total_amount) AS value
FROM
ls_order
WHERE
create_time >= {$st}
AND
create_time <= {$et}
GROUP BY
goods_id
ORDER BY
value DESC
";
}
$ph_list = Db::query($query);
$ph_name = [];
$ph_value = [];
foreach ($ph_list as $k=>$v){
$ph_value[] = $v['value'];
$ph_name[] = Db::name('goods')->where('id',$v['goods_id'])->value('name');
}
$data['ph'] = [
'name'=>$ph_name,
'value'=>$ph_value
];
$this->_success('获取成功',$data);
}
public function orderexe_chart(){
$input = input();
$st = empty($input['st']) ? date('Y-m-d') : $input['st'];
$et = empty($input['et']) ? date('Y-m-d') : $input['et'];
$this->assign('st',$st);
$this->assign('et',$et);
$et = $et.' 23:59:59';
$st = strtotime($st);
$et = strtotime($et);
if ($this->request->isAjax()) {
$data = [
'fwzl'=>0,
'yfwl'=>0,
'wpdl'=>0,
'ycddl'=>0,
'fwqd'=>[]
];
$fwzl_where = [
['create_time','>=',$st],
['create_time','<=',$et],
['pay_status','=',1]
];
$yfwl_where = [
['autotime','>=',$st],
['autotime','<=',$et],
];
$data['fwzl'] = Db::name('order')->where($fwzl_where)->sum('number');
$data['yfwl'] = Db::name('order_exe')->where($yfwl_where)->where('staff_status',3)->count();
//剩余量
$data['sycs'] = $data['fwzl'] - $data['yfwl'];
$query = "
SELECT
count(*)
FROM
ls_order_exe
WHERE
(autotime >= {$st}
AND
autotime <= {$et})
AND
(
staff_status IS NULL
OR
staff_status = 0
)
";
$num = Db::query($query);
if(!empty($num[0]['count(*)'])){
$data['wpdl'] = $num[0]['count(*)'];
}
//服务渠道
$query = "
SELECT
channel_id,
SUM(number) AS value
FROM
ls_order
WHERE
create_time >= {$st}
AND
create_time <= {$et}
AND
pay_status = 1
GROUP BY
channel_id
ORDER BY
value DESC
";
$fwqd_list = Db::query($query);
foreach ($fwqd_list as $k=>$v){
$name = Db::name('orderchannel')->where('id',$v['channel_id'])->value('name');
$fwqd_list[$k]['name'] = $name?$name:'其它 ';
}
$data['fwqd'] = $fwqd_list;
//已服务订单
$query = "
SELECT
channel_id,
count(*) AS value
FROM
ls_order_exe
WHERE
autotime >= {$st}
AND
autotime <= {$et}
AND
staff_status = 3
GROUP BY
channel_id
ORDER BY
value DESC
";
$yfw_list = Db::query($query);
foreach ($yfw_list as $k=>$v){
$name = Db::name('orderchannel')->where('id',$v['channel_id'])->value('name');
$yfw_list[$k]['name'] = $name?$name:'其它 ';
}
$data['yfw'] = $yfw_list;
//未消耗订单
$query = "
SELECT
channel_id,
sum(number) AS value
FROM
ls_order
WHERE
create_time >= {$st}
AND
create_time <= {$et}
AND
pay_status = 1
GROUP BY
channel_id
ORDER BY
value DESC
";
$wxh_list = Db::query($query);
$wxh_where = [
['create_time','>=',$st],
['create_time','<=',$et],
['pay_status','=',1]
];
$wxh_order_sn = Db::name('order')->where($wxh_where)->column('order_sn');
$wxh_order_sn = implode(',',$wxh_order_sn);
$query = "
SELECT
channel_id,
count(*) AS value
FROM
ls_order_exe
WHERE order_sn IN($wxh_order_sn)
AND
staff_status = 3
GROUP BY
channel_id
ORDER BY
value DESC
";
$wxh_list2 = Db::query($query);
foreach ($wxh_list as $k=>$v){
//channel_id
foreach ($wxh_list2 as $k2=>$v2){
if($v['channel_id'] == $v2['channel_id']){
$wxh_list[$k]['value'] = $v['value'] - $v2['value'];
}
}
}
foreach ($wxh_list as $k=>$v){
$name = Db::name('orderchannel')->where('id',$v['channel_id'])->value('name');
$wxh_list[$k]['name'] = $name?$name:'其它 ';
}
$data['wxh'] = $wxh_list;
//产能低于多次
function getnum($num = 1,$st,$et){
$user_where = [
['createtime','>=',$st],
['createtime','<=',$et],
];
$mobiles = Db::name('user_address')->where($user_where)->column('telephone');
if($num == 1) {
$num_where = [
['number','<=',6]
];
}else{
$num_where = [
['number','>',6]
];
}
$cn_list = Db::table('ls_order')
->field('count(*) as num,order_sn,mobile, sum(number) AS value')
->whereIn('mobile', $mobiles)
->where('create_time', '>=', $st)
->where('create_time', '<=', $et)
->where($num_where) //
->where('pay_status', 1)
->group('order_sn')
->order('value', 'DESC')
->select();
$cn_order_sn = [];
foreach ($cn_list as $v){
$cn_order_sn[] = $v['order_sn'];
}
if(empty($cn_order_sn)) return 0;
$cn_order_sn = implode(',',$cn_order_sn);
$query = "
SELECT
order_sn,
count(*) AS value
FROM
ls_order_exe
WHERE order_sn IN ($cn_order_sn)
AND
staff_status = 3
GROUP BY
order_sn
ORDER BY
value DESC
";
$cn_list2 = Db::query($query);
foreach ($cn_list as $k=>$v){
//channel_id
foreach ($cn_list2 as $k2=>$v2){
if($v['order_sn'] == $v2['order_sn']){
$cn_list[$k]['value'] = $v['value'] - $v2['value'];
}
}
}
//次卡低于2次
foreach ($cn_list as $k=>$v){
if($v['value'] >= 2){
unset($cn_list[$k]);
}
}
//user_address
$cn2 = 0;
$cn_list_mobile = [];
foreach ($cn_list as $k=>$v){
$cn_list_mobile[] = $v['mobile'];
}
return Db::name('user_address')->where($user_where)->whereIn('telephone',$cn_list_mobile)->count();
}
$data['cn'] = [
['name'=>'年卡低于3次','value'=>getnum(2,$st,$et)],
['name'=>'次卡低于2次','value'=>getnum(1,$st,$et)]
];
$this->_success('获取成功',$data);
}
return $this->fetch();
}
}