提交代码
This commit is contained in:
146
app/Http/Controllers/AddressController.php
Normal file
146
app/Http/Controllers/AddressController.php
Normal file
@@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Rules\Checkmobile;
|
||||
use Auth;
|
||||
use Illuminate\Http\Request;
|
||||
use RuLong\Area\Models\Area;
|
||||
use RuLong\Area\Models\UserAddress;
|
||||
use Validator;
|
||||
|
||||
class AddressController extends Controller
|
||||
{
|
||||
public function __construct(Request $request)
|
||||
{
|
||||
$this->middleware('auth');
|
||||
view()->share('nav', 4);
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$addresses = Auth::user()->addresses()->orderBy('is_default', 'desc')->orderBy('id', 'desc')->get();
|
||||
|
||||
if ($addresses->isEmpty()) {
|
||||
return redirect()->route('addresses.create');
|
||||
}
|
||||
$provinces = Area::where('type', '省级')->pluck('name', 'sn');
|
||||
|
||||
return view('address.index', compact('addresses', 'provinces'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
$provinces = \Area::index(0);
|
||||
return view('address.create', compact('provinces'));
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'name' => 'required|max:4',
|
||||
'mobile' => ['required', new Checkmobile],
|
||||
'province_sn' => 'required',
|
||||
'city_sn' => 'required',
|
||||
'area_sn' => 'required',
|
||||
'address' => 'required',
|
||||
], [
|
||||
'name.required' => '收货人必须填写',
|
||||
'name.max' => '收货人最多:max字符',
|
||||
'mobile.required' => '手机号必须填写',
|
||||
'province_sn.required' => '省份必须选择',
|
||||
'city_sn.required' => '城市必须选择',
|
||||
'area_sn.required' => '地区必须选择',
|
||||
'address.required' => '详细地址必须填写',
|
||||
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return $this->error($validator->errors()->first());
|
||||
}
|
||||
$data = [
|
||||
'user_id' => Auth::id(),
|
||||
'name' => $request->name,
|
||||
'mobile' => $request->mobile,
|
||||
'province_sn' => $request->province_sn,
|
||||
'city_sn' => $request->city_sn,
|
||||
'area_sn' => $request->area_sn,
|
||||
'address' => $request->address,
|
||||
];
|
||||
|
||||
if ($request->has('def')) {
|
||||
$data['is_default'] = 1;
|
||||
}
|
||||
|
||||
$info = \Address::store($data);
|
||||
|
||||
if ($request->callback) {
|
||||
$callback = $request->callback . '?address=' . $info->id;
|
||||
} else {
|
||||
$callback = route('addresses.index');
|
||||
}
|
||||
return $this->success('地址创建成功', $callback);
|
||||
}
|
||||
|
||||
public function show(UserAddress $address)
|
||||
{
|
||||
# code...
|
||||
}
|
||||
|
||||
public function edit(UserAddress $address)
|
||||
{
|
||||
$provinces = \Area::index(0);
|
||||
$cities = \Area::index($address->province_sn);
|
||||
$areas = \Area::index($address->city_sn);
|
||||
return view('address.edit', compact('address', 'provinces', 'cities', 'areas'));
|
||||
}
|
||||
|
||||
public function update(Request $request, UserAddress $address)
|
||||
{
|
||||
if (\Address::update($address, $request->all())) {
|
||||
return $this->success('修改成功', route('addresses.index'));
|
||||
} else {
|
||||
return $this->error('修改失败');
|
||||
}
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
{
|
||||
if (\Address::destroy($id)) {
|
||||
return $this->success('删除成功', route('addresses.index'));
|
||||
} else {
|
||||
return $this->error();
|
||||
}
|
||||
}
|
||||
|
||||
public function select(Request $request)
|
||||
{
|
||||
$callback = $request->has('callback') && $request->callback == route('orders.create') ? route('orders.create') : route('orders.create');
|
||||
$addresses = Auth::user()->addresses()->orderBy('is_default', 'desc')->orderBy('id', 'desc')->get();
|
||||
return view('address.change', compact('addresses', 'callback'));
|
||||
}
|
||||
|
||||
public function areas(Request $request)
|
||||
{
|
||||
if (empty($request->psn)) {
|
||||
return ['msg' => '请选择省份', 'code' => 0];
|
||||
}
|
||||
|
||||
$areas = \Area::index($request->psn);
|
||||
|
||||
if ($areas) {
|
||||
return response()->json(['msg' => '', 'code' => 1, 'data' => $areas]);
|
||||
} else {
|
||||
return ['msg' => '请选择省份/城市', 'code' => 0];
|
||||
}
|
||||
}
|
||||
|
||||
public function setdef($id)
|
||||
{
|
||||
if (\Address::setDefault(UserAddress::find($id))) {
|
||||
return $this->success('设置成功', route('addresses.index'));
|
||||
} else {
|
||||
return $this->error();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user