<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; use App\Http\Requests; use App\Http\Controllers\Controller; use DB; use Cookie; use App\Http\Page; use App\Http\Controllers\PermController; function CheckActive($menus, &$arr, $url) { for ($i = 0; $i < count($menus); $i++) { $menu = $menus[$i]; array_push($arr, $i); if (isset($menu->href) && ($menu->href == $url || ($menu->href == '/' && $url == '//'))) return true; if (isset($menu->childs) && count($menu->childs) > 0) { $ret = CheckActive($menu->childs, $arr, $url); if ($ret) return $ret; } array_pop($arr); } return false; } function createMenuReal($menus, $active, $level) { $subclass = ($level == 0) ? 'nav-second-level' : 'nav-third-level'; $ret = ''; for ($ii = 0; $ii < ($level == 0 ? 1 : 2); $ii++) { for ($i = 0; $i < count($menus); $i++) { $menu = $menus[$i]; $act = (count($active) > $level && $active[$level] == $i) ? true : false; $actclass = $act ? ' class="active"' : ''; $actmenu = $act ? ' in': ''; if (isset($menu->childs) && count($menu->childs) > 0) { if ($ii != 0 && $level > 0) continue; $ret .= '<li class="active"><a><i class="' . $menu->class . '"></i><span class="nav-label">' . $menu->title . '</span><span class="fa arrow"></span></a>' . '<ul class="nav ' . $subclass . ' collapse' . $actmenu . '">' . createMenuReal($menu->childs, $act ? $active : [], $level + 1) . '</ul></li>'; } else { if ($ii != 1 && $level > 0) continue; $ret .= '<li' . $actclass . '><a href="'. $menu->href . '"><i class="' . $menu->class . '"></i><span class="nav-label">' . $menu->title . '</span></a></li>'; } } } return $ret; } function createMenu($menus, $url) { $actives = []; $ret = CheckActive($menus, $actives, $url); if (!$ret) $actives = []; return createMenuReal($menus, $actives, 0); } // 获取订单优惠券金额 function getCoupon($order_id) { $price = DB::connection('order') ->table('lie_order_price') ->where(['order_id' => $order_id, 'price_type' => -4]) ->first(); if ($price) { return $price->price; } return null; } function getPayName($order_id) { $payLog = DB::connection('order') ->table('lie_pay_log') ->where(['order_id' => $order_id]) ->select('pay_name') ->get(); if (!empty($payLog)) { foreach ($payLog as $v) { $payName[] = $v->pay_name; } return implode(',', $payName); } return false; } function getShipping($order_id) { $shipping = DB::connection('order') ->table('lie_order_shipping') ->where(['order_id' => $order_id, 'shipping_type' => 1]) ->select('status') ->first(); if (!empty($shipping)) { return $shipping->status; } return false; } function getInvoiceStatus($order_id) { $invoice = DB::connection('order') ->table('lie_order_invoice') ->where(['order_id' => $order_id]) ->select('invoice_status') ->first(); if (!empty($invoice)) { return $invoice->invoice_status; } return false; } function getCompanyName($user_id) { $company = DB::connection('order') ->table('lie_user_company') ->where(['user_id' => $user_id]) ->select('com_name') ->first(); if (!empty($company)) { return $company->com_name; } return false; } Class OrderController extends Controller { // 首页 public function index(Request $request) { $uri = '/' . $request->path(); $username = $request->user->email; $useremail= $request->user->email; // 菜单 $menuconfig = DB::table('config')->where('config_title', '订单系统')->first(); $menus = []; if ($menuconfig && !($menus = json_decode($menuconfig->config_data))) $menus = []; $perm = new PermController; // 获取权限菜单 if ($request->user->email != 'admin@ichunt.com' && $request->user->userId != 1000) $menus = $perm->getPermMenu($request, $menus); $data = [ 'header' => $request->user->header, 'uri' => $uri, 'username' => $username, 'useremail' => $useremail, 'menus' => $menus, ]; return view('index', $data); } // 页面用户、菜单信息 public function getPageInfo(Request $request) { $uri = '/' . $request->path(); $username = $request->user->email; $useremail= $request->user->email; // 菜单 $menuconfig = DB::table('config')->where('config_title', '订单系统')->first(); $menus = []; if ($menuconfig && !($menus = json_decode($menuconfig->config_data))) $menus = []; $perm = new PermController; // 获取权限菜单 if ($request->user->email != 'admin@ichunt.com' && $request->user->userId != 1000) $menus = $perm->getPermMenu($request, $menus); // 用户权限 $userPerms = $perm->handlePerms($request, $request->user->userId); // 用户角色 $role = $perm->getUserRole($request); $data = [ 'header' => $request->user->header, 'uri' => $uri, 'username' => $username, 'useremail' => $useremail, 'menus' => $menus, 'userPerms' => $userPerms, 'role' => $role, ]; return $data; } // 订单列表 public function orderList(Request $request) { $info = $this->getPageInfo($request); $map = array(); // 页面参数 if ($request->isMethod('get')) { $map['order_type'] = $request->input('order_type', ''); $map['order_contain'] = $request->input('order_contain', ''); $map['time_start'] = $request->input('time_start', ''); $map['time_end'] = $request->input('time_end', ''); $map['order_status'] = $request->input('order_status', ''); $map['shipping_name'] = $request->input('shipping_name', ''); $map['order_send'] = $request->input('order_send', ''); $map['test_order'] = $request->input('test_order', ''); $map['order_pay_type'] = $request->input('order_pay_type', ''); $map['order_type_a'] = $request->input('order_type_a', ''); // $map['order_pay_status'] = $request->input('order_pay_status', ''); $map['order_source_pf'] = $request->input('order_source_pf', ''); $map['order_source_adtag'] = $request->input('order_source_adtag', ''); } // 若没有'查看线下订单'权限,则仅查看线上订单 if (!in_array('check_offline_order', $info['userPerms'])) { $map['online_order'] = 1; } /* 临时添加 所有人只能查看线上订单 */ $map['online_order'] = 1; // 订单查看权限---交易员 if ($info['role'] == 3) { // 筛选自己的订单 $data['sale_id'] = $request->user->userId; } // 竞调账号 if ($info['username'] != 'vpadmin@ichunt.com') { $map['is_fake'] = 0; } // 获取所有的业务员 (包括经理和交易员) // $sale_list = $this->getSales('销售'); $perm = new PermController; $manager = $perm->getRoleUsers($request, '经理'); $sale_list = $perm->getRoleUsers($request, '交易员'); $sale_list = array_merge($manager, $sale_list); //获取订单列表 $url = Config('website.api_domain').'order/getAllOrder'; $data['k1'] = time(); $data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi'); $data['p'] = $request->input('p', 1); // 当前页码 $data['map'] = $map; $response = json_decode(curlApi($url, $data), true); // 分页 $page = new Page($response['data']['count'], 10); $page->setConfig('theme', '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%'); $show = $page->show(); $info['condition'] = $map; $info['sale_list'] = $sale_list; $info['list'] = $response['data']['data']; $info['pay_count'] = $response['data']['pay_count']; $info['count'] = $response['data']['count']; $info['page'] = $show; return view('orderlist', $info); } // erp订单 public function erpOrder(Request $request) { $info = $this->getPageInfo($request); $map = array(); // 页面参数 if ($request->isMethod('get')) { $map['order_type'] = $request->input('order_type', ''); $map['order_contain'] = $request->input('order_contain', ''); $map['time_start'] = $request->input('time_start', ''); $map['time_end'] = $request->input('time_end', ''); $map['order_status'] = $request->input('order_status', ''); $map['order_send'] = $request->input('order_send', ''); $map['order_source'] = $request->input('order_source', ''); } /* 查看ERP订单 */ $map['offline_order'] = [2, 3]; // 2-ERP, 3-JD // 非竞调账号,则查看真实数据 if ($info['username'] != 'vpadmin@ichunt.com') { $map['is_fake'] = 0; } // 获取所有的业务员 (包括经理和交易员) $perm = new PermController; $manager = $perm->getRoleUsers($request, '经理'); $sale_list = $perm->getRoleUsers($request, '交易员'); $sale_list = array_merge($manager, $sale_list); //获取订单列表 $url = Config('website.api_domain').'order/getAllOrder'; $data['k1'] = time(); $data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi'); $data['p'] = $request->input('p', 1); // 当前页码 $data['map'] = $map; $response = json_decode(curlApi($url, $data), true); // 分页 $page = new Page($response['data']['count'], 10); $page->setConfig('theme', '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%'); $show = $page->show(); $info['condition'] = $map; $info['sale_list'] = $sale_list; $info['list'] = $response['data']['data']; $info['pay_count'] = $response['data']['pay_count']; $info['count'] = $response['data']['count']; $info['page'] = $show; return view('erpOrder', $info); } // 获取对应部门人员 public function getSales($title='') { // 查找部门 $department = DB::select("SELECT * FROM department WHERE parent = (SELECT departmentId FROM department WHERE title = '$title')"); $departmentId = array(); // 获取部门ID集合 foreach ($department as $k => $v) { $departmentId[$k] = $v->departmentId; } // 获取部门人员 $employee = DB::table('user_info as u')->leftJoin('organization as o', 'u.userId', '=', 'o.userId')->whereIn('departmentId', $departmentId)->get(); return $employee; } // 订单导出 public function export(Request $request) { $info = $this->getPageInfo($request); $map = array(); // 页面参数 if ($request->isMethod('get')) { $map['order_type'] = $request->input('order_type', ''); $map['order_contain'] = $request->input('order_contain', ''); $map['time_start'] = $request->input('time_start', ''); $map['time_end'] = $request->input('time_end', ''); $map['order_status'] = $request->input('order_status', ''); $map['shipping_name'] = $request->input('shipping_name', ''); $map['order_send'] = $request->input('order_send', ''); $map['test_order'] = $request->input('test_order', ''); $map['order_pay_type'] = $request->input('order_pay_type', ''); $map['order_type_a'] = $request->input('order_type_a', ''); // $map['order_pay_status'] = $request->input('order_pay_status', ''); $map['order_source_pf'] = $request->input('order_source_pf', ''); $map['order_source_adtag'] = $request->input('order_source_adtag', ''); } // 订单查看权限 // switch ($info['role']) { // case 2: // // 经理:若没有'查看线下订单'权限,则仅查看线上订单 // if (!in_array('check_offline_order', $info['userPerms'])) { // $map['online_order'] = 1; // } // break; // case 3: // // 交易员: 若没有'查看线下订单'权限,则仅查看线上订单 // if (!in_array('check_offline_order', $info['userPerms'])) { // $map['online_order'] = 1; // } // // 筛选自己的订单 // $data['sale_id'] = $request->user->userId; // break; // } // 若没有'查看线下订单'权限,则仅查看线上订单 if (!in_array('check_offline_order', $info['userPerms'])) { $map['online_order'] = 1; } /* 临时添加 所有人只能查看线上订单 */ $map['online_order'] = 1; // 订单查看权限---交易员 if ($info['role'] == 3) { // 筛选自己的订单 $data['sale_id'] = $request->user->userId; } // 格式 $xlsCell = array( array('order_id', '订单ID'), array('order_sn', '订单编号'), array('user_account', '会员账号'), array('consignee', '收货人'), array('create_time', '下单时间'), array('com_name', '公司名称'), array('goods_name', '商品型号'), array('goods_number', '数量'), array('goods_price', '单价'), array('order_amount', '应付金额'), array('currency', '币种'), array('order_type', '订单类型'), array('order_status', '订单状态'), array('shipping_status','发货状态'), array('invoice_status', '发票状态'), array('company_name', '供应商'), array('sale_name', '推送业务员'), ); // 非竞调账号,则查看真实数据 if ($info['username'] != 'vpadmin@ichunt.com') { $map['is_fake'] = 0; } //获取订单列表 $url = Config('website.api_domain').'order/getAllOrder'; $data['k1'] = time(); $data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi'); $data['map'] = $map; $data['export'] = 1; // 导出数据 $response = json_decode(curlApi($url, $data), true); if(is_array($response['data'])){ $xlsName = '订单数据导出'; $xlslist = exportExcel($xlsName, $xlsCell, $response['data']); $this->$xlslist; } else { return redirect('/prompt')->with(['message'=>"数据为空无法导出!",'url' =>$_SERVER['HTTP_REFERER'], 'jumpTime'=>3,'status'=>false]); } } // 详情页 public function details(Request $request, $id) { $data = $this->orderDetail($request, $id); return view('detail', $data); } // 调价 public function changeOrder(Request $request, $id) { $info = $this->orderDetail($request, $id); //待审核才可以 if(!in_array($info['order_info']['status'], [-1, 1, 2])){ return redirect('/prompt')->with(['message'=>"该订单不符合人工审单条件~【status:{$info['order_info']['status']}】",'url' =>$_SERVER['HTTP_REFERER'], 'jumpTime'=>3,'status'=>false]); } // 获取所有的业务员 $sale_list = $this->getSales('销售'); $perm = new PermController; $manager = $perm->getRoleUsers($request, '经理'); $sale_list = $perm->getRoleUsers($request, '交易员'); $info['sale_list'] = $sale_list; $info['manager'] = $manager; return view('detail', $info); } //删除单个商品操作 public function ajaxdeletegoods(Request $request) { $collert = $request->input(); if(!$request->isMethod('post') OR !$collert['rec_id']){ return array('errcode'=>1,'errmsg'=>'错误操作'); } if(!$collert['reason']){ return array('errcode'=>101,'errmsg'=>'请填写删除原因'); } $url = Config('website.api_domain').'order/deleteGoods'; $check['k1'] = time(); $check['k2'] = md5(md5($check['k1']).'fh6y5t4rr351d2c3bryi'); $resData = array( "reason"=>$collert['reason'], "rec_id"=>$collert['rec_id'], "pf"=>1, "k1"=>$check['k1'], "k2"=>$check['k2'] ); $temp = json_decode(curlApi($url, $resData, "POST"), true); return array('errcode'=>$temp['err_code'],'errmsg'=>$temp['err_msg']); } // 保存调价信息 public function ajaxSaveChange(Request $request) { if($request->isMethod('post')){ $order_id = $request->input('order_id', ''); if (!$order_id) { return array('errcode'=>1, 'errmsg'=>'订单参数有误!'); } // $order_info = DB::connection('order')->table('lie_order')->where('order_id', $order_id)->first(); // $info = $this->getPageInfo($request); // if ($order_info->status == 1 && $order_info->adjust_count <= 2 && !in_array($info['role'], array(1, 2))) { // return array('errcode'=>-10010,'errmsg'=>'没有权限进行二次调价'); // } $url = Config('website.api_domain').'order/changeOrder'; $check['k1'] = time(); $check['k2'] = md5(md5($check['k1']).'fh6y5t4rr351d2c3bryi'); $resData = [ "cancel_reason" => $request->input('cancel_reason', ''), "sale_id" => $request->input('sale_id', ''), "order_pay_type" => $request->input('order_pay_type', ''), "status" => $request->input('order_status', ''), "deposit_amount" => $request->input('deposit_amount', ''), "goods_amount" => $request->input('goods_amount', ''), "order_amount" => $request->input('order_amount', ''), "extra_fee" => $request->input('extra_fee', ''), "change_info" => $request->input('change_info', ''), "payTime" => $request->input('payTime', ''), "payTimeOther" => $request->input('payTimeOther', ''), "order_id" => $order_id, "pf" => 1, "k1" => $check['k1'], "k2" => $check['k2'] ]; $temp = json_decode(curlApi($url, $resData, "POST"), true); return array('errcode'=>$temp['err_code'],'errmsg'=>$temp['err_msg']); } } // 申请再次调价 public function applyAdjust(Request $request, $id) { $info = $this->orderDetail($request, $id); if($info['order_info']['status'] == 3 || $info['order_info']['status'] == 4){ return redirect('/prompt')->with(['message'=>"客户已经支付了,无法进行调价了.",'url' =>'/check/'.$id, 'jumpTime'=>3,'status'=>false]); } if($info['order_info']['status'] != -1){ //总共允许2次调价(以点击审核按钮次数来统计) if ($info['order_info']['status'] != 2 || $info['order_info']['adjust_count'] >= 2) { return redirect('/prompt')->with(['message'=>"该订单无法再进行该操作",'url' =>'/check/'.$id, 'jumpTime'=>3,'status'=>false]); } elseif ($info['order_info']['status'] == 2 && $info['order_info']['adjust_count'] <= 2 && !in_array($info['role'], array(1, 2))) { return redirect('/prompt')->with(['message'=>"没有权限进行二次调价",'url' =>'/check/'.$id, 'jumpTime'=>3,'status'=>false]); } } if ($request->isMethod('post')) { $remark = $request->input('adjust_remark', '', 'trim'); $order_id = $info['order_info']['order_id']; if (empty($remark)) { return array('errcode' => -1, 'errmsg' => '调价原因不能为空'); } $url = Config('website.api_domain').'order/applyAdjust'; $check['k1'] = time(); $check['k2'] = md5(md5($check['k1']).'fh6y5t4rr351d2c3bryi'); $resData = array("order_id"=>$order_id, "pf"=>1, "k1"=>$check['k1'], "k2"=>$check['k2']); $temp = json_decode(curlApi($url, $resData, "POST"), true); if ($temp['err_code'] == 0) { return array('errcode'=>0,'errmsg'=>'申请成功'); } else { return array('errcode'=>0,'errmsg'=>'申请失败'); } } return view('detail.adjust', $info); } // 审核 public function check(Request $request, $id) { $data = $this->orderDetail($request, $id); // 获取所有的业务员 $sale_list = $this->getSales('销售'); $perm = new PermController; $manager = $perm->getRoleUsers($request, '经理'); $sale_list = $perm->getRoleUsers($request, '交易员'); // $manager = array(); // 过滤业务员,并新建经理数组 // if (!empty($managerId)) { // foreach ($sale_list as $k=>$v) { // foreach ($managerId as $id) // if ($v->userId == $id) { // $manager[$v->userId] = $v->name; // array_splice($sale_list, $k, 1); // } // } // } $data['sale_list'] = $sale_list; $data['manager'] = $manager; return view('detail', $data); } // 审核ajax public function ajaxCheck(Request $request) { if($request->isMethod('post')){ $order_id = $request->input('order_id', ''); //订单号 $sale_id = $request->input('sale_id', null); //对应销售 $order_status = $request->input('order_status', ''); //审核通过 2 审核不通过(即取消订单) -1 $cancel_reason = $request->input('cancel_reason', ''); $order_sn = $request->input('order_sn', ''); if ($order_status == -1 && !$cancel_reason) { return array('errcode'=>1, 'errmsg'=>'审核不通过的原因不可为空!'); } if (!isset($sale_id)) { return array('errcode'=>1, 'errmsg'=>'请选择订单业务员!'); } if (!$order_id) { return array('errcode'=>1, 'errmsg'=>'订单参数有误!'); } //用于后台订单审核 $url = Config('website.api_domain').'order/adminCheck'; $check['k1'] = time(); $check['k2'] = md5(md5($check['k1']).'fh6y5t4rr351d2c3bryi'); $resData = array("cancel_reason"=>$cancel_reason, "order_id"=>$order_id, 'sale_id'=>$sale_id, 'status'=>$order_status, "pf"=>1, "k1"=>$check['k1'], "k2"=>$check['k2']); $temp = json_decode(curlApi($url, $resData, "POST"), true); if ($temp['err_code'] == 0) { // 成功 // 3.短信发送 // $user_mobile = $request->input('user_mobile', ''); // $content = '尊敬的客户,您好!您在猎芯网提交的订单('.$order_sn.')已经通过审核,请您及时登陆查看,留意最新的订单动态,祝您交易愉快,有任何疑问请联系官方客服:0755-88914841'; // $this->webpower_send_sms($user_mobile, $content); } return array('errcode'=>$temp['err_code'],'errmsg'=>$temp['err_msg']); } } /** * webPower 短信商 * @param $mobile 手机号码 * @param $content 短信内容 * @return bool */ public function webpower_send_sms($mobile, $content, $campaignID = 1424) { //webservice // $url = "http://lx.webpowerchina.cn/sms/rest/v1/sms"; //输出的链接地址 $url='https://sms.dmavip.com/rest/v2/single_sms'; $post_data = array( 'mobile' => $mobile, 'content' => $content, 'campaignID' => $campaignID, ); //填写参数,mobile手机号码,content短信内容,campaignID活动id(短信平台上面发送一般是在活动下面,跟邮件一样会有一个活动Id) $data = webpower_curl($url, $post_data); if(isset($data)){ //保存验证码 DB::connection('order')->table('lie_msg_send')->insert([ 'mobile' => $mobile, 'code' => ' ', 'send_time' => time(), 'url' => $url.'?'.http_build_query($post_data), 'response' => $data ]); $result = json_decode($data, true); $status = strtoupper($result['status']); if($status == 'OK'){ return true; }else{ return false; } }else{ return false; } } //取消订单(仅限审核通过,未付款前) public function cancelPay(Request $request, $id) { if($request->isMethod('post')){ $order_id = $request->input('order_id'); $cancel_reason = $request->input('cancel_reason'); if (!$order_id) { return array('errcode'=>-1,'errmsg'=>'订单不存在~'); } if (!$cancel_reason) { return array('errcode'=>-1,'errmsg'=>'取消订单的原因不可为空~'); } $url = Config('website.api_domain').'order/cancelPay'; $check['k1'] = time(); $check['k2'] = md5(md5($check['k1']).'fh6y5t4rr351d2c3bryi'); $resData = array("pf"=>1, "k1"=>$check['k1'], "k2"=>$check['k2'], "order_id"=>$order_id, "cancel_reason"=>$cancel_reason); $temp = json_decode(curlApi($url,$resData,"POST"), true); return array('errcode'=>$temp['err_code'],'errmsg'=>$temp['err_msg']); } $info = $this->orderDetail($request, $id); return view('detail', $info); } // 对账 public function checkPay(Request $request, $id) { $info = $this->orderDetail($request, $id); if ($request->isMethod('post')) { $order_id = $request->input('order_id', ''); $cid = $request->input('cid', ''); $serial_number = $request->input('serial_number', ''); // last_check 尾款确认 if (!$request->input('last_check', '')) { $url = Config('website.api_domain').'order/checkpay'; $data['order_id'] = $order_id; $data['cid'] = $cid; $data['serial_number'] = $serial_number; $data['k1'] = time(); $data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi'); $temp = json_decode(curlApi($url, $data, "POST"), true); // 连接API if ($temp['err_code'] == 0) { return array('errcode'=>0,'errmsg'=>'操作成功'); } else { return array('errcode'=>-1,'errmsg'=>'操作失败'); } } else { $payLog['is_paid'] = 2; if (DB::connection('order')->table('lie_pay_log')->where(['order_id'=>$order_id, 'pay_type'=>2])->update($payLog)) { return array('errcode'=>0,'errmsg'=>'操作成功'); } } return array('errcode'=>-1,'errmsg'=>'操作失败'); } // 订单待付款状态可操作对账 if ($info['order_info']['order_pay_type'] == 1) { // 全款 if (!in_array($info['order_info']['status'], array(2, 4))) { return redirect('/prompt')->with(['message'=>'订单无法操作','url' =>$_SERVER['HTTP_REFERER'], 'jumpTime'=>3,'status'=>false]); } } else if ($info['order_info']['order_pay_type'] == 2) { // 预付款 if (!in_array($info['order_info']['status'], array(2, 3, 4))) { return redirect('/prompt')->with(['message'=>'订单无法操作','url' =>$_SERVER['HTTP_REFERER'], 'jumpTime'=>3,'status'=>false]); } } return view('detail', $info); } //订单物流信息 public function changeShipping(Request $request, $id='') { if($request->isMethod('post')){ $data['map'] = $request->input(); $data['k1'] = time(); $data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi'); $data['order_id'] = $request->input('order_id',''); $update_url = Config('website.api_domain').'order/updateOrderAddress'; $update = json_decode(curlApi($update_url, $data, 'POST'), true); if ($update['err_code'] == 0) { return array('errcode'=>0,'errmsg'=>'操作成功'); } else { return array('errcode'=>-1,'errmsg'=>'操作失败'); } } $info = $this->orderDetail($request, $id); if (!$info['order_address_info']) { return redirect('/prompt')->with(['message'=>'订单地址不存在!', 'url' =>$_SERVER['HTTP_REFERER'], 'jumpTime'=>3, 'status'=>false]); } $info['detail'] = $info['order_address_info']; $info['detail']['order_id'] = $id; return view('changeShipping', $info); } // 订单发票信息 public function changeInvoice(Request $request, $id='') { if($request->isMethod('post')){ $data['map'] = $request->input(); $data['k1'] = time(); $data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi'); $data['id'] = $request->input('order_id',''); $update_url = Config('website.api_domain').'order/updateOrderInvoice'; $update = json_decode(curlApi($update_url, $data, 'POST'), true); if ($update['err_code'] == 0) { return array('errcode'=>0,'errmsg'=>'操作成功'); } else { return array('errcode'=>-1,'errmsg'=>'操作失败'); } } $info = $this->orderDetail($request, $id); if (!$info['order_invoice_info']) { return redirect('/prompt')->with(['message'=>'发票不存在!','url' =>$_SERVER['HTTP_REFERER'], 'jumpTime'=>3,'status'=>false]); } $info['detail'] = $info['order_invoice_info']; $info['detail']['order_id'] = $id; return view('changeInvoice', $info); } /** *发货 */ public function send(Request $request, $id) { if($request->isMethod('post')){ $data = $request->input(); $check['k1'] = time(); $check['k2'] = md5(md5($check['k1']).'fh6y5t4rr351d2c3bryi'); $url = Config('website.api_domain').'order/send'; $resData = array("shipping_no"=>$data['shipping_no'], "order_id"=>$data['order_id'], 'shipping_id'=>$data['shipping_id'], "pf"=>1, "k1"=>$check['k1'], "k2"=>$check['k2']); $temp = json_decode(curlApi($url,$resData,"POST"), true); return array('errcode'=>$temp['err_code'],'errmsg'=>$temp['err_msg']); } $info = $this->orderDetail($request, $id); $shippings = DB::connection('order')->table('lie_shipping')->where(['enabled'=>1,'is_order'=>1])->get();//获取配送方式 $ship_type = []; foreach ($shippings as $key => $value) { $ship_type[$value->shipping_id] = $value->shipping_name; } $info['ship_type'] = $ship_type; $info['shippings'] = $shippings; return view('detail', $info); } //发票物流信息 public function invShipping(Request $request, $id) { if($request->isMethod('post')){ $data = $request->input(); if (!$data['inv_shipping_no']) { return redirect('/prompt')->with(['message'=>'发票物流单号不可为空~','url' =>$_SERVER['HTTP_REFERER'], 'jumpTime'=>3,'status'=>false]); } $check['k1'] = time(); $check['k2'] = md5(md5($check['k1']).'fh6y5t4rr351d2c3bryi'); $url = Config('website.api_domain').'order/invShipping'; $resData = array("pf"=>1, "k1"=>$check['k1'], "k2"=>$check['k2'], "order_id"=>$data['order_id'], "inv_shipping_no"=>$data['inv_shipping_no'], "inv_shipping_id"=>$data['inv_shipping_id']); $temp = json_decode(curlApi($url, $resData, "POST"), true); if ($temp['err_code'] == 0) { return redirect('/prompt')->with(['message'=>$temp['err_msg'],'url' =>$_SERVER['HTTP_REFERER'], 'jumpTime'=>3,'status'=>true]); } return redirect('/prompt')->with(['message'=>$temp['err_msg'],'url' =>$_SERVER['HTTP_REFERER'], 'jumpTime'=>3,'status'=>false]); } $info = $this->orderDetail($request, $id); if($info['order_invoice_info']['inv_type'] == 1){ return redirect('/prompt')->with(['message'=>'当前订单不需要发票~','url' =>$_SERVER['HTTP_REFERER'], 'jumpTime'=>3,'status'=>false]); } if($info['order_info']['status'] != 10){ return redirect('/prompt')->with(['message'=>'订单未交易成功,无法寄送发票~','url' =>$_SERVER['HTTP_REFERER'], 'jumpTime'=>3,'status'=>false]); } //物流信息 $shippings = DB::connection('order')->table('lie_shipping')->where(['enabled'=>1,'is_invoice'=>1])->get(); $shippingArr = []; foreach ($shippings as $key => $value) { $shippingArr[$value->shipping_id] = $value->shipping_name; } $info['shippingArr'] = $shippingArr; $info['shippings'] = $shippings; return view('detail', $info); } //3.0后台订单临时版 api public function orderDetail(Request $request, $id, $type = '0') { $info = $this->getPageInfo($request); if (!$type) { $type = '0'; } //调用订单接口,获取订单详细信息 $url = Config('website.api_domain').'order/getOrderDetails'; $data['k1'] = time(); $data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi'); $userData = array("order_id"=>$id, "type"=>$type, "pf"=>1, "k1"=>$data['k1'], "k2"=>$data['k2']); $temp = json_decode(curlApi($url, $userData, "POST"), true); // 消息通知 $mobile = isset($temp['data']['order_info']['user_info']['msg_mobile']) ? $temp['data']['order_info']['user_info']['msg_mobile'] : ''; if (!$mobile) { $mobile = isset($temp['data']['order_info']['user_info']['mobile']) ? $temp['data']['order_info']['user_info']['mobile'] : ''; } $response = [ 'user_mobile' => $mobile, 'order_info' => $temp['data']['order_info'], 'user_info' => $temp['data']['order_info']['user_info'], 'order_invoice_info' => $temp['data']['order_invoice_info'], 'order_items_info' => $temp['data']['order_items_info'], 'order_address_info' => $temp['data']['order_address_info'], 'order_shipping_info' => $temp['data']['order_shipping_info'], 'order_invoice_shipping_info' => $temp['data']['order_invoice_shipping_info'], 'order_pay_log' => $temp['data']['order_pay_log'], 'order_price_info' => $temp['data']['order_price_info'], ]; $response = array_merge($response, $info); return $response; } // 测试帐号 public function testMobile() { $testId = array(); $user = DB::connection('order')->table('lie_user_main')->select('user_id')->where(['is_test' => 1])->get(); foreach ($user as $k => $v) { $testId[$k] = $v->user_id; } return $testId; } // 检查订单付款时间 (状态) public function checkOrderPay() { $order = DB::connection('order') ->table('lie_order') ->whereIn('status', ['2', '3']) ->whereNotIn('user_id', $this->testMobile()) ->where('is_type', '=', 0) ->select('order_id', 'order_sn', 'user_id', 'order_amount', 'currency', 'pay_time') ->orderBy('create_time', 'DESC') ->get(); //调用消息接口 $url = Config('website.api_domain').'msg/sendmessagebyauto'; $data['k1'] = time(); $data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi'); $keyword = 'order-pay-time-remind'; if (!empty($order)) { foreach ($order as $v) { $diff = $v->pay_time - time(); // 提前一天推送消息 if ($diff <= 86400) { $currency = $v->currency == 1 ? '¥' : '$'; $orderData = [ "keyword" => $keyword, "pf" => 1, "k1" => $data['k1'], "k2" => $data['k2'], 'touser' => json_encode($v->user_id), 'data' => json_encode([$v->order_sn, $currency.$v->order_amount]), ]; $temp = json_decode(curlApi($url, $orderData, "POST"), true); if ($temp['err_code'] == 0) { continue; } } } } } }