默认地址功能

This commit is contained in:
TL 2022-07-07 16:07:54 +08:00
parent 6ee3aacc0f
commit 5d8bd758d5
4 changed files with 22 additions and 7 deletions

View File

@ -39,14 +39,14 @@ class AddressController extends Controller
public function store(AddressRequest $request)
{
$data = $request->only(['name', 'phone', 'country_id', 'zone_id', 'city_id', 'city', 'zipcode', 'address_1', 'address_2']);
$data = $request->only(['name', 'phone', 'country_id', 'zone_id', 'city_id', 'city', 'zipcode', 'address_1', 'address_2', 'default']);
$address = AddressService::create($data);
return json_success('创建成功', new AddressResource($address));
}
public function update(AddressRequest $request, int $id)
{
$data = $request->only(['name', 'phone', 'country_id', 'zone_id', 'city_id', 'city', 'zipcode', 'address_1', 'address_2']);
$data = $request->only(['name', 'phone', 'country_id', 'zone_id', 'city_id', 'city', 'zipcode', 'address_1', 'address_2', 'default']);
$address = AddressService::update($id, $data);
return json_success('更新成功', new AddressResource($address));
}

View File

@ -26,6 +26,7 @@ class AddressResource extends JsonResource
'zipcode' => $this->zipcode,
'address_1' => $this->address_1,
'address_2' => $this->address_2,
'default' => (current_customer()->address_id == $this->id),
];
return $data;

View File

@ -20,19 +20,32 @@ class AddressService
{
public static function create($data)
{
$data['customer_id'] = current_customer()->id;
$customer = current_customer();
$data['customer_id'] = $customer->id;
$data['zone'] = ZoneRepo::find($data['zone_id'])->name;
$address = AddressRepo::create($data);
if ($data['default']) {
$customer->address_id = $address->id;
$customer->save();
}
return $address;
}
public static function update($id, $data)
{
$customer = current_customer();
$address = AddressRepo::find($id);
$data['zone'] = ZoneRepo::find($data['zone_id'])->name;
if ($address->customer_id != current_customer()->id) {
$address;
if ($address->customer_id != $customer->id) {
return null;
}
return AddressRepo::update($address, $data);
$data['zone'] = ZoneRepo::find($data['zone_id'])->name;
$address = AddressRepo::update($address, $data);
if ($data['default'] && $customer->address_id != $address->id) {
$customer->address_id = $address->id;
$customer->save();
}
return $address;
}
}

View File

@ -20,6 +20,7 @@ class CreateCustomerTable extends Migration
$table->string('name');
$table->string('avatar')->default('');
$table->unsignedInteger('customer_group_id');
$table->unsignedInteger('address_id');
$table->string('locale', 10);
$table->tinyInteger('status')->default(0);
$table->string('code', 40)->default('');