* @version : HUOSDK 8.0 */ namespace huo\controller\address; use huo\controller\common\Base; use huo\model\address\MemAddressModel; use huo\model\shop\RegionModel; use huolib\status\CommonStatus; class Address extends Base { /** * 获取地址列表 * * @param int $parent_id * * @return array */ public function getRegionData($parent_id = 0) { $_code = CommonStatus::NO_ERROR; $_data = (new RegionModel())->getRegionData($parent_id); if (false == $_data) { $_code = CommonStatus::INNER_ERROR; return $this->huoError($_code, CommonStatus::getMsg($_code)); } return $this->huoSuccess($_code, CommonStatus::getMsg($_code), $_data); } public function addAddress($address) { $_data['mem_id'] = get_val($address, 'mem_id', 0); $_data['consignee'] = get_val($address, 'consignee', ''); $_data['country'] = get_val($address, 'country', 0); $_data['province'] = get_val($address, 'province', 0); $_data['city'] = get_val($address, 'city', 0); $_data['district'] = get_val($address, 'district', 0); $_data['town'] = get_val($address, 'town', 0); $_data['address'] = get_val($address, 'address', ''); $_data['zipcode'] = get_val($address, 'zipcode', ''); $_data['mobile'] = get_val($address, 'mobile', ''); $_data['is_default'] = get_val($address, 'is_default', ''); $_add_model = new MemAddressModel(); $_res = $_add_model->addData($_data); if ($_data['is_default'] == 2 && false != $_res) {//如果为默认,则设定其他的为非默认 $_add_model->setNoDefaultExcept($_res, $_data['mem_id']); } return $_res; } public function getMemAddress($mem_id) { $_map['mem_id'] = $mem_id; $_map['is_delete'] = 2; $_add_model = new MemAddressModel(); $_count = $_add_model->where($_map)->count(); if ($_count == 0) { return [ 'count' => 0, 'list' => [] ]; } $_list = $_add_model->where($_map)->order('is_default desc,id desc')->select()->toArray(); $_list = $this->conversion($_list); return [ 'count' => $_count, 'list' => $_list ]; } private function conversion($list) { if (empty($list)) { return []; } $_region_list = (new RegionModel())->column('id,name'); foreach ($list as $_key => $_value) { $list[$_key]['province_name'] = isset($_region_list[$_value['province']]) ? $_region_list[$_value['province']] : ''; $list[$_key]['city_name'] = isset($_region_list[$_value['city']]) ? $_region_list[$_value['city']] : ''; $list[$_key]['district_name'] = isset($_region_list[$_value['district']]) ? $_region_list[$_value['district']] : ''; $list[$_key]['town_name'] = isset($_region_list[$_value['town']]) ? $_region_list[$_value['town']] : ''; } return $list; } public function editMemAddress($id, $address) { $_map['id'] = $id; $_mem_id = get_val($address, 'mem_id', ''); $_map['mem_id'] = $_mem_id; $_add_model = new MemAddressModel(); $_count = $_add_model->where($_map)->count(); if ($_count == 0) { return false; } $_data['consignee'] = get_val($address, 'consignee', ''); $_data['country'] = get_val($address, 'country', 0); $_data['province'] = get_val($address, 'province', 0); $_data['city'] = get_val($address, 'city', 0); $_data['district'] = get_val($address, 'district', 0); $_data['town'] = get_val($address, 'town', 0); $_data['address'] = get_val($address, 'address', ''); $_data['zipcode'] = get_val($address, 'zipcode', ''); $_data['mobile'] = get_val($address, 'mobile', ''); $_data['is_default'] = get_val($address, 'is_default', ''); $_res = $_add_model->where($_map)->update($_data); if ($_data['is_default'] == 2) {//如果为默认,则设定其他的为非默认 $_add_model->setNoDefaultExcept($id, $_mem_id); } return $_res; } public function getAddressDetail($id) { if (empty($id)) { return []; } $_detail = (new MemAddressModel())->getInfoById($id); if (empty($_detail)) { return []; } $_list = [ 0 => $_detail, ]; $_list = $this->conversion($_list); return $_list[0]; } public function deleteAddress($id) { $_res = (new MemAddressModel())->deleteData($id); return $_res; } }