id; // $date = Carbon::now()->format('m/d'); $date1 = Carbon::now()->addDay('2')->toDateTimeString(); return $date1; } /** * 提交订单 **/ public function submit_order(Request $request) { // try{ Log::error('{---价格---}'.$request->total); $order = $this->order_save(0, $request->address_id, $request->total,$request->remark); Log::error('dsds------1'); $this->order_goods_save($request->list,$order['order_id']); Log::error('dsds------2'); $this->order_de($order['order_num']); Log::error('dsds------3'); return $this->success(['order_num'=>$order['order_num']]);//保存消息 // }catch (\Exception $exception){ // Log::error('{------这里是提交订单---时间为----}'.Carbon::now()->toDateTimeString()); // return $this->error(300); // } } /* * 订单保存的详情 * */ public function order_de($order_num){ $user=Auth::user(); $order=Order::where('ordersn',$order_num)->first(); $order_goods=OrderGoods::where('order_id',$order->id)->get(); foreach ($order_goods as $k=>$v){ $data[$k]=$v->goods_id; } $data=array_unique($data); $datas=[]; foreach ($data as $k=>$v){ $good=Goods::where('id',$v)->first(); $nums=OrderGoods::where('order_id',$order->id)->where('goods_id',$v)->sum('num'); $price=OrderGoods::where('order_id',$order->id)->where('goods_id',$v)->value('price'); $datas[$k]=[ 'price'=>$price, 'name'=>$good->name, 'img'=>$good->img_url, 'num'=>(int)$nums ]; } $datas=json_encode($datas); // $datas=json_encode($datas); // $down_order=[ // 'order_num'=>$order_num, // 'time'=>time()*1000, // 'status'=>1, // 'goodList'=>$datas // ]; // $r=['order_num'=>$order_num,'data'=>$datas,'user_id'=>$user->id,'agent_id'=>$user->agent_id,'price'=>$order->price,'type'=>2,'mobile'=>$user->mobile,'nickname'=>$user->nickname]; $message=new Message(); $message->order_num=$order_num; $message->data=$datas; $message->type=2; $message->user_id=$user->id; $message->agent_id=$user->agent_id; $message->price=$order->price; $message->mobile=$user->mobile; $message->nickname=$user->nickname; $message->save(); // DB::table('message')->insert($r); return ''; } /* * 下级订单,待付款 * */ public function order_lower(Request $request) { $user=Auth::user(); $id=$user->id; if ($request->status==1){ $order = Order::where('status', $request->status) ->where('agent_id', $id)->where('is_turn','<>',1)->paginate(15); }else{ if ($request->status==2){ $order = Order::where('status', $request->status)->where('agent_id', $id)->paginate(15); }else{ $order = Order::where('status', $request->status)->where('agent_id', $id)->paginate(15); } } $data=$this->deal_order($order); return $this->success_list($data[0], '', $data[1]); } /** *notes: *订单详情 * */ public function order_detail(Request $request) { Log::error(json_encode($request->all())); if ($request->type=='turn'){ $order_num=Order::where('original_ordersn',$request->order_num)->value('ordersn'); } else{ $order_num=$request->order_num; } $order = Order::where('ordersn', $order_num)->first(); $order_goods_all = OrderGoods::where('order_id', $order->id)->groupBy('goods_id')->select('goods_id')->get(); foreach ($order_goods_all as $k => $v) { $order_goods = OrderGoods::where('goods_id', $v->goods_id)->where('order_id', $order->id)->get(); $s = []; foreach ($order_goods as $key => $val) { $sku = GoodSku::find($val->sku_id); $re = explode('/', $sku->sku_path); $goodspec_type = GoodSpec::find($re[1]); $goodspec_size = GoodSpec::find($re[0]); $data[$key]['name'] = $goodspec_type->title; $data[$key]['size'] = $goodspec_size->title; $data[$key]['num'] = $val->num; $data[$key]['size_id'] = $val->sku_id; $data[$key]['price'] = $val->price; } $data = array_merge($s, $data); $datas[$k]['goods'] = $data; $goods = Goods::find($v->goods_id); $datas[$k]['name'] = $goods->name; $datas[$k]['storage']=GoodSkuTotal::where('user_id',Auth::user()->id)->where('goods_id',$v->goods_id)->sum('total'); $datas[$k]['id'] = $goods->id; $datas[$k]['imgurl'] = $goods->img_url; $datas[$k]['price'] = $data[0]['price'];//这地方 } foreach ($datas as $k => $v) { $re = $this->deal_arr($v['goods']); $all[$k]['name'] = $v['name']; $all[$k]['id'] = $v['id']; $all[$k]['storage']=$v['storage']; $all[$k]['img'] = $v['imgurl']; $all[$k]['price'] = $v['price']; $all[$k]['typeList'] = $re; } $all_data=[ 'order_num'=>$order->ordersn, 'time'=>strtotime($order->created_at)*1000, 'status'=>$order->status, 'address'=>[ 'city'=>$order->address->city, 'provice'=>$order->address->provice, 'area'=>$order->address->town, "address"=>$order->address->address, "con_name"=>$order->address->username, "con_mobile"=>$order->address->mobile, ], 'remark'=>$order->desc, 'goodList'=>$all ]; return $this->success($all_data); } /* * 处理订单格式 * */ public function deal_arr($data) { $result = array(); foreach ($data as $key => $value) { $result[$value['name']][] = $value; } $i = 0; foreach ($result as $k => $v) { foreach ($v as $key => $val) { $dat[$key] = $val['size']; $dats[$key] = $val['num']; $datss[$key] = $val['size_id']; } $datas[$i]['name'] = $v[0]['name']; $datas[$i]['size'] = $dat; $datas[$i]['num'] = $dats; $datas[$i]['size_id'] = $datss; $i++; } return $datas; } /* *转单 */ public function turn_order(Request $request) { Log::error('{---zhuandan-----}'.json_encode($request->all())); $list=$request->list; $user = Auth::user(); $order_num = $request->order_num; $order = Order::where('ordersn', $order_num)->first(); if ($request->status==1){ $order->is_turn=1;//是否为全部转单 }elseif($request->status==2){ $order->is_turn = 2; $order->status=2; }else{ $order=Order::where('ordersn',$request->order_num)->first(); if ($order->turn_is==1){ $order_all=Order::where('ordersn',$order->original_ordersn)->first(); $order_all->status=2; $order_all->save(); } $order->status=2; $order->save(); return $this->success([]); } $order->save(); $break_id = $this->order_break(0, $order->ordersn, $user); $break_id_turn = $this->order_break(1, $order->ordersn, $user); $order_id=$this->order_save(1,$order->address_id,0,null,$order->ordersn,$break_id_turn);//订单ID $this->order_goods_save($list,$order_id['order_id'],1,$break_id_turn); $total=OrderGoods::where('order_id',$order_id['order_id'])->sum('totalprice'); $orders=Order::find($order_id['order_id']); $orders->price=$total; if ($request->has('remark')){ $orders->desc=$request->remark; } if ($request->status==1){ $orders->is_turn=1;//是否为全部转单 }else{ $this->order_goods_surplus($order->id,$order_id['order_id'],$break_id); $orders->status=2; } $orders->save(); return $this->success([]); } /**保存数据库*/ public function order_break($type, $order_num, $user) { $order = Order::where('ordersn', $order_num)->first(); $order_break = new OrderBreakup(); if ($type == 1) { $order_break->sender_id = $user->agent_id; $order_break->status = 1; } else { $order_break->sender_id = $order->agent_id; $order_break->status = 0; } $order_break->agent_id = $order->agent_id; $order_break->user_id = $order->user_id; $order_break->ordersn = $order->ordersn; $order_break->address_id = $order->address_id; $order_break->save(); return $order_break->id; } /*订单的保存*/ public function order_save($type, $address_id, $total = 0,$remark=null,$ordersn = null, $id = 0) { $user = Auth::user(); $code = time() . str_pad($user->id, 6, 0, STR_PAD_LEFT) . mt_rand(1000, 9999); $order = new Order(); if ($type == 1) { $order->original_ordersn = $ordersn; $order->turn_is = 1; $order->breakup_id = $id; } else { $order->price = $total; } $order->ordersn = $code; $order->desc = $remark; $order->user_id = $user->id; $order->agent_id = $user->agent_id; $order->address_id = $address_id; $order->save(); return ['order_num'=>$order->ordersn,'order_id'=>$order->id]; } /* * order_goods数据库的保存 * */ public function order_goods_save($data,$order_id,$type=0,$break_id=0){ foreach ($data as $k => $v) { $order_goods = new OrderGoods(); $goods_sku_price = new GoodSkuPrice(); $order_goods->order_id = $order_id; $order_goods->goods_id = $v['id']; $order_goods->sku_id = $v['size_id']; $order_goods->num = $v['num']; if ($type==1){ $order_goods->breakup_id=$break_id; } $order_goods->price = $goods_sku_price ->where('goods_id', $v['id']) ->where('sku_id', $v['size_id']) ->where('user_level', Auth::user()->level)->value('price'); $order_goods->totalprice = $order_goods->price * $order_goods->num; $order_goods->save(); } // return $order_goods->id; } /* * 剩余订单量 * */ public function order_goods_surplus($order_id,$order_id_break,$break_id){ $data=OrderGoods::where('order_id',$order_id)->get(); foreach ($data as $k=>$v){ $nums=OrderGoods::where('order_id',$order_id_break) ->where('goods_id',$v->goods_id) ->where('sku_id',$v->sku_id)->value('num'); if ($nums<$v->num){ $order_goods=new OrderGoods(); $order_goods->breakup_id=$break_id; $order_goods->goods_id=$v->goods_id; $order_goods->sku_id=$v->sku_id; $order_goods->price=$v->price; $order_goods->num=$nums; $order_goods->totalprice=$v->price*($v->num-$nums); $order_goods->save(); }elseif ($nums>$v->num){ Log::error('------数量出错-----时间为-'.Carbon::now()->toDateTimeString()); }else{ $order_goods=new OrderGoods(); $order_goods->breakup_id=$break_id; $order_goods->goods_id=$v->goods_id; $order_goods->sku_id=$v->sku_id; $order_goods->price=$v->price; $order_goods->totalprice=$v->price*($v->num-$nums); $order_goods->num=$nums; $order_goods->save(); Log::error('--------全部转单--------'); } } } /** *确认收款 * */ public function order_sure_pay(Request $request){ $order=Order::where('ordersn',$request->order_num)->first(); $order->status=1; $order->save(); $incom=new IncomExpenses(); $incom->user_id=Auth::user()->id; $incom->type=0; $incom->totalprice=$order->price; $incom->save(); if ($order) return $this->success([]); } /* * 确认发货 * */ public function order_send(Request $request){ $order=Order::where('ordersn',$request->order_num)->first(); $order->status=2; $order->save(); return $this->success([]); } /* * 删除订单 * */ public function order_del(Request $request){ $order=Order::where('ordersn',$request->order_num)->first(); $order->status=4; $order->save(); return $this->success([]); } /* * 确认收货 * */ public function order_complete(Request $request){ $order=Order::where('ordersn',$request->order_num)->first(); $order->status=3; $order->payed_at=Carbon::now()->toDateTimeString(); $order->save(); $order_all=Order::where('original_ordersn',$request->order_num)->where('turn_is','=',1)->get(); if ($order_all){ foreach ($order_all as $k=>$v){ $orders=Order::find($v->id); $orders->status=3; $orders->save(); } } $order_data=OrderGoods::where('order_id',$order->id)->get(); foreach ($order_data as $k=>$v){ $good_total=GoodSkuTotal::where('user_id',Auth::user()->id)->where('sku_id',$v->sku_id)->where('goods_id',$v->goods_id)->first(); if ($good_total){ $good_total->total=$good_total->total+$v->num; $good_total->save(); }else{ $good_totals=new GoodSkuTotal(); $good_totals->goods_id=$v->goods_id; $good_totals->sku_id=$v->sku_id; $good_totals->total=$v->num; $good_totals->user_id=Auth::user()->id; $good_totals->save(); } } return $this->success([]); } /* * 我的订单 */ public function my_order(Request $request){ $user=Auth::user(); if ($request->status==2){ $order=Order::where('user_id',$user->id) ->where('turn_is',0)->whereIn('status',[3,4])->paginate(15); }elseif($request->status==1){ $order=Order::where('user_id',$user->id) ->where('turn_is',0)->whereIn('status',[1,2])->paginate(15); }else{ $order=Order::where('user_id',$user->id) ->where('turn_is',0)->where('status',0)->paginate(15); } $data=$this->deal_order($order); return $this->success_list($data[0], '', $data[1]); } /** * 处理订单列表 */ public function deal_order($order,$type=0){ if ($type==0){ $orders = $order->toArray(); $total=$orders['total']; }else{ $total=0; } $data = []; $datas = []; foreach ($order as $k => $v) { Log::error('{-----处理订单----}'); $order_goods_1 = OrderGoods::where('order_id', $v->id)->get(); foreach ($order_goods_1 as $key => $val) { $order_goods = OrderGoods::find($val->id); $data[$key]['name'] = $order_goods->goods->name; $data[$key]['price'] = $val->price; $data[$key]['num'] = $order_goods->num; $data[$key]['imgurl'] = $order_goods->goods->img_url; } $datas[$k]['forward']=$v->turn_is==0?false:true; $datas[$k]['status']=$v->status; $datas[$k]['goodList'] = $data; $datas[$k]['order_num'] = $v->ordersn; $datas[$k]['price'] = $v->price; $datas[$k]['time'] = Carbon::parse($v->created_at)->toDateTimeString(); } return [$datas,$total]; } /* * 已转单部分 * */ public function order_turn(){ $order=Order::where('user_id',Auth::user()->id)->where('turn_is','=',1)->paginate(15); // Log::error('{-----转单部分---是是是--}'.json_encode($order)); $total=$order->toArray(); // $data=[]; // $datas=[]; // foreach ($order as $key=>$val){ // $orders=Order::where('original_ordersn',$val->ordersn)->get(); // $data=$this->deal_order($orders,1); // $datas[$key]=$data[0]; // } $data=$this->deal_order($order,1); // Log::error('{-----转单部分-----}'.json_encode($datas)); return $this->success_list($data[0],'',$total['total']); } public function single_record(Request $request){ $incom=new IncomExpenses(); $incom->totalprice=$request->total; $incom->type=1; $incom->user_id=Auth::user()->id; $incom->save(); $num=$request->total; $goods_spec=GoodSku::where('goods_id',$request->id)->where('sku_path','like',"%$request->type_id")->get(); foreach ($goods_spec as $k=>$v){ $goods=GoodSkuTotal::where('goods_id',$request->id)->where('sku_id',$v->id)->first(); if ($goods){ if ($goods->total>$num){ $d=GoodSkuTotal::find($goods->id); $d->total=$goods->total-$num; $d->save; return $this->success([]); }else{ $d=GoodSkuTotal::find($goods->id); $d->total=0; $d->save(); // $num=$num-$goods->total; } }else{ $d=new GoodSkuTotal(); $d->total=0; $d->goods_id=$request->id; $d->sku_id=$v->id; $d->user_id=Auth::user()->id; $d->save(); } } return $this->success([]); } }