cxfoot/models/common/CommonAddressEditForm.php
2023-10-24 14:54:18 +08:00

146 lines
4.6 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* @author Any
* @description KISS
* @date 2021年6月1日
* @version 1.0.0
*
* _____LOG_____
*
*/
namespace app\models\common;
use app\models\Address;
use app\models\District;
use app\models\Model;
class CommonAddressEditForm extends Model
{
public $model;
public $cx_mch_id;
public $user_id;
public $name;
public $mobile;
public $province_id;
public $city_id;
public $district_id;
public $town_id;
public $detail;
public $formatted_addr;
public $is_default;
public $lat;
public $lng;
public $gender;
public $tag;
public function rules()
{
return [
[['name', 'mobile', 'formatted_addr', 'detail'], 'trim'],
[['name', 'mobile', 'formatted_addr', 'detail'], 'string'],
[['province_id', 'city_id', 'district_id', 'town_id', 'gender', 'tag', 'is_default'], 'integer'],
[['lat', 'lng'], 'number'],
[['gender', 'tag', 'is_default'], 'default', 'value' => 0],
[['gender'], 'in', 'range' => [0,1,2,3]],
[['tag'], 'in', 'range' => [0,1,2,3,4]],
[['model', 'user_id', 'cx_mch_id', 'province_id', 'city_id', 'district_id', 'detail', 'lat', 'lng', ], 'required']
];
}
public function attributeLabels()
{
return [
'cx_mch_id' => '平台商户ID',
'user_id' => '用户ID',
'name' => '姓名',
'mobile' => '手机号',
'province_id' => '省ID',
'province' => '省',
'city_id' => '市ID',
'city' => '市',
'district_id' => '区ID',
'district' => '区',
'town_id' => '镇id',
'town' => '镇',
'detail' => '详细地址',
'formatted_addr' => '可读地址',
'is_default' => '是否默认0=否1=是',
'lat' => '纬度',
'lng' => '经度',
'gender' => '性别0=未知1=男2=女3=保密',
'tag' => '标签0=未知1=家2=公司3=学校4=其他',
];
}
public function save()
{
if(!$this->validate()){
return $this->getModelError();
}
$t = \Yii::$app->db->beginTransaction();
if($this->model->isNewRecord){
$this->model->cx_mch_id = $this->cx_mch_id;
$this->model->user_id = $this->user_id;
$this->model->is_delete = 0;
}
$this->model->name = $this->name;
$this->model->mobile = $this->mobile;
$province = District::getDistrict($this->province_id);
if(!$province){
return $this->apiReturnError("无效省ID");
}
$this->model->province_id = $this->province_id;
$this->model->province = $province['name'];
$city = District::getDistrict($this->city_id);
if(!$city){
return $this->apiReturnError("无效城市ID");
}
$this->model->city_id = $this->city_id;
$this->model->city = $city['name'];
$district = District::getDistrict($this->district_id);
if(!$district){
return $this->apiReturnError("无效区/县ID");
}
$this->model->district_id = $this->district_id;
$this->model->district = $district['name'];
if(!empty($this->town_id)){
$town = District::find()
->where(['id' => $this->town_id, 'is_delete' => 0])
->select('id,name,level,parent_id')
->asArray()->one();
if($town == null)
return $this->apiReturnError("无效镇/街道ID");
$this->model->town_id = $this->town_id;
$this->model->town = $town['name'];
}
$this->model->detail = $this->detail;
$this->model->formatted_addr = $this->formatted_addr;
if($this->is_default == 1){
//取消默认
Address::updateAll(['is_default' => 0],[
'is_delete' => 0,
'user_id' => $this->user_id,
'cx_mch_id' => $this->cx_mch_id
]);
}
$this->model->is_default = $this->is_default;
$this->model->lat = $this->lat;
$this->model->lng = $this->lng;
$this->model->gender = $this->gender;
$this->model->tag = $this->tag;
if(!$this->model->save()){
$t->rollBack();
return $this->getModelError($this->model);
}
$t->commit();
return $this->apiReturnSuccess("保存成功");
}
}