255], [['detail'], 'string', 'max' => 1000], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'user_id' => 'User ID', 'name' => '收货人', 'province_id' => 'Province ID', 'province' => '省份名称', 'city_id' => 'City ID', 'city' => '城市名称', 'district_id' => 'District ID', 'district' => '县区名称', 'town_id' => '镇ID', 'town' => '镇', 'mobile' => '联系电话', 'detail' => '详细地址', 'is_default' => '是否默认', 'status' => '状态[-1:删除;0:禁用;1启用]', 'created_at' => '创建时间', 'updated_at' => 'Updated At', 'latitude' => '经度', 'longitude' => '纬度', 'location' => '位置', ]; } /** * 保存数据 * @param array $params * @return bool|UserAddress * @throws \yii\db\Exception */ public static function setData(array $params){ $t = \Yii::$app->db->beginTransaction(); try{ if(!empty($params['id'])){ $model = self::findOne(['id' => $params['id'],'status'=>[StatusEnum::ENABLED,StatusEnum::DISABLED]]); if(empty($model)) throw new Exception('服务不存在或已删除'); }else{ $model = new self(); $model->loadDefaultValues(); } if(!empty($params['is_default'])){ $old = self::getOne([['user_id'=>$params['user_id']],['is_default'=>1]]); if($old&&$old->id!=$params['id']){ $old->is_default = 0; $old->save(); } } $params['town'] = $params['town']??''; $params['town_id'] = !empty($params['town_id'])?$params['town_id']:'0'; $params['community_id'] = !empty($params['community_id'])?$params['community_id']:'0'; $params['community'] = !empty($params['community'])?$params['community']:''; if (!$model->load($params, '') || !$model->save()) throw new Exception($model->getErrorMessage()); $t->commit(); return $model; }catch(Exception $e){ self::$static_error = $e->getMessage(); $t->rollBack(); return false; } } /** * 获取用户收货地址 * @Author bing * @DateTime 2021-10-21 17:37:10 * @copyright: Copyright (c) 2020 广东七件事集团 * @param [type] $user_id * @return void */ public static function getUserAddress($user_id,$address_id=0){ $default_cond = [['status'=>StatusEnum::ENABLED,'user_id'=>$user_id]]; if($address_id > 0){ $cond = array_merge($default_cond,[['id'=>$address_id]]); return self::getOne($cond,true,[],false,'id,name,mobile,province,city,district,town,detail,community,province_id,city_id,district_id,latitude,longitude'); }else{ $result = []; //有默认地址取默认地址,没有取第一个 $list = self::lists([ 'where'=>$default_cond, 'select'=>'id,name,mobile,province,city,district,town,detail,is_default,community,province_id,city_id,district_id,latitude,longitude', 'order'=>'is_default desc,id asc', 'offset'=>0, 'limit'=>2 ],true); foreach ($list as $item){ if($item['is_default']){ $result=$item; break; } } if(empty($result)&&!empty($list)) $result=$list[0]; return $result; } } }