rangeTime('asdasdasd'); $this->assign('defDate',$defDate); if($this->request->isAjax()){ $filter=json_decode(input('filter'),true); $map=[]; if(!empty($filter['date'])){ list($time1,$time2)=explode(' - ',$filter['date']); $map['create_time']=['between',[strtotime($time1),strtotime($time2)]]; } list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $offset=input('offset',0); $limit=input('limit',20); $page=$offset/$limit+1; $list=\app\admin\model\Orders::payed() ->where($map) ->order($sort,$order) ->paginate($limit,false,['page'=>$page]); $index=$list->listRows()*$list->currentPage()-$list->listRows(); foreach ($list as $idx=>&$item){ $item['rank']=$index+$idx+1; } return json([ 'rows'=>$list->items(), 'total'=>$list->total(), ]); } list($postTime) = $this->rangeTime('startTime'); $where = []; $map = []; if($postTime){ $time = explode(' - ',$postTime); $startTime = strtotime($time[0]); $endTime = strtotime($time[1]); $where['create_time'] = array('between',[$startTime,$endTime]); $map['createtime'] = array('between',[$startTime,$endTime]); } //总销售额 $sale = Db('Orders')->where($where)->where('status','in','5,10,20')->sum('amount_pay'); $refund = Db('OrderInfoRefund')->where($where)->where('refund_status',20)->sum('amount'); $sale = bcsub($sale,$refund); //总销售数量 $saleNum = Db('Orders')->where($where)->where('status','in','5,10,20')->count(); $refundNum = Db('OrderInfoRefund')->where($where)->where('refund_status',20)->count(); $saleNum = bcsub($saleNum,$refundNum); //新增用户数 $register = Db('User')->where($map)->count(); //下单用户数 $buy = Db('Orders')->where($where)->where('status','in','5,10,20')->group('user_id')->count(); //毛利、毛利率 $install = Db('Orders')->where($where)->where('status','in','5,10,20')->sum('amount_install');//总安装费 $orderIds = Db('Orders')->where($where)->where('status','in','5,10,20')->column('id'); $cost = Db('OrderInfo')->where('order_id','in',$orderIds)->sum('amount_cost_total');//总成本 $gross_profit = bcsub($sale,$install); $gross_profit = bcsub($gross_profit,$cost); $gross_profit_margin = 0; if($sale > 0)$gross_profit_margin = round($gross_profit/$sale,2)*100;//毛利率 //支付方式 $orderList = Db("Orders")->where($where) ->field('pay_type, COUNT(*) AS nums') ->group('pay_type') ->select(); $payTotalCount = Db("Orders")->where($where)->where('status','in','5,10,20,30')->count(); $payTypeList = []; $payTypeList1 = []; foreach ($orderList as $k => $v) { if($v['pay_type'] == 1){ $v['pay_type'] = '企业网银'; }elseif ($v['pay_type'] == 2){ $v['pay_type'] = '微信'; }elseif ($v['pay_type'] == 3){ $v['pay_type'] = '支付宝'; }elseif ($v['pay_type'] == 4){ $v['pay_type'] = '银联'; }elseif ($v['pay_type'] == 5){ $v['pay_type'] = '代付'; }elseif ($v['pay_type'] == 6){ $v['pay_type'] = '线下支付'; } $rate = 0; if($payTotalCount > 0)$rate = round($v['nums']/$payTotalCount,2)*100; $rate = $rate.'%'; $payTypeList[$v['pay_type']] = $v['nums']; $payTypeList1[$v['pay_type']] = $rate; } $this->view->assign([ 'sale' => $sale, 'sale_num' => $saleNum, 'register' => $register, 'buy' => $buy, 'gross_profit'=>$gross_profit, 'gross_profit_margin'=>$gross_profit_margin, 'post_time'=>$postTime ]); $this->assignconfig('type_column', array_keys($payTypeList)); $this->assignconfig('type_data', array_values($payTypeList)); $this->assignconfig('type_column1', array_keys($payTypeList1)); $this->assignconfig('type_data1', array_values($payTypeList1)); return $this->view->fetch(); } public function seller_statistics(){ list($date)=$this->rangeTime('aaaaa'); $this->assign('date',$date); if($this->request->isAjax()){ $type=input('type',1); $filter=json_decode(input('filter'),true); $map=[]; if(!empty($filter['date'])){ list($time1,$time2)=explode(' - ',$filter['date']); $map['create_time']=['between',[strtotime($time1),strtotime($time2)]]; } $offset=input('offset',0); $limit=input('limit',20); $page=$offset/$limit+1; if($type==1){ $list=\app\admin\model\Orders::payed() ->where($map) ->field('SUM(amount_pay) as amount,admin_id') ->group('admin_id') ->order('amount','desc') ->paginate($limit,false,['page'=>$page]); }else{ $list=AdminMoneyLog::filterTypeCommission() ->where($map) ->field('SUM(amount) as amount,admin_id') ->group('admin_id') ->order('amount','desc') ->paginate($limit,false,['page'=>$page]); } $index=$list->listRows()*$list->currentPage()-$list->listRows(); foreach ($list as $idx=>&$item){ $item['rank']=$index+$idx+1; $item['nickname']=Admin::where('id',$item['admin_id'])->value('nickname'); } return json([ 'rows'=>$list->items(), 'total'=>$list->total(), ]); } return $this->fetch(); } }