all(); $page_size=$input['page_size']; $page_index=$input['page_index']; $num = ($page_index - 1) * $page_size; $search_name=$input['search_name']; if(empty($input['time'])){ $input['time'][0]=date("Y-m-d 00:00:00",strtotime("-1 years")); $input['time'][1]=date("Y-m-d H:i:s"); } $starttime=date("Y-m-d H:i:s",strtotime($input['time'][0])); $endtime= date("Y-m-d H:i:s",strtotime($input['time'][1])); $time = [$starttime, $endtime]; if($input['status']=='all'){ $where=[]; }else{ $where['status']=$input['status']; } $count=Order::where('ordersn', 'like', '%' . $search_name . '%') ->whereBetween('created_at', $time) ->where($where) ->count(); if($count==0){ $this->error('400001','没有数据'); } $list=Order::where('ordersn', 'like', '%' . $search_name . '%') ->where($where) ->with(['address:id,username,address,mobile','user:id,realname,nickname,level','agent:id,realname,nickname', 'ordergoods' => function ($query) { $query->select('order_id','goods_id',DB::raw('group_concat(distinct sku_id,"|",price,"|",num) as sku')) ->groupBy('order_id','goods_id'); } ]) ->whereBetween('created_at', $time) ->orderBy('id','desc') ->skip($num)->take($page_size) ->get()->toArray(); foreach($list as $keys => $value){ $list[$keys]['num']=0; $list[$keys]['crown']=[]; foreach($value['ordergoods'] as $key=>$val){ $goods=Goods::find($val['goods_id']); if($goods){ $list[$keys]['ordergoods'][$key]['goodsname']=$goods->name; $list[$keys]['ordergoods'][$key]['imgurl']=$goods->img_url; } if($val['sku']){ foreach(explode(',',$val['sku']) as $k =>$v) { $sku=explode('|',$v); $list[$keys]['ordergoods'][$key]['goodssku'][$k] = $this->getSku($sku[0]); $list[$keys]['ordergoods'][$key]['goodssku'][$k]['price'] = $sku[1]; $list[$keys]['ordergoods'][$key]['goodssku'][$k]['num'] = $sku[2]; $list[$keys]['num'] += $sku[2]; } } } $list[$keys]['crown']=$this->getAgentCrownInfo($value['user']['id']); } return $this->success_list($list,'SUCCESS',$count); } //导出订单信息列表 public function exportOrderList(Request $request){ $input=$request->all(); $page_size=$input['page_size']; $page_index=$input['page_index']; $num = ($page_index - 1) * $page_size; $search_name=$input['search_name']; if(empty($input['time'])){ $input['time'][0]=date("Y-m-d 00:00:00",strtotime("-1 years")); $input['time'][1]=date("Y-m-d 00:00:00"); } $starttime=date("Y-m-d H:i:s",strtotime($input['time'][0])); $endtime= date("Y-m-d H:i:s",strtotime($input['time'][1])); $time = [$starttime, $endtime]; if($input['status']=='all'){ $where=[]; }else{ $where['status']=$input['status']; } $list=Order::where('ordersn', 'like', '%' . $search_name . '%') ->where($where) ->with(['address:id,username,address,mobile','user:id,realname,nickname','agent:id,realname,nickname', 'ordergoods' => function ($query) { $query->select('order_id','goods_id',DB::raw('group_concat(distinct sku_id,"|",price,"|",num) as sku')) ->groupBy('order_id','goods_id'); } ]) ->whereBetween('created_at', $time) ->orderBy('id','desc') ->skip($num)->take($page_size) ->get()->toArray(); if(empty($list)){ return $this->error('410004','没有订单信息'); } foreach($list as $keys => $value){ $list[$keys]['num']=0; $list[$keys]['crown']=[]; foreach($value['ordergoods'] as $key=>$val){ $goods=Goods::find($val['goods_id']); if($goods){ $list[$keys]['ordergoods'][$key]['goodsname']=$goods->name; $list[$keys]['ordergoods'][$key]['imgurl']=$goods->img_url; } if($val['sku']){ foreach(explode(',',$val['sku']) as $k =>$v) { $sku=explode('|',$v); $list[$keys]['ordergoods'][$key]['goodssku'][$k] = $this->getSku($sku[0]); $list[$keys]['ordergoods'][$key]['goodssku'][$k]['price'] = $sku[1]; $list[$keys]['ordergoods'][$key]['goodssku'][$k]['num'] = $sku[2]; $list[$keys]['num'] += $sku[2]; } } } $list[$keys]['crown']=$this->getAgentCrownInfo($value['user']['id']); } if($list){ return $this->success($list); }else{ return $this->error(); } } public function getOrderPrice($goodsinfo,$mobile){ $level=User::where('mobile',$mobile)->value('level'); $totalPrice=0; foreach($goodsinfo as $key =>$val){ foreach($val['skuList'] as $k=>$v){ $price=GoodsSkuPrice::withTrashed()->where('sku_id',$v['id'])->where('user_level',$level)->value('price'); $totalPrice+=$v['num']*$price; } } return $totalPrice; } /*后台添加订单*/ public function uploadOrder(Request $request){ $input=$request->all(); $ooo=new Order(); $validator = $ooo->validator($input); if($validator->fails()){ return $this->error('400013',$validator->errors()->first()); } $user=User::where('mobile',$input['member'])->first(); if(empty($user)){ return $this->error('400135','代理信息不存在'); } $totalPrice=$this->getOrderPrice($input['goods'],$input['member']); DB::beginTransaction(); try { $addressId = $ooo->createAddressInfo($input); $manOrder = $ooo->createManualOrder($user, $addressId,$input['remark']); if ($user->level == '3') { //皇冠进货 $crown['agent_id'] = '1'; $crown['user_id'] = $user->id; $crown['address_id'] = $addressId; $crown['desc'] = $input['remark']; $crown['price'] = $totalPrice; $OrderId = $ooo->createOrder($manOrder, $user, $crown); foreach ($input['goods'] as $key => $val) { foreach ($val['skuList'] as $k => $v) { $ooo->createOrderGoods($val, $v, $user, $OrderId, $manOrder); } } } elseif($user->level == '2') { //顶级进货 $crown1['agent_id'] = $user->agent_id; $crown1['user_id'] = $user->id; $crown1['address_id'] = $addressId; $crown1['desc'] = $input['remark']; $crown1['price'] = $totalPrice; $OrderId1 = $ooo->createOrder($manOrder, $user, $crown1); $crown2['agent_id'] = '1'; $crown2['user_id'] = $user->agent_id; $crown2['address_id'] = $addressId; $crown2['desc'] = $input['remark']; $crown2['price'] = $totalPrice; $OrderId2 = $ooo->createOrder($manOrder, $user, $crown2); foreach ($input['goods'] as $key => $val) { foreach ($val['skuList'] as $k => $v) { $ooo->createOrderGoods($val, $v, $user, $OrderId1, $manOrder); } } foreach ($input['goods'] as $key => $val) { foreach ($val['skuList'] as $k => $v) { $ooo->createOrderGoods($val, $v, $user, $OrderId2, $manOrder); } } }elseif($user->level == '1') { //特级进货 $upAgent=User::find($user->agent_id);//代理上级信息 if($upAgent->level==3){ $crown1['agent_id'] = $user->agent_id; $crown1['user_id'] = $user->id; $crown1['address_id'] = $addressId; $crown1['desc'] = $input['remark']; $crown1['price'] = $totalPrice; $OrderId1 = $ooo->createOrder($manOrder, $user, $crown1); $crown2['agent_id'] = '1'; $crown2['user_id'] = $user->agent_id; $crown2['address_id'] = $addressId; $crown2['desc'] = $input['remark']; $crown2['price'] = $totalPrice; $OrderId2 = $ooo->createOrder($manOrder, $user, $crown2); foreach ($input['goods'] as $key => $val) { foreach ($val['skuList'] as $k => $v) { $ooo->createOrderGoods($val, $v, $user, $OrderId1, $manOrder); } } foreach ($input['goods'] as $key => $val) { foreach ($val['skuList'] as $k => $v) { $ooo->createOrderGoods($val, $v, $user, $OrderId2, $manOrder); } } }else{ $crown1['agent_id'] = $user->agent_id; $crown1['user_id'] = $user->id; $crown1['address_id'] = $addressId; $crown1['desc'] = $input['remark']; $crown1['price'] = $totalPrice; $OrderId1 = $ooo->createOrder($manOrder, $user, $crown1); $crown2['agent_id'] = $upAgent->agent_id; $crown2['user_id'] = $user->agent_id; $crown2['address_id'] = $addressId; $crown2['desc'] = $input['remark']; $crown2['price'] = $totalPrice; $OrderId2 = $ooo->createOrder($manOrder, $user, $crown2); $crown3['agent_id'] = '1'; $crown3['user_id'] = $upAgent->agent_id; $crown3['address_id'] = $addressId; $crown3['desc'] = $input['remark']; $crown3['price'] = $totalPrice; $OrderId3 = $ooo->createOrder($manOrder, $user, $crown3); foreach ($input['goods'] as $key => $val) { foreach ($val['skuList'] as $k => $v) { $ooo->createOrderGoods($val, $v, $user, $OrderId1, $manOrder); } } foreach ($input['goods'] as $key => $val) { foreach ($val['skuList'] as $k => $v) { $ooo->createOrderGoods($val, $v, $user, $OrderId2, $manOrder); } } foreach ($input['goods'] as $key => $val) { foreach ($val['skuList'] as $k => $v) { $ooo->createOrderGoods($val, $v, $user, $OrderId3, $manOrder); } } } } $this->goodsTotalChange($input['goods'],$user->id); foreach($input['goods'] as $key=>$val){ $gi=Goods::find($val['goodId']); if($user->level==1){ $arr[$key]['price']=$gi->tjprice; }elseif($user->level==2){ $arr[$key]['price']=$gi->djprice; }elseif($user->level==3){ $arr[$key]['price']=$gi->hgprice; } $arr[$key]['name']=$gi->name; $arr[$key]['img']=$gi->img_url; $arr[$key]['num']=0; foreach($val['skuList'] as $k=>$v){ $arr[$key]['num']+=$v['num']; } $message['title']='订单通知'; $message['type']='2'; $message['status']='0'; $message['data']=json_encode($arr); $message['user_id']=$user->id; $message['agent_id']='1'; $message['nickname']=$user->nickname; Message::create($message); } DB::commit(); Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')添加订单成功,'.'收货人:'.$input['name'].',代理手机号:'.$input['mobile']); return $this->success([]); }catch(Exception $e){ // echo $e->getMessage(); DB::rollBack(); return $this->error(); } } //库存管理 public function goodsTotalChange($goodsInfo,$uid){ foreach($goodsInfo as $key =>$val){ foreach($val['skuList'] as $k=>$v){ $info=GoodsAgentTotal::where('user_id',$uid)->where('goods_id',$val['goodId'])->where('sku_id',$v['id'])->first(); if($info){ GoodsAgentTotal::where('goods_id',$val['goodId']) ->where('user_id', $uid) ->where('sku_id',$v['id']) ->increment('total', $v['num']); }else{ $data['user_id']=$uid; $data['goods_id']=$val['goodId']; $data['sku_id']=$v['id']; $data['total']=$v['num']; GoodsAgentTotal::create($data); } } } } //获取商品规格数据 public function getSku($id){ $Sku=GoodsSku::withTrashed()->find($id); $path=$Sku->sku_path; $arr=explode('/',$path); $goodsSku=[]; foreach($arr as $k=>$v){ $upSpec=GoodsSpec::withTrashed()->where('id',$v)->first(); $upSpec['uptitle']=GoodsSpec::withTrashed()->where('id',$upSpec->pid)->value('title'); $goodsSku[$upSpec['uptitle']]=$upSpec->title; } return $goodsSku; } //获取皇冠信息 public function getAgentCrownInfo($id){ $user=User::withTrashed()->find($id); $crown=[]; if($user['level']==3){ $crown=User::withTrashed()->where('id',$user->id)->select('id','realname','nickname','mobile')->first(); }elseif($user['level']==2){ $crown=User::withTrashed()->where('id',$user->agent_id)->select('id','realname','nickname','mobile')->first(); }elseif($user['level']==1){ $agent=User::withTrashed()->where('id',$user->agent_id)->value('id'); $crown=User::withTrashed()->where('id',$agent)->select('id','realname','nickname','mobile')->first(); } return $crown; } /*获取代理订单*/ public function getAgentOrder(Request $request){ $input=$request->all(); $page_size=$input['page_size']; $page_index=$input['page_index']; $num = ($page_index - 1) * $page_size; $search_name=$input['search_name']; if(empty($input['time'])){ $input['time'][0]=date("Y-m-d 00:00:00",strtotime("-1 years")); $input['time'][1]=date("Y-m-d 00:00:00"); } $starttime=date("Y-m-d H:i:s",strtotime($input['time'][0])); $endtime= date("Y-m-d H:i:s",strtotime($input['time'][1])); $time = [$starttime, $endtime]; $where['status']=1; $where['agent_id']=1; $count=Order::where('ordersn', 'like', '%' . $search_name . '%') ->whereBetween('created_at', $time) ->where($where) ->count(); if($count==0){ $this->error('400001','没有数据'); } $list=Order::where('ordersn', 'like', '%' . $search_name . '%') ->whereBetween('created_at', $time) ->where($where) ->with(['address:id,username,address,mobile','user:id,realname,nickname','agent:id,realname,nickname', 'ordergoods' => function ($query) { $query->select('order_id','goods_id',DB::raw('group_concat(distinct sku_id,"|",price,"|",num) as sku')) ->groupBy('order_id','goods_id'); } ]) ->orderBy('id','desc') ->skip($num)->take($page_size) ->get()->toArray(); foreach($list as $keys => $value){ $list[$keys]['num']=0; $list[$keys]['crown']=[]; foreach($value['ordergoods'] as $key=>$val){ $goods=Goods::find($val['goods_id']); if($goods){ $list[$keys]['ordergoods'][$key]['goodsname']=$goods->name; $list[$keys]['ordergoods'][$key]['imgurl']=$goods->img_url; } foreach(explode(',',$val['sku']) as $k =>$v) { $sku=explode('|',$v); $list[$keys]['ordergoods'][$key]['goodssku'][$k] = $this->getSku($sku[0]); $list[$keys]['ordergoods'][$key]['goodssku'][$k]['price'] = $sku[1]; $list[$keys]['ordergoods'][$key]['goodssku'][$k]['num'] = $sku[2]; $list[$keys]['num'] += $sku[2]; } } $list[$keys]['crown']=$this->getAgentCrownInfo($value['user']['id']); } return $this->success_list($list,'SUCCESS',$count); } /*导出代理订单*/ public function exportAgentOrder(Request $request){ $input=$request->all(); $page_size=$input['page_size']; $page_index=$input['page_index']; $num = ($page_index - 1) * $page_size; $search_name=$input['search_name']; if(empty($input['time'])){ $input['time'][0]=date("Y-m-d 00:00:00",strtotime("-1 years")); $input['time'][1]=date("Y-m-d 00:00:00"); } $starttime=date("Y-m-d H:i:s",strtotime($input['time'][0])); $endtime= date("Y-m-d H:i:s",strtotime($input['time'][1])); $time = [$starttime, $endtime]; $where['status']=1; $where['agent_id']=1; $list=Order::where('ordersn', 'like', '%' . $search_name . '%') ->whereBetween('created_at', $time) ->where($where) ->with(['address:id,username,address,mobile','user:id,realname,nickname','agent:id,realname,nickname', 'ordergoods' => function ($query) { $query->select('order_id','goods_id',DB::raw('group_concat(distinct sku_id,"|",price,"|",num) as sku')) ->groupBy('order_id','goods_id'); } ]) ->orderBy('id','desc') ->skip($num)->take($page_size) ->get()->toArray(); if(empty($list)){ return $this->error('410004','没有订单信息'); } foreach($list as $keys => $value){ $list[$keys]['num']=0; $list[$keys]['crown']=[]; foreach($value['ordergoods'] as $key=>$val){ $goods=Goods::find($val['goods_id']); if($goods){ $list[$keys]['ordergoods'][$key]['goodsname']=$goods->name; $list[$keys]['ordergoods'][$key]['imgurl']=$goods->img_url; } foreach(explode(',',$val['sku']) as $k =>$v) { $sku=explode('|',$v); $list[$keys]['ordergoods'][$key]['goodssku'][$k] = $this->getSku($sku[0]); $list[$keys]['ordergoods'][$key]['goodssku'][$k]['price'] = $sku[1]; $list[$keys]['ordergoods'][$key]['goodssku'][$k]['num'] = $sku[2]; $list[$keys]['num'] += $sku[2]; } } $list[$keys]['crown']=$this->getAgentCrownInfo($value['user']['id']); } return $this->success($list); } /*获取转单订单*/ public function getIsturnOrder(Request $request){ $input=$request->all(); $page_size=$input['page_size']; $page_index=$input['page_index']; $num = ($page_index - 1) * $page_size; $search_name=$input['search_name']; if(empty($input['time'])){ $input['time'][0]=date("Y-m-d 00:00:00",strtotime("-1 years")); $input['time'][1]=date("Y-m-d 00:00:00"); } $starttime=date("Y-m-d H:i:s",strtotime($input['time'][0])); $endtime= date("Y-m-d H:i:s",strtotime($input['time'][1])); $time = [$starttime, $endtime]; // if($input['status']=='all'){ $where=[]; // }else{ // $where['status']=$input['status']; // } // $where['status']<3; // $where['is_turn']=1; $count=Order::where('ordersn', 'like', '%' . $search_name . '%') ->where($where) ->whereBetween('created_at', $time) ->whereIn('is_turn',[1,2]) ->with(['address:id,username,address,mobile','user:id,realname,nickname','agent:id,realname,nickname', 'ordergoods' => function ($query) { $query->select('order_id','goods_id',DB::raw('group_concat(distinct sku_id,"|",price,"|",num) as sku')) ->groupBy('order_id','goods_id'); } ]) ->count(); if($count==0){ $this->error('400001','没有数据'); } $list=Order::where('ordersn', 'like', '%' . $search_name . '%') ->where($where) ->whereBetween('created_at', $time) ->whereIn('is_turn',[1,2]) ->with(['address:id,username,address,mobile','user:id,realname,nickname','agent:id,realname,nickname', 'ordergoods' => function ($query) { $query->select('order_id','goods_id',DB::raw('group_concat(distinct sku_id,"|",price,"|",num) as sku')) ->groupBy('order_id','goods_id'); } ]) ->orderBy('id','desc') ->skip($num)->take($page_size) ->get()->toArray(); foreach($list as $keys => $value){ $list[$keys]['num']=0; $list[$keys]['crown']=[]; foreach($value['ordergoods'] as $key=>$val){ $goods=Goods::find($val['goods_id']); if($goods){ $list[$keys]['ordergoods'][$key]['goodsname']=$goods->name; $list[$keys]['ordergoods'][$key]['imgurl']=$goods->img_url; } foreach(explode(',',$val['sku']) as $k =>$v) { $sku=explode('|',$v); $list[$keys]['ordergoods'][$key]['goodssku'][$k] = $this->getSku($sku[0]); $list[$keys]['ordergoods'][$key]['goodssku'][$k]['price'] = $sku[1]; $list[$keys]['ordergoods'][$key]['goodssku'][$k]['num'] = $sku[2]; $list[$keys]['num'] += $sku[2]; } } $list[$keys]['crown']=$this->getAgentCrownInfo($value['user']['id']); } return $this->success_list($list,'SUCCESS',$count); } /*导出转单订单*/ public function exportIsturnOrder(Request $request){ $input=$request->all(); $page_size=$input['page_size']; $page_index=$input['page_index']; $num = ($page_index - 1) * $page_size; $search_name=$input['search_name']; if(empty($input['time'])){ $input['time'][0]=date("Y-m-d 00:00:00",strtotime("-1 years")); $input['time'][1]=date("Y-m-d 00:00:00"); } $starttime=date("Y-m-d H:i:s",strtotime($input['time'][0])); $endtime= date("Y-m-d H:i:s",strtotime($input['time'][1])); $time = [$starttime, $endtime]; $where=[]; $list=Order::where('ordersn', 'like', '%' . $search_name . '%') ->where($where) ->whereBetween('created_at', $time) ->whereIn('is_turn',[1,2]) ->with(['address:id,username,address,mobile','user:id,realname,nickname','agent:id,realname,nickname', 'ordergoods' => function ($query) { $query->select('order_id','goods_id',DB::raw('group_concat(distinct sku_id,"|",price,"|",num) as sku')) ->groupBy('order_id','goods_id'); } ]) ->orderBy('id','desc') ->skip($num)->take($page_size) ->get()->toArray(); if(empty($list)){ return $this->error('410004','没有订单信息'); } foreach($list as $keys => $value){ $list[$keys]['num']=0; $list[$keys]['crown']=[]; foreach($value['ordergoods'] as $key=>$val){ $goods=Goods::find($val['goods_id']); if($goods){ $list[$keys]['ordergoods'][$key]['goodsname']=$goods->name; $list[$keys]['ordergoods'][$key]['imgurl']=$goods->img_url; } foreach(explode(',',$val['sku']) as $k =>$v) { $sku=explode('|',$v); $list[$keys]['ordergoods'][$key]['goodssku'][$k] = $this->getSku($sku[0]); $list[$keys]['ordergoods'][$key]['goodssku'][$k]['price'] = $sku[1]; $list[$keys]['ordergoods'][$key]['goodssku'][$k]['num'] = $sku[2]; $list[$keys]['num'] += $sku[2]; } } $list[$keys]['crown']=$this->getAgentCrownInfo($value['user']['id']); } return $this->success($list); } //确认 发货 public function confirmSendGoods(Request $request){ $input=$request->all(); $order=Order::find($input['id']);//当前订单信息 if($order->is_turn<>'0' && $order->turn_is=='1'){ return $this->error('411003','订单状态有误'); } DB::beginTransaction(); try { if ($order->is_turn == 0 && $order->turn_is == 0) { //既没有转单,也没有被转单 $order->status = '2';//当前订单 发货 $order->save(); } elseif ($order->is_turn == 0 && $order->turn_is == 1) { //转单后生成的订单 $count = OrderBreakup::where('ordersn', $order->original_ordersn)->count();//原订单拆单数量 全部转单、部分转单 if ($count == 1) {//全部转单 OrderBreakup::where('ordersn', $order->original_ordersn)->update(['status' => 1]);//当前订单转单数据 发货 Order::where('ordersn', $order->ordersn)->where('is_turn', '1')->where('status', '1')->update(['status' => 2]);//原始订单 发货 Order::where('id', $input['id'])->update(['status' => 2]);//当前订单 发货 } elseif ($count == 2) {//部分转单 $orderbreakup_To = OrderBreakup::where('ordersn', $order->original_ordersn)->where('id', '<>', $order->breakup_id)->first();//另一个订单转单数据 if ($orderbreakup_To->status == 1) {//另一个转单数据已发货 OrderBreakup::where('ordersn', $order->original_ordersn)->where('id', '=', $order->breakup_id)->update(['status' => 1]);///当前订单转单数据 发货 Order::where('ordersn', $order->original_ordersn)->where('is_turn', '2')->where('status', '1')->update(['status' => 2]);//原始订单 发货 Order::where('id', $input['id'])->update(['status' => 2]);//当前订单发货 } else {//另一个转单数据未发货 OrderBreakup::where('ordersn', $order->original_ordersn)->where('id', '=', $order->breakup_id)->update(['status' => 1]);//当前订单的转单 发货 Order::where('id', $input['id'])->update(['status' => 2]);//当前订单发货 } // }else{ // $order_cc=Order::where('original_ordersn',$order->ordersn)->first(); //当前订单为原始订单,的转单信息 // $orderbreakup=OrderBreakup::where('ordersn',$order->ordersn)->where('id','=',$order_cc->breakup_id)->first();//转单生成订单 // if($orderbreakup->status==1){ // OrderBreakup::where('ordersn',$order->ordersn)->where('id','<>',$order->breakup_id)->update(['status'=>1]); // Order::where('ordersn',$order->ordersn)->where('is_turn','1')->where('status','1')->update(['status'=>2]); // Order::where('original_ordersn',$order->ordersn)->where('breakup_id',$order->breakup_id)->where('turn_is','1')->where('status','1')->update(['status'=>2]); // }else{ // OrderBreakup::where('ordersn',$order->ordersn)->where('id','<>',$order->breakup_id)->update(['status'=>1]); // Order::where('ordersn',$order->ordersn)->where('is_turn','1')->where('status','1')->update(['status'=>2]); // } // } } } Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')确认发货成功,订单号:'.$order->ordersn); DB::commit(); return $this->success([]); }catch(Exception $e){ DB::rollBack(); return $this->error(); } } /*取消订单*/ public function shelvedOrder(Request $request){ $input=$request->all(); $order=Order::find($input['id']); if($order->status<>'0' || $order->status<>'1'){ // 代付款 或 待发货 return $this->error('411057','订单状态有误'); } $order->status='4'; //已取消 $row=$order->save(); if($row){ Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')取消订单成功,订单号'.$order->ordersn); return $this->success([]); } return $this->error(); } /*删除订单*/ // public function destoryOrder(Request $request){ // $input=$request->all(); // $order=Order::find($input['id']); // if($order->status<>'3' || $order->status<>'4'){ // 已取消 或 已完成 // return $this->error('411057','订单状态有误'); // } // $row=$order->delete(); // if($row){ // return $this->success([]); // } // return $this->error(); // } /*修改订单地址*/ public function updateOrderAddress(Request $request){ $input=$request->all(); $ooo=new Order(); $validator = $ooo->validator($input); if($validator->fails()){ return $this->error('400013',$validator->errors()->first()); } $address=Address::find($input['id']); $address->username=$input['name']; $address->mobile=$input['mobile']; $address->address=$input['address']; $row=$address->save(); if($row){ Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')修改订单地址成功,地址id:'.$address->id); return $this->success([]); } return $this->error(); } /*确认收款*/ public function confirmReceipt(Request $request){ $input=$request->all(); $row=Order::where('ordersn',$input['order'])->update(['status'=>'1']); if($row){ Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')确认订单收款,订单号:'.$input['order']); return $this->success([]); } return $this->error(); } /* 获取转单信息 */ public function getBreakupOrder(Request $request){ $input=$request->all(); $list=OrderBreakup::with(['user:id,nickname','sender:id,nickname','agent:id,nickname','ordergoods' => function ($query) { $query->select('breakup_id','goods_id',DB::raw('group_concat(distinct sku_id,"|",price,"|",num) as sku')) ->groupBy('breakup_id','goods_id'); }]) ->where('ordersn',$input['ordersn'])->get()->toArray(); foreach($list as $keys => $value){ foreach($value['ordergoods'] as $key=>$val){ $goods=Goods::find($val['goods_id']); if($goods){ $list[$keys]['ordergoods'][$key]['goodsname']=$goods->name; $list[$keys]['ordergoods'][$key]['imgurl']=$goods->img_url; } foreach(explode(',',$val['sku']) as $k =>$v) { $sku=explode('|',$v); $list[$keys]['ordergoods'][$key]['goodssku'][$k] = $this->getSku($sku[0]); $list[$keys]['ordergoods'][$key]['goodssku'][$k]['price'] = $sku[1]; $list[$keys]['ordergoods'][$key]['goodssku'][$k]['num'] = $sku[2]; } } } if($list){ return $this->success($list); } return $this->error(); } /*获取流水账单*/ public function getBillsRunningWater(Request $request){ $input=$request->all(); $page_size=$input['page_size']; $page_index=$input['page_index']; $num = ($page_index - 1) * $page_size; $search_name=$input['search_name']; $count=Order::where('ordersn', 'like', '%' . $search_name . '%') ->where(function ($query) { $query->where('status',1) ->orWhere('status',2) ->orWhere('status',3); }) ->count(); if($count==0){ $this->error('400001','没有数据'); } $list=Order::where('ordersn', 'like', '%' . $search_name . '%') ->where(function ($query) { $query->where('status',1) ->orWhere('status',2) ->orWhere('status',3); }) ->with(['address:id,username,address,mobile','user:id,realname','agent:id,realname', 'ordergoods' => function ($query) { $query->select('order_id','goods_id',DB::raw('group_concat(distinct sku_id,"|",price,"|",num) as sku')) ->groupBy('order_id','goods_id'); } ]) ->orderBy('id','desc') ->skip($num)->take($page_size) ->get()->toArray(); foreach($list as $keys => $value){ $list[$keys]['total']=0; $list[$keys]['totalprice']=0; foreach($value['ordergoods'] as $key=>$val){ $goods=Goods::find($val['goods_id']); if($goods){ $list[$keys]['ordergoods'][$key]['goodsname']=$goods->name; $list[$keys]['ordergoods'][$key]['imgurl']=$goods->img_url; } foreach(explode(',',$val['sku']) as $k =>$v) { $sku=explode('|',$v); $list[$keys]['ordergoods'][$key]['goodssku'][$k] = $this->getSku($sku[0]); $list[$keys]['ordergoods'][$key]['goodssku'][$k]['price'] = $sku[1]; $list[$keys]['ordergoods'][$key]['goodssku'][$k]['num'] = $sku[2]; $list[$keys]['total']+=$sku[2]; $list[$keys]['totalprice']+=$sku[1]*$sku[2]; } } } return $this->success_list($list,'SUCCESS',$count); } }