rangeTime('date'); if($this->request->isAjax()){ list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $type=input('type',1); if($type==1){ $list=OrderInfo::whereExists( Orders::whereRaw("orders.id=order_info.order_id and admin_id={$this->admin('id')}")->buildSql() ) ->filterDate($dateArr) ->group('category_id') ->field('count(order_id) as num,group_concat(order_id) as order_ids,category_name,category_id') ->select(); }else{ $list=OrderInfo::whereExists( Orders::whereRaw("orders.id=order_info.order_id and admin_id={$this->admin('id')}")->buildSql() ) ->filterDate($dateArr) ->group('category_id') ->field('sum(amount_pay) as num,category_name,category_id') ->order('num','desc') ->select(); } $all=0; foreach ($list as $k=>&$item){ $item['rank']=$k+1; $all+=$item['num']; } return json([ 'rows'=>$list, 'total'=>count($list), 'all'=>$all, ]); } $this->assign('date',$date); return $this->fetch(); } public function profit_static(){ list($date,$dateArr)=$this->rangeTime('date'); $sale=AdminMoneyLog::filterDate($dateArr) ->filterTypeCommission() ->where('admin_id',$this->admin('id')) ->sum('amount'); $goods=OrderInfo::whereExists( AdminMoneyLog::whereRaw("admin_money_log.target_id=order_info.order_id")->where('admin_id',$this->admin('id'))->filterDate($dateArr)->buildSql() ) ->group('goods_id') ->field('sum(amount_cmn) as num,goods_name') ->select(); $this->assign('goods',$goods); $this->assign('date',$date); $this->assign('sale',$sale); return $this->fetch(); } public function order_num_amount_rank(){ list($date,$dateArr)=$this->rangeTime('date'); if($this->request->isAjax()){ list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $type=input('type',1); if($type==1){ $list=Orders::filterDate($dateArr) ->where('admin_id',$this->admin('id')) ->group('user_id') ->field('count(id) as num,user_id') ->order('num','desc') ->paginate(1000000); }elseif($type==2){ $list=Orders::filterDate($dateArr) ->where('admin_id',$this->admin('id')) ->group('user_id') ->field('sum(amount_pay) as num,user_id') ->order('num','desc') ->paginate(1000000); }else{ $list=OrderGoods::filterDate($dateArr) ->filterAdmin($this->admin('id')) ->group('order_goods.goods_id') ->join('order_info','order_info.order_id=order_goods.order_id and order_info.goods_id=order_goods.goods_id') ->field('count(order_goods.order_id) as num,order_info.goods_name as name') ->order('num','desc') ->paginate(1000000); } $all=0; foreach ($list as $k=>&$item){ if(!empty($item['user_id'])) { $item['nickname'] = \app\admin\model\User::where('id', $item['user_id'])->value('nickname'); } $all+=$item['num']; } $this->addRank($list); return json([ 'rows'=>$list->items(), 'total'=>$list->total(), 'all'=>$all, ]); } $orderNum=Orders::filterDate($dateArr)->where('admin_id',$this->admin('id'))->count(); $this->assign('orderNum',$orderNum); $orderAmount=Orders::filterDate($dateArr)->where('admin_id',$this->admin('id'))->sum('amount_pay'); $this->assign('orderAmount',$orderAmount); $this->assign('date',$date); return $this->fetch(); } }