6
0
Fork 0

收货地址管理

release
李静 2021-12-08 14:35:41 +08:00
parent 0ae862335a
commit a06072408b
7 changed files with 26 additions and 26 deletions

View File

@ -2,12 +2,12 @@
namespace App\Endpoint\Api\Http\Controllers; 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\Models\Zone;
use App\Rules\PhoneNumber; use App\Rules\PhoneNumber;
use Illuminate\Http\Request; 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) 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(); $user = $request->user();
$address = $user->addresses()->create( $address = $user->shippingAddresses()->create(
array_merge($input, ['zone' => $zone->full_name]) array_merge($input, ['zone' => $zone->full_name])
); );
if ($address->is_default) { 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) 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(); $user = $request->user();
$address = $user->addresses()->findOrFail($id); $address = $user->shippingAddresses()->findOrFail($id);
$address->fill($input); $address->fill($input);
if ($address->isDirty('zone_id')) { if ($address->isDirty('zone_id')) {
@ -97,10 +97,10 @@ class AddressController extends Controller
$address->save(); $address->save();
if ($address->is_default && $address->wasChanged('is_default')) { 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) public function destroy($id, Request $request)
{ {
$request->user()->addresses()->where('id', $id)->delete(); $request->user()->shippingAddresses()->where('id', $id)->delete();
return response()->noContent(); return response()->noContent();
} }

View File

@ -4,7 +4,7 @@ namespace App\Endpoint\Api\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;
class AddressResource extends JsonResource class ShippingAddressResource extends JsonResource
{ {
/** /**
* Transform the resource into an array. * Transform the resource into an array.
@ -17,7 +17,7 @@ class AddressResource extends JsonResource
return [ return [
'id' => $this->id, 'id' => $this->id,
'zone_id' => $this->zone_id, 'zone_id' => $this->zone_id,
'consignee' => $this->consignee, 'name' => $this->name,
'telephone' => $this->telephone, 'telephone' => $this->telephone,
'zone' => $this->zone, 'zone' => $this->zone,
'address' => $this->address, 'address' => $this->address,

View File

@ -3,7 +3,6 @@
use App\Endpoint\Api\Http\Controllers\Account\ChangePasswordController; use App\Endpoint\Api\Http\Controllers\Account\ChangePasswordController;
use App\Endpoint\Api\Http\Controllers\Account\UserController; use App\Endpoint\Api\Http\Controllers\Account\UserController;
use App\Endpoint\Api\Http\Controllers\AdController; 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\LoginController;
use App\Endpoint\Api\Http\Controllers\Auth\LogoutController; use App\Endpoint\Api\Http\Controllers\Auth\LogoutController;
use App\Endpoint\Api\Http\Controllers\Auth\RegisterController; 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\ProductSkuController;
use App\Endpoint\Api\Http\Controllers\Product\ProductSkuFavoriteController; use App\Endpoint\Api\Http\Controllers\Product\ProductSkuFavoriteController;
use App\Endpoint\Api\Http\Controllers\Product\ProductViewLogController; 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\ShoppingCartItemController;
use App\Endpoint\Api\Http\Controllers\SmsCodeController; use App\Endpoint\Api\Http\Controllers\SmsCodeController;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
@ -67,6 +67,6 @@ Route::group([
Route::delete('shopping-cart-items', [ShoppingCartItemController::class, 'delete']); Route::delete('shopping-cart-items', [ShoppingCartItemController::class, 'delete']);
Route::put('shopping-cart-items/{shopping_cart_item}', [ShoppingCartItemController::class, 'update']); Route::put('shopping-cart-items/{shopping_cart_item}', [ShoppingCartItemController::class, 'update']);
Route::apiResource('addresses', AddressController::class); Route::apiResource('shipping-addresses', ShippingAddressController::class);
}); });
}); });

View File

@ -4,7 +4,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
class Address extends Model class ShippingAddress extends Model
{ {
/** /**
* @var array * @var array

View File

@ -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);
} }
/** /**

View File

@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\Schema;
class CreateAddressesTable extends Migration class CreateShippingAddressesTable extends Migration
{ {
/** /**
* Run the migrations. * Run the migrations.
@ -13,7 +13,7 @@ class CreateAddressesTable extends Migration
*/ */
public function up() public function up()
{ {
Schema::create('addresses', function (Blueprint $table) { Schema::create('shipping_addresses', function (Blueprint $table) {
$table->id(); $table->id();
$table->unsignedBigInteger('user_id')->comment('用户ID'); $table->unsignedBigInteger('user_id')->comment('用户ID');
$table->unsignedBigInteger('zone_id')->comment('地区ID'); $table->unsignedBigInteger('zone_id')->comment('地区ID');
@ -33,6 +33,6 @@ class CreateAddressesTable extends Migration
*/ */
public function down() public function down()
{ {
Schema::dropIfExists('addresses'); Schema::dropIfExists('shipping_addresses');
} }
} }

View File

@ -1,13 +1,13 @@
<?php <?php
use App\Models\Address;
use App\Models\ProductSku; use App\Models\ProductSku;
use App\Models\ProductSpu; use App\Models\ProductSpu;
use App\Models\ShippingAddress;
use App\Models\ShoppingCartItem; use App\Models\ShoppingCartItem;
use App\Models\Zone; use App\Models\Zone;
return [ return [
Address::class => '地址', ShippingAddress::class => '地址',
ProductSpu::class => '商品', ProductSpu::class => '商品',
ProductSku::class => '商品', ProductSku::class => '商品',
ShoppingCartItem::class => '商品', ShoppingCartItem::class => '商品',