vd/app/Domains/Company/Http/Controllers/AddressController.php
2019-02-14 15:14:43 +08:00

88 lines
2.1 KiB
PHP

<?php
namespace App\Domains\Company\Http\Controllers;
use App\Core\Controller;
use Illuminate\Http\Request;
use App\Exceptions\NotAllowedException;
use App\Domains\Virtual\Services\CompanyAddressService;
class AddressController extends Controller
{
protected $request;
protected $companyAddressService;
/**
* 构造函数,自动注入.
*/
public function __construct(Request $request, CompanyAddressService $companyAddressService)
{
$this->request = $request;
$this->companyAddressService = $companyAddressService;
$this->account = $request->user('company');
}
/**
* 获取收货地址列表
*/
public function list()
{
$res = $this->companyAddressService->getCompanyAddress($this->account->company_id);
return res($res, '收货地址', 201);
}
/**
* 添加收货地址
*
* @return void
*/
public function create()
{
$attributes = $this->request->all();
$attributes['company_id'] = $this->account->company_id;
$res = $this->companyAddressService->store($attributes);
return res($res, '添加成功');
}
/**
* 修改收货地址
*
* @param int $id
* @return void
*/
public function update($id)
{
$attributes = $this->request->all();
$attributes['id'] = $id;
$attributes['company_id'] = $this->account->company_id;
$res = $this->companyAddressService->store($attributes);
return res($res, '修改成功');
}
public function destroy()
{
$ids = $this->request->ids();
$res = $this->companyAddressService->getCompanyAddress($this->account->company_id)->pluck('id')->toArray();
foreach ($ids as $id) {
if (!in_array($id, $res)) {
throw new NotAllowedException('非法操作');
}
}
$this->companyAddressService->destroy($ids);
return res(true, '删除成功');
}
public function default($id)
{
$node = $this->companyAddressService->setDefault($id);
return res($node, '设置成功');
}
}