更新保存用户地址
This commit is contained in:
parent
5ec3f531ac
commit
af784ee907
@ -15,6 +15,7 @@ namespace app\common\dao\user;
|
|||||||
|
|
||||||
|
|
||||||
use app\common\dao\BaseDao;
|
use app\common\dao\BaseDao;
|
||||||
|
use app\common\model\store\GeoVillage;
|
||||||
use app\common\model\user\UserAddress as model;
|
use app\common\model\user\UserAddress as model;
|
||||||
|
|
||||||
class UserAddressDao extends BaseDao
|
class UserAddressDao extends BaseDao
|
||||||
@ -30,6 +31,10 @@ class UserAddressDao extends BaseDao
|
|||||||
return model::class;
|
return model::class;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function villageExists($field, $value): bool
|
||||||
|
{
|
||||||
|
return ((GeoVillage::getDB())->where($field,$value)->count()) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
public function userFieldExists($field, $value,$uid): bool
|
public function userFieldExists($field, $value,$uid): bool
|
||||||
{
|
{
|
||||||
|
@ -52,6 +52,17 @@ class UserAddressRepository extends BaseRepository
|
|||||||
return $this->dao->userFieldExists($this->dao->getPk(),$id,$uid);
|
return $this->dao->userFieldExists($this->dao->getPk(),$id,$uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $id
|
||||||
|
* @param int $uid
|
||||||
|
* @return bool
|
||||||
|
* @author Qinii
|
||||||
|
*/
|
||||||
|
public function villageExists($field, $value)
|
||||||
|
{
|
||||||
|
return $this->dao->villageExists($field, $value);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param int $uid
|
* @param int $uid
|
||||||
* @return bool
|
* @return bool
|
||||||
|
@ -126,19 +126,14 @@ class UserAddress extends BaseController
|
|||||||
{
|
{
|
||||||
$data = $this->request->params(['address_id', 'real_name', 'phone', 'area', 'detail', 'post_code', 'is_default']);
|
$data = $this->request->params(['address_id', 'real_name', 'phone', 'area', 'detail', 'post_code', 'is_default']);
|
||||||
$validate->check($data);
|
$validate->check($data);
|
||||||
[$province, $city, $district, $street] = ((array)$data['area']) + [null, null, null, null];
|
[$province, $city, $district, $street, $village, $brigade] = ((array)$data['area']) + [null, null, null, null, null, null];
|
||||||
$last = $street ?? $district ?? $city ?? $province;
|
$last = $village ?? $street ?? $district ?? $city ?? $province;
|
||||||
if (!$last) {
|
if (!$last) {
|
||||||
throw new ValidateException('请选择正确的收货地址');
|
throw new ValidateException('请选择正确的收货地址');
|
||||||
}
|
}
|
||||||
$make = app()->make(CityAreaRepository::class);
|
if (!$this->repository->villageExists('village_code', $last['code'])) {
|
||||||
if (!$make->existsWhere(['id' => $last['id'], 'snum' => 0])) {
|
throw new ValidateException('地址信息错误');
|
||||||
throw new ValidateException('请手动选择所在地区');
|
|
||||||
}
|
}
|
||||||
if ($make->search([])->where('id', 'in', array_column($data['area'], 'id'))->count() !== count($data['area'])) {
|
|
||||||
throw new ValidateException('请选择正确的收货地址');
|
|
||||||
}
|
|
||||||
|
|
||||||
$data['province'] = $province['name'];
|
$data['province'] = $province['name'];
|
||||||
$data['province_id'] = $province['id'];
|
$data['province_id'] = $province['id'];
|
||||||
$data['city'] = $city['name'];
|
$data['city'] = $city['name'];
|
||||||
@ -149,6 +144,14 @@ class UserAddress extends BaseController
|
|||||||
$data['street'] = $street['name'];
|
$data['street'] = $street['name'];
|
||||||
$data['street_id'] = $street['id'];
|
$data['street_id'] = $street['id'];
|
||||||
}
|
}
|
||||||
|
if (isset($village)) {
|
||||||
|
$data['village'] = $village['name'];
|
||||||
|
$data['village_id'] = $village['id'];
|
||||||
|
}
|
||||||
|
if (isset($brigade)) {
|
||||||
|
$data['brigade'] = $brigade['name'];
|
||||||
|
$data['brigade_id'] = $brigade['id'];
|
||||||
|
}
|
||||||
unset($data['area']);
|
unset($data['area']);
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user