score=5; } //获取订单全部学分 public function getOrderAllIntegral(){ return '获取订单全部学分'; $orders=Order::where('is_pay',1)->get(); DB::transaction(function()use($orders){ foreach($orders as $key=>$val){ $integral=Integral::where('order_no',$val->order_no)->where('type',1)->first(); if(empty($integral)){ $integral=$val->total*$this->score; Integral::create([ 'store_id'=>$val->store_id, 'order_no'=>$val->order_no, 'num'=>$val->total, 'integral'=>$integral, 'type'=>1, 'remark'=>'下单成功', ]); $store=Store::where('id',$val->store_id)->lockForUpdate()->first(); $store->integral += $integral; $store->save(); } if($val->apply_cancel==2){ $integral=Integral::where('order_no',$val->order_no)->where('type',2)->first(); if(empty($integral)){ $integral=$val->total*$this->score; Integral::create([ 'store_id'=>$val->store_id, 'order_no'=>$val->order_no, 'num'=>$val->total, 'integral'=>$integral, 'type'=>2, 'remark'=>'取消订单', ]); $store=Store::where('id',$val->store_id)->lockForUpdate()->first(); $store->integral -= $integral; $store->save(); } } } },5); return $this->success([]); } //获取积分列表 public function getIntegralList(Request $request){ $page_index=$request->input('page_index'); $page_size=$request->input('page_size'); $search_name=$request->input('search_name'); $type=$request->input('type'); $num=$page_size*($page_index-1); $admin_id=Auth::user()->id; $admin=Admin::where('id',$admin_id)->first(); if($admin && in_array($admin->role_id,[22,24])) {//超级管理员 $data=Integral::with('store:id,name,phone'); }else{ $warea_ids=DwbsWarea::where('admin_id',$admin_id)->pluck('id'); $agent_ids=DwbsUser::whereIn('warea_id',$warea_ids)->pluck('id'); $stores=Store::whereIn('user_id',$agent_ids)->pluck('id'); $data=Integral::with('store')->whereIn('store_id',$stores); } if($search_name){ $store_ids=Store::where('name','like','%'.$search_name.'%')->orWhere('phone','like','%'.$search_name.'%')->pluck('id'); $data->whereIn('store_id',$store_ids); } if($type!='all'){ $data->where('type',$type); } $count=$data->count(); $list=$data->orderByDesc('created_at')->skip($num)->take($page_size)->get(); $wareas=DwbsWarea::pluck('name','id'); $user_ids=Store::pluck('user_id'); $store_user_ids=Store::pluck('user_id','id'); $warea_user_ids=DwbsUser::whereIn('id',$user_ids)->pluck('warea_id','id'); foreach($list as $key=>$val){ $user_id=$store_user_ids[$val->store_id]; $warea_id=$warea_user_ids[$user_id]; $list[$key]->warea=$wareas[$warea_id]; } return $this->success_list($list,'',$count); } public function exportYesDoubleInfo(){ $date=date("Y-m-d",strtotime('-1 days')); $where=function($query)use($date){ $query->where('order.is_pay',1)->whereIn('order.apply_cancel',[0,1,3])->whereDate('order.pay_at',$date); }; if(empty(Cache::get('cellData'))){ $cellData=Order::where($where)->leftjoin('store','order.store_id','=','store.id') ->select('store.name','store.phone','store.img','store.user_id','store_id',DB::raw('sum(order.total) as total'),DB::raw('sum(order.account) as account')) ->groupBy('store_id')->having('total','>=',2)->orderByDesc('total')->orderBy('store_id')->get();//->orderByDesc('account') $sort=array_flip(array_values(array_unique(array_column($cellData->toArray(),'total')))); foreach($cellData as $key=>$val){ $user=DwbsUser::where('id',$val->user_id)->select('id','level','nickname','name','remark_name')->first(); $cellData[$key]->level=$user->level; if(!empty($user->name)){ $cellData[$key]->name=$user->name; }elseif(!empty($user->nickname)){ $cellData[$key]->name=$user->nickname; } $cellData[$key]->sort=$sort[$val->total]+1; } $second=30; Cache::put('cellData', $cellData, $second); }else{ $cellData=Cache::get('cellData'); } return $this->success($cellData); } public function addExchange(Request $request){ $num=$request->input('num'); $start_time=$request->input('start_time'); $end_time=$request->input('end_time'); $status=$request->input('status'); $res=Exchange::create([ 'season'=>$num, 'title'=>'第'.$num.'次兑换礼品', 'start_time'=>$start_time, 'end_time'=>$end_time, 'status'=>$status, ]); if($res){ return $this->success([]); } return $this->error(); } public function editExchange(Request $request){ $id=$request->input('id'); $num=$request->input('num'); $start_time=$request->input('start_time'); $end_time=$request->input('end_time'); $status=$request->input('status'); $res=Exchange::where('id',$id)->update([ 'season'=>$num, 'title'=>'第'.$num.'次兑换礼品', 'start_time'=>$start_time, 'end_time'=>$end_time, 'status'=>$status, ]); if($res){ return $this->success([]); } return $this->error(); } public function deleteExchange(Request $request){ $id=$request->input('id'); $res=Exchange::where('id',$id)->delete(); if($res){ return $this->success([]); } return $this->error(); } public function getExchangeList(Request $request){ $page_index=$request->input('page_index'); $page_size=$request->input('page_size'); $num=$page_size*($page_index-1); $search_name=$request->input('search_name'); $admin_id=Auth::user()->id; $admin=Admin::where('id',$admin_id)->first(); if($admin && in_array($admin->role_id,[22,24])) {//超级管理员 $data=GiftOrders::with('store:id,name,phone,img'); }else{ $warea_ids=DwbsWarea::where('admin_id',$admin_id)->pluck('id'); $agent_ids=DwbsUser::whereIn('warea_id',$warea_ids)->pluck('id'); $stores=Store::whereIn('user_id',$agent_ids)->pluck('id'); $data=GiftOrders::with('store:id,name,phone,img')->whereIn('store_id',$stores); } if($search_name){ $store_ids=Store::where('name','like','%'.$search_name.'%') ->orWhere('phone','like','%'.$search_name.'%')->pluck('id'); $data->whereIn('store_id',$store_ids); } $count=$data->count(); $list=$data->skip($num)->take($page_size)->orderByDesc('id')->get(); $wareas=DwbsWarea::pluck('name','id')->toArray(); $user_ids=Store::pluck('user_id')->toArray(); $store_user_ids=Store::pluck('user_id','id')->toArray(); $warea_user_ids=DwbsUser::whereIn('id',$user_ids)->pluck('warea_id','id')->toArray(); foreach($list as $key=>$val){ $user_id=array_key_exists($val->store_id,$store_user_ids)?$store_user_ids[$val->store_id]:null; $warea_id=array_key_exists($user_id,$warea_user_ids)?$warea_user_ids[$user_id]:null; $list[$key]->warea=array_key_exists($warea_id,$wareas)?$wareas[$warea_id]:null; } return $this->success_list($list,'',$count); } public function getExchangeInfo(Request $request){ $page_index=$request->input('page_index'); $page_size=$request->input('page_size'); $num=$page_size*($page_index-1); $count=Exchange::count(); $list=Exchange::orderByDesc('id')->skip($num)->take($page_size)->get(); foreach($list as $key=>$val){ $date=date("Y-m-d H:i:s"); if($val->start_time<=$date && $date<=$val->end_time){ if($val->status==1){ $list[$key]->type='进行中'; }else{ $list[$key]->type='未启动'; } }elseif($val->start_time>=$date && $date<=$val->end_time){ $list[$key]->type='未开始'; }elseif($val->start_time<=$date && $date>=$val->end_time){ $list[$key]->type='已结束'; } } return $this->success_list($list,'',$count); } //修改时间 public function editTime(){ $videoTime=new GetVideoTimeHandler(); return $videoTime->getTime('http://weidian.jiuweiyun.cn/storage/video/0g2pnQcJZWCSxooGXrvnkaqGzdonyzjUQrPeb0hO.mp4'); // $integral=Integral::where('type',2)->get(); // foreach($integral as $key=>$val){ // if($val->integral>0){ // Integral::where('id',$val->id)->update([ // 'integral'=> 0-$val->integral // ]); // } // } // $integral=Integral::all(); // foreach($integral as $key=>$val){ // $order=Order::where('order_no',$val->order_no)->select('id','order_no','cancel_at','created_at')->first(); // if($val->type==1){ // Integral::where('id',$val->id)->update([ // 'created_at'=>$order->created_at, // 'updated_at'=>$order->created_at // ]); // }else{ // Integral::where('id',$val->id)->update([ // 'created_at'=>$order->cancel_at, // 'updated_at'=>$order->cancel_at // ]); // } // } return $this->success([]); } //获取奖学金排行榜 public function getIntegralOrderBy(Request $request) { $page_index=$request->input('page_index'); $page_size=$request->input('page_size'); $type=$request->input('type'); if($request->input('type')=='num'){ $type='total'; }else{ $type=$request->input('type'); } $sort=$request->input('sort'); $num=$page_size*($page_index-1); $search_name=$request->input('search_name'); $where=[]; if($search_name){ $where=function($query)use($search_name){ $query->where('name','like','%'.$search_name.'%') ->orWhere('phone',$search_name); }; } $count=Store::where($where)->where('is_apply',3)->count(); $list=Store::where($where)->where('is_apply',3)->where('store.status',0) ->select('id','name','phone','img','user_id','total','integral') ->orderBy($type,$sort)->orderBy('id') ->skip($num)->take($page_size) ->get(); // $list=Store::where($where)->leftJoin('integral as inte',function($query)use($where){ // $query->on('store.id','=','inte.store_id'); //->where('inte.is_zbs',0) // })->where('store.status',0)->where('store.is_apply',3) // ->groupBy('store.id') // ->select('store.name','store.phone','store.img','store.user_id',DB::raw('sum(ifnull(inte.num,0)) as total'),DB::raw('sum(ifnull(inte.integral_double,0)) as integral')) // ->orderBy($type,$sort)->orderBy('store.id') // ->skip($num)->take($page_size) // ->get(); foreach($list as $key=>$val){ $warea_id=DwbsUser::where('id',$val->user_id)->value('warea_id'); $warea=DwbsWarea::where('id',$warea_id)->value('name'); $list[$key]->warea=$warea; } return $this->success_list($list,'',$count); } //导出奖学金排行榜 public function exportIntegralOrderBy(Request $request) { $search_name=$request->input('search_name'); $where=[]; if($search_name){ $where=function($query)use($search_name){ $query->where('name','like','%'.$search_name.'%') ->orWhere('phone',$search_name); }; } $list=Store::where($where)->where('is_apply',3)->where('store.status',0) ->select('id','name','phone','img','user_id','total','integral') ->orderBy('id') ->get(); // $store_user_ids = Store::where($where)->where('is_apply',3)->pluck('user_id'); // $wareas=Cache::remember('wareas',Carbon::now()->addHours(2),function (){ // return DwbsWarea::pluck('name','id'); // }); // Log::info('--mendian2.3--'.microtime()); // $warea_user_ids=Cache::remember('warea_user_ids',Carbon::now()->addHours(2),function()use($store_user_ids){ // return DwbsUser::withTrashed()->whereIn('id',$store_user_ids)->pluck('warea_id','id'); // }); // foreach($list as $key=>$val){ // $second=mt_rand(2880,7200); // if(Cache::has('warea-'.$val->user_id)){ // $list[$key]->warea=Cache::get('warea-'.$val->user_id); // }else{ // $warea_id=$warea_user_ids[$val->user_id]; // $list[$key]->warea=$wareas[$warea_id]; // Cache::put('warea-'.$val->user->id, $wareas[$warea_id], $second); // } // $warea_id=DwbsUser::where('id',$val->user_id)->value('warea_id'); // $warea=DwbsWarea::where('id',$warea_id)->value('name'); // $list[$key]->warea=$warea; // } return $this->success($list); } //变负值 public function gt(){ } //导出 public function down(Request $request){ $type='all'; $where=[]; // if($type=='yesterday'){ // $where=function($query){ // $date=date("Y-m-d",strtotime('-1 days')); // $query->whereDate('inte.created_at',$date); // }; // } $count=Store::where('status',0)->count(); // $list=Store::where('status',0)->orderByDesc('integral') // ->skip($num)->take($page_size)->get(); $list=Store::leftJoin('integral as inte',function($query)use($where){ $query->on('store.id','=','inte.store_id') ->where($where); })->where('store.status',0) ->groupBy('store.id') ->select('store.name','store.phone','store.img',DB::raw('sum(ifnull(inte.integral_double,0)) as integral')) ->orderByDesc('integral')->orderBy('store.id') ->get(); return Excel::download(new DownExport($list), 'exc.xlsx'); return $this->success_list($list,'',$count); } // public function getsss(Request $request) { $page_index=$request->input('page_index'); $page_size=$request->input('page_size'); $num=$page_size*($page_index-1); $store=Store::where('is_apply',3)->select('id','phone','applyment_id','sub_mchid') ->skip($num)->take($page_size) ->get(); $list=[]; foreach($store as $key=>$val){ $apply=Apply::where('applyment_id',$val->applyment_id) ->where('sub_mchid',$val->sub_mchid) ->where('applyment_state','FINISH')->first(); if(empty($apply)){ $list[]=$val->phone; } } return $this->success($list); } //重置积分 public function resetIntegral(Request $request){ $res=Store::whereNull('total')->update([ 'total'=>0 ]); return $res; $store_ids=Store::where('is_apply',3)->pluck('id'); $integral=Integral::whereIn('store_id',$store_ids) ->select('store_id',DB::raw('sum(ifnull(integral_double,0)) as integral')) ->groupBy('store_id')->Having('integral','>',0)->get(); return count($integral); // return Integral::where('type',2)->update([ // 'num'=>DB::raw('(0-num)') // ]); //return '222'; $page_index=$request->input('page_index'); $page_size=$request->input('page_size'); $num=$page_size*($page_index-1); $store_ids=Integral::whereIn('type',[1,2])->groupBy('store_id')->orderBy('store_id')->skip($num)->take($page_size)->pluck('store_id'); $n=0; foreach($store_ids as $key=>$val){ $integral=Integral::where('store_id',$val)->sum('integral_double'); $total=Integral::where('store_id',$val)->whereIn('type',[1,2])->sum('num'); Store::where('id',$val)->update([ 'integral'=>$integral, 'total'=>$total ]); $n++; } return '555--'.$n; $start="2021-08-25 00:00:00"; $end="2021-08-26 10:45:00"; $ends="2021-08-26 12:40:00"; // $store_ids=Integral::whereBetween('created_at',[$start,$end])->where('type',1)->groupBy('store_id')->pluck('store_id'); // foreach($store_ids as $val){ // $total=Integral::whereBetween('created_at',[$start,$end])->where('store_id',$val)->where('type',1)->count('num'); // $integral=$total*(5-2); // Store::where('id',$val)->increment('integral',$integral); // } // // $store_ids1=Integral::whereBetween('created_at',[$start,$ends])->where('type',2)->groupBy('store_id')->pluck('store_id'); // foreach($store_ids1 as $val){ // $total1=Integral::whereBetween('created_at',[$start,$ends])->where('store_id',$val)->where('type',2)->count('num'); // $integral1=$total1*(2-5); // Store::where('id',$val)->increment('integral',$integral1); // } $store_ids=Integral::whereBetween('created_at',[$start,$end])->where('type',1)->groupBy('store_id')->pluck('store_id'); foreach($store_ids as $val){ $total=Integral::whereBetween('created_at',[$start,$end])->where('store_id',$val)->where('type',1)->sum('num'); $integral=$total*(2-5); Store::where('id',$val)->increment('integral',$integral); } $inte=Integral::whereBetween('created_at',[$start,$ends])->where('type',2)->get(); foreach($inte as $val){ $in=Integral::where('order_no',$val->order_no)->where('type',1)->first(); if($in->created_at >= $start){ $integral1=$val->num*(5-2); Store::where('id',$val->store_id)->increment('integral',$integral1); } } // $store_ids1=Integral::whereBetween('created_at',[$start,$ends])->where('type',2)->groupBy('store_id')->pluck('store_id'); // foreach($store_ids1 as $val){ // // $total1=Integral::whereBetween('created_at',[$start,$ends])->where('store_id',$val)->where('type',2)->sum('num'); // $integral1=$total1*(5-2); // Store::where('id',$val)->increment('integral',$integral1); // } return '235 '; $integrals=Integral::whereBetween('created_at',[$start,$end])->where('type',2)->get(); foreach($integrals as $key=>$val){ $int=Integral::whereBetween('created_at',[$start,$end])->where('type',1)->where('order_no',$val->order_no)->first(); if($int){ Integral::whereBetween('created_at',[$start,$end])->where('type',2)->where('order_no',$val->order_no)->update([ 'integral'=>0-$val->num*2, 'integral_double'=>0-$val->num*2, // 'is_zbs'=>0 ]); } } return '123'; $res=Integral::whereBetween('created_at',[$start,$end])->where('type',1)->update([ 'integral'=>DB::raw('num*2'), 'integral_double'=>DB::raw('num*2'), 'is_zbs'=>0 ]); return $this->success($res); } public function dsa(){ $arr=['2426_DX21081317214772901775226 ','4117_DX21081317181113238966627 ','5948_DX21081310272588918566500 ','4888_DX21081218233922515581766 ','9172_DX21081218230399160421573 ','2816_DX21081218072428844882041 ','7301_DX21081217044883769260787 ','3394_DX21081217041980036686966 ','1466_DX21081217034966367091964 ','7776_DX21081216290332417131594 ','2562_DX21081216263446925217300 ','4719_DX21081014062464538217431 ','9231_DX21081013595257656187144 ','8733_DX21080409330564331424041 ','8849_DX21080316264873140571251 ','5055_DX21080316205824537346012 ','6416_DX21080315082887070444348 ','8758_DX21073111003642349563584 ','8293_DX21073010253555192134913 ','3386_DX21072610020108613687911 ','8531_DX21072518500269917823394 ','6690_DX21072518173323687111331 ','1912_DX21072510120204646742802 ','5802_DX21072510082958086220156 ','8367_DX21072510062411469237505 ','5826_DX21072418500951215492113 ','2280_DX21072411083283895220447 ','7204_DX21072410120801765349818 ','5962_DX21072409563170128941163 ','3538_DX21072318431155094933233 ','7416_DX21072318283295596751658 ','7785_DX21072318182143819359542 ','7606_DD21072318065327164144416 ','9101_DX21072318045508297535794 ','4518_DX21072318032080626867870 ','7083_DX21072317540959770746242 ','9350_DX21072317522507819295010 ','9098_DX21072317473239074373306 ','5012_DX21072317383986142270163 ','1245_DX21072316325281285544387 ','4591_DX21072316321017061448068 ','1231_DX21072316170246579942877 ','8799_DX21072314464322182286444 ','3795_DX21072314402188908271473 ','4654_DX21071711312905354570098 ','4559_DX21071009363195643247155 ','8230_DX21071009363195643247155 ','5121_DD21070821541929089363149 ','2016_DX21061517060983032832824 ','5281_DX21060814081290595830689 ','2332_DX21060711131480293077197 ','6074_DX21060711123983997293442 ','3660_DX21060417532537670747890 ','7393_DX21060417272233270023754 ','8514_DX21060215424955896339040 ','7326_DX21060214590509424865011 ','8285_DX21060210565772559727797 ','9243_DX21060210124258735564803 ','6008_DX21060210114069046955976 ','3260_DX21060109333328489928437 ','9138_DX21060109304678785446765 ','2351_DX21053118322791510698112 ','2970_DX21053118283219925352999 ','4372_DX21053118154353075977510 ','1573_DX21052918522255468321071 ','8004_DX21052918472229656752394 ','5827_DX21052918254402390555994 ','6531_DX21052917412025835494831 ','6457_DX21052917380121782315650 ','1577_DX21052915062990373381760 ','2390_DX21052909420697674232321 ','1476_DX21052509590967051649554 ','4310_DX21052509573639622717254 ','5718_DX21052118075639471996795 ','6687_DX21052118041972046933374 ','8211_DX21051514194839750144226 ','6712_DX21051511235294694284325 ','8224_DX21051410545301668562881 ' ]; foreach($arr as $key=>$val){ $order_no=substr($val,'5',25); $list[]=Order::where('order_no',$order_no)->pluck('store_id','user_id'); } return $this->success_list($list,'',count($list).'---'.count($arr)); } public function ggg(){ $intes=Integral::where('created_at','>','2021-08-25 00:00:00')->where('type',1)->get(); $n=0; $arr=[]; foreach ($intes as $key=>$val){ if($val->integral/$val->num ==5 ){ // try{ // DB::transaction(function()use($val){ // Integral::where('id',$val->id)->where('type',1)->update([ // 'integral'=>$val->num*2, // 'integral_double'=>$val->num*2, // ]); // Store::where('id',$val->store_id)->decrement('integral',$val->num*3); // },5); array_push($arr,$val->id); $n++; // }catch(\Exception $e){ // return $this->error($e->getMessage()); // } } } return [$n,$arr]; } }