0
0
Files
Babyclass/app/Http/Controllers/AddressController.php
2020-08-04 10:09:42 +08:00

122 lines
3.5 KiB
PHP

<?php
namespace App\Http\Controllers;
use Auth;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\View;
use RuLong\Area\Models\UserAddress;
class AddressController extends Controller
{
public function __construct(Request $request)
{
parent::__construct($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');
}
return view('address.index', compact('addresses'));
}
public function show()
{
# code...
}
public function create(Request $request)
{
$provinces = \Area::index(0);
return view('address.create', compact('provinces'));
}
public function store(Request $request)
{
\Address::store(
[
'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,
]
);
$address = UserAddress::where('user_id', Auth::id())->orderBy('id', 'desc')->first();
if ($request->def) {
\Address::setDefault($address);
}
if ($request->callback) {
$callback = $request->callback . '?address=' . $address->id;
} else {
$callback = route('addresses.index');
}
return $this->success('地址创建成功', $callback);
}
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');
$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::sub($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();
}
}
}