assign('start_time',$begin);
$this->assign('end_time',$end);
$this->begin = strtotime($begin);
$this->end = strtotime($end)/*+86399*/;
mlog($this->begin.' '.$this->end.' 2',"report");
$this->assign('timegap',date('Y-m-d h:m:s',$this->begin).' - '.date('Y-m-d h:m:s',$this->end));
}
//销售统计首页
public function index()
{
//统计的时间默认2个月前的数据
$lastweek = date('Y-m-d', strtotime("-1 month"));//60天前
$begin = I('begin', $lastweek) . ' 00:00:00';
$this->assign('start_time', $begin);
$GoodsLogic = new GoodsLogic();
$brandList = $GoodsLogic->getSortBrands();
$categoryList = $GoodsLogic->getSortCategory();
$this->assign('categoryList', $categoryList);
$this->assign('brandList', $brandList);
$getsearch_field=cache_new("Report","index","search_field:".getAdmStoId()."_".getAdminId()."");
if ($getsearch_field) {
$this->assign('search_field', $getsearch_field);
}
else
{
$search_field = array();
$search_field['add_time'] = "单据日期";
$search_field['erp_givetime'] = "POS调单时间";
$search_field['order_sn'] = "订单号";
$search_field['exp_type'] = "配送方式";
$search_field['order_status'] = "订单状态";
$search_field['pay_name'] = "支付方式";
$search_field['num'] = "总数量";
$search_field['all_order_amount'] = "总金额";
$this->assign('search_field', json_encode($search_field));
}
return $this->fetch('', getAdmStoId());
}
//ajax调用销售统计
public function ajaxindex()
{
$p = I('p/d', 1);
$start = ($p - 1) * 20;
$res = [];
$count = '';
$total_sel = 0;
$end_time = '';
$start_time = '';
$where1 = '';
$coutwhere = '';
//时间
// var_dump($timegap);die;
//订单编号
$order_sn = I('get.order_sn');
$pickup_name = I('get.pickup_name');
//快递单号
$expressno = I('get.expressno');
//会员信息
$vipinfo = I('get.vipinfo');
//门店id
$pickup_id = I('get.pickup_id');
$pickup_name1 = I('get.pickup_name1');
$pickup_name = I('get.pickup_name');
//订单状态
$order_status = I('order_status');
//支付方式
$pay_name = I('get.pay_name');
//商品名称
$goods_name = I('get.goods_name');
//配送方式
$exp_type = I('get.exp_type');
//汇总查询
$total_sel = I('total_sel');
//商品id
$goods_id = I('goods_id');
//商品品类、品牌
$cat_id = I('cat_id');
$brand_id = I('brand_id');
//订单分类
$prom_type = I('prom_type');
$order_type = I('order_type');
//时间查询
$timetype = I('timetype');
$search_field= I('search_field');
if ($search_field) {
cache_new("Report","index","search_field:".getAdmStoId()."_".getAdminId()."",json_encode($search_field),TPSHOP_CACHE_TIME);
$this->assign('search_field', json_decode($search_field, true));
}
$where = [];
$join = [];
$where1 = " a.store_id=" . getAdmStoId() . " and ";
$c_field = null;
$tjarr = null;
//销售概况
/*$today1=I('today1');*/
switch ($total_sel) {
case 0: //汇总查询
$field = 'c.pickup_no,c.pickup_name,d.vipname,a.consignee,a.address,a.more_address,a.expressno,a.integral_money,a.coupon_price,a.user_money,a.is_zsorder,a.order_id,a.pay_code,a.order_status,a.shipping_status,a.add_time,a.erp_givetime,a.order_sn,a.exp_type,a.pay_status,a.pt_status,pay_name,a.total_amount,a.pickup_id,a.expressno,a.order_amount,a.user_money,a.integral,sum(b.warenum)num';
$field.=",(a.order_prom_amount+a.discount_amount) as youhui,a.user_note,sum(a.order_amount+a.user_money+a.pt_tail_money)all_order_amount";
$group = 'a.order_id';
$c_field = "count(distinct(a.order_id))cou,sum(total_amount)max1,sum(b.warenum)max2,sum(order_amount+user_money+pt_tail_money) max3";
$join = [
['(SELECT order_id,sum(goods_num)warenum FROM wxd_order_goods WHERE store_id=' . getAdmStoId() . ' GROUP BY order_id) b', 'a.order_id=b.order_id', 'left'],
['(SELECT * FROM wxd_pick_up WHERE store_id=' . getAdmStoId() . ') c', 'a.pickup_id=c.pickup_id', 'left'],
['(SELECT mobile,user_id,vipname from wxd_users where store_id=' . getAdmStoId() . ') d', 'a.user_id=d.user_id', 'left']
];
break;
case 1://按单号汇总
$field = 'a.is_zsorder,a.order_id,a.pay_code,a.order_status,a.shipping_status,a.add_time,a.erp_givetime,a.order_sn,a.exp_type,a.pay_status,a.pt_status,pay_name,a.total_amount,a.pickup_id,a.expressno,a.order_amount,a.user_money,a.integral,sum(b.warenum)num,a.user_note,sum(total_amount)all_total_amount,sum(a.order_amount+a.user_money+a.pt_tail_money)all_order_amount';
$c_field = "count(distinct(a.order_id))cou,sum(a.total_amount)max1,sum(b.warenum)max2,sum(a.order_amount+a.user_money+a.pt_tail_money) max3";
$join = [
['(SELECT order_id,sum(goods_num)warenum FROM wxd_order_goods WHERE store_id=' . getAdmStoId() . ' GROUP BY order_id) b', 'a.order_id=b.order_id', 'left'],
];
$group = 'a.order_id';
break;
case 2: //按门店汇总
$field = 'c.pickup_no,c.pickup_name,count(1)num,sum(b.warenum)warenum,a.user_note,sum(a.total_amount)all_total_amount,sum(a.order_amount+a.user_money+a.pt_tail_money)all_order_amount';
$c_field = "count(distinct(c.pickup_no))cou,count(distinct(a.order_id))ordernum,sum(a.total_amount)max1,sum(b.warenum)max2,sum(a.order_amount+a.user_money+a.pt_tail_money) max3";
$join = [
['(SELECT order_id,sum(goods_num)warenum FROM wxd_order_goods WHERE store_id=' . getAdmStoId() . ' GROUP BY order_id) b', 'a.order_id=b.order_id', 'left'],
['(SELECT * FROM wxd_pick_up WHERE store_id=' . getAdmStoId() . ') c', 'a.pickup_id=c.pickup_id', 'left']
];
$group = 'c.pickup_no';
break;
case 3: //按商品汇总
$field = 'b.goods_name,b.goods_sn,b.goods_price,e.shop_price,sum(b.goods_num)num,sum(b.goods_price*b.goods_num)all_total_amount,sum(e.shop_price*b.goods_num) all_order_amount';
$c_field = "count(distinct(CONCAT(b.goods_sn,b.goods_name,cast(b.goods_price as CHAR(50)),cast(e.shop_price as CHAR(50)))))cou,sum(b.goods_price*b.goods_num)max1,sum(b.goods_num)max2,sum(e.shop_price*b.goods_num) max3";
$join = [
['(SELECT * FROM wxd_order_goods WHERE store_id=' . getAdmStoId() . ') b', 'a.order_id=b.order_id', 'left'],
['(SELECT * FROM wxd_pick_up WHERE store_id=' . getAdmStoId() . ') c', 'a.pickup_id=c.pickup_id', 'left'],
['(SELECT * FROM wxd_goods WHERE store_id=' . getAdmStoId() . ') e', 'e.goods_id=b.goods_id', 'left']
];
$where['a.pay_status'] = 1;
$group = 'b.goods_sn,b.goods_name,b.goods_price,e.shop_price';
break;
case 4: //按配送汇总
$field = 'a.exp_type,count(1)num,sum(a.shipping_price)shipping_price,sum(b.warenum)warenum ';
$group = 'a.exp_type';
$c_field = "count(distinct(a.exp_type))cou,count(distinct(a.order_id))ordernum,sum(total_amount)max1,sum(b.warenum)max2,sum(order_amount+user_money+pt_tail_money) max3,sum(a.shipping_price) shipping_price";
$join = [
['(SELECT order_id,sum(goods_num)warenum FROM wxd_order_goods WHERE store_id=' . getAdmStoId() . ' GROUP BY order_id) b', 'a.order_id=b.order_id', 'left'],
['(SELECT * FROM wxd_pick_up WHERE store_id=' . getAdmStoId() . ') c', 'a.pickup_id=c.pickup_id', 'left']
];
break;//->join('(SELECT * FROM wxd_order_goods WHERE store_id='.getAdmStoId().') b','a.order_id=b.order_id','left')
case 5: //按支付方式汇总
$field = "sum(order_amount)all_order_amount,sum(user_money)all_user_money,sum(integral)all_integral,
sum(case when tail_pay_type=0 then pt_tail_money else 0 end) t_w,
sum(case when tail_pay_type=1 then pt_tail_money else 0 end) t_y,count(1)cou";
$join = [
['(SELECT * FROM wxd_pick_up WHERE store_id=' . getAdmStoId() . ') c', 'a.pickup_id=c.pickup_id', 'left']
];
$group = 'a.store_id';
break;
}
//商品品类、品牌
$GoodsLogic = new GoodsLogic;
$brandList = $GoodsLogic->getSortBrands();
$this->assign('brandList', $brandList);
$categoryList = $GoodsLogic->getSortCategory();
$this->assign('categoryList', $categoryList);
$pickup_name1 = empty($pickup_name1) ? $pickup_name : $pickup_name1;
if (I('get.end_time')) {
$end = strtotime(urldecode(urldecode(I('get.end_time'))));
}
if (I('get.start_time')) {
$begin = strtotime(urldecode(urldecode(I('get.start_time'))));
}
$coutwhere = ' store_id=' . getAdmStoId() . ' ';
if (empty($begin)) {
$begin = strtotime("-1 month");
}
if (empty($end)) {
$end = strtotime('now');
}
if ($begin) {
switch ($timetype) {
case "1":
$where1 .= 'a.add_time >' . $begin;
$coutwhere .= ' and add_time >' . $begin;
break;
case "2":
$where1 .= 'a.erp_givetime >' . $begin;
$coutwhere .= ' and erp_givetime >' . $begin;
break;
default:
break;
}
}
if ($end) {
switch ($timetype) {
case "1":
$where1 .= ' and a.add_time < ' . $end . ' AND ';
$coutwhere .= ' and add_time < ' . $end . '';
break;
case "2":
$where1 .= ' and a.erp_givetime < ' . $end . ' AND ';
$coutwhere .= ' and erp_givetime < ' . $end . '';
break;
default:
break;
}
}
$exccount = M('order')->where($coutwhere)->count();//当前时间段订单数
if ($order_sn) //订单号码
{
$where['a.order_sn'] = $order_sn;
}
if ($expressno) //快递单号
{
$where['a.expressno'] = $expressno;
}
if ($vipinfo) //会员信息
{
$where['d.vipname|d.mobile'] = ['like', '%' . $vipinfo . '%'];
}
if ($pickup_name) //门店名称
{
$where['c.pickup_name|c.pickup_no'] = ['like', '%' . $pickup_name . '%'];
}
if ($goods_name) //商品名称
{
$where['b.goods_name|b.goods_sn'] = ['like', '%' . $goods_name . '%'];
}
if ($order_status) //订单状态
{
if ($order_status == 'WAITPAY') $where1 .= 'a.pay_status = 0 AND a.order_status = 0 AND a.pay_code !="cod" AND '; //待付款
if ($order_status == 'WAITSEND') $where1 .= ' (a.pay_status=1 OR a.pay_code="cod") AND a.shipping_status=0 AND a.order_status in(0,1) AND ';//待发货
if ($order_status == 'WAITRECEIVE') $where1 .= ' a.shipping_status in(1,2) AND a.order_status = 1 AND';//待收货
if ($order_status == 'WAITCCOMMENT') $where1 .= ' a.order_status=2 AND';//已收货
if ($order_status == 'CANCEL') $where1 .= ' a.order_status = 3 AND';//已取消
if ($order_status == 'FINISH') $where1 .= ' a.order_status = 4 AND';//已完成
if ($order_status == 'CANCELLED') $where1 .= ' a.order_status = 5 AND';//已作废
if ($order_status == 'RETURNED') $where1 .= ' a.order_status = 6 AND';//退款退货完成
if ($order_status == 'PAYED') $where1 .= ' a.pay_status = 1 AND ';//已付款
}
switch ($pay_name) {
case 1://微信支付
//$where['a.order_amount'] = ['>', 0];
$where1 .= " a.order_amount > 0 and ";
break;
case 2://用户余额
//$where['a.user_money'] = ['>', 0];
$where1 .= " a.user_money > 0 and ";
break;
case 3://积分兑换
//$where['a.integral'] = ['>', 0];
$where1 .= " a.integral > 0 and ";
break;
}
if ($exp_type) //物流
{
$where['a.exp_type'] = $exp_type - 1;
}
if ($prom_type) //订单分类 普通、团购等
{
if ($prom_type == 7) {
$where['b.is_distri'] = 1;
} else {
$where['b.prom_type'] = $prom_type - 1;
}
}
if ($cat_id)//品类
{
$grandson_ids = getCatGrandson($cat_id);
$where1 .= " cat_id in(" . implode(',', $grandson_ids) . ") and "; // 初始化搜索条件
}
if ($brand_id)//品牌
{
$where1 .= " brand_id = " . I('brand_id') . " and ";
}
$where1 .= " a.store_id=" . getAdmStoId();
$order = ' a.add_time desc';
$res = M('order')
->alias('a')
->join($join)
->where($where)
->where($where1)
->field($field)
->group($group)
->order($order)
->limit($start, 20)
->select();
$singlecout = array(
'amount' => 0,
'ordernum' => 0,
'pronum' => 0,
'shopnum' => 0,
'shipping_price' => 0,
'all_order_amount' => 0,
'all_total_amount' => 0
);
if ($c_field) {
$tjarr1 = M('order')
->alias('a')->join($join)
->where($where)->where($where1)
->field($c_field)
->select();
$tjarr = $tjarr1[0];
$Page = new AjaxPage($tjarr['cou'], 20);
$show = $Page->show();
$this->assign('page', $show);
}
switch ($total_sel) {
case 0: //汇总查询
case 1://按单号汇总
/*---
$singlecout['ordernum']++;
$singlecout['amount']+= $count[$kt]['total_amount'];
$singlecout['pronum']+= $count[$kt]['num'];
$singlecout['all_order_amount']+= $count[$kt]['all_order_amount'];
$singlecout['all_total_amount']+= $count[$kt]['all_total_amount'];--*/
$singlecout['ordernum'] = $tjarr['cou'];
$singlecout['amount'] = $tjarr['max1'];
$singlecout['pronum'] = $tjarr['max2'];
$singlecout['all_order_amount'] = $tjarr['max3'];
$singlecout['all_total_amount'] = $tjarr['max1'];
break;
case 2: //按门店汇总
$singlecout['shopnum'] = $tjarr['cou'];
$singlecout['ordernum'] = $tjarr['ordernum'];
$singlecout['pronum'] = $tjarr['max2'];
$singlecout['all_order_amount'] = $tjarr['max3'];
$singlecout['all_total_amount'] = $tjarr['max1'];
break;
case 3: //按商品汇总
$singlecout['proamount'] = $tjarr['cou'];
$singlecout['pronum'] = $tjarr['max2'];
$singlecout['all_order_amount'] = $tjarr['max3'];
$singlecout['all_total_amount'] = $tjarr['max1'];
break;
case 4: //按配送汇总
$singlecout['ordernum'] = $tjarr['ordernum'];
$singlecout['pronum'] = $tjarr['max2'];
$singlecout['shipping_price'] = $tjarr['shipping_price'];
$singlecout['all_order_amount'] = $tjarr['max3'];
$singlecout['all_total_amount'] = $tjarr['max1'];
break;
case 5: //按支付方式汇总
$tjarr['cou'] = $res[0]['cou'];
break;
}
$singlecout['all_order_amount'] = sprintf("%.2f", $singlecout['all_order_amount']);
$singlecout['all_total_amount'] = sprintf("%.2f", $singlecout['all_total_amount']);
$singlecout['shipping_price'] = sprintf("%.2f", $singlecout['shipping_price']);
$singlecout['amount'] = sprintf("%.2f", $singlecout['amount']);
foreach ($res as $kk => $vv) {
$order_status_arr = C('ORDER_STATUS_DESC');
$order_status_code = orderStatusDesc(0, $vv); // 订单状态显示给用户看的
$res[$kk]['order_status_desc'] = $order_status_arr[$order_status_code];
}
$this->assign('list', $res);
$this->assign('count', $tjarr['cou']);
$this->assign('order_sn', $order_sn);
$this->assign('expressno', $expressno);
$this->assign('vipinfo', $vipinfo);
$this->assign('pickup_name1', $pickup_name1);
$this->assign('pickup_name', $pickup_name);
$this->assign('order_status', $order_status);
$this->assign('pay_name', $pay_name);
$this->assign('exp_type', $exp_type);
$this->assign('total_sel', $total_sel);
$this->assign('where1', str_replace("\"", "@", $where1));
$this->assign('where', json_encode($where));
$this->assign('goods_name', $goods_name);
$this->assign('prom_type', $prom_type);
$this->assign('timetype', $timetype);
$this->assign('cat_id', $cat_id);
$this->assign('brand_id', $brand_id);
//统计后的数据
$this->assign('singlecout', $singlecout);
return $this->fetch("", getAdmStoId());
}
public function outdata()
{
$data=I('get.');
//字段名
$arr['str']=explode(',', rtrim($data['str'], ','));
//表头
$arr['txt']=explode(',', rtrim($data['txt'], ','));
if(is_array($arr))
{
$strTable = '
';
$strTable .= '';
$strTable .= '订单号 | ';
$strTable .= '
';
if (is_array($arr)) {
foreach ($arr as $k => $val) {
$strTable .= '';
$strTable .= ' ' . $val['order_sn'] . ' | ';
$strTable .= ' ' . $val['add_time'] . ' | ';
$strTable .= '' .($val['pay_time']=="0"?'':$val['pay_time1']). ' | ';
$strTable .= '' . $val['consignee'] . ' | ';
$strTable .= '' . $val['goods_num'] . ' | ';
$strTable .= '' . $val['goods_price'] . ' | ';
$strTable .= '' . $val['shipping_price'] . ' | ';
$strTable .= '' . $val['total_amount'] . ' | ';
$strTable .= '' . $val['order_status_desc'] . ' | ';
$strTable .= '' . $val['mobile'] . ' | ';
$strTable .= '' . $val['ADDRESS'] . ' | ';
$strTable .= '' . ($val['exp_type'] == '0' ? '物流' :'自提') . ' | ';
$strTable .= '' . $val['expressno'] . ' | ';
$strTable .= '' . $val['shipping_name'] . ' | ';
$strTable .= '' . ($val['pickup_no']) . ' | ';
$strTable .= '' . ($val['pickup_name']) . ' | ';
$strTable .= '' . $val['user_note'] . ' | ';
$strTable .= '
';
}
}
$strTable .= '
';
}
}
public function saleTop(){
$sql = "select goods_name,goods_sn,sum(goods_num) as sale_num,sum(goods_num*goods_price) as sale_amount from __PREFIX__order_goods ";
$sql .=" where store_id=".getAdmStoId()." and is_send = 1 group by goods_id order by sale_amount DESC limit 100";
$res = DB::cache("saleTop_".getAdmStoId(),3600)->query($sql);
$this->assign('list',$res);
upload_ylp_log('B46销售排行查询/搜索');
return $this->fetch('',getAdmStoId());
}
public function userTop()
{
//var_dump(I('GET.'));die;
$p = I('p', 1);
$start = ($p - 1) * 20;
$vipname = urldecode(urldecode(I('vipname')));
$i_vipname = I('i_vipname');
$is_mzvip = I('is_mzvip');
$is_buyorder = I('is_buyorder');
$pickup_id = I('pickup_id');
$pickup_name1 = urldecode(urldecode(I('pickup_name1', '')));
$pickup_name = urldecode(urldecode(I('pickup_name', '')));
//var_dump($pickup_name);die;
$where1 = "";
$mobile = "";
if (I('end_time')) {
$end = strtotime(urldecode(urldecode(I('end_time'))));
$where1 .= " a.reg_time < " . "'" . $end . "' and ";
}
if (I('start_time')) {
$begin = strtotime(urldecode(urldecode(I('start_time'))));
$where1 .= "a.reg_time > " . "'" . $begin . "' and ";
}
$where = "";
if ($vipname) {
$where['a.vipname|a.mobile'] = ['like', '%' . $vipname . '%'];
}
$where['a.openid']=array('neq','');
if ($is_mzvip) {
switch ($is_mzvip) {
case 1:
$where['a.is_mzvip'] = 0;
break;
case 2:
$where['a.is_mzvip'] = 1;
break;
case 3:
$where1 .= " ifnull(d.order_num,0)=0 and ";
break;
default:
break;
}
}
if ($is_buyorder) {
switch ($is_buyorder) {
case 1:
$where1 .= " ifnull(d.order_num,0)>0 and ";
break;
case 2:
$where1 .= " ifnull(d.order_num,0)=0 and ";
break;
default:
break;
}
}
if ($pickup_name) {
$where['b.pickup_name'] = ['like', '%' . $pickup_name . '%'];
}
if ($i_vipname) {
$where['c.vipname|c.mobile'] = ['like', '%' . $i_vipname . '%'];
}
$pickup_name1 = empty($pickup_name) ? $pickup_name1 : $pickup_name;
$where1 .= "a.store_id=" . getAdmStoId();
if (getERPId())
$where1 .= " and ifnull(a.erpvipid,'') <> '' and ifnull(a.mobile,'') <>''";
else
$where1 .= " and ifnull(a.mobile,'') <>''";
// var_dump($where,$where1);
$count = M('users')->alias('a')
->join('pick_up b', 'a.pickup_id=b.pickup_id', 'left')
->join('users c', 'a.fromuser_id=c.user_id', 'left')
->join('(select count(1) as order_num,user_id from wxd_order where store_id=' . getAdmStoId() . ' and pay_status=1 group by user_id) d', ' d.user_id=a.user_id', 'left')
->where($where)
->where($where1)
->count();
$Page = new Page($count, 20);
$show = $Page->show();
$res = M('users')->alias('a')
->join('pick_up b', 'a.pickup_id=b.pickup_id and a.store_id=b.store_id', 'left')
->join('users c', 'a.fromuser_id=c.user_id', 'left')
->join('(select count(1) as order_num,user_id from wxd_order where store_id=' . getAdmStoId() . ' and pay_status=1 group by user_id) d', ' d.user_id=a.user_id', 'left')
->field('a.*,ifnull(d.order_num,0) as order_num ,b.pickup_name ,c.vipname as i_vipname,c.mobile as i_mobile')//case when c.vipname=null then c.mobile else c.vipname end
->where($where)
->where($where1)
->limit($Page->firstRow . ',' . $Page->listRows)
->order(' a.reg_time desc')
->select();
$this->assign('vipname', $vipname);
$this->assign('mobile', $mobile);
$this->assign('i_vipname', $i_vipname);
$this->assign('is_mzvip', $is_mzvip);
$this->assign('is_buyorder', $is_buyorder);
$this->assign('list', $res);
$this->assign('page', $show);
$this->assign('pager', $Page);
$this->assign('pickup_id', $pickup_id);
$this->assign('pickup_name', $pickup_name);
upload_ylp_log('B47会员排行查询/搜索');
return $this->fetch('', getAdmStoId());
}
//会员管理导出
public function exportreport_usertop()
{
$p = I('p', 1);
$start = ($p - 1) * 20;
$vipname = urldecode(urldecode(I('vipname')));
$i_vipname = I('i_vipname');
$is_mzvip = I('is_mzvip');
$is_buyorder = I('is_buyorder');
$pickup_id = I('pickup_id');
$pickup_name1 = urldecode(urldecode(I('pickup_name1', '')));
$pickup_name = urldecode(urldecode(I('pickup_name', '')));
//var_dump($pickup_name);die;
$where1 = "";
$mobile = "";
if (I('end_time')) {
$end = strtotime(urldecode(urldecode(I('end_time'))));
$where1 .= " a.reg_time < " . "'" . $end . "' and ";
}
if (I('start_time')) {
$begin = strtotime(urldecode(urldecode(I('start_time'))));
$where1 .= "a.reg_time > " . "'" . $begin . "' and ";
}
$where = "";
if ($vipname) {
$where['a.vipname|a.mobile'] = ['like', '%' . $vipname . '%'];
}
if ($is_mzvip) {
$where['a.is_mzvip'] = $is_mzvip - 1;
}
if ($pickup_name) {
$where['b.pickup_name'] = ['like', '%' . $pickup_name . '%'];
}
if ($i_vipname) {
$where['c.vipname|c.mobile'] = ['like', '%' . $i_vipname . '%'];
}
if ($is_buyorder) {
switch ($is_buyorder) {
case 1:
$where1 .= " ifnull(d.order_num,0)>0 and ";
break;
case 2:
$where1 .= " ifnull(d.order_num,0)=0 and ";
break;
default:
break;
}
}
$pickup_name1 = empty($pickup_name) ? $pickup_name1 : $pickup_name;
$where1 .= "a.store_id=" . getAdmStoId();
$where1 .= " and ifnull(a.erpvipid,'') <> '' and ifnull(a.mobile,'') <>''";
$res = M('users')->alias('a')
->join('pick_up b', 'a.pickup_id=b.pickup_id and a.store_id=b.store_id', 'left')
->join('users c', 'a.fromuser_id=c.user_id', 'left')
->join('(select count(1) as order_num,user_id from wxd_order where store_id=' . getAdmStoId() . ' and pay_status=1 group by user_id) d', ' d.user_id=a.user_id', 'left')
->field('a.*,IFNULL(order_num,0) as order_num,b.pickup_name ,c.mobile as i_mobile,c.vipname as i_vipname')
->where($where)
->where($where1)
->order(' a.reg_time desc')
->select();
$strTable = '';
$strTable .= '';
$strTable .= '会员姓名 | ';
$strTable .= '手机 | ';
$strTable .= '性别 | ';
// $strTable .= '地址 | ';
$strTable .= '登记门店 | ';
$strTable .= '卡类 | ';
$strTable .= '注册时间 | ';
$strTable .= '介绍人姓名 | ';
$strTable .= '介绍人手机 | ';
$strTable .= '消费次数 | ';
$strTable .= '
';
if (is_array($res)) {
foreach ($res as $k => $val) {
$strTable .= '';
$strTable .= ' ' . $val['vipname'] . ' | ';
$strTable .= ' ' . $val['mobile'] . ' | ';
$strTable .= ' ' . ($val['sex'] == "1" ? '男' : ($val['sex'] == "2" ? '女' : '保密')) . ' | ';
// $strTable .= ' ' . $val['address'] . ' | ';
$strTable .= '' . $val['pickup_name'] . ' | ';
$strTable .= '' . ($val['is_mzvip'] == "1" ? '美妆会员' : '普通会员') . ' | ';
$strTable .= ' ' . ($val['reg_time'] == "0" ? '' : date('Y-m-d H:i:s', $val['reg_time'])) . ' | ';
$strTable .= '' . $val['i_vipname'] . ' | ';
$strTable .= '' . $val['i_mobile'] . ' | ';
$strTable .= '' . $val['order_num'] . ' | ';
}
}
$strTable .= '
';
echo $strTable;
unset($res);
downloadExcel($strTable, '会员管理');
exit();
}
//分销分析
public function fenx(){
$user_id=I('post.user_id');
$where['a.is_distribut']=1;
$where['a.user_id']=$user_id;
$num=DB::query('select IFNULL(count(1),0) as num from __PREFIX__users where is_distribut=1 and (first_leader ='.$user_id.' or second_leader = '.$user_id.')')[0];
$user_res=Db::name('users')->alias('a')
->join('users b','a.first_leader=b.user_id','left')
->field('a.user_id,a.total_amount,a.be_dis_condition,IFNULL(a.be_distribut_time,0) as be_distribut_time,a.vipname,a.mobile,a.is_distribut,IFNULL(b.mobile,0) as fisrt_mobile,a.reg_time')
->where($where)
->find();
if($user_res)
{
if(empty($user_res['be_distribut_time'])){
$user_res['be_distribut_time']=$user_res['reg_time'];
}
$user_res['be_distribut_time']=date('Y-m-d H:i:s',$user_res['be_distribut_time']);
if(!$user_res['fisrt_mobile'])
{
$user_res['fisrt_mobile']="无";
}
$result = DB::query("select IFNULL(sum(goods_price),0) as goods_price, IFNULL(sum(money),0) as money,sum(case when status=3 then money else 0 end) as leji from __PREFIX__rebate_log where user_id = ".$user_id." and status>0 and status<4");
$user_res['goods_price']=$result[0]['goods_price'];
$user_res['money']=$result[0]['leji'];
if(empty($user_res['money']))
$user_res['money']="0.00";
//$user_res['goods_price']=$result[0]['goods_price'];
//$user_res['money']=$result[0]['money'];
$user_res['num']=$num['num']+1; //要加上自己一级会员
//分析条件
if(empty($user_res['be_dis_condition']) || strlen($user_res['be_dis_condition'])<3)
{
$condition=tpCache('distribut.condition',getAdmStoId());
if($condition==0)
{
$user_res['fenxs']="直接成为分销商";
}
if($condition==1)
{
$user_res['fenxs']="购满".$condition['a.condition_money'].'元';
}
if($condition==2)
{
$goodwhere['goods_id']=$condition['condition_goods_id'];
$goodwhere['store_id']=getAdmStoId();
$goodsname=Db::name('goods')->field('goods_name')->where($goodwhere)->find();
if($goodsname)
{
$user_res['fenxs']="购买".$goodsname['goods_name'].'成为分销商';
}
}
if($condition==3){
$goodwhere['goods_id']=$condition['condition_goods_id'];
$goodwhere['store_id']=getAdmStoId();
$goodsname=Db::name('goods')->field('goods_name')->where($goodwhere)->find();
if($goodsname)
{
$user_res['fenxs']="购买".$goodsname['goods_name'];
}
if($user_res['fenxs'])
$user_res['fenxs'].="或购满".$condition['condition.money'].'元成为分销商';
else
$user_res['fenxs']="购满".$condition['condition.money'].'元成为分销商';
}
M('users')->where('user_id',$user_id)->save(['be_dis_condition'=>$user_res['fenxs'],'be_distribut_time'=>$user_res['reg_time']]);
}else {
$user_res['fenxs']=$user_res['be_dis_condition'];
}
//分销订单
$rebate_log= DB::query("select count(order_id) as order_num from __PREFIX__rebate_log rebate_log where status>0 and status<4 and user_id = ".$user_id."")[0];
if($rebate_log)
{
if(empty($rebate_log['order_num']))
{
$user_res['order_num']=0;
}else
{
$user_res['order_num']=$rebate_log['order_num'];
}
//$user_res['order_num']=empty($rebate_log['order_num'])?"0单":$rebate_log['order_num']."单";
}else{
$user_res['order_num']=0;
}
//待分成金额
$money_share= DB::query("select sum(money) as money_share from __PREFIX__rebate_log where user_id = ".$user_id." and status = 2")[0];
if($money_share)
{
$user_res['money_share']=empty($money_share['money_share'])?"0.00":mb_convert_encoding($money_share['money_share'], "UTF-8", "GBK");
}else{
$user_res['money_share']="0.00";
}
return json_encode($user_res);
}else{
return "";
}
}
//交易信息
public function jyxx(){
$user_id=I('post.user_id');
$where['user_id']=$user_id;
$where['pay_status']=1;
$res=Db::name('order')
->field('count(*) as order_num ,IFNULL(max(add_time),"0") as add_time, sum(IFNULL(user_money ,0)+IFNULL(order_amount ,0)+IFNULL(coupon_price ,0)) as sum_money,(IFNULL( user_money , 0)+IFNULL( order_amount , 0)) as cost_money')
->where($where)
->order('add_time desc')
->find();
if($res)
{
if(empty($res['sum_money']))
{
$res['sum_money']=0;
}
if(!empty($res['add_time']))
{
$res['add_time']=date('Y-m-d H:i:s',$res['add_time']);
}else{
$res['add_time']='无';
}
return json_encode($res);
}else
{
return "";
}
}
//账户信息
public function zhxx()
{
$user_id=I('post.user_id');
$res=[];
// $user = M("users")->alias("a")->join(' store b','a.store_id=b.store_id','left')->where(array("a.user_id"=>$user_id,'a.store_id'=>getAdmStoId()))->field("a.erpvipid,a.erpvipno,b.api_token,a.user_id")->find();
$user = M("users")->where(array("user_id"=>$user_id,'store_id'=>getAdmStoId()))
->field("erpvipid,erpvipno,user_id,pay_points")->find();
$user['api_token']=tpCache('shop_info.api_token',getAdmStoId());
if(getERPId()) {
//获取积分
if (!empty($user['erpvipid'])) {
$integ = 0;
$vsum = 0;
$qnum = 0;
$map['Id'] = $user['erpvipid'];
$rs = getApiData('wxd.vip.info.shop.get', $user['api_token'], null, $map);
//mlog("获取值:".json_encode($rs),"getindnum/".getAdmStoId());
$d = json_decode($rs, true);
if ($d['code'] == 1) {
$res['point'] = $d['data'][0]['Integral'];
$res['point'] = number_format(empty($res['point']) ? 0 : $res['point'], 0);
$vsum = $d['data'][0]['Balance'];
$vsum = number_format(empty($vsum) ? 0 : $vsum, 2);
$qnum = $d['data'][0]['cashcount'];
$qnum = number_format(empty($qnum) ? 0 : $qnum, 0);
}else{
$res['point'] =0;
}
}
else{
$res['point'] =0;
}
}else{
$res['point'] =$user['pay_points'];
}
//可用余额
$where1 = ' user_id=' . $user_id;
$current_money=M('users')->where($where1)->field('user_money')->find();
$dongmoney=M('users')->where($where1)->field('frozen_money')->find();
$locking_money=M('withdrawals')->where(array('user_id' => $user_id, 'status' => 0))->sum('money');
//流动资金
$liudong_money=$current_money['user_money']-$locking_money-$dongmoney['frozen_money'];
$yucun_money=0; //预存款金额
$rs0=M('rebate_log')->where(array('user_id' => $user_id, 'status' => 2))->sum('money');
if($rs0){
$rs0=$rs0;
}else{
$rs0=0.00;
}
if(($rs0+$liudong_money)<=0)
{
$res['money']='0.00';
}else{
$res['money']=number_format($rs0+$liudong_money,2);
}
//待分成
$money_share= DB::query("select sum(money) as money_share from __PREFIX__rebate_log where user_id = ".$user_id." and status = 2")[0];
if($money_share)
{
if(empty($money_share['money_share']))
{
$res['money_share']="0.00";
}else{
$res['money_share']=mb_convert_encoding($money_share['money_share'], "UTF-8", "GBK");
}
}else{
$res['money_share']="0.00";
}
return json_encode($res);
}
public function saleList(){
$p = I('p',1);
$start = ($p-1)*20;
$cat_id = I('cat_id',0);
$brand_id = I('brand_id',0);
$where = "where b.add_time>$this->begin and b.add_time<$this->end ";
if($cat_id>0){
$where .= " and g.cat_id=$cat_id";
$this->assign('cat_id',$cat_id);
}
if($brand_id>0){
$where .= " and g.brand_id=$brand_id";
$this->assign('brand_id',$brand_id);
}
$where.=" and a.store_id=".getAdmStoId();
$sql = "select a.*,b.order_sn,b.shipping_name,b.pay_name,b.add_time from __PREFIX__order_goods as a left join __PREFIX__order as b on a.order_id=b.order_id and a.store_id=b.store_id ";
$sql .= " left join __PREFIX__goods as g on a.goods_id = g.goods_id and a.store_id=g.store_id $where ";
$sql .= " order by add_time desc limit $start,20";
$res = DB::query($sql);
$this->assign('list',$res);
$sql2 = "select count(1) as tnum from __PREFIX__order_goods as a left join __PREFIX__order as b on a.order_id=b.order_id and a.store_id=b.store_id ";
$sql2 .= " left join __PREFIX__goods as g on a.goods_id = g.goods_id and a.store_id=g.store_id $where";
$total = DB::query($sql2);
$count = $total[0]['tnum'];
$Page = new Page($count,20);
$show = $Page->show();
$this->assign('page',$show);
$GoodsLogic = new GoodsLogic();
$brandList = $GoodsLogic->getSortBrands();
$categoryList = $GoodsLogic->getSortCategory();
$this->assign('categoryList',$categoryList);
$this->assign('brandList',$brandList);
upload_ylp_log('B46销售排行查询/搜索');
return $this->fetch('',getAdmStoId());
}
public function user(){
$today = strtotime(date('Y-m-d'));
$month = strtotime(date('Y-m-01'));
$user['today'] = D('users')
->where("erpvipid<>'' and erpvipid is not null and mobile is not null and mobile<>''")
->where("store_id=".getAdmStoId()." and reg_time>$today")->count();//今日新增会员
$user['month'] = D('users')
->where("erpvipid<>'' and erpvipid is not null and mobile is not null and mobile<>''")
->where("store_id=".getAdmStoId()." and reg_time>$month")->count();//本月新增会员
$user['total'] = D('users')
->where("erpvipid<>'' and erpvipid is not null and mobile is not null and mobile<>''")
->where("store_id=".getAdmStoId()."")->count();//会员总数
$user['user_money'] = D('users')->where("store_id=".getAdmStoId()." ")->sum('user_money');//会员余额总额
$res = M('order')->where("store_id=".getAdmStoId()." ")->cache('user_order_'.getAdmStoId())->distinct(true)->field('user_id')->select();
$user['hasorder'] = count($res);
$this->assign('user',$user);
$where=" and erpvipid<>'' and erpvipid is not null and mobile is not null and mobile<>''";
$sql = "SELECT COUNT(1) as num,FROM_UNIXTIME(reg_time,'%Y-%m-%d') as gap from __PREFIX__users where store_id=".getAdmStoId()." and reg_time>$this->begin and reg_time<$this->end ".$where." group by gap";
$new = DB::query($sql);//新增会员趋势
foreach ($new as $val){
$arr[$val['gap']] = $val['num'];
}
for($i=$this->begin;$i<=$this->end;$i=$i+24*3600){
$brr[] = empty($arr[date('Y-m-d',$i)]) ? 0 : $arr[date('Y-m-d',$i)];
$day[] = date('Y-m-d',$i);
}
$result = array('data'=>$brr,'time'=>$day);
$this->assign('result',json_encode($result));
upload_ylp_log('B50会员统计查询/搜索');
return $this->fetch('',getAdmStoId());
}
//财务统计
public function finance(){
$sql = "SELECT sum(b.goods_num*b.member_goods_price) as goods_amount,sum(a.shipping_price) as shipping_amount,sum(b.goods_num*b.cost_price) as cost_price,";
$sql .= "sum(a.coupon_price) as coupon_amount,FROM_UNIXTIME(a.add_time,'%Y-%m-%d') as gap from __PREFIX__order a left join __PREFIX__order_goods b on a.order_id=b.order_id and a.store_id=b.store_id ";
$sql .= " where a.store_id=".getAdmStoId()." and a.add_time>$this->begin and a.add_time<$this->end AND a.pay_status=1 and a.shipping_status=1 and b.is_send=1 group by gap order by a.add_time";
$res = DB::cache("finance_".getAdmStoId())->query($sql);//物流费,交易额,成本价
foreach ($res as $val){
$arr[$val['gap']] = $val['goods_amount'];
$brr[$val['gap']] = $val['cost_price'];
$crr[$val['gap']] = $val['shipping_amount'];
$drr[$val['gap']] = $val['coupon_amount'];
}
for($i=$this->begin;$i<=$this->end;$i=$i+24*3600){
$date = $day[] = date('Y-m-d',$i);
$tmp_goods_amount = empty($arr[$date]) ? 0 : $arr[$date];
$tmp_cost_amount = empty($brr[$date]) ? 0 : $brr[$date];
$tmp_shipping_amount = empty($crr[$date]) ? 0 : $crr[$date];
$tmp_coupon_amount = empty($drr[$date]) ? 0 : $drr[$date];
$goods_arr[] = $tmp_goods_amount;
$cost_arr[] = $tmp_cost_amount;
$shipping_arr[] = $tmp_shipping_amount;
$coupon_arr[] = $tmp_coupon_amount;
$list[] = array('day'=>$date,'goods_amount'=>$tmp_goods_amount,'cost_amount'=>$tmp_cost_amount,
'shipping_amount'=>$tmp_shipping_amount,'coupon_amount'=>$tmp_coupon_amount,'end'=>date('Y-m-d',$i+24*60*60));
}
$this->assign('list',$list);
$result = array('goods_arr'=>$goods_arr,'cost_arr'=>$cost_arr,'shipping_arr'=>$shipping_arr,'coupon_arr'=>$coupon_arr,'time'=>$day);
$this->assign('result',json_encode($result));
upload_ylp_log('B51运营概况查询/搜索');
return $this->fetch('',getAdmStoId());
}
//分销销售统计
public function distrsaleList()
{
$lastweek = date('Y-m-d',strtotime("-1 month"));//30天前
$begin = I('begin',$lastweek).' 00:00:00';
$this->assign('start_time',$begin);
$stoid=getAdmStoId();
$isajax = I('isajax');
$timegap = I('timegap1');
if ($timegap) {
$gap = explode(' - ', $timegap);
$begin = $gap[0];
$end = $gap[1];
} else {
$lastweek = date('Y-m-d H:m:s', strtotime("-1 week"));
$begin = I('begin', $lastweek);
$end = I('end', date('Y-m-d H:m:s'));
$timegap=$begin."-".$end;
}
$this->assign('timegap',$timegap);
if ($isajax) {
$isall=I('all',0);
$timegap = I('timegap2');
if ($timegap) {
$gap = explode(' - ', $timegap);
$begin = $gap[0];
$end = $gap[1];
}
$begin=strtotime($begin);
$end=strtotime($end);
$keyword = I('keyword');
$order_sn = I('order_sn');
$pickup_id = I('pickup_id');
$status = I('status');
$where="a.store_id=" . $stoid;
$user_id=0;
if($status!=""){
$where.=" and a.status=".$status;
if ($timegap){
switch ($status){
case "0":
case "1":
$where.= " and a.create_time>=".$begin." and a.create_time<=".$end;
break;
case "2":
$where.= " and a.confirm>=".$begin." and a.confirm<=".$end;
break;
case "3":
$where.= " and a.confirm_time>=".$begin." and a.confirm_time<=".$end;
break;
}
}
}
if ($timegap && $status=="")
$where.= " and a.create_time>=".$begin." and a.create_time<=".$end;
if($keyword){
$where_usr= " store_id=".$stoid." and (nickname like '%" . $keyword . "%' or mobile like '%" . $keyword . "%')";
$f_user=M("users")->where($where_usr)->field('user_id')->find();
if($f_user) {
$user_id = $f_user['user_id'];
$where .= " and a.user_id=" . $user_id;
}
}
if($order_sn)
$where .= " and a.order_sn='" . $order_sn . "' ";
if($pickup_id)
$where .= " and a.pickup_id='" . $pickup_id . "' ";
$where1=$where;
$all=M('rebate_log')->alias('a')
->join('users b','a.user_id=b.user_id and a.store_id=b.store_id')
->where($where)->field('id')->select();
$count=count($all);
$Page = new AjaxPage($count, 10);
$show = $Page->show();
$list=M('rebate_log')->alias('a')
->join('users b','a.user_id=b.user_id and a.store_id=b.store_id','left')
->where($where)->order('a.id desc')->field('a.*, b.mobile,b.nickname as distriname') ->limit($Page->firstRow . ',' . $Page->listRows)->select();
//$is_setdistri_first=tpCache('distribut.is_setdistri_first',getAdmStoId());
//$rs2= M('users')->where('store_id',getAdmStoId())->field('is_distribut,user_id,first_leader,second_leader,third_leader')->select();
foreach ($list as $k=>$v){
$where='order_id='.$v['order_id'];
$where .= " and store_id=" . $stoid;
$cout=M("order_goods")->where($where)->sum('goods_num');
$list[$k]['gsum']=$cout;
$reb="";
//$tuser = null;
//foreach ($rs2 as $k9 => $v9) {
//if ($v9['user_id'] == $v['buy_user_id'])
//$tuser = $v9;
//}
if($v['user_type']==1) {
$reb="普通会员";
if($v['level']==1 ) $reb = "一级会员";
if($v['level']==2) $reb = "二级会员";
if($v['level']==3) $reb = "三级会员";
}else{
$reb="普通会员";
}
$list[$k]['lev']=$reb;
}
$this->assign('list', $list);
$this->assign('show', $show);
//如果是整个查询
if($isall==1){
$fiels="count(distinct(a.order_sn))ordn,count(distinct(a.nickname))user_n";
$all2=M('rebate_log')->alias('a')
->field($fiels)
->where($where1)
->select();
$count2=$all2[0]['ordn'];
$fusrnum=$all2[0]['user_n'];
//$list2=M('rebate_log')->alias('a')
// ->join('users b','a.user_id=b.user_id and a.store_id=b.store_id','left')
// ->where($where1)->field('a.nickname')->group('a.nickname')->select();
$sql="select sum(f.gprice) as sumprice from (select a.order_sn,max(a.goods_price) gprice from __PREFIX__rebate_log a where ".$where1." group by a.order_sn) f";
$rb=Db::query($sql);
$fsalesum=$rb[0]['sumprice'];
$fmoney=M('rebate_log')->alias('a')
//->join('users b','a.user_id=b.user_id and a.store_id=b.store_id')
//->join('order c','a.order_sn=c.order_sn and a.store_id=c.store_id')
->where($where1)->sum('a.money');
$sql2="select sum(b.goods_num) num0 from (select a.order_sn from __PREFIX__rebate_log a where ".$where1." group by a.order_sn) a inner join __PREFIX__order_goods b on a.order_sn=b.order_sn where b.store_id=".getAdmStoId();
$outnum=0;
$rs4=Db::query($sql2);
$outnum=$rs4[0]['num0'];
if(empty($fsalesum)) $fsalesum=0;
if(empty($fmoney)) $fmoney=0;
$barr['code']=1;
$barr['ordcount']=$count2;
$barr['fusrnum']=$fusrnum;
$barr['outnum']=$outnum;
$barr['fsalesum']=$fsalesum;
$barr['fmoney']=$fmoney;
$barr['data']=$this->fetch('ajaxdistrsalelist',$stoid);
upload_ylp_log('B49分销统计查询/搜索');
return json($barr);
}else{
return $this->fetch('ajaxdistrsalelist',$stoid);
}
}else{
$begin=strtotime($begin);
$end=strtotime($end);
$where1 = " create_time>=".$begin." and create_time<= ".$end;
//$nopay=M('rebate_log')->where("status",0)->where('store_id',$stoid)->where($where1)->group('order_sn')->select();
//$pay=M('rebate_log')->where("status",1)->where('store_id',$stoid)->where($where1)->group('order_sn')->select();
$nopay=0;
$pay=0;
$str="select status,count(DISTINCT order_sn) as sumnum from wxd_rebate_log where store_id=".$stoid." and status in (0,1) and ".$where1." group by status order by status asc";
$db=Db::query($str);
foreach ($db as $k=>$v){
if($v['status']==0) $nopay=$v['sumnum'];
if($v['status']==1) $pay=$v['sumnum'];
}
//$salesum=M('rebate_log')->where("store_id =".$stoid." and status>0 and status<4 and ".$where1)->sum('goods_price');
$sql="select sum(a.gprice) as sumprice from (select order_sn,max(goods_price) gprice from __PREFIX__rebate_log where store_id =".$stoid." and status=1 and ".$where1." group by order_sn) a";
$rb=Db::query($sql);
$salesum=$rb[0]['sumprice'];
$where2=" confirm_time>=".$begin." and confirm_time<= ".$end;
$rebatesum =M('rebate_log')->where("store_id =".$stoid." and status=3 and ".$where2)->sum('money');
$where3=" be_distribut_time >=".$begin." and be_distribut_time <= ".$end;
$list2=M('users')->where("store_id =".$stoid.' and '.$where3)->field('user_id')->select();
$usrnum=count($list2);
//$where4=" confirm>=".$begin." and confirm<= ".$end;
//$outnum=M('rebate_log')->alias('a')->join('order_goods b','a.order_id=b.order_id')->where('a.store_id',$stoid)->where('a.status>1 and a.status<4')->where($where4)->sum('b.goods_num');
$where4=" confirm>=".$begin." and confirm<= ".$end;
$sql1="select order_sn from __PREFIX__rebate_log where store_id =".$stoid." and status>0 and status<4 and ".$where4." group by order_sn";
$rb1=Db::query($sql1);
$temp=DB::query("select order_sn,sum(goods_num) num0 from __PREFIX__order_goods where store_id=".getAdmStoId()." group by order_sn");
$outnum=0;
foreach ($rb1 as $k=>$v){
foreach ($temp as $k00=>$v00){
if($v['order_sn']==$v00['order_sn'])
$outnum+=$v00['num0'];
}
}
$salesum=$salesum?$salesum:0;
$rebatesum=$rebatesum?$rebatesum:0;
$outnum=$outnum?$outnum:0;
$this->assign('nopay', $nopay);
$this->assign('pay', $pay);
$this->assign('salesum', $salesum);
$this->assign('rebatesum', $rebatesum);
$this->assign('usrnum', $usrnum);
$this->assign('outnum', $outnum);
}
upload_ylp_log('B49分销统计查询/搜索');
return $this->fetch('',$stoid);
}
//分销销售统计导出
public function distrsalelist_excel()
{
$stoid=getAdmStoId();
$isajax = I('isajax');
$timegap = I('timegap1');
if ($timegap) {
$gap = explode(' - ', $timegap);
$begin = $gap[0];
$end = $gap[1];
} else {
$lastweek = date('Y-m-d H:m:s', strtotime("-1 week"));
$begin = I('begin', $lastweek);
$end = I('end', date('Y-m-d H:m:s'));
$timegap=$begin."-".$end;
}
$this->assign('timegap',$timegap);
if ($isajax) {
$isall=I('all',0);
$timegap = I('timegap2');
if ($timegap) {
$gap = explode(' - ', $timegap);
$begin = $gap[0];
$end = $gap[1];
}
$begin=strtotime($begin);
$end=strtotime($end);
$keyword = I('keyword');
$order_sn = I('order_sn');
$status = I('status');
$where="a.store_id=" . $stoid;
$user_id=0;
if($status!=""){
$where.=" and a.status=".$status;
if ($timegap){
switch ($status){
case "0":
case "1":
$where.= " and a.create_time>=".$begin." and a.create_time<=".$end;
break;
case "2":
$where.= " and a.confirm>=".$begin." and a.confirm<=".$end;
break;
case "3":
$where.= " and a.confirm_time>=".$begin." and a.confirm_time<=".$end;
break;
}
}
}
if ($timegap && $status=="")
$where.= " and a.create_time>=".$begin." and a.create_time<=".$end;
if($keyword){
$where_usr= " store_id=".$stoid." and (nickname like '%" . $keyword . "%' or mobile like '%" . $keyword . "%')";
$f_user=M("users")->where($where_usr)->field('user_id')->find();
if($f_user) {
$user_id = $f_user['user_id'];
$where .= " and a.user_id=" . $user_id;
}
}
if($order_sn)
$where .= " and a.order_sn='" . $order_sn . "' ";
$where1=$where;
$list=M('rebate_log')->alias('a')->join('users b','a.user_id=b.user_id and a.store_id=b.store_id','left')->where($where)->order('a.id desc')->field('a.*, b.mobile,b.nickname as distriname') ->select();
//$is_setdistri_first=tpCache('distribut.is_setdistri_first',getAdmStoId());
$rs2= M('users')->where('store_id',getAdmStoId())->field('is_distribut,user_id,first_leader,second_leader,third_leader')->select();
foreach ($list as $k=>$v){
$where='order_id='.$v['order_id'];
$where .= " and store_id=" . $stoid;
$cout=M("order_goods")->where($where)->sum('goods_num');
$list[$k]['gsum']=$cout;
$reb="";
$tuser = null;
foreach ($rs2 as $k9 => $v9) {
if ($v9['user_id'] == $v['buy_user_id'])
$tuser = $v9;
}
if($tuser['is_distribut']==1) {
$reb="普通会员";
if ($tuser['user_id'] == $v['user_id'] ) {
if($v['level']==1 ) $reb = "一级会员";
}
if ($tuser['first_leader'] == $v['user_id']) {
if($v['level']==2) $reb = "二级会员";
}
if ($tuser['second_leader'] == $v['user_id']) {
if($v['level']==3) $reb = "三级会员";
}
}else{
$reb="普通会员";
}
$list[$k]['lev']=$reb;
}
$strTable ='';
$strTable .= '';
$strTable .= '分销商名称 | ';
$strTable .= '分销方式 | ';
$strTable .= '付款日期 | ';
$strTable .= '订单号 | ';
$strTable .= '会员昵称 | ';
$strTable .= '会员等级 | ';
$strTable .= '数量 | ';
$strTable .= '金额 | ';
$strTable .= '分成金额 | ';
$strTable .= '状态 | ';
$strTable .= '
';
if(is_array($list)){
foreach($list as $k=>$val){
$strTable .= '';
$strTable .= ''.$val['distriname'].' | ';
$strTable .= ''.($val['dis_moshi']==1?'单品分成模式':'比例分成模式').' | ';
$strTable .= ''.date('Y-m-d H:i:s',$val['create_time']).' | ';
$strTable .= ''.$val['order_sn'].' | ';
$strTable .= ''.$val['nickname'].' | ';
$strTable .= ''.$val['lev'].' | ';
$strTable .= ''.$val['gsum'].' | ';
$strTable .= ''.$val['goods_price'].' | ';
$strTable .= ''.$val['money'].' | ';
$strTable .= ''.($this->getstate_name($val['status'])).' | ';
$strTable .= '
';
}
}
$strTable .='
';
echo $strTable;
unset($list);
downloadExcel($strTable,'分销统计');
exit();
}
}
//订单状态
public function getstate_name($status)
{
switch ($status) {
case 0:
return "未付款";
break;
case 1:
return "未付款";
break;
case 2:
return "未付款";
break;
case 3:
return "未付款";
break;
}
}
//点击搜索按钮进行统计
public function distrCount(){
$stoid=getAdmStoId();
$timegap = I('timegap1');
if($timegap){
$gap = explode(' - ', $timegap);
$begin = $gap[0];
$end = $gap[1];
mlog($begin.':'.$end,'report/'.$stoid);
}
else{
$lastweek = date('Y-m-d H:m:s',strtotime("-1 week"));
$begin = I('begin',$lastweek);
$end = I('end',date('Y-m-d H:m:s'));
}
$begin=strtotime($begin);
$end=strtotime($end);
$where1 = " create_time>=".$begin." and create_time<= ".$end;
$nopay=0;
$pay=0;
$str="select status,count(DISTINCT order_sn) as sumnum from wxd_rebate_log where store_id=".$stoid." and status in (0,1) and ".$where1." group by status order by status asc";
$db=Db::query($str);
foreach ($db as $k=>$v){
if($v['status']==0) $nopay=$v['sumnum'];
if($v['status']==1) $pay=$v['sumnum'];
}
$sql="select sum(a.gprice) as sumprice from (select order_sn,max(goods_price) gprice from __PREFIX__rebate_log where store_id =".$stoid." and status=1 and ".$where1." group by order_sn) a";
$rb=Db::query($sql);
$salesum=$rb[0]['sumprice'];
//$salesum=M('rebate_log')->where("store_id =".$stoid." and status>0 and status<4 and ".$where1)->sum('goods_price');
$where2=" confirm_time>=".$begin." and confirm_time<= ".$end;
$rebatesum =M('rebate_log')->where("store_id =".$stoid." and status=3 and ".$where2)->sum('money');
$where3=" be_distribut_time >=".$begin." and be_distribut_time <= ".$end;
$list2=M('users')->where("store_id =".$stoid.' and '.$where3)->where('is_distribut',1)->field('user_id')->select();
$usrnum=count($list2);
//$where4=" confirm>=".$begin." and confirm<= ".$end;
//$outnum=M('rebate_log')->alias('a')->join('order_goods b','a.order_id=b.order_id')->where('a.store_id',$stoid)->where('a.status>1 and a.status<4')->where($where4)->sum('b.goods_num');
$where4=" confirm>=".$begin." and confirm<= ".$end;
$sql1="select order_sn from __PREFIX__rebate_log where store_id =".$stoid." and status>0 and status<4 and ".$where4." group by order_sn";
$rb1=Db::query($sql1);
$temp=DB::query("select order_sn,sum(goods_num) num0 from __PREFIX__order_goods where store_id=".getAdmStoId()." group by order_sn");
$outnum=0;
foreach ($rb1 as $k=>$v){
foreach ($temp as $k00=>$v00){
if($v['order_sn']==$v00['order_sn'])
$outnum+=$v00['num0'];
}
}
$salesum=$salesum?$salesum:0;
$rebatesum=$rebatesum?$rebatesum:0;
$outnum=$outnum?$outnum:0;
upload_ylp_log('B49分销统计查询/搜索');
return json(['code'=>1,'nopay'=>$nopay,'pay'=>$pay,'salesum'=>$salesum,
'rebatesum'=>$rebatesum,'usrnum'=>$usrnum,'outnum'=>$outnum]);
}
//按门店汇总
public function ajaxdistrcount()
{
$where=" 1=1 ";
$getstoid=getAdmStoId();
$where.=" and store_id=".$getstoid;
$timegap = I('timegap2');
if ($timegap) {
$gap = explode(' - ', $timegap);
$begin = $gap[0];
$end = $gap[1];
}
$begin = strtotime($begin);
$end = strtotime($end);
$pickup_id = I('pickup_id');
$status = I('status');
$user_id = 0;
if ($status != "") {
$where .= " and status=" . $status;
if ($timegap) {
switch ($status) {
case "0":
case "1":
$where .= " and create_time>=" . $begin . " and create_time<=" . $end;
break;
case "2":
$where .= " and confirm>=" . $begin . " and confirm<=" . $end;
break;
case "3":
$where .= " and confirm_time>=" . $begin . " and confirm_time<=" . $end;
break;
}
}
}
else
{
$where .= " and create_time>=" . $begin . " and create_time<=" . $end;
}
if ($pickup_id)
$where .= " and pickup_id='" . $pickup_id . "' ";
$sql="select IFNULL(b.pickup_no,'未选择') as pickup_no,IFNULL(b.pickup_name,'未选择') as pickup_name,ifnull(a.sum_money,0) as sum_money ,ifnull(a.sum_goods_price,0) as sum_goods_price,a.num,a.buy_usernum from (";
$sql.="select pickup_id,count(1) as num,sum(goods_price) as sum_goods_price,sum(money) as sum_money,count(DISTINCT buy_user_id) as buy_usernum from wxd_rebate_log where ".$where." group by pickup_id) a left join wxd_pick_up b on a.pickup_id=b.pickup_id";
$list=DB::query($sql);
session('excel_distrcount'.getAdmStoId(),$list);
// $Page = new AjaxPage($count, $pagenum);
// $show = $Page->show();
// $list = M($sql)->alias('a')
// ->join('wxd_pick_up b', 'a.pickup_id=b.pickup_id ')
// ->where($where)->field('IFNULL(b.pickup_no,\'未选择\') as pickup_no,IFNULL(b.pickup_name,\'未选择\') as pickup_name,a.sum_money,a.num')
// ->limit($Page->firstRow . ',' . $Page->listRows)->select();
$this->assign('list', $list);
return $this->fetch('',$getstoid);
}
//分销销售门店统计导出
public function distrsalecount_excel()
{
$list=session('excel_distrcount'.getAdmStoId());
$strTable = '';
$strTable .= '';
$strTable .= '门店编号 | ';
$strTable .= '门店名称 | ';
$strTable .= '订单总数 | ';
$strTable .= '支付会员数 | ';
$strTable .= '销售总金额 | ';
$strTable .= '分成金额 | ';
$strTable .= '
';
if (is_array($list)) {
foreach ($list as $k => $val) {
$strTable .= '';
$strTable .= '' . $val['pickup_no'] . ' | ';
$strTable .= '' . $val['pickup_name'] . ' | ';
$strTable .= '' . $val['num'] . ' | ';
$strTable .= '' . $val['buy_usernum'] . ' | ';
$strTable .= '' . $val['sum_goods_price'] . ' | ';
$strTable .= '' . $val['sum_money'] . ' | ';
$strTable .= '
';
}
}
$strTable .= '
';
echo $strTable;
unset($list);
downloadExcel($strTable, '分销门店汇总');
exit();
}
public function showgoodslist(){
$ordid=I("ordid/d");
$usrid=I("uid/d");
$stoid=getAdmStoId();
$goodlist=M('order_goods')->alias('a')->join('goods b','a.goods_id=b.goods_id','left')->where('a.order_id='.$ordid)->field('b.goods_name,a.goods_id,a.goods_price,a.goods_num,b.goods_sn,b.commission,b.prom_type')->select();
$comgoods=[];
$rs1=M('rebate_log')->where('order_id',$ordid)->where('user_id',$usrid)->where('store_id',getAdmStoId())->find();
$pattern=$rs1['dis_moshi'];
$this->assign('pattern', $pattern);
if(!empty($rs1['commission_json'])){
$comg=json_decode($rs1['commission_json'],true);
foreach ($comg as $k=>$v){
$comgoods[$v['goods_id']]=$v['commission'];
$yigoods[$v['goods_id']]=$v['fir'];
$ergoods[$v['goods_id']]=$v['sec'];
$sangoods[$v['goods_id']]=$v['thi'];
}
}
foreach($goodlist as $kk=>$vv){
$promt = $vv['prom_type'];
$goods_id = $vv['goods_id'];
if($pattern==0) {
if ($comgoods) {
$goodlist[$kk]['commission'] = $comgoods[$goods_id];
}else {
switch ($promt) {
case "1":
$now0 = time();
$where0 = [
'end_time' => ['>=', $now0],
'start_time' => ['<=', $now0],
'goods_id' => $goods_id, 'is_end' => 0
];
$ry = M('flash_sale')->where($where0)->find();
if ($ry) {
$goodlist[$kk]['commission'] = $ry['commission'];
}
break;
case "2":
$now0 = time();
$where0 = [
'end_time' => ['>=', $now0],
'start_time' => ['<=', $now0],
'goods_id' => $goods_id, 'is_end' => 0
];
$ry = M('group_buy')->where($where0)->find();
if ($ry) {
$goodlist[$kk]['commission'] = $ry['commission'];
}
break;
case "4":
$now0 = time();
$where0 = [
'end_time' => ['>=', $now0],
'start_time' => ['<=', $now0],
'goods_id' => $goods_id, 'is_end' => 0, 'is_show' => 1
];
$ry = M('integral_buy')->where($where0)->find();
if ($ry) {
$goodlist[$kk]['commission'] = $ry['commission'];
}
break;
}
}
}else if($pattern==1){
if ($rs1['second_rate']<=0 && $rs1['third_rate']<=0) {
switch ($rs1['level']) {
case 1:
$goodlist[$kk]['dis_shi'] =$yigoods[$goods_id]+$ergoods[$goods_id]+$sangoods[$goods_id];
break;
case 2:
$goodlist[$kk]['dis_shi'] =0;
break;
case 3:
$goodlist[$kk]['dis_shi'] =0;
break;
}
}
if ($rs1['second_rate']>0 &&$rs1['third_rate']<=0) {
switch ($rs1['level']) {
case 1:
$goodlist[$kk]['dis_shi'] =$yigoods[$goods_id];
break;
case 2:
$goodlist[$kk]['dis_shi']=$ergoods[$goods_id]+$sangoods[$goods_id];
break;
case 3:
$goodlist[$kk]['dis_shi'] = 0;
break;
}
}
if ($rs1['second_rate']>0 && $rs1['third_rate']>0) {
switch ($rs1['level']) {
case 1:
$goodlist[$kk]['dis_shi'] =$yigoods[$goods_id];
break;
case 2:
$goodlist[$kk]['dis_shi'] =$ergoods[$goods_id];
break;
case 3:
$goodlist[$kk]['dis_shi']=$sangoods[$goods_id];
break;
}
}
}
}
$reb=0;
switch ($rs1['level']){
case 1:
$reb = $rs1['first_rate'];break;
case 2:
$reb = $rs1['second_rate'];break;
case 3:
$reb = $rs1['third_rate'];break;
}
$this->assign("goodlist",$goodlist);
$this->assign("reb",$reb);
return $this->fetch('',$stoid);
}
public function evaluation(){
$p = I('p',1);
$start = ($p-1)*20;
$wname=I('wname');
$sname=I('sname');
$where=" WHERE wxd_comment.store_id='".getAdmStoId()."' ";
if(!empty($wname))
{
$where.=" and wxd_goods.goods_name like '%".$wname."%'";
}
if(!empty($sname))
{
$where.=" and wxd_pick_up.pickup_name like '%".$sname."%' ";
}
//var_dump($where);die;
$sql_w="SELECT wxd_goods.goods_name,wxd_pick_up.pickup_name,sum(CASE WHEN goods_rank<3 then 1 else 0 end) num1,sum(CASE WHEN goods_rank=3 then 1 else 0 end) num2,sum(CASE WHEN goods_rank>3 then 1 else 0 end) num3 from wxd_comment left JOIN wxd_goods on wxd_comment.goods_id=wxd_goods.goods_id
LEFT JOIN wxd_order ON wxd_comment.order_id=wxd_order.order_id LEFT JOIN wxd_pick_up on wxd_order.pickup_id=wxd_pick_up.pickup_id ".$where." and wxd_comment.add_time>$this->begin and wxd_comment.add_time<$this->end GROUP BY wxd_comment.goods_id limit $start,20";//
$sql_n="select count(1)tnum from(SELECT wxd_goods.goods_name,wxd_pick_up.pickup_name,sum(CASE WHEN goods_rank<3 then 1 else 0 end) num1,sum(CASE WHEN goods_rank=3 then 1 else 0 end) num2,sum(CASE WHEN goods_rank>3 then 1 else 0 end) num3 from wxd_comment left JOIN wxd_goods on wxd_comment.goods_id=wxd_goods.goods_id
LEFT JOIN wxd_order ON wxd_comment.order_id=wxd_order.order_id LEFT JOIN wxd_pick_up on wxd_order.pickup_id=wxd_pick_up.pickup_id ".$where." and wxd_comment.add_time>$this->begin and wxd_comment.add_time<$this->end GROUP BY wxd_comment.goods_id)a";
$list_w=DB::query($sql_w);
$sql="SELECT * from wxd_vcomment_day where store_id='".getAdmStoId()."' order by type ASC";
$list=DB::query($sql);
$total = DB::query($sql_n);
$count = $total[0]['tnum'];
$Page = new Page($count,20);
$show = $Page->show();
$this->assign('page',$show);
for($i=0;$iassign('wname',$wname);
$this->assign('sname',$sname);
$this->assign('info',$info);
$this->assign('list',$list_w);
$this->assign('count',$count);
return $this->fetch('',getAdmStoId());
}
public function vipfenxi()
{
$p = I('p', 1);
$start = ($p - 1) * 20;
$cat_id = I('cat_id', 0);//0:会员统计 1二维码统计 2介绍人统计
$where = "where b.add_time>$this->begin and b.add_time<$this->end ";
switch ($cat_id) {
case 0:
$sql = "SELECT IFNULL(b.new_vipnum,0) as 'new_vip','' as 'ordernum',IFNULL(b.sum_vipnum,0) as 'vipnum',date(FROM_UNIXTIME(a.real_date))as day,sum(case when a.issubscribe=1 then 1 else 0 end) gzsum,sum(case when a.issubscribe=0 then 1 else 0 end) cgzsum,sum(case when a.issubscribe=1 then 1 else -1 end) jgzsum, ROUND(sum(case when a.issubscribe=0 then 1 else 0 end)/(sum(case when a.issubscribe=0 then 1 else 0 end)+sum(case when a.issubscribe=1 then 1 else 0 end))*100,1) cgzper from (SELECT (case when issubscribe=0 then unsubscribe_date ELSE subscribe_date END)as real_date,issubscribe from wxd_wx_openlist where store_id=" . getAdmStoId() . ")a left join (select * from wxd_usercount where store_id=" . getAdmStoId() . ") b on store_id=b.store_id and date(FROM_UNIXTIME(a.real_date))=b.daynum where a.real_date>$this->begin and a.real_date<$this->end GROUP BY date(FROM_UNIXTIME(a.real_date))";
$sql2 = "select count(1)tnum from(" . $sql . ") aa ";
$sql .= " order by day desc limit $start,20";
break;
case 1:
$order1 = I('order1/s', "1");
$order2 = I('order2/s', "desc");
switch ($order1) {
case "1":
$getorder1 = "a.staffno";
break;
case "2":
$getorder1 = "a.num";
break;
case "3":
$getorder1 = "regnum";
break;
default:
$getorder1 = "a.num";
break;
}
$this->assign('order1', $order1);
$this->assign('order2', $order2);
$where = " where issubscribe=1 and store_id=" . getAdmStoId() . " and subscribe_date>$this->begin and subscribe_date<$this->end ";
$where1 = " where a.store_id=" . getAdmStoId() . " and ifnull(a.mobile,'')<>'' and a.reg_time>$this->begin and a.reg_time<$this->end ";
$sql = " select a.*,c.regnum from (SELECT staffno ,count(1) num,''as 'name',''as 'storename' from (SELECT IFNULL(staffno,'')as staffno,subscribe_date from wxd_wx_openlist " . $where . ")a GROUP BY staffno ) a";
$sql .= " left join (select IFNULL(staffno,'')as staffno,count(1) as regnum from wxd_users a left join wxd_wx_openlist b on a.openid=b.wxopenid " . $where1 . " group by IFNULL(b.staffno,'')) c on a.staffno=c.staffno ";
$sql .= " order by $getorder1 $order2 limit $start,20";
$sql2 = "select count(1)tnum from(SELECT count(1)tnum from wxd_wx_openlist " . $where . " GROUP BY staffno) aa ";
//echo $sql;die;
break;
case 2:
$order1 = I('order1/s', "1");
$order2 = I('order2/s', "desc");
switch ($order1) {
case "1":
$getorder1 = "b.mobile";
break;
case "2":
$getorder1 = "a.num";
break;
case "3":
$getorder1 = "regnum";
break;
default:
$getorder1 = "b.mobile";
break;
}
$this->assign('order1', $order1);
$this->assign('order2', $order2);
$where = "where ifnull(erpvipid,'') <>'' and ifnull(mobile,'')<>'' and reg_time>$this->begin and reg_time<$this->end ";
$where .= " and store_id=" . getAdmStoId();
$keywords = I('keywords');
if ($keywords) {
$where1 = " where (b.mobile like '%" . $keywords . "%' or b.vipname like '%" . $keywords . "%')";
}
$sql = "SELECT a.*,b.mobile,b.vipname from (SELECT fromuser_id,COUNT(1) as num from wxd_users " . $where . " GROUP BY fromuser_id)a LEFT JOIN wxd_users b ON a.fromuser_id=b.user_id";
$sql .= $where1;
$sql .= " order by $getorder1 $order2 limit $start,20";
$sql2 = "SELECT count(1)tnum from (SELECT fromuser_id,COUNT(1) as num from wxd_users " . $where . " GROUP BY fromuser_id)a LEFT JOIN wxd_users b ON a.fromuser_id=b.user_id";
$sql2 .= $where1;
$this->assign('keywords', $keywords);
break;
}
$res = DB::query($sql);
$amountnum = 0;//统计总数
if ($cat_id == 0)//会员统计
{
$info = '';
$res;
$gznum = DB::query("SELECT issubscribe,count(1) num from (SELECT (case when issubscribe=0 then unsubscribe_date ELSE subscribe_date END)as real_date,issubscribe from wxd_wx_openlist where store_id=" . getAdmStoId() . " )a where a.real_date>$this->begin and a.real_date<$this->end GROUP BY a.issubscribe"); //统计总数
for ($k = 0; $k < count($gznum); $k++) {
if ($gznum[$k]['issubscribe'] == 0) {
$info['cnum'] = $gznum[$k]['num'];
}
if ($gznum[$k]['issubscribe'] == 1) {
$info['gnum'] = $gznum[$k]['num'];
}
}
$znum = DB::query("SELECT count(1)num from wxd_users where store_id=" . getAdmStoId() . " and erpvipid<>'' and reg_time>$this->begin and reg_time<$this->end");
$info['newnum'] = $znum[0]['num'];
$where1 = 'store_id = ' . getAdmStoId();
$newsum = M('usercount')->where($where1)->order('daynum desc')->select();
// for ($i = 0; $i < count($res); $i++) {
// for ($j = 0; $j < count($newsum); $j++) {
// if ($res[$i]['day'] == $newsum[$j]['daynum']) {
// $res[$i]['all_vip'] = $newsum[$j]['sum_vipnum'];
// $res[$i]['new_vip'] = $newsum[$j]['new_vipnum'];
// } else {
// $res[$i]['all_vip'] = 0;
// $res[$i]['new_vip'] = 0;
// }
// }
// }
$this->assign('today_all_vip', $newsum[0]['osum_vipnum']);
$this->assign('today_new_vip', $newsum[0]['new_vipnum']);
$this->assign('today_gzsum', $res[0]['gzsum']);
} else if ($cat_id == 1) //二维码来源
{
//$wxuser = M('wx_store')->where('store_id='.getAdmStoId())->find();
$token = tpCache('shop_info.api_token', getAdmStoId());
$staffnolist = json_decode(getApiData('wxd.base.staffinfo.list.get', $token, null, '', null, 1000), true);//$wxuser['token']
foreach ($res as $k => $v) {
$amountnum += $v['num'];
if ($staffnolist['code'] == 1 && count($staffnolist['data']) > 0) {
for ($i = 0; $i < count($staffnolist['data']); $i++) {
if ($v['staffno'] === $staffnolist['data'][$i]['StaffNo']) {
$res[$k]['name'] = $staffnolist['data'][$i]['StaffName'];
$res[$k]['storename'] = $staffnolist['data'][$i]['StorageName'];
}
}
}
}
} else ///介绍来源
{
foreach ($res as $k => $v) {
$amountnum += $v['num'];
}
}
$zs = M('users')->where("1=1 and ifnull(erpvipid,'')<>'' and ifnull(mobile,'')<>'' " . getStoWhere())->count();
$info['znum'] = $zs;
session('excelvipfenxi_' . getAdmStoId(), $res);
$this->assign('list', $res);
//var_dump($res);
$this->assign('cat_id', $cat_id);
$total = DB::query($sql2);
$count = $total[0]['tnum'];
$Page = new Page($count, 20);
$show = $Page->show();
$this->assign('page', $show);
$this->assign('count', $count);
$this->assign('amountnum', $amountnum);
$this->assign('info', $info);
return $this->fetch('', getAdmStoId());
}
//会员分析单页导出
public function exportreportvipfenxi_page()
{
$cat_id = I('cat_id');
$cat_name = "关注统计";
$orderList = session('excelvipfenxi_' . getAdmStoId());
$page = I('page/d', 1);
if (empty($orderList)) {
return json(array('code' => -1, 'msg' => '无数据'));
}
switch ($cat_id) {
case 0:
$cat_name = "关注统计";
$strTable = '';
$strTable .= '';
$strTable .= '日期 | ';
$strTable .= '关注数 | ';
$strTable .= '取消关注数 | ';
$strTable .= '净关注 | ';
$strTable .= '取消率 | ';
$strTable .= '注册数量 | ';
$strTable .= '
';
if (is_array($orderList)) {
foreach ($orderList as $k => $val) {
$strTable .= '';
$strTable .= '' . $val['day'] . ' | ';
$strTable .= '' . $val['gzsum'] . ' | ';
$strTable .= '' . $val['cgzsum'] . ' | ';
$strTable .= ' ' . $val['jgzsum'] . ' | ';
$strTable .= ' ' . $val['cgzper'] . '% | ';
$strTable .= ' ' . $val['new_vip'] . ' | ';
$strTable .= '
';
}
}
$strTable .= '
';
break;
case 1:
$token = tpCache('shop_info.api_token', getAdmStoId());
$staffnolist = json_decode(getApiData('wxd.base.staffinfo.list.get', $token, null, '', null, 1000), true);//$wxuser['token']
$cat_name = "二维码统计";
$strTable = '';
$strTable .= '';
$strTable .= '二维码来源 | ';
$strTable .= '员工姓名 | ';
$strTable .= '所属门店 | ';
$strTable .= '扫码数量 | ';
$strTable .= '注册数量 | ';
$strTable .= '
';
if (is_array($orderList)) {
foreach ($orderList as $k => $val) {
$strTable .= '';
$strTable .= '' . $val['staffno'] . ' | ';
$strTable .= '' . $val['name'] . ' | ';
$strTable .= '' . $val['storename'] . ' | ';
$strTable .= ' ' . $val['num'] . ' | ';
$strTable .= ' ' . $val['regnum'] . ' | ';
$strTable .= '
';
}
}
$strTable .= '
';
break;
case 2:
$cat_name = "介绍人统计";
$strTable = '';
$strTable .= '';
$strTable .= '介绍人手机 | ';
$strTable .= '姓名 | ';
$strTable .= '数量 | ';
$strTable .= '
';
if (is_array($orderList)) {
foreach ($orderList as $k => $val) {
$strTable .= '';
$strTable .= '' . $val['mobile'] . ' | ';
$strTable .= '' . $val['vipname'] . ' | ';
$strTable .= ' ' . $val['num'] . ' | ';
$strTable .= '
';
}
}
$strTable .= '
';
break;
default:
break;
}
echo $strTable;
unset($orderList);
downloadExcel($strTable, '会员分析-' . $cat_name . $page);
exit();
}
//会员分析导出
public function exportreport_vipfenxi()
{
$p = I('p', 1);
$cat_id = I('cat_id', 0);//0:会员统计 1二维码统计 2介绍人统计
$where = "where b.add_time>$this->begin and b.add_time<$this->end ";
switch ($cat_id) {
case 0:
$sql = "SELECT '' as 'newvipnum','' as 'ordernum','' as 'vipnum',date(FROM_UNIXTIME(a.real_date))as day,sum(case when a.issubscribe=1 then 1 else 0 end) gzsum,sum(case when a.issubscribe=0 then 1 else 0 end) cgzsum,sum(case when a.issubscribe=1 then 1 else -1 end) jgzsum, ROUND(sum(case when a.issubscribe=0 then 1 else 0 end)/(sum(case when a.issubscribe=0 then 1 else 0 end)+sum(case when a.issubscribe=1 then 1 else 0 end))*100,1) cgzper from (SELECT (case when issubscribe=0 then unsubscribe_date ELSE subscribe_date END)as real_date,issubscribe from wxd_wx_openlist where store_id=" . getAdmStoId() . ")a where a.real_date>$this->begin and a.real_date<$this->end GROUP BY date(FROM_UNIXTIME(a.real_date))";
$sql .= " order by day desc";
break;
case 1:
$order1 = I('order1/s', "1");
$order2 = I('order2/s', "desc");
switch ($order1) {
case "1":
$getorder1 = "a.staffno";
break;
case "2":
$getorder1 = "a.num";
break;
case "3":
$getorder1 = "regnum";
break;
default:
$getorder1 = "a.num";
break;
}
$this->assign('order1', $order1);
$this->assign('order2', $order2);
$where = " where issubscribe=1 and store_id=" . getAdmStoId() . " and subscribe_date>$this->begin and subscribe_date<$this->end ";
$where1 = " where a.store_id=" . getAdmStoId() . " and ifnull(a.mobile,'')<>'' and a.reg_time>$this->begin and a.reg_time<$this->end ";
$sql = " select * from (SELECT staffno,count(1)num,''as 'name',''as 'storename' from (SELECT IFNULL(staffno,'')as staffno,subscribe_date from wxd_wx_openlist " . $where . ")a GROUP BY staffno ) a";
$sql .= " left join (select IFNULL(staffno,'')as staffno,count(1) as regnum from wxd_users a left join wxd_wx_openlist b on a.openid=b.wxopenid " . $where1 . " group by IFNULL(b.staffno,'')) c on a.staffno=c.staffno ";
$sql .= " order by $getorder1 $order2 ";
break;
case 2:
$order1 = I('order1/s', "1");
$order2 = I('order2/s', "desc");
switch ($order1) {
case "1":
$getorder1 = "b.mobile";
break;
case "2":
$getorder1 = "a.num";
break;
default:
$getorder1 = "b.mobile";
break;
}
$where = " where ifnull(erpvipid,'')<>'' and ifnull(mobile,'')<>'' and reg_time>$this->begin and reg_time<$this->end ";
$where .= " and reg_time>$this->begin and reg_time<$this->end ";
$where .= " and store_id=" . getAdmStoId();
$keywords = I('keywords');
if ($keywords) {
$where1 = " where (b.mobile like '%" . $keywords . "%' or b.vipname like '%" . $keywords . "%')";
}
$sql = "SELECT a.*,b.mobile,b.vipname from (SELECT fromuser_id,COUNT(1) as num from wxd_users " . $where . " GROUP BY fromuser_id)a LEFT JOIN wxd_users b ON a.fromuser_id=b.user_id";
$sql .= $where1;
$sql .= " order by $getorder1 $order2 ";
break;
}
$res = DB::query($sql);
switch ($cat_id) {
case 0:
$znum = DB::query("SELECT count(1)num from wxd_users where store_id=" . getAdmStoId() . " and erpvipid<>'' and reg_time>$this->begin and reg_time<$this->end");
$info['newnum'] = $znum[0]['num'];
$where1 = 'store_id = ' . getAdmStoId();
$newsum = M('usercount')->where($where1)->order('daynum desc')->select();
for ($i = 0; $i < count($res); $i++) {
for ($j = 0; $j < count($newsum); $j++) {
if ($res[$i]['day'] == $newsum[$j]['daynum']) {
$res[$i]['all_vip'] = $newsum[$j]['sum_vipnum'];
$res[$i]['new_vip'] = $newsum[$j]['new_vipnum'];
} else {
$res[$i]['all_vip'] = 0;
$res[$i]['new_vip'] = 0;
}
}
}
$cat_name = "关注统计";
$strTable = '';
$strTable .= '';
$strTable .= '日期 | ';
$strTable .= '关注数 | ';
$strTable .= '取消关注数 | ';
$strTable .= '净关注 | ';
$strTable .= '取消率 | ';
$strTable .= '注册数量 | ';
$strTable .= '
';
if (is_array($res)) {
foreach ($res as $k => $val) {
$strTable .= '';
$strTable .= '' . $val['day'] . ' | ';
$strTable .= '' . $val['gzsum'] . ' | ';
$strTable .= '' . $val['cgzsum'] . ' | ';
$strTable .= ' ' . $val['jgzsum'] . ' | ';
$strTable .= ' ' . $val['cgzper'] . '% | ';
$strTable .= ' ' . $val['new_vip'] . ' | ';
$strTable .= '
';
}
}
$strTable .= '
';
break;
case 1:
$token = tpCache('shop_info.api_token', getAdmStoId());
$staffnolist = json_decode(getApiData('wxd.base.staffinfo.list.get', $token, null, '', null, 1000), true);//$wxuser['token']
foreach ($res as $k => $v) {
if ($staffnolist['code'] == 1 && count($staffnolist['data']) > 0) {
for ($i = 0; $i < count($staffnolist['data']); $i++) {
if ($v['staffno'] == $staffnolist['data'][$i]['StaffNo']) {
$res[$k]['name'] = $staffnolist['data'][$i]['StaffName'];
$res[$k]['storename'] = $staffnolist['data'][$i]['StorageName'];
}
}
}
}
$cat_name = "二维码统计";
$strTable = '';
$strTable .= '';
$strTable .= '二维码来源 | ';
$strTable .= '员工姓名 | ';
$strTable .= '所属门店 | ';
$strTable .= '扫码数量 | ';
$strTable .= '注册数量 | ';
$strTable .= '
';
if (is_array($res)) {
foreach ($res as $k => $val) {
$strTable .= '';
$strTable .= '' . $val['staffno'] . ' | ';
$strTable .= '' . $val['name'] . ' | ';
$strTable .= '' . $val['storename'] . ' | ';
$strTable .= ' ' . $val['num'] . ' | ';
$strTable .= ' ' . $val['regnum'] . ' | ';
$strTable .= '
';
}
}
$strTable .= '
';
break;
case 2:
$cat_name = "介绍人统计";
$strTable = '';
$strTable .= '';
$strTable .= '介绍人手机 | ';
$strTable .= '姓名 | ';
$strTable .= '数量 | ';
$strTable .= '
';
if (is_array($res)) {
foreach ($res as $k => $val) {
$strTable .= '';
$strTable .= '' . $val['mobile'] . ' | ';
$strTable .= '' . $val['vipname'] . ' | ';
$strTable .= ' ' . $val['num'] . ' | ';
$strTable .= '
';
}
}
$strTable .= '
';
break;
default:
break;
}
echo $strTable;
unset($orderList);
downloadExcel($strTable, '会员分析-' . $cat_name);
exit();
}
public function vipxqing()
{
$date = I('get.dates');
//var_dump($date);die;
$sdate = strtotime($date . " 00:00:00");
$edate = strtotime($date . " 23:59:59");
$where1 = '';
$store_id = getAdmStoId();
$where1 = " a.store_id=" . $store_id;
$where1 .= ' and ((a.subscribe_date>=' . $sdate . ' and a.subscribe_date<=' . $edate . ') or (a.unsubscribe_date>=' . $sdate . ' and a.unsubscribe_date<=' . $edate . '))';
$count = M('wx_openlist')->alias('a')->where($where1)->count(1);
$Page = new Page($count, 10);
$res = M('wx_openlist')->alias('a')
->where($where1)
->field('a.*')
->limit($Page->firstRow . ',' . $Page->listRows)
->select();
if ($res) {
foreach ($res as $k => $v) {
$usernick = M('users')->where(array('store_id' => $v['store_id'], 'openid' => $v['wxopenid']))->field('nickname,mobile,reg_time')->find();
$res[$k]['nickname'] = $usernick['nickname'];
if ($usernick['mobile']) {
$res[$k]['reg_time'] = $usernick['reg_time'];
}
}
}
$show = $Page->show();//分页显示输出
$this->assign('page', $show);//赋值分页输出
$this->assign('pager', $Page);//赋值分页输出
$this->assign('xqing', $res);
return $this->fetch('', getAdmStoId());
}
//介绍人详情
public function vipxqing3()
{
$fromuserid = I('get.fromuserid/d', 0);
$where1 = '';
$store_id = getAdmStoId();
$where1 = " a.store_id=" . $store_id . " and a.fromuser_id=" . $fromuserid;
$where1 .= " and a.reg_time>$this->begin and a.reg_time<$this->end ";
$count = M('users')->alias('a')->where($where1)->count(1);
$Page = new Page($count, 10);
$res = M('users')->alias('a')
->where($where1)
->field('a.*')
->limit($Page->firstRow . ',' . $Page->listRows)
->order('a.reg_time desc')
->select();
if ($res) {
$this->assign('xqing', $res);
}
$show = $Page->show();//分页显示输出
$this->assign('page', $show);//赋值分页输出
$this->assign('pager', $Page);//赋值分页输出
return $this->fetch('', getAdmStoId());
}
//积分流水
public function show_liushui(){
$usr_id=I("uid");
$user=M("users")->where('user_id',$usr_id)->field('pay_points')->find();
$this->assign('user', $user);//赋值分页输出
$where="user_id=".$usr_id;
$where.=" and pay_points<>0";
$where.=" and store_id=".getAdmStoId();
$count = M('account_log')->where($where)->count();
$Page = new Page($count, 10);
$goodsList = M('account_log')->where($where)->order('log_id DESC')->limit($Page->firstRow . ',' . $Page->listRows)->select();
$show = $Page->show();//分页显示输出
$this->assign('page', $show);//赋值分页输出
$this->assign('goodsList', $goodsList);
$this->assign('pager', $Page);//赋值分页输出
return $this->fetch("", getAdmStoId());
}
//首页总的销售统计
public function all_index_tj(){
//销售概况统计
$today=array(
'0'=>0,//total_amount
'1'=>0,//order_amount
'2'=>0,//return_goods
'3'=>0,//return_ing
'4'=>0,//count
'5'=>0,//num
);
$all_money=M('order')
->alias('a')
->join('(SELECT order_id,sum(goods_num)warenum FROM wxd_order_goods WHERE store_id='.getAdmStoId().' GROUP BY order_id) b','a.order_id=b.order_id','left')
->where(' a.store_id='.getAdmStoId().' and a.pay_status=1 ')
->field('sum(b.warenum)goods_num,a.order_id,sum(a.total_amount)all_total_amount,sum(a.order_amount+a.user_money+a.pt_tail_money)all_order_amount')
->group('a.order_id')
->select();
$return_money=M('return_goods')
->alias('a')
->where(' a.store_id='.getAdmStoId().' ')
->field(' a.status,sum(a.back_money)back_money ')
->group('a.status')
->select();
if(!empty($all_money))
{
$today['4']=count($all_money);
for ($j=0;$j1,'data'=>$today];
}
//销售导出
//销售导出
public function xx_export()
{
//支付方式
$pay_name = I('get.pay_name');
//配送方式
$exp_type = I('get.exp_type');
//汇总查询
$total_sel = I('total_sel');
//时间查询
$timetype = I('timetype', 1);
//订单状态
$order_status = I('order_status');
$count = 0;
switch ($total_sel) {
case 0: //汇总查询
$field = 'a.is_zsorder,a.order_id,a.pay_code,a.order_status,a.more_address,address,a.shipping_status,a.add_time,a.erp_givetime,a.consignee,sum(a.user_money+a.order_amount)all_order_amount,a.order_sn,a.exp_type,a.pay_status,a.pt_status,pay_name,a.total_amount,a.pickup_id,a.expressno,a.order_amount,a.user_money,a.integral,sum(b.warenum)num';
$group = 'b.order_id';
// $c_field = "count(distinct(b.order_id))cou";
$c_field = "count(distinct(a.order_id))cou";
$join = [
['(SELECT order_id,sum(goods_num)warenum FROM wxd_order_goods WHERE store_id=' . getAdmStoId() . ' GROUP BY order_id) b', 'a.order_id=b.order_id', 'left'],
['(SELECT * FROM wxd_pick_up WHERE store_id=' . getAdmStoId() . ') c', 'a.pickup_id=c.pickup_id', 'left'],
['(SELECT mobile,user_id,vipname from wxd_users where store_id=' . getAdmStoId() . ') d', 'a.user_id=d.user_id', 'left']
];
break;
case 1://按单号汇总
$field = 'a.is_zsorder,a.order_id,a.pay_code,a.order_status,a.more_address,address,a.consignee,sum(a.user_money+a.order_amount)all_order_amount,a.shipping_status,a.add_time,a.erp_givetime,a.order_sn,a.exp_type,a.pay_status,a.pt_status,pay_name,a.total_amount,a.pickup_id,a.expressno,a.order_amount,a.user_money,a.integral,sum(b.warenum)num,a.user_note,sum(total_amount)all_total_amount,sum(order_amount+user_money+pt_tail_money)all_order_amount';
$join = [
['(SELECT order_id,sum(goods_num)warenum FROM wxd_order_goods WHERE store_id=' . getAdmStoId() . ' GROUP BY order_id) b', 'a.order_id=b.order_id', 'left'],
];
$group = 'b.order_id';
$c_field = "count(distinct(b.order_id))cou";
break;
case 2: //按门店汇总
$field = 'c.pickup_no,c.pickup_name,count(1)num,sum(b.warenum)warenum,a.user_note,sum(total_amount)all_total_amount,sum(order_amount+user_money+pt_tail_money)all_order_amount';
$join = [
['(SELECT order_id,sum(goods_num)warenum FROM wxd_order_goods WHERE store_id=' . getAdmStoId() . ' GROUP BY order_id) b', 'a.order_id=b.order_id', 'left'],
['(SELECT * FROM wxd_pick_up WHERE store_id=' . getAdmStoId() . ') c', 'a.pickup_id=c.pickup_id', 'left']
];
$group = 'c.pickup_no';
$c_field = "count(distinct(c.pickup_no))cou";
break;
case 3: //按商品汇总
$field = 'b.goods_name,b.goods_sn,b.goods_price,e.shop_price,sum(b.goods_num)num,sum(b.goods_price*b.goods_num)all_total_amount,sum(e.shop_price*b.goods_num) all_order_amount';
$join = [
['(SELECT * FROM wxd_order_goods WHERE store_id=' . getAdmStoId() . ') b', 'a.order_id=b.order_id', 'left'],
['(SELECT * FROM wxd_pick_up WHERE store_id=' . getAdmStoId() . ') c', 'a.pickup_id=c.pickup_id', 'left'],
['(SELECT * FROM wxd_goods WHERE store_id=' . getAdmStoId() . ') e', 'e.goods_id=b.goods_id', 'left']
];
$where['a.pay_status'] = 1;
$group = 'b.goods_sn,b.goods_name,b.goods_price,e.shop_price';
$c_field = "count(distinct(CONCAT(b.goods_sn,b.goods_name,cast(b.goods_price as CHAR(50)),cast(e.shop_price as CHAR(50)))))cou";
break;
case 4: //按配送汇总
$field = 'a.exp_type,count(1)num,sum(a.shipping_price)shipping_price,sum(b.warenum)warenum ';
$group = 'a.exp_type';
$join = [
['(SELECT order_id,sum(goods_num)warenum FROM wxd_order_goods WHERE store_id=' . getAdmStoId() . ' GROUP BY order_id) b', 'a.order_id=b.order_id', 'left'],
['(SELECT * FROM wxd_pick_up WHERE store_id=' . getAdmStoId() . ') c', 'a.pickup_id=c.pickup_id', 'left']
];
$count = 2;
break;//->join('(SELECT * FROM wxd_order_goods WHERE store_id='.getAdmStoId().') b','a.order_id=b.order_id','left')
case 5: //按支付方式汇总
$field = '(sum(order_amount)+sum(case when tail_pay_type=0 then pt_tail_money else 0 end)) as all_order_amount,(sum(user_money)+sum(case when tail_pay_type=1 then pt_tail_money else 0 end))all_user_money,sum(integral)all_integral,
count(1)cou';
$join = [
['(SELECT * FROM wxd_pick_up WHERE store_id=' . getAdmStoId() . ') c', 'a.pickup_id=c.pickup_id', 'left']
];
$group = 'a.store_id';
$count = 3;
break;
}
$ispost = I('post.');
if (!isset($ispost['data'])) {
exit();
}
if (isset($ispost['type'])) {
// $where1 = " a.store_id='" . getAdmStoId() . "'";
// if ($ispost['type']['start_time'] != '' && $ispost['type']['end_time'] != '') {
// switch ($timetype) {
// case "1":
// $where1 .= " and a.add_time > " . strtotime(urldecode(urldecode($ispost['type']['start_time'])));
// $where1 .= " and a.add_time < " . strtotime(urldecode(urldecode($ispost['type']['end_time'])));
// break;
// case "2":
// $where1 .= " and a.erp_givetime > " . strtotime(urldecode(urldecode($ispost['type']['start_time'])));
// $where1 .= " and a.erp_givetime < " . strtotime(urldecode(urldecode($ispost['type']['end_time'])));
// break;
// }
// }
$where = json_decode($ispost['where'], "true");
$where1 = str_replace("@", "\"", $ispost['where1']);
if ($count == 0) {
$c1 = M('order')->alias('a')->where($where1)->where($where)->count();
if ($c1 > 8000)
$this->error("导出数据量大(最大支持8000条),请重新选择时间段进行导出");
}
$join = [['pick_up d', 'd.store_id=' . getAdmStoId() . ' and a.pickup_id=d.pickup_id', 'left']];
$field = 'd.pickup_no,d.pickup_name,a.add_time,a.erp_givetime,a.order_sn,b.vipname,a.exp_type,a.consignee,a.more_address,a.address,a.order_status,a.order_amount,a.expressno,a.pay_name,
a.integral_money,a.coupon_price,a.pay_status,a.pay_code,a.shipping_status,(a.order_prom_amount+a.discount_amount) as youhui,
a.user_money,a.user_note,sum(c.goods_num)num,sum(a.user_money+a.order_amount)all_order_amount,';
if($total_sel!=3){
$field .= 'sum(a.total_amount)all_total_amount';
}
$count = Db::name('order')
->alias('a')
->join('(select vipname,mobile,nickname,user_id from wxd_users where store_id=' . getAdmStoId() . ') b ', 'a.user_id=b.user_id', 'left')
->join('order_goods c', 'a.order_id=c.order_id', 'left')
->join($join)
->where($where)
->where($where1)
->field($field)
->order('add_time desc,order_sn desc')
->group('a.order_id')
->select();
$count_str = Db::name('order')
->alias('a')
->join('(select vipname,mobile,nickname,user_id from wxd_users where store_id=' . getAdmStoId() . ') b ', 'a.user_id=b.user_id', 'left')
->join('order_goods c', 'a.order_id=c.order_id', 'left')
->join($join)
->where($where)
->where($where1)
->field($field)
->order('add_time desc,order_sn desc')
->group('a.order_id')->fetchSql(true)
->select();
mlog("1:".$count_str,"xx_export/".getAdmStoId());
} else {
$data = input();
$where = json_decode($data['where'], "true");
$where1 = str_replace("@", "\"", $data['where1']);
if ($count == 0) {
$tjarr1 = M('order')
->alias('a')->join($join)
->where($where)->where($where1)
->field($c_field)
->select();
$tjarr = $tjarr1[0];
$c1 = $tjarr['cou'];
if ($c1 > 8000)
$this->error("导出数据量大(最大支持8000条),请重新选择时间段进行导出");
}
$count = M('order')
->alias('a')
// ->join('(SELECT * FROM wxd_order_goods WHERE store_id='.getAdmStoId().') b','a.order_id=b.order_id','left')
->join($join)
->where($where)
->where($where1)
->field($field)
->order('a.add_time desc,a.order_sn desc')
->group($group)
->select();
}
$strTable = '';
$strTable .= '';
foreach ($ispost['data'] as $k => $val) {
$strTable .= '' . $val . ' | ';
}
$strTable .= '
';
for ($i = 0; $i < count($count); $i++) {
$strTable .= '';
foreach ($ispost['data'] as $k1 => $val) {
// 时间戳转换
if (strripos('aaa,exp_type', $k1) > 0) {
$strTable .= ' ';
if ($count[$i][$k1] == '0') {
$strTable .= "物流";
}
if ($count[$i][$k1] == '1') {
$strTable .= "自提";
}
$strTable .= ' | ';
} else if (strripos('reg_time,add_time,erp_givetime', $k1) > 0) {
if ($count[$i][$k1]>0) {
$strTable .= ' ' . date('Y-m-d H:i:s', $count[$i][$k1]) . ' | ';
}else
{
$strTable .= ' | ';
}
} else if (strripos('2,prom_type', $k1) > 0) {
$strTable .= ' ';
if ($count[$i][$k1] == '0') $strTable .= "普通订单";
if ($count[$i][$k1] == '1') $strTable .= "限时抢购";
if ($count[$i][$k1] == '2') $strTable .= "团购";
if ($count[$i][$k1] == '3') $strTable .= "促销优惠";
$strTable .= ' | ';
} else if (strripos('2,pay_name', $k1) > 0) {
$strTable .= ' ';
if ($pay_name == 1) {
$strTable .= "微信支付";
} else if ($pay_name == 2) {
$strTable .= "余额支付";
} else if ($pay_name == 3) {
$strTable .= "积分兑换";
} else {
if ($count[$i]['order_amount'] > 0) {
$strTable .= "微信支付";
} else if ($count[$i]['user_money'] > 0) {
$strTable .= "用户余额";
} else {
$strTable .= "积分兑换";
}
}
$strTable .= ' | ';
} else if (strripos('3,order_status', $k1) > 0) {
$strTable .= ' ';
//订单状态
switch ($count[$i]['pt_status']) {
case "1": {
$strTable .= "待付款";
} //待成团
break;
case "2":
if ($count[$i]['is_zsorder'] == 4) {
$strTable .= "待付尾款";
} //待付尾款
else {
$strTable .= $this->ex_ord_status($order_status, $count[$i]);
}
break;
case "3": {
$strTable .= "拼团失败";
} //拼团失败
break;
case "6": {
$strTable .= "未付尾款";
} //拼团失败
break;
default:
$strTable .= $this->ex_ord_status($order_status, $count[$i]);
break;
}
$strTable .= ' | ';
} else if (strripos('4,order_amount,shop_price,goods_price,shipping_price,total_amount,user_money,all_total_amount,all_order_amount,num,warenum,integral_money,coupon_price,youhui', $k1) > 0) {
$strTable .= '' . $count[$i][$k1] . ' | ';
} else if (strripos('5,address', $k1) > 0) {
$strTable .= ' ' .$count[$i]['more_address'] . $count[$i][$k1]. ' | ';
} else {
$strTable .= ' ' . $count[$i][$k1] . ' | ';
}
}
$strTable .= '
';
}
$strTable .= '
';
downloadExcel($strTable, 'order');
exit();
}
public function ex_ord_status($order_status,$order){
if ($order_status) //订单状态
{
if ($order_status == 'WAITPAY') {return "待付款";} //待付款
if ($order_status == 'WAITSEND') {return "待发货";};//待发货
if ($order_status == 'WAITRECEIVE') {return "待收货";};//待收货
if ($order_status == 'WAITCCOMMENT') {return "已收货";};//已收货
if ($order_status == 'CANCEL') {return "已取消";};//已取消
if ($order_status == 'FINISH') {return "已完成";};//已完成
if ($order_status == 'CANCELLED') {return "已作废";};//已作废
if ($order_status == 'RETURNED') {return "退款退货完成";};//退款退货完成
if ($order_status == 'PAYED') {return "已付款";};//已付款
}
else{
if($order['pay_status']==0 && $order['order_status']==0 && $order['pay_code']!='cod'){ return "待付款";}
else if(($order['pay_status']==1 || $order['pay_code']=='cod') && $order['shipping_status']==0 && ($order['order_status']==0 || $order['order_status']==1)){ return "待发货";}
else if(($order['shipping_status']==1 || $order['shipping_status']==2) && $order['order_status']==1){return "待收货";}
else if($order['order_status']==2){return "已收货";}
else if($order['order_status']==3){return "已取消";}
else if($order['order_status']==4){return "已完成";}
else if($order['order_status']==5){return "已作废";}
else if($order['order_status']==6){return "退款退货完成";}
else if($order['pay_status']==1){return "已付款";}
}
}
}