id; $user=User::where('id',$user_id)->first(); //测试代理版 // $test_user=TestUserW::pluck('phone')->toArray(); // if(!in_array($user->mobile,$test_user)){ // return $this->error('450002','你无权访问该页面'); // } //正式版 if($user->status <> 0 || $user->cert_status <> 6 || $user->service_status <> 0 || !empty($user->deleted_at)){ return $this->error('450002','你无权访问该页面'); } $store=Store::where('user_id',Auth::user()->id)->first(); if(empty($store)){ Store::create([ 'img'=>$user->headimgurl, 'name'=>$user->nickname, 'user_id'=>$user->id, 'phone'=>$user->mobile ]); $store=Store::where('user_id',Auth::user()->id)->first(); } if($store->status==1){ return $this->error('450004','店铺已禁用'); } $arr_test=Store::getTest(); if($user->headimgurl != $store->img){ Log::info($store->img); $store->img=$user->headimgurl; $store->save(); } if($user->mobile != $store->phone){ $store->phone=$user->mobile; $store->save(); } if($user->nickname != $store->name){ $store->name=$user->nickname; $store->save(); } $star=Comment::where('store_id',$store->id)->average('star'); $store->star=floor($star); if(in_array($store->id,$arr_test)){ $store->is_test=1; }else{ $store->is_test=0; } $no_pay=OrderW::where('store_id',$store->id)->where('is_pay',0)->where('apply_cancel',[0,1,3])->count(); $no_refund=OrderRefundW::where('store_id',$store->id)->where('status',0)->count(); $no_cancel=OrderCancelW::where('store_id',$store->id)->where('status',1)->count(); $see_num=See::where('store_id',$store->id)->whereDate('created_at',date('Y-m-d'))->count(); $order_num=OrderW::where('store_id',$store->id)->whereIn('apply_cancel',[0,1,3])->whereIn('is_refund',[0,1]) ->where('is_pay',1)->whereDate('created_at',date('Y-m-d'))->count(); $order_money=OrderW::where('store_id',$store->id)->whereIn('apply_cancel',[0,1,3])->whereIn('is_refund',[0,1]) ->where('is_pay',1)->whereDate('created_at',date('Y-m-d'))->sum('account'); $wait_send_num=OrderW::where('store_id',$store->id)->whereIn('apply_cancel',[0,1,3])->whereIn('is_refund',[0,1,2]) ->where('is_pay',1)->where('status',1)->count(); $show_num=ShowNumW::where('obj_id',$store->id)->where('obj_type',1)->where('type',1)->first(); $data['show_num1']=0; if($show_num){ if($show_num->num < 3){ $data['show_num1']=1; $show_num->num += 1; $show_num->save(); } }else{ ShowNumW::create([ 'obj_id'=>$store->id, 'obj_type'=>1, 'type'=>1, 'name'=>'首页操作视频', 'num'=>1, ]); } $order_money=round($order_money); $data['user']=$user; $data['store']=$store; $data['wait_send_num']=$wait_send_num?$wait_send_num:0; $data['order_num']=$order_num?$order_num:0; $data['see_num']=$see_num?$see_num:0; $data['order_money']=$order_money?$order_money:'0'; $data['no_pay']=$no_pay?$no_pay:'0'; $data['no_auth']=$no_refund+$no_cancel; $home_operation_video=SettingW::where('key','home.operation.video')->value('value'); $data['home_operation_video']=$home_operation_video; return $this->success($data); } public function getStoreData(){ $user_id=Auth::user()->id; $user=User::where('id',$user_id)->first(); $store=Store::where('user_id',Auth::user()->id)->first(); if($user->headimgurl != $store->img){ Log::info($store->img); $store->img=$user->headimgurl; $store->save(); } if($user->mobile != $store->phone){ $store->phone=$user->mobile; $store->save(); } if($user->nickname != $store->name){ $store->name=$user->nickname; $store->save(); } $star=Comment::where('store_id',$store->id)->average('star'); $store->star=floor($star); $no_pay=OrderW::where('store_id',$store->id)->where('is_pay',0)->where('apply_cancel',[0,1,3])->count(); $no_refund=OrderRefundW::where('store_id',$store->id)->where('status',0)->count(); $no_cancel=OrderCancelW::where('store_id',$store->id)->where('status',1)->count(); $see_num=See::where('store_id',$store->id)->whereDate('created_at',date('Y-m-d'))->count(); $order_num=OrderW::where('store_id',$store->id)->whereIn('apply_cancel',[0,1,3])->whereIn('is_refund',[0,1]) ->where('is_pay',1)->whereDate('created_at',date('Y-m-d'))->count(); $order_money=OrderW::where('store_id',$store->id)->whereIn('apply_cancel',[0,1,3])->whereIn('is_refund',[0,1]) ->where('is_pay',1)->whereDate('created_at',date('Y-m-d'))->sum('account'); $wait_send_num=OrderW::where('store_id',$store->id)->whereIn('apply_cancel',[0,1,3])->whereIn('is_refund',[0,1,2]) ->where('is_pay',1)->where('status',1)->count(); $order_money=round($order_money); $data['user']=$user; $data['store']=$store; $data['wait_send_num']=$wait_send_num?$wait_send_num:0; $data['order_num']=$order_num?$order_num:0; $data['see_num']=$see_num?$see_num:0; $data['order_money']=$order_money?$order_money:'0'; $data['no_pay']=$no_pay?$no_pay:'0'; $data['no_auth']=$no_refund+$no_cancel; return $this->success($data); } //获取代理个人信息 public function getAgentInfo(){ $store = Store::where('user_id',Auth::user()->id)->first(); if(empty($store->idCard)){ return $this->error('450001','店铺未认证'); } $cre_num=$store->idCard; $year=substr($cre_num,6,4); if($year>1920 && $year<2020) { $year .= '-01-01'; $age = Carbon::parse($year)->diffInYears(); }else{ $age = 0; } $num=substr($cre_num,16,1); if($num%2==0){ $sex = '女'; }else{ $sex = '男'; } $name=$store->username; $phone=$store->phone; switch(Auth::user()->level){ case 1: $level='销售主管'; break; case 2: $level='销售经理'; break; default: $level='代理公司'; } $data=['username'=>$name,'sex'=>$sex,'age'=>$age,'phone'=>$phone,'level'=>$level,'cre_num'=>$cre_num]; return $this->success($data); } //同意门店协议 // public function setAgree() // { // $store=Store::where('user_id',Auth::user()->id)->first(); // $store->is_agree=1; // $res=$store->save(); // if($res){ // return $this->success([]); // }else{ // return $this->error(); // } // } //修改店铺信息 public function editStoreInfo(Request $request) { $input=$request->all(); $rules=[ 'name'=>'required|max:32' ]; $message=[ 'name.required'=>'用户名称不能为空.', 'name.max'=>'用户名称不能大于32个字符.' ]; $validator = Validator::make($input,$rules,$message); if($validator->fails()){ return $this->error('400013',$validator->errors()->first()); } $store_id=$input['store_id']; $name=$input['name']; $res=Store::where('id',$store_id)->update(['name'=>$name]); if($res){ return $this->success([]); }else{ return $this->error(); } } //修改手机号 public function editSms(Request $request) { $rules=[ 'phone'=>'required|regex:/^1[3456789][0-9]{9}$/', 'phone_code'=>'required|size:6', ]; $message=[ 'phone.required'=>'手机号不能为空.', 'phone.regex'=>'手机号格式有误.', 'phone_code.required'=>'验证码不能为空.', 'phone_code.size'=>'验证码为6位字符串.', ]; $validator = Validator::make($request->input(),$rules,$message); if($validator->fails()){ return $this->error('400013',$validator->errors()->first()); } $phone=$request->input('phone'); if($phone == Store::where('user_id',Auth::user()->id)->value('phone')){ return $this->error('450001','新手机号不能与旧手机号相同'); } if(Store::where('phone',$phone)->first()){ return $this->error('450001','新手机号已绑定店铺'); } $store_id=$request->input('store_id'); $phone_code=$request->input('phone_code'); $code=Cache::get('sms'.$phone); if($code==$phone_code){ Cache::put('sms'.$phone,$code,-1); $res=Store::where('id',$store_id)->update(['phone'=>$phone]); if($res){ return $this->success([]); } }else{ return $this->error('450001','验证码有误'); } return $this->error(); } //校验手机验证码 public function checkSms(Request $request) { $rules=[ 'phone'=>'required|regex:/^1[3456789][0-9]{9}$/', 'phone_code'=>'required|size:6', ]; $message=[ 'phone.required'=>'手机号不能为空.', 'phone.regex'=>'手机号格式有误.', 'phone_code.required'=>'验证码不能为空.', 'phone_code.size'=>'验证码为6位字符串.', ]; $validator = Validator::make($request->input(),$rules,$message); if($validator->fails()){ return $this->error('400013',$validator->errors()->first()); } $phone=$request->input('phone'); $phone_code=$request->input('phone_code'); $code=Cache::get('sms'.$phone); if($code==$phone_code){ Cache::put('sms'.$phone,$code,-1); return $this->success([]); }else{ return $this->error('450001','验证码有误'); } } //发送验证码 public function sendSms(Request $request){ $rules=[ 'phone'=>'required|regex:/^1[3456789][0-9]{9}$/' ]; $message=[ 'phone.required'=>'手机号不能为空.', 'phone.regex'=>'手机号格式有误.' ]; $validator = Validator::make($request->input(),$rules,$message); if($validator->fails()){ return $this->error('400013',$validator->errors()->first()); } $phone=$request->input('phone'); $config=config('easysms'); $easySms = new EasySms($config); $code = mt_rand(100000,999999); $minute=5; if($request->input('type')=='card'){ $content="您正在绑定身份信息,{$code}为您的验证码,请于{$minute}分钟内填写。如非本人操作,请忽略本短信。 "; }else{ $content="您正在换绑手机号,{$code}为您的更换验证码,请于{$minute}分钟内填写。如非本人操作,请忽略本短信。"; } Cache::put('sms'.$phone,$code,$minute*60); try{ $easySms->send($phone, ['content' =>$content ]); } catch (\Overtrue\EasySms\Exceptions\NoGatewayAvailableException $exception) { $message = $exception->getException('qcloud')->getMessage(); return $this->error(40013, $message == null ? '短信发送异常' : $message); } return $this->success([]); } //分享店铺信息 public function shareStore() { $store=Store::where('user_id',Auth::user()->id)->first(); $store->user=Auth::user(); return $this->success($store); } //修改店铺图片 public function uploadStoreImg(Request $request) { $path_url = 'public/store'; $path = $request->file('img')->store($path_url); if($path){ $store_id=$request->input('store_id'); $url = env('APP_URL').Storage::url($path); $res=Store::where('id',$store_id)->update(['img'=>$url]); if ($res) { return $this->success($url); } } return $this->error(); } //上传证件照片 public function uploadCertImg(Request $request) { $paths='cert/'.date("Ymd").'/'; $path_url = $paths.date("His").mt_rand(10000,99999).'.jpg'; if(!is_dir($paths)){ mkdir($paths,0755,true); } Log::info($path_url); $type=$request->input('type');//1人像面 2国徽面 $file = $request->file('img'); Log::info($file); $img=Image::make($file); Log::info(json_encode($img)); // \Illuminate\Support\Facades\Log::error(1); if($img->filesize() > 1024*1024){ $img->resize(800, null, function ($constraint) { $constraint->aspectRatio(); })->save($path_url); }else{ $img->save($path_url); } $path='/'.$img->basePath(); if($path){ $url = env('APP_URL').$path; Log::info('%%%%%%-----%%%%%%'.$url.'--'.$path.'---'.env('APP_URL')); }else{ return $this->error('450001','证件上传失败'); } try{ // $certInfo=json_decode($this->getCertInfo($url),true); $tenCent = new TencentHandler(); $certInfo=json_decode($tenCent->getCertInfo($url),true); }catch(\Exception $e){ return $this->error('450001',$e->getMessage()); } if(empty($certInfo)){ return $this->error('450001','上传图片有误'); } $AdvancedInfo=json_decode($certInfo['AdvancedInfo'],true); Log::info(Auth::user()->nickname.'身份证图片质量指数:'.$AdvancedInfo['Quality']); if($AdvancedInfo['Quality']<=55){ return $this->error('450001','身份证图片模糊'); } foreach($tenCent->AdvancedInfo() as $key=>$val){ if(in_array($key,$AdvancedInfo['WarnInfos'])) return $this->error('450001',$val); } if($type==1){ if(empty($certInfo['Name'])){ return $this->error('450001','请上传人像面图片'); }else{ Store::where('user_id',Auth::user()->id)->update(['cardImg1'=>$url]); } }elseif($type==2){ if(empty($certInfo['Authority'])){ return $this->error('450001','请上传国徽面图片'); }else{ Store::where('user_id',Auth::user()->id)->update(['cardImg2'=>$url]); } }else{ return $this->error('450001','参数有误'); } $certInfo['url']=$path; return $this->success($certInfo); } //上传活体人脸核身视频 public function uploadFaceImg(Request $request){ $path_url = 'public/cert/video/'.date('ymd'); $path = $request->file('video')->store($path_url); if($path){ $url = env('APP_URL').Storage::url($path); }else{ return $this->error('450001','视频上传失败'); } try{ $tenCent = new TencentHandler(); $certInfo=json_decode($tenCent->checkFaceId($idCard,$name,$url),true); }catch(\Exception $e){ return $this->error('450001',$e->getMessage()); } if(empty($certInfo) || $certInfo['Sim'] < 70){ return $this->error('450001','认证失败'); } if($certInfo['Result']=='Success' && $certInfo['Sim'] >= 70){ return $this->success([]); } } //获取证件信息 // public function getCertInfo($img) // { // $cred = new Credential(env('TENCENT_SECRETID'), env('TENCENT_SECRETKEY')); // $httpProfile = new HttpProfile(); // $httpProfile->setEndpoint("ocr.tencentcloudapi.com"); // // $clientProfile = new ClientProfile(); // $clientProfile->setHttpProfile($httpProfile); // $client = new OcrClient($cred, "ap-beijing", $clientProfile); // $req = new IDCardOCRRequest(); // $params = [ // 'ImageUrl'=>$img, // 'Config' => json_encode(["CopyWarn"=>true,"BorderCheckWarn"=>true,"ReshootWarn"=>true,"DetectPsWarn"=>true,"TempIdWarn"=>true,"InvalidDateWarn"=>true,"Quality"=>true,"ReflectWarn"=>true]) // ];//"CropIdCard"=>true,"CropPortrait"=>true, // $req->fromJsonString(json_encode($params)); // $resp = $client->IDCardOCR($req); // return $resp->toJsonString(); // } //活体人脸核身 // public function checkFaceId($idCard,$name,$base) // { // $cred = new Credential(env('TENCENT_SECRETID'), env('TENCENT_SECRETKEY')); // $httpProfile = new HttpProfile(); // $httpProfile->setEndpoint("faceid.tencentcloudapi.com"); // // $clientProfile = new ClientProfile(); // $clientProfile->setHttpProfile($httpProfile); // $client = new OcrClient($cred, "ap-beijing", $clientProfile); // $req = new IDCardOCRRequest(); // $params = [ // 'IdCard'=>$idCard, // 'Name'=>$name, // 'VideoBase64'=>$base, // 'LivenessType'=>'SILENT',//LIP为数字模式,ACTION为动作模式,SILENT为静默模式 // ]; // $req->fromJsonString(json_encode($params)); // $resp = $client->IDCardOCR($req); // return $resp->toJsonString(); // } //门店认证 // public function certStore(Request $request) // { // $input=$request->all(); // $rules=[ // 'name'=>'required|max:32', // 'idCard'=>'required|size:18', // 'phone'=>'required|regex:/^1[3456789][0-9]{9}$/', // 'phone_code'=>'required|size:6', // ]; // $message=[ // 'name.required'=>'用户名称不能为空', // 'name.max'=>'用户名称不能大于32个字符', // 'idCard.required'=>'证件号不能为空', // 'idCard.size'=>'证件号为18个字符', // 'phone.required'=>'手机号不能为空.', // 'phone.regex'=>'手机号格式有误.', // 'phone_code.required'=>'验证码不能为空.', // 'phone_code.size'=>'验证码为6位字符串.', // ]; // $validator = Validator::make($input,$rules,$message); // if($validator->fails()){ // return $this->error('400013',$validator->errors()->first()); // } // $store_id=$input['store_id']; // $idCard=$input['idCard']; // $name=$input['name']; // $phone=$input['phone']; // $phone_code=$input['phone_code']; // $card_name=$input['card_name']; // $card_no=$input['card_no']; // $code=Cache::get('sms'.$phone); // if($code!=$phone_code){ // return $this->error('450001','验证码有误'); // } // Cache::put('sms'.$phone,$code,-1); // if($name != $card_name || $idCard!=$card_no){ // return $this->error('450001','证件信息与输入个人信息不一致'); // } // if(Store::where('idCard',$card_no)->first()){ // return $this->error('450001','证件信息已被绑定'); // } // $store=Store::where('id',$store_id)->first(); // if($store){ // $store->idCard=$idCard; // $store->username=$name; // $store->is_cert=1; // }else{ // return $this->error('450001','店铺信息有误'); // } // try{ // DB::Transaction(function()use($store,$idCard){ // $user=User::where('id',$store->user_id)->first(); // if($user){ // $user->cre_num=$idCard; // $user->save(); // } // // $store->save(); // // },5); // return $this->success([]); // }catch(\Exception $e){ // return $this->error($e->getMessage()); // } // } //添加新用户 public function addUser(Request $request){ $rules=[ 'phone'=>'required|regex:/^1[3456789][0-9]{9}$/' ]; $message=[ 'phone.required'=>'手机号不能为空.', 'phone.regex'=>'手机号格式有误.' ]; $validator = Validator::make($request->input(),$rules,$message); if($validator->fails()){ return $this->error('400013',$validator->errors()->first()); } $agent_id = Auth::user()->id; $phone=$request->input('phone'); $nickname=$request->input('nickname'); $is_vip=$request->input('is_vip'); $store = Store::where('user_id',$agent_id)->first(); $agent=User::where('mobile',$phone)->whereNull('deleted_at')->first(); if($agent && in_array($agent->level,[3,2])){ return $this->error('450001','该手机号是代理,无法添加'); } $user=UserW::where('phone',$phone)->first(); try{ DB::transaction(function()use(&$user,$phone,$nickname,$store,$is_vip){ if(empty($user)){ $user=UserW::create([ 'phone'=>$phone, 'name'=>$nickname?:$phone, 'avatar' => 'http://api.tongnianshijie.com/logo.jpg', 'nickname'=>$nickname?:$phone ]); } if($is_vip==1){ $user->is_vip=1; VipLogW::firstORCreate(['user_id'=>$user->id,'store_id'=>$store->id],['order_no'=>null,'type'=>1,'remark'=>'代理手动添加vip']); }else{ $user->is_vip=0; } },5); return $this->success($user); }catch(\Exception $e){ return $this->error($e->getMessage()); } } //设置vip public function setVip(Request $request){ $agent_id=Auth::user()->id; $user_id=$request->input('user_id'); $store_id=Store::where('user_id',$agent_id)->value('id'); VipLogW::firstORCreate(['user_id'=>$user_id,'store_id'=>$store_id],['order_no'=>null,'type'=>1,'remark'=>'代理手动设置vip']); return $this->success([]); } //取消vip public function cancelVip(Request $request){ $agent_id=Auth::user()->id; $user_id=$request->input('user_id'); $store_id=Store::where('user_id',$agent_id)->value('id'); $vip=VipLogW::where('store_id',$store_id)->where('user_id',$user_id)->first(); if(empty($vip)){ return $this->error('450001','该客户不是vip'); } $orders=OrderW::where('store_id',$store_id)->where('user_id',$user_id)->get(); if(count($orders)>0){ return $this->error('450001','该客户已下单,无法取消vip'); } $vip=VipLogW::where('store_id',$store_id)->where('user_id',$user_id)->first(); $vip->remark=!empty($vip->remark)?$vip->remark.'->代理删除':'代理删除'; $vip->save(); $vip->delete(); return $this->success([]); } //获取用户数据信息 public function getUserDataInfo() { $store_id = Store::where('user_id',Auth::user()->id)->value('id'); //客户总数 $user_num = OrderW::where('store_id', $store_id) ->where('is_pay',1)->groupBy('user_id') ->whereIn('apply_cancel',[0,1,3]) ->whereIn('is_refund',[0,1,2]) ->get()->count(); //订单数量 $order_num = OrderW::where('store_id', $store_id) ->whereIn('apply_cancel',[0,1,3]) ->whereIn('is_refund',[0,1,2]) ->where('is_pay',1)->count(); //总交易额 $sale_total = OrderW::where('store_id', $store_id)->where('is_pay',1)->sum('account'); $sale_total = round($sale_total); //扫码用户 $scan_user = Scan::with('user:id,nickname,avatar')->where('store_id', $store_id) ->orderByDesc('created_at')->limit(5)->get(); $scan_num = Scan::has('user')->where('store_id', $store_id)->count(); $scan_7_num = Scan::has('user')->where('store_id', $store_id)->whereBetween('created_at', [date("Y-m-d H:i", strtotime('-7 days')), date("Y-m-d H:i")])->count(); //已购客户 // $buy_num=UserW::whereHas('order', function ($query)use($store_id) { // $query->where('store_id', $store_id)->where('is_pay', 1); // })->get()->count(); // $buy_user = OrderW::with('user:id,nickname,avatar,phone') // ->where('store_id',$store_id)->where('is_pay',1) // ->orderByDesc('created_at')->limit(5)->get(); // $user_ids=UserW::where('store_id',$store_id)->pluck('id'); $userInfo=OrderW::with('user:id,nickname,avatar,phone')->has('user') ->where('store_id',$store_id)->where('is_pay',1) ->select('user_id',DB::raw('sum(total) as total'),DB::raw('sum(account) as amount')) ->groupBy('user_id')->orderByDesc('amount') ->orderByDesc('total')->orderBy('user_id') ->limit(5)->get(); $buy_7_num = OrderW::where('store_id', $store_id) ->whereBetween('created_at', [date("Y-m-d H:i", strtotime('-7 days')), date("Y-m-d H:i")]) ->where('is_pay',1) ->count(); $data['user_num'] = $user_num ? $user_num : 0; $data['sale_total'] = $sale_total ? $sale_total : 0; $data['scan_user'] = $scan_user ? $scan_user : []; $data['scan_num'] = $scan_num ? $scan_num : 0; $data['scan_7_num'] = $scan_7_num ? $scan_7_num : 0; // $data['buy_user'] = $buy_user ? $buy_user : []; // $data['buy_num'] = $buy_num ? $buy_num : 0; $data['order_num'] = $order_num ? $order_num : 0; $data['buy_7_num'] = $buy_7_num ? $buy_7_num : 0; $data['user_info'] = $userInfo; return $this->success($data); } //扫码用户查看更多 public function getMoreScan(Request $request) { $input = $request->input(); $page_index = $input['page_index']; $page_size = $input['page_size']; $num = $page_size * ($page_index - 1); $store_id = Store::where('user_id',Auth::user()->id)->value('id'); $data=Scan::with('user:id,nickname,avatar') ->has('user') ->where('store_id', $store_id); $count=$data->count(); $list=$data->orderByDesc('created_at')->skip($num)->limit($page_size)->get(); return $this->success_list($list,'成功',$count); } //已购客户查看更多 public function getMoreBuy(Request $request) { $input=$request->input(); $page_index=$input['page_index']; $page_size=$input['page_size']; $num=$page_size*($page_index-1); $store_id = Store::where('user_id',Auth::user()->id)->value('id'); // $data=UserW::withCount(['order'=>function($query){ // $query->select(DB::raw("sum(account) as money")); // }]) // ->where('store_id', $store_id)->having('order_count','>',0); $data=OrderW::with('user:id,nickname,avatar,phone') ->where('store_id',$store_id)->where('is_pay',1); $count=$data->get()->count(); $list=$data->orderByDesc('created_at')->skip($num)->limit($page_size) ->get(); return $this->success_list($list,'成功',$count); } //获取更多用户信息 public function getMoreUserInfo(Request $request){ $input=$request->input(); $page_index=$input['page_index']; $page_size=$input['page_size']; $num=$page_size*($page_index-1); $store_id = Store::where('user_id',Auth::user()->id)->value('id'); $data=OrderW::with('user:id,nickname,avatar,phone')->has('user') ->where('store_id',$store_id)->where('is_pay',1) ->select('user_id',DB::raw('sum(total) as total'),DB::raw('sum(account) as amount')) ->groupBy('user_id'); $count=$data->get()->count(); $list=$data->orderByDesc('amount')->orderByDesc('total')->orderBy('user_id') ->skip($num)->limit($page_size)->get(); return $this->success_list($list,'成功',$count); } //获取用户所有订单 public function getUserAllOrder(Request $request){ $user_id=$request->input('user_id'); $status=$request->input('status'); $page_size=$request->input('page_size'); $page_index=$request->input('page_index'); $num=$page_size*($page_index-1); $where=[]; if($status!='all'){ $where['status']=$status; } $where['user_id']=$user_id; $data=OrderW::with(['user:id,nickname,phone','order_cancel'=>function($query){ $query->where('using',1);}]) ->where($where) ->whereIn('apply_cancel',[0,1,3]) ->orderByDesc('id'); $count=$data->count(); $orders=$data->skip($num)->take($page_size)->get(); foreach($orders as $key=>$val){ $goods_ids=OrderDetailW::where('order_no',$val->order_no)->groupBy('goods_id')->pluck('goods_id'); $goods=[]; foreach($goods_ids as $k=>$v){ $goods[$k]=StoreGoods::where('id',$v)->first(); $goods[$k]->sku=OrderDetailW::where('order_no',$val->order_no)->where('goods_id',$v)->get(); } $orders[$key]->goods=$goods; } return $this->success_list($orders,'成功',$count); } //获取代为下单用户信息 public function getUserInfo(Request $request) { $input=$request->all(); $phone=$input['phone']; $user=UserW::where('phone',$phone)->first(); if(empty($user)){ return $this->error('450001','用户手机号有误'); } if($user->status==1){ return $this->error('450001','用户已被禁用'); } return $this->success($user); } //获取用户所有收货地址 public function getAllAddress(Request $request) { $input=$request->All(); $agent_id=Auth::user()->id; $store_id=Store::where('user_id',$agent_id)->value('id'); // $address=AddressW::where('user_id',$input['id'])->orderByDesc('is_default')->orderByDesc('created_at')->get(); $address=AddressW::where('user_id',$input['id'])->where('store_id',$store_id)->where('type',2)->orderByDesc('is_default')->orderByDesc('created_at')->get(); return $this->success($address); } //获取收货地址 public function getAddress(Request $request) { $input=$request->All(); $agent_id=Auth::user()->id; $store_id=Store::where('user_id',$agent_id)->value('id'); // $data['address']=AddressW::where('user_id',$input['id'])->orderByDesc('is_default')->orderByDesc('created_at')->first(); $data['address']=AddressW::where('user_id',$input['id'])->where('store_id',$store_id)->where('type',2)->orderByDesc('is_default')->orderByDesc('created_at')->first(); $data['store']=Store::with('address_store')->where('user_id',Auth::user()->id)->first(); return $this->success($data); } //添加收货地址 public function addAddress(Request $request) { $input=$request->all(); $rules=[ 'name'=>'required|max:32', 'phone'=>'required|regex:/^1[3456789][0-9]{9}$/', 'province'=>'required', 'city'=>'required', 'area'=>'required', 'address'=>'required|max:255', ]; $message=[ 'name.required'=>'收货人不能为空.', 'name.max'=>'收货人姓名不能大于32个字符.', 'phone.required'=>'手机号不能为空.', 'phone.regex'=>'手机号格式有误.', 'province.required'=>'省不能为空.', 'city.required'=>'市不能为空.', 'area.required'=>'区/县不能为空.', 'address.required'=>'详细地址不能为空.', 'address.max'=>'详细地址不能大于255个字符.' ]; $validator = Validator::make($input,$rules,$message); if($validator->fails()){ return $this->error('400013',$validator->errors()->first()); } $count=AddressW::where('user_id',$input['user_id'])->count(); if($count>=10){ return $this->error('450001','用户地址数量已达上限'); } if($input['is_default']==1){ AddressW::where('user_id',$input['user_id'])->update(['is_default'=>0]); } $agent_id=Auth::user()->id; $store_id=Store::where('user_id',$agent_id)->value('id'); $res=AddressW::create([ 'name'=>$input['name'], 'phone'=>$input['phone'], 'user_id'=>$input['user_id'], 'store_id'=>$store_id, 'province'=>$input['province'], 'city'=>$input['city'], 'area'=>$input['area'], 'address'=>$input['address'], 'is_default'=>$input['is_default'], 'remark'=>$input['remark'], 'type'=>2, ]); if($res){ return $this->success([]); }else{ return $this->error(); } } //修改收货地址 public function updateAddress(Request $request) { $input=$request->all(); $rules=[ 'name'=>'required|max:32', 'phone'=>'required|regex:/^1[3456789][0-9]{9}$/', 'province'=>'required', 'city'=>'required', 'area'=>'required', 'address'=>'required|max:255', ]; $message=[ 'name.required'=>'收货人不能为空.', 'name.max'=>'收货人姓名不能大于32个字符.', 'phone.required'=>'手机号不能为空.', 'phone.regex'=>'手机号格式有误.', 'province.required'=>'省不能为空.', 'city.required'=>'市不能为空.', 'area.required'=>'区/县不能为空.', 'address.required'=>'详细地址不能为空.', 'address.max'=>'详细地址不能大于255个字符.' ]; $validator = Validator::make($input,$rules,$message); if($validator->fails()){ return $this->error('400013',$validator->errors()->first()); } $address_id=$input['address_id']; $address=AddressW::where('id',$address_id)->first(); if($input['is_default']==1){ AddressW::where('user_id',$address->user_id)->update(['is_default'=>0]); } $res=AddressW::where('id',$address_id)->update([ 'name'=>$input['name'], 'phone'=>$input['phone'], 'province'=>$input['province'], 'city'=>$input['city'], 'area'=>$input['area'], 'address'=>$input['address'], 'is_default'=>$input['is_default'], 'remark'=>$input['remark'], ]); if($res){ return $this->success([]); }else{ return $this->error(); } } //删除收货地址 public function destroyAddress(Request $request) { $res=AddressW::where('id',$request->input('id'))->delete(); if($res){ return $this->success([]); }else{ return $this->error(); } } //设为默认地址 public function setDefaultAddress(Request $request) { $address=AddressW::where('id',$request->input('id'))->first(); try{ DB::connection('mysql_w')->transaction(function()use($address){ if($address->is_default == 1) { $address->is_default = 0; $address->save(); }else{ $address->is_default = 1; $address->save(); AddressW::where('user_id',$address->user_id)->whereNotIn('id',[$address->id])->update(['is_default'=>0]); } },5); return $this->success([]); }catch(\Exception $e){ return $this->error($e->getMessage()); } } //判断订单价格 protected function getOrderPrice($user_id,$store_id,$num){ $vipLog=VipLogW::where('user_id',$user_id)->where('store_id',$store_id)->first(); if($vipLog){ return 'vip_ed';//vip价格 }else{ if($num>=2){ return 'vip_ing';//vip价格 }else{ return 'normal';//正常价 } } } //记录下单时代理关系 protected function saveAgentNoLog($user_id,$agent_id,$order_no){ $one=$agent_id; $one_agent=User::where('id',$one)->first(); $data=[]; $data[0]['order_no'] = $order_no; $data[0]['user_id'] = $user_id; // $data[0]['agent_id'] = $one; $data[0]['level'] = $one_agent->level; $data[0]['nickname'] = $one_agent->nickname; $data[0]['phone'] = $one_agent->mobile; $data[0]['created_at'] = date("Y-m-d H:i:s"); $data[0]['updated_at'] = date("Y-m-d H:i:s"); if($one_agent->level==2 || $one_agent->level==1){ $two=User::where('id',$one)->value('agent_id'); $two_agent=User::where('id',$two)->first(); $data[1]['order_no'] = $order_no; $data[1]['user_id'] = $user_id; // $data[1]['agent_id'] = $two; $data[1]['level'] = $two_agent->level; $data[1]['nickname'] = $two_agent->nickname; $data[1]['phone'] = $two_agent->mobile; $data[1]['created_at'] = date("Y-m-d H:i:s"); $data[1]['updated_at'] = date("Y-m-d H:i:s"); if($two_agent->level==2){ $three=User::where('id',$two)->value('agent_id'); $three_agent=User::where('id',$three)->first(); $data[2]['order_no'] = $order_no; $data[2]['user_id'] = $user_id; // $data[2]['agent_id'] = $three; $data[2]['level'] = $three_agent->level; $data[2]['nickname'] = $three_agent->nickname; $data[2]['phone'] = $three_agent->mobile; $data[2]['created_at'] = date("Y-m-d H:i:s"); $data[2]['updated_at'] = date("Y-m-d H:i:s"); } } return $data; } //代下单或分享提交订单 public function submitOrderInfo(Request $request) { $input=$request->all(); Log::error($input); $sku=$input['sku']; $user=UserW::find($input['user_id']); $agent=User::find(Auth::user()->id); $store_id=Store::where('user_id',Auth::user()->id)->value('id'); $remark=$input['remark']; $order_no=$this->order_no('dx'); $account=$vip_account=$cost_account=$num=0; $data=$snapshot=[]; foreach($sku as $key=>$val){ if($val[1] > 0){ $num += $val[1]; } } $vip=$this->getOrderPrice($user->id,$store_id,$num); $arr_test=Store::getTest(); foreach($sku as $key=>$val){ $sku_info=[]; $goodSku=StoreGoodsSku::with(['goods'])->where('id',$val[0])->first(); if(!array_key_exists($goodSku->goods_id,$snapshot)){ $snapshot[$goodSku->goods_id]['name']=$goodSku->goods->name; $snapshot[$goodSku->goods_id]['main_attr']=$goodSku->goods->main_attr; $snapshot[$goodSku->goods_id]['img']=$goodSku->goods->img; $snapshot[$goodSku->goods_id]['price']=$goodSku->goods->price; $snapshot[$goodSku->goods_id]['sku']=[]; } if(in_array($store_id,$arr_test)){ $storeInventory=InventoryW::where(['store_id'=>$store_id,'goods_id'=>$goodSku->goods_id,'sku_id'=>$val[0]])->lockForUpdate()->first(); $storeInve_num=!empty($storeInventory)?$storeInventory->num:0; if($val[1] > $storeInve_num){ return $this->error('450001','【'.$goodSku->goods->main_attr.'-'.$goodSku->type.'-'.$goodSku->size.'】库存不足'); } } if(empty($goodSku)){ return $this->error('450001','商品规格不存在,刷新页面重新下单'); } if($agent->level==1){ $cost_account += $goodSku->goods->super_price * $val[1]; $data[$key]['cost_price']=$goodSku->goods->super_price; $data[$key]['cost_account']=$goodSku->goods->super_price * $val[1]; } if($agent->level==2){ $cost_account += $goodSku->goods->top_price * $val[1]; $data[$key]['cost_price']=$goodSku->goods->top_price; $data[$key]['cost_account']=$goodSku->goods->top_price * $val[1]; } if($agent->level==3){ $cost_account += $goodSku->goods->crown_price * $val[1]; $data[$key]['cost_price']=$goodSku->goods->crown_price; $data[$key]['cost_account']=$goodSku->goods->crown_price * $val[1]; } if($vip=='vip_ed' || $vip=='vip_ing'){ $data[$key]['price']=$goodSku->goods->vip_price; $sku_info['price']=$goodSku->goods->vip_price; $data[$key]['account']=$goodSku->goods->vip_price * $val[1]; $account += $goodSku->goods->vip_price * $val[1]; }else{ $data[$key]['price']=$goodSku->goods->price; $sku_info['price']=$goodSku->goods->price; $data[$key]['account']=$goodSku->goods->price * $val[1]; $account += $goodSku->goods->price * $val[1]; } $data[$key]['origin_price']=$goodSku->goods->price; $data[$key]['order_no']=$order_no; $data[$key]['goods_id']=$goodSku->goods_id; $data[$key]['store_id']=$store_id; $data[$key]['user_id']=$user->id; $data[$key]['sku_id']=$goodSku->id; $data[$key]['num']=$val[1]; $data[$key]['size']=$goodSku->size; $data[$key]['type']=$goodSku->type; $data[$key]['style']=1; $data[$key]['created_at']=date("Y-m-d H:i:s"); $data[$key]['updated_at']=date("Y-m-d H:i:s"); $sku_info['origin_price']=$goodSku->goods->price; $sku_info['sku_id']=$goodSku->id; $sku_info['num']=$val[1]; $sku_info['size']=$goodSku->size; $sku_info['type']=$goodSku->type; array_push($snapshot[$goodSku->goods_id]['sku'],$sku_info); } $order_data=[ 'order_no'=>$order_no, 'store_id'=>$store_id, 'user_id'=>$user->id, 'remark'=>$remark, 'status'=>0, 'is_help'=>1, 'op_id'=>Auth::user()->id, 'op_name'=>Auth::user()->nickname, 'is_pay'=>0, 'is_tip_send'=>0, 'is_comment'=>0, 'total'=>$num, 'account'=>$account, 'cost_account'=>$cost_account, 'snapshot'=>json_encode($snapshot) ]; $agent_id=Store::where('id',$store_id)->value('user_id'); $agent_data=$this->saveAgentNoLog($user->id,$agent_id,$order_no); DB::connection('mysql_w')->beginTransaction(); try{ $result=OrderW::create($order_data); //生成订单 // Log::info($result); foreach($data as $k=>$v){ $data[$k]['order_id']=$result->id; } OrderDetailW::insert($data); //生成订单商品详情 AgentNo::insert( $agent_data); //代理关系 DB::connection('mysql_w')->commit(); return $this->success($order_no); }catch(\Exception $e){ DB::connection('mysql_w')->rollback(); return $this->error('450001','提交失败',$e->getMessage()); } } //修改订单备注信息 public function editOrderRemark(Request $request){ $order_no=$request->input('order_no'); $remark=$request->input('remark'); $res=OrderW::where('order_no',$order_no)->update([ 'remark'=>$remark ]); if($res){ return $this->success([]); }else{ return $this->error(); } } //分享订单 public function shareOrderInfo(Request $request) { $input=$request->all(); $store_id=Store::where('user_id',Auth::user()->id)->value('id'); $sku=$input['sku']; // $user=UserW::find($input['user_id']); $self_receive=$input['self_receive'];//不自提0 自提1 if($self_receive==1){ $address_id=Store::where('id',$store_id)->value('address_id'); }else{ $address_id=$input['address_id']; } $remark=$input['remark']; $order_no=$this->order_no('fx'); $account=$vip_account=$num=0; $data=[]; foreach($sku as $key=>$val){ $goodSku=StoreGoodsSku::with(['goods'])->where('id',$val[0])->first(); if(empty($goodSku)){ return $this->error('450001','商品规格不存在,请重新分享'); } $account += $goodSku->goods->price * $val[1]; $num += $val[1]; $data[$key]['order_no']=$order_no; $data[$key]['goods_id']=$goodSku->goods_id; $data[$key]['sku_id']=$goodSku->id; $data[$key]['num']=$val[1]; $data[$key]['price']=$goodSku->goods->price; $data[$key]['account']=$goodSku->goods->price * $val[1]; $data[$key]['size']=$goodSku->size; $data[$key]['type']=$goodSku->type; $data[$key]['created_at']=date("Y-m-d H:i:s"); $data[$key]['updated_at']=date("Y-m-d H:i:s"); } $order_data=[ 'order_no'=>$order_no, 'store_id'=>$store_id, 'user_id'=>$input['user_id'], 'address_id'=>$address_id, 'self_receive'=>$self_receive, 'remark'=>$remark, 'op_id'=>Auth::user()->id, 'op_name'=>Auth::user()->nickname, 'total'=>$num, 'account'=>$account, ]; DB::connection('mysql_w')->beginTransaction(); try{ OrderDetailW::insert($data); OrderShareW::create($order_data); DB::connection('mysql_w')->commit(); return $this->success($order_no); }catch(\Exception $e){ DB::connection('mysql_w')->rollback(); return $this->error('450001','提交失败',$e->getMessage()); } } //生成订单号 public function order_no($type='dx') { if($type=='fx'){ $prefix = 'FX'; }else{ $prefix = 'DX'; } $timestamp=date('ymdHis') . substr(microtime(), 2, 6); $rand=mt_rand(10000, 99999); $order_no=$prefix . $timestamp . $rand; if(OrderW::where('order_no',$order_no)->first()){ $this->order_no($type); }else{ return $order_no; } } //审核订单取消 public function authOrderCancel(Request $request){ $id=$request->input('id'); $type=$request->input('type');//2通过//3驳回 $remark=$request->input('remark'); DB::connection('mysql')->beginTransaction(); DB::connection('mysql_w')->beginTransaction(); try{ $cancel=OrderCancelW::where('id',$id)->first(); $cancel->status=$type; $cancel->remark=$remark; $cancel->save(); $order=OrderW::where('id',$cancel->order_id)->first(); $order->apply_cancel= $type; $order->cancel_at=date("Y-m-d H:i:s"); $order->save(); $first='取消订单被驳回'; if($type==2){//同意取消 //退款 $refund=new RefundAmount(); $res=$refund->refundAmount($cancel->order_id); if($res[0]=='450001'){ return $this->error('450001',$res[1]); } if($res[0]=='450000'){ return $this->error('450001','取消订单退款失败',$res[1]); } //判断是否剥夺vip if($order->vip==1){ $orders=OrderW::where('user_id',$order->user_id) ->where('store_id',$order->store_id) ->where('is_pay',1) ->whereIn('apply_cancel',[0,1,3]) ->whereIn('is_refund',[0,1]) ->where('total','>=',2) ->where('created_at','>',$order->created_at) ->orderBy('created_at')->get(); if(count($orders)>=1){ OrderW::where('id',$orders[0]->id)->update([ 'vip'=>1 ]); }else{ VipLogW::where('user_id',$order->user_id)->where('store_id',$order->store_id)->delete(); } } //判断恢复库存 $store=Store::where('id',$order->store_id)->first(); $level=User::where('id',$store->user_id)->value('level'); if($level==3){ event(new RestoreOutboundEvent($order->order_no)); } $first='取消订单审核成功'; } //取消订单通知 $user=UserW::where('id',$order->user_id)->first(); if($user->openId){ $data['openid']=$user->openId; $data['data']=[ 'first' => '您的订单:'.$order->order_no.$first, 'keyword1' => $user->nickname, 'keyword2' => $order->order_no, 'keyword3' => '已取消', 'keyword4' => $order->cancel_at ]; event(new CancelOrderEvent($data)); } DB::connection('mysql')->commit(); DB::connection('mysql_w')->commit(); return $this->success([]); }catch(\Exception $e){ DB::connection('mysql')->rollback(); DB::connection('mysql_w')->rollback(); return $this->error('450001','失败',$e->getMessage()); } } //代理取消订单 public function cancelOrder(Request $request){ $order_id=$request->input('order_id'); $order=OrderW::where('id',$order_id)->first(); // if($order->is_help==0){//用户自己下单 // return $this->error('450001','用户自己下单代理不能取消'); // } if($order->apply_cancel==1){ return $this->error('450001','该订单正在审核中,不能再次取消'); } if($order->apply_cancel==2){ return $this->error('450001','该订单已取消,不能再次取消'); } DB::connection('mysql')->beginTransaction(); DB::connection('mysql_w')->beginTransaction(); try { //退款 if($order->is_pay==1){ $refund=new RefundAmount(); $res=$refund->refundAmount($order->id); if($res[0]=='450001'){ return $this->error('450001',$res[1]); } if($res[0]=='450000'){ return $this->error('450001','退款失败',$res[1]); } } //判断是否剥夺vip if($order->vip==1){ $orders=OrderW::where('user_id',$order->user_id) ->where('store_id',$order->store_id) ->where('is_pay',1) ->whereIn('apply_cancel',[0,1,3]) ->whereIn('is_refund',[0,1]) ->where('total','>=',2) ->where('created_at','>',$order->created_at) ->orderBy('created_at')->get(); if(count($orders)>=1){ OrderW::where('id',$orders[0]->id)->update([ 'vip'=>1 ]); }else{ VipLogW::where('user_id',$order->user_id)->where('store_id',$order->store_id)->delete(); } } //判断恢复库存 $store=Store::where('id',$order->store_id)->first(); $level=User::where('id',$store->user_id)->value('level'); if($level==3){ event(new RestoreOutboundEvent($order->order_no)); } //取消订单 OrderW::where('id', $order_id)->update([ 'apply_cancel'=>2, 'cancel_at'=>date("Y-m-d H:i:s") ]); OrderCancelW::where('user_id',$order->user_id) ->where('store_id',$order->store_id) ->where('order_id',$order->id)->update(['using'=>0]); OrderCancelW::create([ 'user_id' =>$order->user_id, 'store_id'=>$order->store_id, 'order_id'=>$order->id, 'status' =>2, 'using' =>1, 'type' =>2, //代理取消订单 'reason' =>'代理取消订单' ]); //取消订单通知 $user=UserW::where('id',$order->user_id)->first(); if($user->openId){ $data['openid']=$user->openId; $data['data']=[ 'first' => '您的订单:'.$order->order_no.'已被代理成功取消', 'keyword1' => $user->nickname, 'keyword2' => $order->order_no, 'keyword3' => '已取消', 'keyword4' => date("Y-m-d H:i:s") ]; event(new CancelOrderEvent($data)); } DB::connection('mysql')->commit(); DB::connection('mysql_w')->commit(); return $this->success([]); }catch(\Exception $e){ DB::connection('mysql')->rollback(); DB::connection('mysql_w')->rollback(); return $this->error('450001','失败',$e->getMessage()); } } //获取订单状态数量 public function getOrderStatusNum(Request $request){ $store=Store::where('user_id',Auth::user()->id)->first(); $user_id=$request->input('user_id'); if($user_id){ $where['user_id']=$user_id; } $where['store_id']=$store->id; $data=OrderW::where($where)->whereIn('apply_cancel',[0,1,3])->whereIn('is_refund',[0,1,2]); $data1=clone $data; $data2=clone $data; $data3=clone $data; $num['noPay']=$data->where('status',0)->count(); $num['noSend']=$data1->where('status',1)->count(); $num['noReceive']=$data2->where('status',2)->count(); $num['Finish']=$data3->where('status',3)->count(); return $this->success($num); } //获取订单列表 public function getOrderList(Request $request) { $input=$request->all(); $status=$input['status']; $page_index=$input['page_index']; $page_size=$input['page_size']; $order_no=$input['order_no']; $num=$page_size*($page_index-1); $where=$wheres=[]; if($status!='all'){ $where['status']=$status; } if($order_no){ $wheres=function($query)use($order_no){ $query->where('order_no','like','%'.$order_no.'%'); }; } $store=Store::where('user_id',Auth::user()->id)->first(); $where['store_id']=$store->id; $data=OrderW::with(['user:id,nickname,phone','order_cancel'=>function($query){ $query->where('using',1);}])->where($where)->where($wheres)->whereIn('apply_cancel',[0,1,3]) ->whereIn('is_refund',[0,1,2]) ->orderByDesc('updated_at')->orderByDesc('id'); $count=$data->count(); $orders=$data->skip($num)->take($page_size)->get(); foreach($orders as $key=>$val){ if($val->status==3 && $val->is_refund > 0){ $order_refund = OrderRefundW::where('order_no',$val->order_no)->get(); if($order_refund){ $orders[$key]->refund_goods=$order_refund; } } $goods_ids=OrderDetailW::where('order_no',$val->order_no)->groupBy('goods_id')->pluck('goods_id'); $goods=[]; foreach($goods_ids as $k=>$v){ $goods[$k]=StoreGoods::where('id',$v)->select('id','name','img','main_attr')->first(); $goods[$k]->imgs=str_replace('http://','https://',$goods[$k]->img); $goods[$k]->sku=OrderDetailW::where('order_no',$val->order_no) ->where('goods_id',$v)->select('price','num')->get(); } $goods_infos=OrderDetailW::with('goods:id,img,name,main_attr')->where('order_no',$val->order_no) ->groupBy('goods_id')->select(DB::raw('price','sum(num) as num'))->first(); $orders[$key]->goods=$goods; } return $this->success_list($orders,'成功',$count); } //获取订单列表 public function getOrderList1(Request $request) { $input=$request->all(); $status=$input['status']; $page_index=$input['page_index']; $page_size=$input['page_size']; $order_no=$input['order_no']; $num=$page_size*($page_index-1); $where=$wheres=[]; if($status!='all'){ $where['status']=$status; } if($order_no){ $wheres=function($query)use($order_no){ $query->where('order_no','like','%'.$order_no.'%'); }; } $store=Store::where('user_id',Auth::user()->id)->first(); $where['store_id']=$store->id; $data=OrderW::with(['user:id,nickname,phone','order_cancel'=>function($query){ $query->where('using',1);}])->where($where)->where($wheres)->whereIn('apply_cancel',[0,1,3]) ->whereIn('is_refund',[0,1,2]) ->orderByDesc('updated_at')->orderByDesc('id'); $count=$data->count(); $orders=$data->skip($num)->take($page_size)->get(); foreach($orders as $key=>$val){ if($val->status==3 && $val->is_refund > 0){ $order_refund = OrderRefundW::where('order_no',$val->order_no)->get(); if($order_refund){ $orders[$key]->refund_goods=$order_refund; } } $orders[$key]->goods=json_decode($val->snapshot,true); } return $this->success_list($orders,'成功',$count); } //获取订单列表 public function getOrderLists(Request $request) { $input=$request->all(); $status=$input['status']; $page_index=$input['page_index']; $page_size=$input['page_size']; $order_no=$input['order_no']; $num=$page_size*($page_index-1); $where=$wheres=[]; if($status!='all'){ $where['status']=$status; } if($order_no){ $wheres=function($query)use($order_no){ $query->where('order_no','like','%'.$order_no.'%'); }; } $store=Store::where('user_id',Auth::user()->id)->first(); $where['store_id']=$store->id; $data=OrderW::with(['user:id,nickname,phone','order_cancel'=>function($query){ $query->where('using',1);}])->where($where)->where($wheres)->whereIn('apply_cancel',[0,1,3]) ->whereIn('is_refund',[0,1,2]) ->orderByDesc('updated_at')->orderByDesc('id'); $count=$data->count(); $orders=$data->skip($num)->take($page_size)->get(); foreach($orders as $key=>$val){ if($val->status==3 && $val->is_refund > 0){ $order_refund = OrderRefundW::where('order_no',$val->order_no)->get(); if($order_refund){ $orders[$key]->refund_goods=$order_refund; } } $goods=OrderDetailW::with('goods:id,img,name,main_attr')->where('order_id',$val->id) ->groupBy('goods_id')->select('goods_id','price',DB::raw('sum(num) as num'))->get(); foreach($goods as $k=>$v){ $goods[$k]->goods->imgs=str_replace('http://','https://',$v->goods->img); } $orders[$key]->goods=$goods; } return $this->success_list($orders,'成功',$count); } //获取退货订单详情 public function getRefundOrderDetail(Request $request){ $order_no=$request->input('order_no'); $order_refund=OrderRefundW::where('order_no',$order_no)->get(); foreach($order_refund as $key => $val){ $goods_ids = OrderDetailW::where('order_no', $val->refund_no)->groupBy('goods_id')->pluck('goods_id'); $goods = []; foreach ($goods_ids as $k => $v) { $goods[$k] = StoreGoods::where('id', $v)->first(); $goods[$k]->sku = OrderDetailW::where('order_no', $val->refund_no)->where('goods_id', $v)->get(); } $order_refund[$key]->goods=$goods; } return $this->success($order_refund); } //获取id订单信息 public function getOrderInfo(Request $request) { $input=$request->all(); $id=$input['id']; $order=OrderW::withTrashed()->with(['user:id,nickname,phone','address'])->where('id',$id)->first(); $goods_ids=OrderDetailW::where('order_no',$order->order_no)->groupBy('goods_id')->pluck('goods_id'); $goods=[]; foreach($goods_ids as $key=>$val){ $goods[$key]=StoreGoods::where('id',$val)->first(); $goods[$key]->sku=OrderDetailW::where('order_no',$order->order_no)->where('goods_id',$val)->get(); } $order->goods=$goods; return $this->success($order); } //根据订单号查询订单 public function getOrderNoInfo(Request $request) { $input=$request->all(); $order_no=$input['order_no']; $order=OrderW::withTrashed()->with(['order_cancel','user:id,nickname,phone,avatar','address'])->where('order_no',$order_no)->first(); if(empty($order)){ return $this->error('450001','订单号有误'); } $goods_ids=OrderDetailW::where('order_no',$order->order_no)->groupBy('goods_id')->pluck('goods_id'); $goods=[]; foreach($goods_ids as $key=>$val){ $goods[$key]=StoreGoods::where('id',$val)->first(); $goods[$key]->imgs=str_replace('http://','https://',$goods[$key]->img); $goods[$key]->sku=OrderDetailW::where('order_no',$order->order_no)->where('goods_id',$val)->get(); } $order->goods=$goods; return $this->success($order); } //回复评价 public function addComment(Request $request){ $input=$request->all(); $rules=[ 'content'=>'required|max:255', ]; $message=[ 'content.required'=>'评价内容不能为空.', 'content.max'=>'评价内容不能大于255个字符.' ]; $validator = Validator::make($input,$rules,$message); if($validator->fails()){ return $this->error('400013',$validator->errors()->first()); } $store_id=Store::where('user_id',Auth::user()->id)->value('id'); $res=Comment::create([ 'content'=>$input['content'], 'comment_id'=>$input['comment_id'], 'store_id'=>$store_id, 'is_reply'=>2, 'is_see'=>0 ]); if($res){ return $this->success([]); }else{ return $this->error(); } } //查看所有评价 public function getComment(Request $request){ $input=$request->all(); $page_index=$input['page_index']; $page_size=$input['page_size']; $num=$page_size*($page_index-1); $store_id=Store::where('user_id',Auth::user()->id)->value('id'); $count= Comment::where('store_id',$store_id)->where('comment_id',0)->count(); $list= Comment::with(['comment','store:id,name,img','user:id,avatar,nickname,phone']) ->where('store_id',$store_id)->where('comment_id',0) ->orderByDesc('id') ->skip($num)->take($page_size)->get(); return $this->success_list($list,'',$count); } //用户自提 public function oneSelfTake(Request $request){ $order_no=$request->input('order_no'); $order=OrderW::with('address')->where('order_no',$order_no)->first(); $order->status=2; //已备货,可自提 $order->express_time = date("Y-m-d H:i:s"); //备货完成时间 $res=$order->save(); if($res){ /* 已备货通知 */ $user=UserW::where('id',$order->user_id)->first(); if($user->openId){ $address=null; if($order->address){ $address=$order->address->province.$order->address->city.$order->address->area.$order->address->address; } $mes['openid']=$user->openId; $mes['data']=[ 'first' => '您的订单已完成备货,请前往提货', 'keyword1' => $order_no, 'keyword2' => $order->created_at, 'keyword3' => '已备货,可自提', 'keyword4' => $address, 'remark' => '点击链接进入系统,查看详情', ]; event(new TipPickUpEvent($mes)); } return $this->success([]); }else{ return $this->error(); } } //获取所有快递公司信息 public function getExpressCode(){ return $this->success(ExpressHandler::getExpressCode()); } //上传订单快递号 public function addOrderExpressNo(Request $request){ $input=$request->all(); $rules=[ 'express_no' =>'required', 'express_company'=>'required', 'express_time' =>'required' // 'address_id' =>'required' ]; $message=[ 'express_no.required' =>'发货单号不能为空.', 'express_company.required'=>'物流公司不能为空.', 'express_time.required' =>'发货时间不能为空.', // 'address_id.required' =>'收货地址不能为空.', ]; $validator = Validator::make($input,$rules,$message); if($validator->fails()){ return $this->error('400013',$validator->errors()->first()); } $status=OrderW::where('order_no',$input['order_no'])->value('status'); if($status > 1){ return $this->error('450001','该订单已发货'); } $res=OrderW::where('order_no',$input['order_no'])->update([ 'address_id'=>$input['address_id'], 'self_receive'=>0, 'express_no'=>str_replace(' ','', $input['express_no']), 'express_company'=>$input['express_company'], 'express_code'=>$input['express_code'], 'express_state'=>0, 'express_phone'=>$input['express_phone'], 'express_time'=>$input['express_time'], 'status'=>2, ]); // OrderExpressW::create([ // 'order_no'=>$input['order_no'], // 'express_no'=>str_replace(' ','', $input['express_no']), // 'express_company'=>$input['express_company'], // 'express_code'=>$input['express_code'], // 'express_state'=>0, // 'express_phone'=>$input['express_phone'], // 'express_receive_time'=>null, // ]); if($res){ Log::info($input['order_no']); $order=OrderW::with('address')->where('order_no',$input['order_no'])->first(); $user=UserW::where('id',$order->user_id)->first(); //已发货短信通知 $phone=$user->phone; $config=config('easysms'); $easySms = new EasySms($config); $express=$order->express_company.$order->express_no; Log::info($express); $content="您购买的健康内裤已发货,快递单号是{$express},请注意查收。"; try{ $easySms->send($phone, ['content' =>$content ]); } catch (\Overtrue\EasySms\Exceptions\NoGatewayAvailableException $exception) { $message = $exception->getException('qcloud')->getMessage(); Log::info('物流发货短信异常:'.json_encode($message)); } //已发货公众号通知 if($user->openId){ Log::info($user->openId); if($order->address){ $address=$order->address->name.' '.$order->address->phone.' '.$order->address->province.$order->address->city.$order->address->area.$order->address->address; }else{ $address='无收件信息'; } $mes['openid']=$user->openId; $mes['data']=[ 'first' => '您的订单已发货,请注意查收', 'keyword1' => $order->order_no, 'keyword2' => $order->express_time, 'keyword3' => $order->express_company, 'keyword4' => $order->express_no, 'keyword5' => $address, ]; Log::info(json_encode($mes)); event(new TipSendingEvent($mes)); } return $this->success([]); }else{ return $this->error(); } } //查询订单物流信息 public function getOrderExpress(Request $request){ $order_no=$request->input('order_no'); $order=OrderW::with('address')->where('order_no',$order_no)->first(); if(empty($order)){ return $this->error('450001','订单信息有误'); } if($order->express_state==3){ //已签收 $express=json_decode($order->express_info,true); }else{ //未签收 $CustomerName = null; if($order->express_code =='SF'){ $CustomerName = substr($order->express_phone,-4); } $express=new ExpressHandler(); $express=$express->search($order->express_no, $order->express_code, $order->order_no, $CustomerName); $express=json_decode(json_encode($express),'true'); if(isset($express['Traces']) && !empty($express['Traces'])){ foreach ($express['Traces'] as $key=>$val){ $express['Traces'][$key]['AcceptTime']=date("Y-m-d H:i:s",substr($val['AcceptTime'],0,strlen($val['AcceptTime'])-3)); } OrderW::where('order_no',$order_no)->update([ 'express_info'=>json_encode($express), 'express_receive_time'=>array_pop($express['Traces'])['AcceptTime'], 'express_state'=>$express['State'] ]); } } $data['express']=$express; $data['express_state']=$order->express_state; $data['express_code']=$order->express_code; $data['express_company']=$order->express_company; $data['express_no']=$order->express_no; $data['express_time']=$order->express_time; $data['express_phone']=$order->express_phone; return $this->success($data); } //修改店铺地址 public function editStoreAddress(Request $request){ $user_id=Auth::user()->id; // $user=User::where('id',$user_id)->first(); // $store_id=Store::where('user_id',$user_id)->value('id'); $res=Store::where('user_id',$user_id) ->update([ 'province'=>$request->input('province'), 'city'=>$request->input('city'), 'area'=>$request->input('area'), 'address'=>$request->input('address'), ]); // $address=AddressW::where('store_id',$store_id)->first(); // if($address){ // $address->province=$request->input('province'); // $address->city=$request->input('city'); // $address->area=$request->input('area'); // $address->address=$request->input('address'); // $res=$address->save(); // }else{ // $res=AddressW::create([ // 'store_id'=>$store_id, // 'name'=>$user->nickname, // 'phone'=>$user->mobile, // 'province'=>$request->input('province'), // 'city'=>$request->input('city'), // 'area'=>$request->input('area'), // 'address'=>$request->input('address'), // 'is_default'=>0 // ]); // } if($res){ return $this->success([]); }else{ return $this->error(); } } //获取微信位置授权 public function getSignPackage(){ $app=app('wechat.official_account'); $url='http://api.app.jiuweiyun.cn/api/gzh'; $app->jssdk->setUrl($url); $data=$app->jssdk->buildConfig(array('openLocation','getLocation','chooseImage', 'uploadImage', 'downloadImage','updateAppMessageShareData', 'updateTimelineShareData','scanQRCode'), true); return $this->success($data); } //根据经纬度获取地理位置信息 public function getAddressInfo(Request $request){ $location=$request->input('location'); $key='d2785d78de492f2cc7047a09690bdb4d'; $client=new Client(); $url='https://restapi.amap.com/v3/geocode/regeo?key='.$key.'&location='.$location; $result=$client->request('GET',$url); $res = json_decode($result->getBody()->getContents()); return $this->success($res); } //提交退货订单 public function submitRefundOrder(Request $request) { $sku = $request->input('sku'); $reason = $request->input('reason'); $reason_all = $request->input('reason_all'); $img = $request->input('img'); $origin_order_no=$request->input('origin_order_no'); $origin_order=OrderW::where('order_no',$origin_order_no)->first(); if($origin_order->is_refund==1){ return $this->error('450001','该订单存在正在审核中的退货订单'); } if($origin_order->is_refund==3){ return $this->error('450001','该订单已全部退货'); } $refund_no=OrderW::order_no('th'); $account = $total = 0; $list = $sku_ids = []; foreach($sku as $key=>$val){ if($val[1] > 0){ $order_detail=OrderDetailW::with(['goods'])->where('id',$val[0])->first(); if($order_detail->num < $val[1]){ $num = $order_detail->num; }else{ $num = $val[1]; } $list[$key]['num']=$num; $list[$key]['price']=$order_detail->price; $list[$key]['account']=$order_detail->price * $num; $list[$key]['order_no']=$refund_no; $list[$key]['goods_id']=$order_detail->goods_id; $list[$key]['sku_id']=$order_detail->sku_id; $list[$key]['size']=$order_detail->size; $list[$key]['type']=$order_detail->type; $list[$key]['style']=2; $list[$key]['created_at']=date("Y-m-d H:i:s"); $list[$key]['updated_at']=date("Y-m-d H:i:s"); $total += $num; $account += $order_detail->price * $num; } } $data=[ 'refund_no'=>$refund_no, 'order_no'=>$origin_order_no, 'store_id'=>$origin_order->store_id, 'user_id'=>$origin_order->user_id, 'reason'=>$reason, 'reason_all'=>$reason_all, 'total'=>$total, 'account'=>$account, 'img'=>json_encode($img), 'status'=>0, 'op_name'=> Auth::user()->nickname, 'op_type'=>2, 'remark'=>null, ]; try{ DB::connection('mysql_w')->transaction(function ()use($list,$data,$origin_order_no,$account){ OrderDetailW::insert($list); OrderRefundW::create($data); OrderW::where('order_no',$origin_order_no)->update(['is_refund'=>1]); },5); //申请退货提醒 $user=UserW::where('id',$origin_order->user_id)->first(); if($user->openId){ $data['openid']=$user->openId; $data['data']=[ 'first' => '代理提交了新的退单信息', 'keyword1' => $origin_order->order_no, 'keyword2' => '代理退货,退款金额:'.number_format($account,2) ]; event(new AuthRefundTip($data)); } return $this->success($refund_no); }catch(\Exception $e){ return $this->error('450001',$e->getMessage()); } } //获取退款订单原始信息 public function getOriginOrderInfo(Request $request) { $order_no=$request->input('order_no'); $data=OrderW::with(['address','order_cancel'=>function($query){$query->where('using',1);},'store:id,name,img,phone']); $order=$data->where('order_no',$order_no)->first()->toArray(); if(empty($order)){ return $this->error('450001','订单不存在'); } $goods_ids=OrderDetailW::where('order_no',$order['order_no'])->groupBy('goods_id')->pluck('goods_id'); $goods=[]; foreach($goods_ids as $key=>$val){ $goods[$val]=StoreGoods::select('id','name','img','main_attr')->where('id',$val)->first()->toArray(); $order_details=OrderDetailW::where('order_no',$order['order_no'])->where('goods_id',$val)->get()->toArray(); if(count($order_details)>0){ $sku=[]; foreach($order_details as $k=>$v){ $sku[$v['sku_id']]=$v; } $goods[$val]['sku']=$sku; $goods[$val]['price']=$order_details[0]['price']; } } $order['goods']=$goods; $refund_nos=OrderRefundW::where('order_no',$order_no)->whereIn('status',[0,1,3])->pluck('refund_no'); $refund_goods_ids=OrderDetailW::whereIn('order_no',$refund_nos)->groupBy('goods_id')->pluck('goods_id'); $refunds=[]; foreach($refund_goods_ids as $key=>$val){ $refunds[$val]=StoreGoods::select('id','name','img','main_attr')->where('id',$val)->first()->toArray(); $refunds_details=OrderDetailW::select('goods_id','sku_id','type','size', DB::raw('sum(num) as num')) ->whereIn('order_no',$refund_nos)->where('goods_id',$val)->groupBy('sku_id')->get()->toArray(); if(count($refunds_details)>0){ $sku=[]; foreach($refunds_details as $k=>$v){ $sku[$v['sku_id']]=$v; } $refunds[$val]['sku']=$sku; } } $order['refunds']=$refunds; $products=[]; foreach($goods as $key=>$val){ $products[$key]= $goods[$key]; $sku=[]; foreach($val['sku'] as $k=>$v){ if(empty($refunds[$key]['sku'][$k])){ unset($products[$key]['sku']); $sku[$k]= $goods[$key]['sku'][$k]; }else{ if($goods[$key]['sku'][$k]['num'] > $refunds[$key]['sku'][$k]['num']){ unset($products[$key]['sku']); $sku[$k] = $goods[$key]['sku'][$k]; $sku[$k]['num']=$goods[$key]['sku'][$k]['num'] - $refunds[$key]['sku'][$k]['num']; }else{ unset($products[$key]['sku']); } } } $products[$key]['sku']= $sku; if(empty($products[$key]['sku'])){ unset($products[$key]); } } $order['products']=$products; return $this->success($order); } //上传退货图片 public function uploadRefundOrderImg(Request $request){ $path_url = 'public/refund'; $path = $request->file('img')->store($path_url); if($path){ $url = env('APP_URL'). Storage::url($path); return $this->success($url); } return $this->error(); } //取消退货审核 public function cancelRefundOrder(Request $request){ $refund_id=$request->input('refund_id'); $refund=OrderRefundW::where('id',$refund_id)->first(); if(empty($refund)){ return $this->error('450001','退货单不存在'); } try{ DB::connection('mysql_w')->transaction(function()use($refund){ OrderRefundW::where('id',$refund->id)->delete(); $auth_count=OrderRefundW::where('order_no',$refund->order_no)->where('status',0)->count(); if($auth_count>=1){ OrderW::where('order_no',$refund->order_no)->update([ 'is_refund'=>1 ]); }else{ $count=OrderRefundW::where('order_no',$refund->order_no)->where('status',1)->count(); if($count>=1){ OrderW::where('order_no',$refund->order_no)->update([ 'is_refund'=>2 ]); }else{ OrderW::where('order_no',$refund->order_no)->update([ 'is_refund'=>0 ]); } } },5); return $this->success([]); }catch(\Exception $e){ return $this->error('450001',$e->getMessage()); } } //上传签名图片 public function uploadQianMingImg(Request $request){ $base64_img=$request->input('img'); // Log::info('aaa---aaa---aaa'.$base64_img); preg_match('/^(data:\s*image\/(\w+);base64,)/',$base64_img,$res); // Log::info('aaa-----aaa-----aaa-----aaa'.json_encode($res)); $base64_img=base64_decode(str_replace($res[1],'', $base64_img)); $img_name=$this->randomKeys(18).'.jpg'; $path_url = 'qianming/'.date("Ymd").'/'.$img_name; $ans=Storage::disk('public')->put($path_url, $base64_img); if($ans){ return $this->success(env('APP_URL').Storage::url($path_url)); } return $this->error(); } function randomKeys($length){ $pattern = '1234567890abcdefghijklmnopqrstuvwxyz'; $key=''; for($i=0;$i<$length;$i++) { $key .= $pattern{mt_rand(0,strlen($pattern)-1)};//生成php随机数 } return $key; } //代理确认收货 public function agentSureReceiveOrder(Request $request){ $order_no=$request->input('order_no'); $order=OrderW::where('order_no',$order_no)->first(); if($order->status==3){ return $this->error('450001','订单已完成'); } try{ DB::connection('mysql_w')->transaction(function()use($order_no,$order,$request){ $order->status=3; $order->order_status=2; $order->self_receive=0;//代理收货 $order->express_receive_time=date("Y-m-d H:i:s");//订单签收时间 $order->save(); },5); event(new FinishAccount($order_no)); $user=UserW::where('id',$order->user_id)->first(); //已签收短信通知 $phone=$user->phone; $config=config('easysms'); $easySms = new EasySms($config); $content="您购买的健康内裤被代理标记为确认签收。若已收到货物,请忽略此短信;若没有收到,请及时联系代理商查询。 "; try{ $easySms->send($phone, ['content' =>$content ]); } catch (\Overtrue\EasySms\Exceptions\NoGatewayAvailableException $exception) { $message = $exception->getException('qcloud')->getMessage(); Log::info('代理确认收货短信异常:'.json_encode($message)); } return $this->success([]); }catch(\Exception $e){ Log::info('签收失败2---'.json_encode($e->getMessage())); return $this->error('450001',$e->getMessage()); } } //代理端确认收货 public function sureReceiveOrder(Request $request){ $order_no=$request->input('order_no'); $signature=$request->input('signature'); $order=OrderW::where('order_no',$order_no)->first(); if($order->status==3){ return $this->error('450001','订单已完成'); } Log::info(json_encode($request->input())); try{ DB::connection('mysql_w')->transaction(function()use($order_no,$order,$signature,$request){ $order->status=3; $order->order_status=0; $order->self_receive=1;//送货上门 $order->express_receive_time=date("Y-m-d H:i:s");//订单签收时间 $order->signature=$signature; if(empty($order->address_id)){ $province=$request->input('province'); if(is_array($province) && !empty($province)){ $province=implode('',$province); } if(is_array($province) && empty($province)){ $province=''; } $city=$request->input('city'); if(is_array($city) && !empty($city)){ $city=implode('',$city); } if(is_array($city) && empty($city)){ $city=''; } $area=$request->input('area'); if(is_array($area) && !empty($area)){ $area=implode('',$area); } if(is_array($area) && empty($area)){ $area=''; } Log::info('dddd-------dddd'.$province.'---'.$city.'---'.$area); $address=AddressW::where('user_id',$order->user_id) ->where('province',$province)->where('city',$city) ->where('area',$area)->first(); if($address){ $order->address_id=$address->id; }else{ $user=UserW::where('id',$order->user_id)->first(); $row=AddressW::create([ 'name'=>$user->nickname, 'phone'=>$user->phone, 'user_id'=>$order->user_id, 'store_id'=>$order->store_id, 'province'=>$province, 'city'=>$city, 'area'=>$area, 'type'=>3, 'is_default'=>0, 'remark'=>'自动定位', ]); $order->address_id=$row->id; } } $order->save(); },5); event(new FinishAccount($order_no)); $user=UserW::where('id',$order->user_id)->first(); //已签收短信通知 $phone=$user->phone; $config=config('easysms'); $easySms = new EasySms($config); $content="您购买的健康内裤已由你本人确认签收,谢谢。"; try{ $easySms->send($phone, ['content' =>$content ]); } catch (\Overtrue\EasySms\Exceptions\NoGatewayAvailableException $exception) { $message = $exception->getException('qcloud')->getMessage(); Log::info('签收短信异常:'.json_encode($message)); } //签收提醒 if($user->openId){ $data['openid']=$user->openId; $data['data']=[ 'first' => '您的订单已被当面签收,如果没有请联系代理', 'keyword1' => $order->order_no, 'keyword2' => date('Y-m-d H:i:s') ]; event(new ReceivingEvent($data)); } return $this->success([]); }catch(\Exception $e){ Log::info('签收失败1---'.$e->getMessage()); return $this->error('450001',$e->getMessage()); } } //获取客户信息 public function getUser(Request $request){ $user_id=$request->input('user_id'); $user=UserW::where('id',$user_id)->first(); $store_id=Store::where('user_id',Auth::user()->id)->value('id'); $vip_log=VipLogW::where('user_id',$user->id)->where('store_id',$store_id)->first(); if($vip_log){ $user->is_vip=1; }else{ $user->is_vip=0; } $orders=OrderW::where('store_id',$store_id)->where('user_id',$user_id)->get(); if(count($orders)==0){//判断客户在店铺有没有单子 $user->has_order=0; }else{ $user->has_order=1; } if($user){ return $this->success($user); }else{ return $this->error(); } } //修改客户信息 public function editUser(Request $request){ $rules=[ 'name'=>'required|max:32', 'nickname'=>'required|max:32', 'remark'=>'max:255', 'phone'=>'required|regex:/^1[3456789][0-9]{9}$/' ]; $message=[ 'phone.required'=>'手机号不能为空.', 'phone.regex'=>'手机号格式有误.', 'name.required'=>'客户姓名不能为空.', 'name.max'=>'客户姓名最多32个字符.', 'nickname.required'=>'客户昵称不能为空.', 'nickname.max'=>'客户昵称最多32个字符.', 'remark.max'=>'备注最多255个字符.', ]; $validator = Validator::make($request->input(),$rules,$message); if($validator->fails()){ return $this->error('400013',$validator->errors()->first()); } $user_id=$request->input('user_id'); $res=UserW::where('id',$user_id)->update([ 'name'=>$request->input('name'), 'phone'=>$request->input('phone'), 'nickname'=>$request->input('nickname'), 'sex'=>$request->input('sex'), 'remark'=>$request->input('remark'), ]); if($res){ return $this->success([]); }else{ return $this->error(); } } //获取所有快递公司信息 public function getExpressCompany(Request $request){ $express=new ExpressHandler(); $expressCode=$request->input('expressCode'); $res=$express->getExpressCompany($expressCode); return $this->success($res); } }