count(); $data['account']= DB::table('order') ->leftJoin('users', 'order.user_id', '=', 'users.id') ->leftJoin('order_goods', 'order.id', '=', 'order_goods.order_id') ->whereIn('order.status', [2,3]) ->sum('totalprice'); $data['orderCount']=Order::whereIn('status',[2,3])->count(); $data['goodsCount']=Goods::where('status','1')->count(); $data['articleCount']=Article::where('status','1')->count(); return $this->success($data); } //代理组成 public function getEveryAgentTotal(){ $data['superCount']=User::where('cert_status','6')->where('level','1')->count(); $data['topCount']=User::where('cert_status','6')->where('level','2')->count(); $data['crownCount']=User::where('cert_status','6')->where('level','3')->count(); return $this->success($data); } //代理业绩组成 public function getEveryAgentResult(){ $data['superAccount']=DB::table('order') ->leftJoin('users', 'order.user_id', '=', 'users.id') ->leftJoin('order_goods', 'order.id', '=', 'order_goods.order_id') ->whereIn('order.status', [2,3]) ->where('users.level','1') ->sum('totalprice'); $data['topAccount']=DB::table('order') ->leftJoin('users', 'order.user_id', '=', 'users.id') ->leftJoin('order_goods', 'order.id', '=', 'order_goods.order_id') ->whereIn('order.status', [2,3]) ->where('users.level','2') ->sum('totalprice'); $data['crownAccount']=DB::table('order') ->leftJoin('users', 'order.user_id', '=', 'users.id') ->leftJoin('order_goods', 'order.id', '=', 'order_goods.order_id') ->whereIn('order.status', [2,3]) ->where('users.level','3') ->sum('totalprice'); return $this->success($data); } //代理订单 public function getEveryAgentOrder(){ $data['superCount']=Order::whereIn('status',[2,3]) ->whereHas('user', function (Builder $query) { $query->where('level', '=', '1'); })->count(); $data['topCount']=Order::whereIn('status',[2,3]) ->whereHas('user', function (Builder $query) { $query->where('level', '=', '2'); })->count(); $data['crownCount']=Order::whereIn('status',[2,3]) ->whereHas('user', function (Builder $query) { $query->where('level', '=', '3'); })->count(); return $this->success($data); } //商品销量前十 public function getGoodsSalesNum(){ $list=DB::table('goods') ->select('goods.name',DB::raw('SUM(order_goods.num) as total')) ->leftJoin('order_goods','goods.id','=','order_goods.goods_id') ->leftJoin('order','order.id','=','order_goods.order_id') ->where('order.agent_id',1) ->whereIn('order.status',[2,3]) ->groupBy('goods.id') ->orderBy('total','desc') ->take('10')->get(); return $this->success($list); } public function demo(){ $data=User::where('level',3)->with(['get_order_de'=>function($q){ $q->whereBetween('order_detail.created_at',['2020-07-06 00:00:00','2020-07-10 00:00:00']); }])->get()->toArray(); dd($data); } public function sign_message(Request $request){ Log::error(json_encode($request->all())); if ($request->appids=='daweiboshi_szy' && $request->secret=='daweiboshi_szy_secret'){ $s_user=$request->data; if ($request->type==0){ $mean='实战营'; }else{ $mean='密训营'; } $season=$request->season; $d_user=User::where('mobile',$request->mobile)->first(); foreach ($s_user as $k=>$v){ $user=User::where('mobile',$v)->first(); if ($user->openid){ $data['data']=[ 'first'=>'有代理报名成功了', 'keyword1'=>'第'.$season.'届大卫博士创业'.$mean, 'keyword2'=>$d_user->nickname, 'keyword3'=>$d_user->mobile, // 'keyword4'=>date('Y年m月d日',time()), 'remark'=>'点击进入小程序', ]; $data['openid']=$user->openid; event(new SignMessageEvent($data)); Log::error($k); } } }else{ return false; } } public function getGoodsStyleNum1(Request $request){ $activity=Activity::where('disabled',0)->get(); //$input=$request->all(); //$cycle=$input['cycle']; $cycle=2;//间隔周期 foreach($activity as $keys=>$value){ $start_time=$value->start_time; $end_time=$value->end_time; $n=1; for($i=strtotime($start_time);$i<=strtotime($end_time);$i+=$cycle*3600){ $start=date("Y-m-d H:i:s",strtotime("+". 3*($n-1). "hours", strtotime($start_time))); if(date("Y-m-d H:i:s",strtotime("+3 hours",strtotime($start)))>$end_time){ $end=$end_time; }else{ $end=date("Y-m-d H:i:s",strtotime("+3 hours",strtotime($start))); } // $list[$value->title][$n*$cycle]=Orderdetail::whereBetween('created_at',[$start,$end]) // ->with(['get_goods:id,name,size']) // ->GroupBy('goods_id','Goods_size') // ->select('goods_id','goods_size',DB::raw('sum(num) as total'))->get(); $list[$value->title][$n*$cycle]=Orderdetail::whereBetween('order_detail.created_at',[$start,$end]) ->leftjoin('goods_test as gt','gt.id','=','order_detail.goods_id') ->whereHas('order',function($query){ $query->where('is_deleted',0); }) ->GroupBy('gt.main_attr') ->select('gt.id','gt.main_attr',DB::raw('sum(order_detail.num) as total'))->get(); $n++; } // $goods=Goodtest::where('is_deleted',0)->GroupBy('main_attr')->pluck('main_attr'); // return $goods; // for($i=strtotime($start_time);$i<=strtotime($end_time);$i+=$cycle*3600){ // $start=$start_time; // if(date("Y-m-d H:i:s",strtotime("+". 3*$n. "hours",strtotime($start)))>$end_time){ // $end=$end_time; // }else{ // $end=date("Y-m-d H:i:s",strtotime("+". 3*$n. "hours",strtotime($start))); // } // $list[$value->title][$n*$cycle]=Orderdetail::whereBetween('created_at',[$start,$end]) // ->with(['get_goods:id,name,size']) // ->whereHas('order',function($query){ // $query->where('is_deleted',0); // }) // ->GroupBy('goods_id','goods_size') // ->select('goods_id','goods_size',DB::raw('sum(num) as total')) // ->get(); // $n++; // } } return $this->success($list); } public function getGoodsMainAttr(){ $data=Goodtest::where('is_deleted',0)->groupBy('main_attr')->pluck('main_attr'); return $this->success($data); } public function getGoodsStyleNum(Request $request){ $activity=Activity::where('disabled',0)->get(); $input=$request->all(); $cycle=$input['cycle']; $type=$input['type']; // $cycle=2;//间隔周期 // $type='大卫博士精装版'; foreach($activity as $keys=>$value){ $start_time=$value->start_time; $end_time=$value->end_time; $n=1; for($i=strtotime($start_time);$i<=strtotime($end_time);$i+=$cycle*3600){ $start=date("Y-m-d H:i:s",strtotime("+". $cycle*($n-1). "hours", strtotime($start_time))); if(date("Y-m-d H:i:s",strtotime("+$cycle hours",strtotime($start)))>$end_time){ $end=$end_time; }else{ $end=date("Y-m-d H:i:s",strtotime("+$cycle hours",strtotime($start))); } $list[$value->title][$n*$cycle]=Orderdetail:: whereHas('get_goods',function($query)use($type){ $query->where('main_attr',$type); }) ->whereHas('order',function($query)use($start,$end){ $query->where('is_deleted',0)->whereBetween('created_at',[$start,$end]); }) ->sum('num'); $n++; } } return $this->success($list); } public function getOrderAccount(Request $request){ $input=$request->all(); $activity=Activity::where('disabled',0)->get(); $cycle=$input['cycle']; // $cycle=3;//间隔周期 foreach($activity as $keys=>$value){ $start_time=$value->start_time; $end_time=$value->end_time; $n=1; for($i=strtotime($start_time);$i<=strtotime($end_time);$i+=$cycle*3600){ // $start=$start_time; // if(date("Y-m-d H:i:s",strtotime("+". 3*$n. "hours",strtotime($start)))>$end_time){ // $end=$end_time; // }else{ // $end=date("Y-m-d H:i:s",strtotime("+". 3*$n. "hours",strtotime($start))); // } $start=date("Y-m-d H:i:s",strtotime("+". $cycle*($n-1). "hours", strtotime($start_time))); if(date("Y-m-d H:i:s",strtotime("+$cycle hours",strtotime($start)))>$end_time){ $end=$end_time; }else{ $end=date("Y-m-d H:i:s",strtotime("+$cycle hours",strtotime($start))); } $list[$value->title][$n*$cycle]=Ordertest::whereBetween('created_at',[$start,$end]) ->where('is_deleted',0) ->select(DB::raw('sum(money) as total')) ->get(); $n++; } } return $this->success($list); } public function getOrderEveryAccount(Request $request){ $input=$request->all(); $activity=Activity::where('disabled',0)->get(); $cycle=1; foreach($activity as $keys=>$value){ $start=$value->start_time; if($start>date("Y-m-d 09:00:00",strtotime($start))){ $e_time=date("Y-m-d 09:00:00",strtotime($start.'+ 1 day')); }else{ $e_time=date("Y-m-d 09:00:00",strtotime($start)); } $end_time=date("Y-m-d 00:00:00",strtotime($value->end_time.'+ 1 day')); $n=1;$r=9;$d=1; for($i=strtotime($e_time);$i<=strtotime($end_time);$i+=$cycle*3600){ if(date("Y-m-d H:i:s",strtotime("+". $cycle*($n-1). "hours",strtotime($e_time)))>$end_time){ $end=$end_time; }else{ $end=date("Y-m-d H:i:s",strtotime("+". $cycle*($n-1). "hours",strtotime($e_time))); } // $end=date("Y-m-d H:i:s",strtotime("+". $cycle*($n-1). "hours", strtotime($e_time))); $list[$value->title]['第'.$d.'天'.$r.'点']=Ordertest::whereBetween('created_at',[$start,$end]) ->where('is_deleted',0) ->sum('money'); if($r>=24){ $d++;$r=1; }else{ $r++; } $n++; } } return $this->success($list); } //获取销量每小时 public function getGoodsEveryStyleNum(Request $request){ ini_set('memory_limit', '1280M'); $activity=Activity::where('disabled',0)->get(); $input=$request->all(); $cycle=$input['cycle']; $type=$input['type']; $cycle=1;//间隔周期 // $type='大卫博士精装版'; foreach($activity as $keys=>$value){ $start=$value->start_time; if($start>date("Y-m-d 09:00:00",strtotime($start))){ $e_time=date("Y-m-d 09:00:00",strtotime($start.'+ 1 day')); }else{ $e_time=date("Y-m-d 09:00:00",strtotime($start)); } $end_time=date("Y-m-d 00:00:00",strtotime($value->end_time.'+ 1 day')); $n=1;$r=9;$d=1; for($i=strtotime($e_time);$i<=strtotime($end_time);$i+=$cycle*3600){ if(date("Y-m-d H:i:s",strtotime("+". $cycle*($n-1). "hours",strtotime($e_time)))>$end_time){ $end=$end_time; }else{ $end=date("Y-m-d H:i:s",strtotime("+". $cycle*($n-1). "hours",strtotime($e_time))); } // $list[$value->title][$d.'-'.$r]=Orderdetail::whereHas('get_goods',function($query)use($type){ // $query->where('main_attr',$type); // }) // ->whereHas('order',function($query)use($start,$end){ // $query->where('is_deleted',0)->whereBetween('created_at',[$start,$end]); // }) // ->sum('num'); $goods_ids=Goodtest::where('main_attr',$type)->pluck('id'); $order_ids=Ordertest::where('is_deleted',0)->whereBetween('created_at',[$start,$end])->pluck('id'); $list[$value->title]['第'.$d.'天'.$r.'点']=Orderdetail::whereIn('goods_id',$goods_ids)->whereIn('order_id',$order_ids)->sum('num'); // $list[$value->title][$d.'-'.$r]=Ordertest::whereBetween('created_at',[$start,$end]) // ->where('is_deleted',0) // ->select(DB::raw('sum(total) as total')) // ->get(); if($r>=24){ $d++;$r=1; }else{ $r++; } $n++; } } return $this->success($list); } public function getGoodsStyleDetailNum(Request $request){ $input=$request->all(); $activity=Activity::where('is_ing',1)->first(); $start=$activity->start_time; $end=$activity->end_time; $type=$input['type']; if($type=='精装版'){ $name='大卫博士精装版'; $id=Goodattr::where('name','like','%'.$type.'%')->value('id'); $ids=Goodattr::where('pid',$id)->pluck('id'); }elseif($type=='简约版') { $name='大卫博士简约版'; $id=Goodattr::where('name','like','%'.$type.'%')->value('id'); $ids=Goodattr::where('pid',$id)->pluck('id'); }elseif($type=='老人版'){ $name='大卫博士老人版'; $id=Goodattr::where('name','=',$name)->value('id'); $ids=Goodattr::where('pid',$id)->pluck('id'); }elseif($type=='纯棉老人版'){ $name='大卫博士纯棉老人版'; $id=Goodattr::where('name','like','%'.$type.'%')->value('id'); $ids=Goodattr::where('pid',$id)->pluck('id'); }else{ $ids=[]; } $list=Orderdetail::whereHas('order',function($query)use($start,$end){ $query->where('is_deleted',0)->whereBetween('created_at',[$start,$end]); }) ->whereHas('get_goods',function($query)use($ids){ $query->whereIn('attr_id',$ids); }) ->groupBy('goods_size') ->select('goods_size',DB::raw('sum(num) as total')) ->get(); return $this->success($list); } public function getProvinceUserInfo(Request $request){ $input=$request->all(); $province=$input['province']; $activity=Activity::where('is_ing',1)->first(); $start=$activity->start_time; $end=$activity->end_time; $phones=UserZ::where('province','like','%'.$province.'%')->where('level_name','代理公司')->pluck('phone'); $users=User::whereIn('mobile',$phones)->select('id','nickname','mobile')->get(); foreach($users as $key=>$val){ $info=Ordertest::leftjoin('order_detail as od','od.order_id','=','order_test.id') ->leftjoin('goods_test as gt','gt.id','=','od.goods_id') ->where('order_test.is_deleted',0) ->whereBetween('order_test.created_at',[$start,$end]) ->where('order_test.user_id',$val->id) ->groupBy('gt.main_attr') ->select('gt.main_attr',DB::raw('sum(od.num) as total')) ->get(); $users[$key]->hard=0; $users[$key]->simple=0; $users[$key]->old=0; $users[$key]->cold=0; foreach($info as $k=>$v){ switch($v->main_attr){ case '大卫博士精装版': $users[$key]->hard=$v->total; break; case '大卫博士简约版': $users[$key]->simple=$v->total; break; case '大卫博士老人版': $users[$key]->old=$v->total; break; case '大卫博士纯棉老人版': $users[$key]->cold=$v->total; break; } } $users[$key]->acc=Ordertest::where('user_id',$val->id)->whereBetween('created_at',[$start,$end])->where('is_deleted',0)->sum('money'); } return $this->success($users); } public function getOtherUserInfo(){ $user_z=UserZ::select('nickname','phone','level_name','created_at','updated_at')->where('level_name','!=','政委')->orderBy('id','desc')->get(); $data=[]; $duu=[]; foreach($user_z as $key=>$val){ $user=User::where('mobile',$val->phone)->first(); if(empty($user)){ continue; $duu[]=$val; } if($user->level=='1'){ // $user_z[$key]->level='销售主管'; if($val->level_name!='销售主管'){ $val->user_level='销售主管'; $val->user_recom=$user->recom_id; $val->user_agent=$user->agent_id; $val->user_warea_id=$user->warea_id; $val->user_id=$user->id; $val->user_created=$user->created_at; $val->user_updated=$user->updated_at; $val->user_nickname=$user->nickname; $data[]=$val; } }elseif($user->level=='2'){ // $user_z[$key]->level='销售经理'; if($val->level_name!='销售经理'){ $val->user_level='销售经理'; $val->user_recom=$user->recom_id; $val->user_agent=$user->agent_id; $val->user_warea_id=$user->warea_id; $val->user_id=$user->id; $val->user_created=$user->created_at; $val->user_updated=$user->updated_at; $val->user_nickname=$user->nickname; $data[]=$val; } }elseif($user->level=='3'){ // $user_z[$key]->level='代理公司'; if($val->level_name!='代理公司'){ $val->user_level='代理公司'; $val->user_recom=$user->recom_id; $val->user_agent=$user->agent_id; $val->user_warea_id=$user->warea_id; $val->user_id=$user->id; $val->user_created=$user->created_at; $val->user_updated=$user->updated_at; $val->user_nickname=$user->nickname; $data[]=$val; } } } $count=count($data); return $this->success_list($data,'',$count); } public function index(){ $arr=Express::where('id','>',37)->get(); $arrs=[]; foreach ($arr as $k=>$v){ $arrs[$k]=json_decode($v->notes); } dd($arrs); } }