1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?php
- // +----------------------------------------------------------------------
- // | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2017~2021 https://www.yiovo.com All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
- // +----------------------------------------------------------------------
- // | Author: 萤火科技 <admin@yiovo.com>
- // +----------------------------------------------------------------------
- declare (strict_types = 1);
- namespace app\common\model\store;
- use app\common\model\BaseModel;
- use app\common\model\chef\ChefAreas as RegionModel;
- /**
- * 商家地址模型
- * Class Address
- * @package app\common\model\store
- */
- class Address extends BaseModel
- {
- // 定义表名
- protected $name = 'store_address';
- // 定义主键
- protected $pk = 'address_id';
- /**
- * 追加字段
- * @var array
- */
- protected $append = ['cascader', 'region', 'full_address'];
- /**
- * 省市区id集
- * @param $value
- * @param $data
- * @return array
- */
- public function getCascaderAttr($value, $data)
- {
- return [$data['province_id'], $data['city_id'], $data['region_id']];
- }
- /**
- * 省市区名称集
- * @param $value
- * @param $data
- * @return array
- */
- public function getRegionAttr($value, $data)
- {
- return $this->getRegionNames($data);
- }
- /**
- * 获取完整地址
- * @return string
- */
- public function getFullAddressAttr($value, $data)
- {
- $rgionNames = $this->getRegionNames($data);
- return "{$rgionNames['province']}{$rgionNames['city']}{$rgionNames['region']}{$data['detail']}";
- }
- /**
- * 获取省市区名称
- * @param array $data
- * @return mixed
- */
- private function getRegionNames(array $data)
- {
- static $dataset = [];
- $id = $data[$this->getPk()];
- if (!isset($dataset[$id])) {
- $dataset[$id] = [
- 'province' => RegionModel::getNameById($data['province_id']),
- 'city' => RegionModel::getNameById($data['city_id']),
- 'region' => RegionModel::getNameById($data['region_id']),
- ];
- }
- return $dataset[$id];
- }
- /**
- * 详情记录
- * @param int $addressId
- * @return null|static
- */
- public static function detail(int $addressId)
- {
- return self::get($addressId);
- }
- }
|