更新保存用户地址
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\model\store\GeoVillage;
|
||||
use app\common\model\user\UserAddress as model;
|
||||
|
||||
class UserAddressDao extends BaseDao
|
||||
@ -30,6 +31,10 @@ class UserAddressDao extends BaseDao
|
||||
return model::class;
|
||||
}
|
||||
|
||||
public function villageExists($field, $value): bool
|
||||
{
|
||||
return ((GeoVillage::getDB())->where($field,$value)->count()) > 0;
|
||||
}
|
||||
|
||||
public function userFieldExists($field, $value,$uid): bool
|
||||
{
|
||||
|
@ -38,7 +38,7 @@ class CityAreaRepository extends BaseRepository
|
||||
{
|
||||
return $this->searchGeo($where)->select();
|
||||
}
|
||||
|
||||
|
||||
public function getBrigade($where)
|
||||
{
|
||||
return $this->searchBrigade($where)->select();
|
||||
|
@ -52,6 +52,17 @@ class UserAddressRepository extends BaseRepository
|
||||
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
|
||||
* @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']);
|
||||
$validate->check($data);
|
||||
[$province, $city, $district, $street] = ((array)$data['area']) + [null, null, null, null];
|
||||
$last = $street ?? $district ?? $city ?? $province;
|
||||
[$province, $city, $district, $street, $village, $brigade] = ((array)$data['area']) + [null, null, null, null, null, null];
|
||||
$last = $village ?? $street ?? $district ?? $city ?? $province;
|
||||
if (!$last) {
|
||||
throw new ValidateException('请选择正确的收货地址');
|
||||
}
|
||||
$make = app()->make(CityAreaRepository::class);
|
||||
if (!$make->existsWhere(['id' => $last['id'], 'snum' => 0])) {
|
||||
throw new ValidateException('请手动选择所在地区');
|
||||
if (!$this->repository->villageExists('village_code', $last['code'])) {
|
||||
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_id'] = $province['id'];
|
||||
$data['city'] = $city['name'];
|
||||
@ -149,6 +144,14 @@ class UserAddress extends BaseController
|
||||
$data['street'] = $street['name'];
|
||||
$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']);
|
||||
return $data;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user