'收货人', 'mobile' => '联系电话', 'province_id' => '所在地区', 'city_id' => '所在地区', 'district_id' => '所在地区', 'detail' => '详细地址', 'latitude' => '地址纬度', 'longitude' => '地址经度', ]; } public function save() { if (!$this->validate()) { return [ 'code' => 1, 'msg' => $this->getErrorSummary(false)[0], ]; } $store_mobile_verify = Option::get(OptionSetting::STORE_MOBILE_VERIFY, get_store_id(), 'store', '')['value']; $option = Option::get(OptionSetting::STORE_MOBILE_VERIFY, get_store_id(), 'reg', $store_mobile_verify); if ($option['value']) { if (strlen($this->mobile) != 11) { return [ 'code' => 1, 'msg' => '请输入正确的手机号' ]; } } if ($this->is_default) { Address::updateAll(['is_default' => 0], ['user_id' => $this->user_id]); } $address = Address::findOne([ 'id' => $this->address_id, 'is_delete' => 0, 'user_id' => $this->user_id ]); if (!$address) { $address = new Address(); $address->store_id = $this->store_id; $address->user_id = $this->user_id; $address->is_delete = Address::DELETE_STATUS_FALSE; $address->addtime = time(); } $address->name = trim($this->name); $address->mobile = $this->mobile; $address->detail = trim($this->detail); $province = District::findOne($this->province_id); if (!$province) { return [ 'code' => 1, 'msg' => '省份数据错误,请重新选择', ]; } $address->province_id = $province->id; $address->province = $province->name; $city = District::findOne($this->city_id); if (!$city) { return [ 'code' => 1, 'msg' => '城市数据错误,请重新选择', ]; } $address->city_id = $city->id; $address->city = $city->name; $district = District::findOne($this->district_id); if (!$district) { return [ 'code' => 1, 'msg' => '地区数据错误,请重新选择', ]; } $address->district_id = $district->id; $address->district = $district->name; $address->longitude = $this->longitude ?: $district->lng; $address->latitude = $this->latitude ?: $district->lat; $address->is_default = $this->is_default ? 1 : 0; if ($address->save()) { return [ 'code' => 0, 'msg' => '保存成功', 'data' => [ 'address_id' => $address->attributes['id'] ] ]; } else { foreach ($address->errors as $error) { return [ 'code' => 1, 'msg' => $error[0], ]; } } } }