127 lines
4.0 KiB
PHP
127 lines
4.0 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Controllers;
|
|
|
|
use Admin;
|
|
use App\Models\Seller;
|
|
use App\Models\Station;
|
|
use Illuminate\Http\Request;
|
|
use Validator;
|
|
|
|
class StationController extends Controller
|
|
{
|
|
|
|
public function index(Request $request)
|
|
{
|
|
$name = $request->name;
|
|
$orderField = $request->orderField;
|
|
$orderDirection = $request->orderDirection;
|
|
$numPerPage = $request->numPerPage ?: 30;
|
|
|
|
if (Admin::id() == 1) {
|
|
$stations = Station::when($name, function ($query) use ($name) {
|
|
$query->where('name', 'like', "%{$name}%");
|
|
})
|
|
->when($orderField, function ($query) use ($orderField, $orderDirection) {
|
|
$query->orderBy($orderField, $orderDirection);
|
|
})->paginate($numPerPage);
|
|
} else {
|
|
$stations = Station::when($name, function ($query) use ($name) {
|
|
$query->where('name', 'like', "%{$name}%");
|
|
})->where('seller_id', Admin::user()->seller_id)
|
|
->when($orderField, function ($query) use ($orderField, $orderDirection) {
|
|
$query->orderBy($orderField, $orderDirection);
|
|
})->paginate($numPerPage);
|
|
}
|
|
|
|
return view('Admin::stations.index', compact('stations'));
|
|
}
|
|
|
|
public function create()
|
|
{
|
|
$sellers = Seller::where('status', 1)->get();
|
|
return view('Admin::stations.create', compact('sellers'));
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$validator = Validator::make($request->all(), [
|
|
'name' => 'required|min:2|max:50',
|
|
'address' => 'required|min:4',
|
|
'mobile' => 'required',
|
|
], [
|
|
'name.required' => '商户名称必须填写',
|
|
'name.min' => '商户名称最少为:min字符',
|
|
'name.max' => '商户名称最多为:max字符',
|
|
'address.required' => '地址必须填写',
|
|
'address.min' => '地址最少:min个字',
|
|
'mobile.required' => '手机号必须填写',
|
|
]);
|
|
|
|
if ($validator->fails()) {
|
|
return $this->error($validator->errors()->first());
|
|
}
|
|
if (Station::create($request->all())) {
|
|
return $this->success('', 'close');
|
|
} else {
|
|
return $this->error();
|
|
}
|
|
}
|
|
|
|
public function edit(Station $station)
|
|
{
|
|
$sellers = Seller::where('status', 1)->get();
|
|
return view('Admin::stations.edit', compact('station', 'sellers'));
|
|
}
|
|
|
|
public function update(Request $request, Station $station)
|
|
{
|
|
$validator = Validator::make($request->all(), [
|
|
'name' => 'required|min:2|max:50',
|
|
'address' => 'required|min:4',
|
|
'mobile' => 'required',
|
|
], [
|
|
'name.required' => '商户名称必须填写',
|
|
'name.min' => '商户名称最少为:min字符',
|
|
'name.max' => '商户名称最多为:max字符',
|
|
'address.required' => '地址必须填写',
|
|
'address.min' => '地址最少:min个字',
|
|
'mobile.required' => '手机号必须填写',
|
|
]);
|
|
|
|
if ($validator->fails()) {
|
|
return $this->error($validator->errors()->first());
|
|
}
|
|
if ($station->update($request->all())) {
|
|
return $this->success('', 'close');
|
|
} else {
|
|
return $this->error();
|
|
}
|
|
}
|
|
|
|
public function destroy(station $station)
|
|
{
|
|
if ($station->delete()) {
|
|
return $this->success();
|
|
} else {
|
|
return $this->error();
|
|
}
|
|
|
|
}
|
|
|
|
public function areas(Request $request)
|
|
{
|
|
if (empty($request->psn)) {
|
|
return $this->error('请选择省份');
|
|
}
|
|
|
|
$areas = \OpenArea::index($request->psn);
|
|
if ($areas) {
|
|
return $this->success(['msg' => '', 'code' => 1, 'data' => $areas]);
|
|
} else {
|
|
return $this->error('请选择省份/城市');
|
|
}
|
|
}
|
|
|
|
}
|