收货地址管理
parent
0ae862335a
commit
a06072408b
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
namespace App\Endpoint\Api\Http\Controllers;
|
||||
|
||||
use App\Endpoint\Api\Http\Resources\AddressResource;
|
||||
use App\Endpoint\Api\Http\Resources\ShippingAddressResource;
|
||||
use App\Models\Zone;
|
||||
use App\Rules\PhoneNumber;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class AddressController extends Controller
|
||||
class ShippingAddressController extends Controller
|
||||
{
|
||||
/**
|
||||
* 地址列表
|
||||
|
|
@ -17,9 +17,9 @@ class AddressController extends Controller
|
|||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$addresses = $request->user()->addresses()->latest('id')->get();
|
||||
$addresses = $request->user()->shippingAddresses()->latest('id')->get();
|
||||
|
||||
return AddressResource::collection($addresses->sortByDesc('is_default'));
|
||||
return ShippingAddressResource::collection($addresses->sortByDesc('is_default'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -42,15 +42,15 @@ class AddressController extends Controller
|
|||
|
||||
$user = $request->user();
|
||||
|
||||
$address = $user->addresses()->create(
|
||||
$address = $user->shippingAddresses()->create(
|
||||
array_merge($input, ['zone' => $zone->full_name])
|
||||
);
|
||||
|
||||
if ($address->is_default) {
|
||||
$user->addresses()->where('id', '!=', $address->id)->update(['is_default' => false]);
|
||||
$user->shippingAddresses()->where('id', '!=', $address->id)->update(['is_default' => false]);
|
||||
}
|
||||
|
||||
return AddressResource::make($address);
|
||||
return ShippingAddressResource::make($address);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -61,9 +61,9 @@ class AddressController extends Controller
|
|||
*/
|
||||
public function show($id, Request $request)
|
||||
{
|
||||
$address = $request->user()->addresses()->findOrFail($id);
|
||||
$address = $request->user()->shippingAddresses()->findOrFail($id);
|
||||
|
||||
return AddressResource::make($address);
|
||||
return ShippingAddressResource::make($address);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -85,7 +85,7 @@ class AddressController extends Controller
|
|||
|
||||
$user = $request->user();
|
||||
|
||||
$address = $user->addresses()->findOrFail($id);
|
||||
$address = $user->shippingAddresses()->findOrFail($id);
|
||||
$address->fill($input);
|
||||
|
||||
if ($address->isDirty('zone_id')) {
|
||||
|
|
@ -97,10 +97,10 @@ class AddressController extends Controller
|
|||
$address->save();
|
||||
|
||||
if ($address->is_default && $address->wasChanged('is_default')) {
|
||||
$user->addresses()->where('id', '!=', $address->id)->update(['is_default' => false]);
|
||||
$user->shippingAddresses()->where('id', '!=', $address->id)->update(['is_default' => false]);
|
||||
}
|
||||
|
||||
return AddressResource::make($address);
|
||||
return ShippingAddressResource::make($address);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -112,7 +112,7 @@ class AddressController extends Controller
|
|||
*/
|
||||
public function destroy($id, Request $request)
|
||||
{
|
||||
$request->user()->addresses()->where('id', $id)->delete();
|
||||
$request->user()->shippingAddresses()->where('id', $id)->delete();
|
||||
|
||||
return response()->noContent();
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@ namespace App\Endpoint\Api\Http\Resources;
|
|||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class AddressResource extends JsonResource
|
||||
class ShippingAddressResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
|
|
@ -17,7 +17,7 @@ class AddressResource extends JsonResource
|
|||
return [
|
||||
'id' => $this->id,
|
||||
'zone_id' => $this->zone_id,
|
||||
'consignee' => $this->consignee,
|
||||
'name' => $this->name,
|
||||
'telephone' => $this->telephone,
|
||||
'zone' => $this->zone,
|
||||
'address' => $this->address,
|
||||
|
|
@ -3,7 +3,6 @@
|
|||
use App\Endpoint\Api\Http\Controllers\Account\ChangePasswordController;
|
||||
use App\Endpoint\Api\Http\Controllers\Account\UserController;
|
||||
use App\Endpoint\Api\Http\Controllers\AdController;
|
||||
use App\Endpoint\Api\Http\Controllers\AddressController;
|
||||
use App\Endpoint\Api\Http\Controllers\Auth\LoginController;
|
||||
use App\Endpoint\Api\Http\Controllers\Auth\LogoutController;
|
||||
use App\Endpoint\Api\Http\Controllers\Auth\RegisterController;
|
||||
|
|
@ -14,6 +13,7 @@ use App\Endpoint\Api\Http\Controllers\Product\ProductCategoryController;
|
|||
use App\Endpoint\Api\Http\Controllers\Product\ProductSkuController;
|
||||
use App\Endpoint\Api\Http\Controllers\Product\ProductSkuFavoriteController;
|
||||
use App\Endpoint\Api\Http\Controllers\Product\ProductViewLogController;
|
||||
use App\Endpoint\Api\Http\Controllers\ShippingAddressController;
|
||||
use App\Endpoint\Api\Http\Controllers\ShoppingCartItemController;
|
||||
use App\Endpoint\Api\Http\Controllers\SmsCodeController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
|
@ -67,6 +67,6 @@ Route::group([
|
|||
Route::delete('shopping-cart-items', [ShoppingCartItemController::class, 'delete']);
|
||||
Route::put('shopping-cart-items/{shopping_cart_item}', [ShoppingCartItemController::class, 'update']);
|
||||
|
||||
Route::apiResource('addresses', AddressController::class);
|
||||
Route::apiResource('shipping-addresses', ShippingAddressController::class);
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ namespace App\Models;
|
|||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Address extends Model
|
||||
class ShippingAddress extends Model
|
||||
{
|
||||
/**
|
||||
* @var array
|
||||
|
|
@ -87,11 +87,11 @@ class User extends Model implements AuthorizableContract, AuthenticatableContrac
|
|||
}
|
||||
|
||||
/**
|
||||
* 属于此用户的地址
|
||||
* 属于此用户的收货地址
|
||||
*/
|
||||
public function addresses()
|
||||
public function shippingAddresses()
|
||||
{
|
||||
return $this->hasMany(Address::class);
|
||||
return $this->hasMany(ShippingAddress::class);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
|
|||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateAddressesTable extends Migration
|
||||
class CreateShippingAddressesTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
|
|
@ -13,7 +13,7 @@ class CreateAddressesTable extends Migration
|
|||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('addresses', function (Blueprint $table) {
|
||||
Schema::create('shipping_addresses', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->unsignedBigInteger('user_id')->comment('用户ID');
|
||||
$table->unsignedBigInteger('zone_id')->comment('地区ID');
|
||||
|
|
@ -33,6 +33,6 @@ class CreateAddressesTable extends Migration
|
|||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('addresses');
|
||||
Schema::dropIfExists('shipping_addresses');
|
||||
}
|
||||
}
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
<?php
|
||||
|
||||
use App\Models\Address;
|
||||
use App\Models\ProductSku;
|
||||
use App\Models\ProductSpu;
|
||||
use App\Models\ShippingAddress;
|
||||
use App\Models\ShoppingCartItem;
|
||||
use App\Models\Zone;
|
||||
|
||||
return [
|
||||
Address::class => '地址',
|
||||
ShippingAddress::class => '地址',
|
||||
ProductSpu::class => '商品',
|
||||
ProductSku::class => '商品',
|
||||
ShoppingCartItem::class => '商品',
|
||||
|
|
|
|||
Loading…
Reference in New Issue