header('订单管理') ->description('列表') ->body($this->grid($type_id)); } /** * Show interface. * * @param mixed $id * @param Content $content * @return Content */ public function show($id, Content $content) { return $content ->header('订单管理') ->description('详情') ->body($this->detail($id)); } public function detail($id) { $show = new Show(Order::findOrFail($id)); $show->oid('订单ID'); $show->order_type('订单类型')->as(function ($order_type) { $arr = [ 1=>"套餐升级", 2=>"充值积分", 3=>"简历置顶", 4=>"醒目标签", 5=>"简历模板", 6=>"简历包", 7=>"短信包", 8=>"职位置顶", 9=>"职位紧急", 10=>"企业模板", 12=>"预约刷新职位", 13=>"职位刷新", 14=>"简历下载", 15=>"职位包", 16=>"招聘会包", ]; return $arr[$order_type]; }); $show->pay_type('支付类型')->as(function ($pay_type) { switch ($pay_type) { case 1: return '积分'; break; case 2: return '现金'; break; case 3: return '现金+积分'; break; } }); $show->is_pay('支付状态')->as(function ($is_pay) { switch ($is_pay) { case 1: return '待支付'; break; case 2: return '已支付'; break; case 3: return '已取消'; break; } }); $show->amount('总金额'); $show->pay_amount('现金支付金额'); $show->pay_points('支付积分'); $show->payment_cn('支付方式'); $show->description('订单描述'); $show->service_name('购买服务名称'); $show->payment_time('支付时间')->as(function ($payment_time) { if ($payment_time) { return date('Y-m-d H:i:s', $payment_time); } }); return $show; } /** * Edit interface. * * @param mixed $id * @param Content $content * @return Content */ public function edit($id, Content $content) { $name = Route::currentRouteName(); $arr = explode('.', $name); if ($arr[1] == 'company') { $type_id = 1; } else { $type_id = 2; } return $content ->header('订单管理') ->description('编辑') ->body($this->form($type_id)->edit($id)); } /** * Make a grid builder. * * @return Grid */ protected function grid($type) { $grid = new Grid(new Order); $grid ->model()->where('utype', $type) /*->when(get_subsite_id()>0, function ($querys) use ($type) { if ($type ==1) { $relations = 'companys'; } else { $relations = 'members'; } $querys->whereHas($relations, function ($query) { $query->where('subsite_id', get_subsite_id()); }); })*/ ->orderBy('created_at', 'desc')->orderBy("is_pay", 'asc'); $grid->is_pay('支付状态')->display(function ($is_pay) { if ($is_pay == 1) { return '待付款'; } elseif ($is_pay == 2) { return '已付款'; } else { return '已取消'; } }); $grid->amount('金额')->width(150); if ($type == 1) { $grid->column('companys.companyname', '企业名称')->width(200); } else { $grid->column('members.username', '会员名称')->width(200); } $grid->service_name('说明')->width(150); if ($type == 1) { $grid->column('companys.username', '企业会员')->width(200); } else { $grid->column('members.username', '个人会员')->width(200); } $grid->oid('订单号')->width(200); $grid->created_at('申请时间'); $grid->payment_cn('支付方式')->width(150)->display(function ($payment_cn) { if ($payment_cn=="积分"){ return "积分支付"; } else{ return $payment_cn; } }); $grid->filter(function ($filter) use ($type) { $filter->column(1/2, function ($filter) use ($type) { $filter->equal('uid', '企业ID'); if ($type == 1) { $filter->like('companys.username', '会员名称'); $filter->like('companys.companyname', '企业名称'); } else { $filter->like('members.username', '会员名称'); } $filter->equal('is_pay', '支付状态')->select([1=>'待付款',2=>'已付款',3=>'已取消']); $filter->equal('payment', '支付方式')->select(['offline'=>'线下转帐','alipay'=>'支付宝','wechat'=>'微信','points'=>"积分支付"]); }); $filter->column(1/2, function ($filter) { $filter->like('oid', '订单号'); $filter->equal('order_type', '订单类型')->select( [ 1=>'套餐升级', 2=>'充值积分', 3=>'简历置顶', 4=>'醒目标签', 5=>'简历模板', 6=>'简历包', 7=>'短信包', 8=>'职位置顶', 9=>'职位紧急', 10=>'企业模板', 11=>'职位刷新', 12=>'简历下载' ] ); $filter->between('created_at', '注册时间')->datetime(); }); }); $grid->actions(function ($actions) use ($type) { if ($type == 1) { if (Admin::user()->can('order_manager_edit')) { $actions->disableEdit(false); } } else { if (Admin::user()->can('person_order_edit')) { $actions->disableEdit(false); } } // if ($type == 1) { // if (Admin::user()->can('order_manager_delete')) { // $actions->disableDelete(false); // } // } else { // if (Admin::user()->can('person_order_delete')) { // $actions->disableDelete(false); // } // } }); return $grid; } /** * Make a form builder. * * @return Form */ protected function form($type) { $form = new ValidateForm(new Order); $form->display('id')->setWidth(2); if ($type == 1) { $form->display('companys.username', '企业会员')->setWidth(2); } else { $form->display('members.username', '个人会员')->setWidth(2); } $form->radio('is_pay', '支付状态')->options([1=>'待付款',2=>'已付款',3=>'已取消']); $form->display('amount', '订单金额')->setWidth(2); $form->display('pay_amount', '现金支付金额')->setWidth(2); $form->display('pay_points', '积分支付')->setWidth(2); $form->display('payment_cn', "支付方式")->setWidth(2); $form->display('created_at', '申请时间')->setWidth(2); $form->display('payment_time', '支付时间')->setWidth(2)->with(function ($payment_time) { if ($payment_time) { return date('Y-m-d H:i:s', $payment_time); } }); $form->display('oid', '订单号')->setWidth(2); $form->display('service_name', '订单描述')->setWidth(8); $form->text('notes', '添加备注')->setWidth(8); return $form; } public function update(PayService $payService, Request $request, $id,OrderService $orderService) { $order = Order::where('id', $id)->first(); if ($order->payment != "offline") { admin_error('只有线下转帐的订单可以修改支付状态!'); return back(); } if ($order->is_pay != 1) { admin_error('只有线下转帐且状态为未付款订单可以修改支付状态!'); return back(); } $data = $this->form($id)->getValidateInput(); $up_data['is_pay'] = $data['is_pay']; if ($data['is_pay'] == 2) { $up_data['out_trade_no'] = $order->oid; $up_data['notes'] = $data['notes']; $up_data['admin_id'] = Admin::user()->id; $up_data['operate_time'] = date('Y-m-d H:i:s', time()); if (!$payService->offlineHook($up_data)) { admin_toastr('订单修改失败', 'error'); } }else{//加个已取消 Order::where('id', $id)->update(['is_pay'=>3]); } admin_toastr('订单修改成功', 'success'); return redirect(route('order.company.index')); } }