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'));
}
}