all(); $page_index = $input['page_index']; $page_size = $input['page_size']; $num = ($page_index - 1) * $page_size; $order_no = $input['order_no']; $start_time = $input['start_time']; $end_time = $input['end_time']; $search_name = $input['search_name']; // $activity_id = $input['activity_id']; $data = BanzuiOrder::with(['get_user'=>function($query){ $query->with(['warea:id,admin_name'])->select('id','nickname','name','realname','warea_id'); }]) ->with(['get_address:id,username,mobile,address,province,city,town']) ->with(['get_store:name,id']) ->with(['belong_user:nickname,id,mobile']); $admin=Auth::user(); if ($request->has('order_status')) { $order_status = $input['order_status']; } else { $order_status = []; } if ($order_status || $order_status == 0) { if ('-1' == $order_status) { $data->whereIn('is_deleted', [0, 1]); } elseif ($order_status == 5) { $data->where('is_deleted', 1); } elseif ($order_status == 0) { $data->where('status', $order_status)->where('is_deleted', 0); } elseif ($order_status == 1) { $data->where('status', $order_status)->where('is_deleted', 0); } elseif ($order_status == 2) { $data->where('status', $order_status)->where('is_deleted', 0); } elseif ($order_status == 3) { $data->where('status', $order_status)->where('is_deleted', 0); } elseif ($order_status == 4) { $data->where('status', $order_status)->where('is_deleted', 0); } elseif ($order_status == 6) { $data->whereIn('pay_status', [0, 1])->where('is_deleted', 0); } } $num_1=BanzuiOrder::whereIn('is_deleted',[0,1])->count(); $num_3=BanzuiOrder::where('is_deleted',0)->where('status', 0)->count(); $num_4=BanzuiOrder::where('is_deleted',0)->where('status', 1)->count(); $num_5=BanzuiOrder::where('is_deleted',0)->where('status', 2)->count(); $num_6=BanzuiOrder::where('is_deleted',0)->where('status', 3)->count(); $num_7=BanzuiOrder::where('is_deleted',0)->where('status', 4)->count(); $num_8=BanzuiOrder::where('is_deleted',1)->count(); $num_2=BanzuiOrder::whereIn('pay_status', [0, 1])->where('is_deleted', 0)->count(); if ($order_no) { $data->where('order_num','like', '%'.$order_no.'%'); } if ($search_name){ $user_search=function ($q)use($search_name){ $q->where('nickname','like',"%$search_name%") // ->orwhere('nickname','like',"%$search_name%") ->orwhere('mobile','like',"%$search_name%"); }; $ids=User::where($user_search)->pluck('id'); $data->whereIn('user_id',$ids); // $data->where($user_search); } if ($start_time && $end_time && empty($activity_id)) { $data->whereBetween('created_at', [$start_time, $end_time]); } // if($activity_id){ // $data->where('activity_id',$activity_id); // } $count = $data->count(); if ($order_status==-1){ $num_1=$count; }elseif($order_status==0){ $num_3=$count; }elseif($order_status==1){ $num_4=$count; }elseif($order_status==2){ $num_5=$count; }elseif($order_status==3){ $num_6=$count; }elseif($order_status==4){ $num_7=$count; }elseif($order_status==5){ $num_8=$count; }elseif($order_status==6){ $num_2=$count; } if ($count <= 0) { $this->error('450001', '暂无信息'); } $list = $data->orderBy('id', 'desc')->skip($num)->take($page_size)->get(); foreach ($list as $key => $val) { $list[$key]['remark'] = $this->getOrderRemark($val['id']); if ($val['is_deleted']==1){ if ($val['remark']==''){ $list[$key]['remark']=$val['destroy_cause']; } } if (!empty($val->track_number)) { $list[$key]['express'] = $this->express($val->track_company, $val->track_number); } $good_unit=BanzuiOrderDetail::where('order_id',$val['id'])->select('goods_unit',DB::raw('SUM(num) as total'))->groupBy('goods_unit')->pluck('total','goods_unit'); $num_hard=0; if (isset($good_unit['盒'])){ $num_hard=ceil($good_unit['盒']/12); } $num_old=0; if (isset($good_unit['件'])){ $num_old=ceil($good_unit['件']/6); } // $pei=$this->DelNum($val['id']); $pei=[]; $x_num=0; $list[$key]['x_arr']=[ 'peijian'=>[], 'peijians'=>[], 'good'=>['hard'=>$num_hard,'other'=>$num_old], 'num'=>$x_num ]; } $all=[ 'total'=>$count, 'num_1'=>$num_1, 'num_2'=>$num_2, 'num_3'=>$num_3, 'num_4'=>$num_4, 'num_5'=>$num_5, 'num_6'=>$num_6, 'num_7'=>$num_7, 'num_8'=>$num_8, 'list'=>$list, ]; return $this->success($all,'获取数据成功'); } //获取订单备注 private function getOrderRemark($order_id) { $remark = OrderRemark::where('order_id', $order_id) ->select('remark', 'name')->get(); $str_remark = ''; if ($remark) { foreach ($remark as $k => $v) { $str_remark .= '【' . $v->remark . '/---/' . $v->name . '】'; } } return $str_remark; } public function order_detail(Request $request) { $order_num = $request->order_num; $order = BanzuiOrder::where('order_num', $order_num)->with(['get_order_log'=>function($q){ $q->orderByDesc('created_at'); }, 'get_address', 'get_order_remark', 'get_user', 'get_order_gift'])->with(['belong_user:nickname,id,mobile,realname,uuid'])->first()->toArray(); $order_detail = BanzuiOrderDetail::where('order_id', $order['id'])->orderByDesc('created_at')->get(); $data = []; foreach ($order_detail as $k => $v) { $good = Goods::find($v->goods_id); $data['goods_detail'][$k]['name'] = $good->name; $data['goods_detail'][$k]['main_img'] = $good->main_img; $data['goods_detail'][$k]['size'] = $good->size; $data['goods_detail'][$k]['unit'] = $good->unit; $data['goods_detail'][$k]['money'] = $v->money; $data['goods_detail'][$k]['num'] = $v->num; $data['goods_detail'][$k]['id'] = $v->goods_id; $data['goods_detail'][$k]['detail_id'] = $v->id; $data['goods_detail'][$k]['goods_price'] = $v->goods_price; $data['goods_detail'][$k]['remark'] = $v->remark == null ? '' : $v->remark; } $order['get_user']['mobile']=$order['get_user']['uuid']; $order['belong_user']['mobile']=$order['belong_user']['uuid']; $all = array_merge($order, $data); return $this->success($all); } public function many_audit_orderbanzui(Request $request) { $input = $request->all(); $status = $input['status'];//订单状态 0待订单审核 1财务待审核 2代发货审核 3待收货(dingshi)4完成 $data = $input['data']; $name = Auth::user()->name; $activity=Activity::where('is_ing',1)->first(); DB::beginTransaction(); try { if ($status == 0) { foreach ($data as $key => $val) { $order = BanzuiOrder::where('id', $val)->first(); if ($order->status == 0) { BanzuiOrder::order_audit($val, $order, $name); } } // TongBuStatusJob::dispatch($data); } elseif ($status == 1) { foreach ($data as $key => $val) { $order = BanzuiOrder::where('id', $val)->first(); if ($order->status == 1) { BanzuiOrder::financial_audit($val, $order, $name); } } } elseif ($status == 2) { foreach ($data as $key => $val) { $order = BanzuiOrder::where('id', $val)->first(); if ($order->status == 2) { BanzuiOrder::send_audit($val, $order, $name); } } } else { throw new Exception("订单状态有误!"); } DB::commit(); return $this->success([]); } catch (Exception $e) { DB::rollback(); return $this->error('450001', $e->getMessage()); } } }