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 "已付款";}
        }
    }
}