Address.php 3.78 KB
<?php

namespace Home;

use LibModels\Web\Home\AddressData;

/**
 * 个人中心-地址管理相关业务逻辑处理
 */
class AddressModel
{
    /*
     * 个人中心-地址管理列表
     * 
     * @param int $uid 用户ID
     * @return array|mixed 处理之后的返回数据
     * 
     */

    public static function addressList($uid)
    {
        $result = array();
        // 调用接口获取地址数据
        $address = AddressData::addressData($uid, 10);
        // 地址数据整合
        if (isset($address['data']) && !empty($address['data'])) {
            foreach ($address['data'] as $key => $val) {
                $result[$key]['id'] = isset($val['address_id']) ? $val['address_id'] : ''; //地址唯一标识ID
                $result[$key]['addressee'] = isset($val['consignee']) ? $val['consignee'] : ''; //收货人姓名
                $zip_code = (isset($val['zip_code']) || !empty($val['zip_code'])) ? $val['zip_code'] : '';
                $result[$key]['address'] = $val['area'] . $val['address'] . ' ' . $zip_code; //地区,地址,邮编
                $phone = (isset($val['phone']) || !empty($val['phone'])) ? $val['phone'] : '';
                $mobile = (isset($val['mobile']) || !empty($val['mobile'])) ? substr_replace($val['mobile'], '****', 3, 4) : '';
                $result[$key]['phone'] = $mobile . ' ' . $phone; //手机号码,固定电话
                $result[$key]['isPreferred'] = $val['is_default'] == 'Y' ? 'true' : ''; //默认地址
            }
        }
        return $result;
    }

    /**
     * 设置默认地址
     *
     * @param int $uid 用户ID
     * @param int $id 地址唯一标识符id
     * @return array|mixed 处理之后的返回数据
     */
    public static function setDefaultAddress($uid, $id)
    {
        $result = array('code' => 400, 'message' => '数据返回错误');
        // 调用接口设置默认地址
        $address = AddressData::setDefaultAddress($uid, $id);
        // 处理返回结果
        if ($address && isset($address['code'])) {
            $result = $address;
        }

        return $result;
    }

    /**
     * 根据用户id和地址id获取地址数据
     *
     * @param int $uid 用户ID
     * @param int $id 地址ID
     * @return array|mixed 地址数据
     */
    public static function getAddressDataById($uid, $id)
    {
        $result = array('code' => '', 'data' => array());
        // 调用接口获取地址数据
        $address = AddressData::addressData($uid);
        $result['code'] = isset($address['code']) ? $address['code'] : '';
        // 获取该用户对应的地址id数据
        if (isset($address['data']) && !(empty($address['data']))) {
            foreach ($address['data'] as $val) {
                if ($val['address_id'] == $id) {
                    $result['data'] = $val;
                    break;
                }
            }
        }
        return $result;
    }

    /**
     * 地址管理——联动地址数据
     * @param type $parentId
     * @return type
     */
    public static function provincesListInfo($parentId = 0)
    {
        //调用接口获取省市区信息
        $addressInfo = AddressData::getProviceCityInfo($parentId);
        $result = array('code' => '', 'options' => array());
        //返回信息整合
        $result['code'] = $addressInfo['code'];
        if ($addressInfo['data']) {
            foreach ($addressInfo['data'] as $key => $val) {
                $result['options'][] = array(
                    'value' => $val['id'],
                    'text' => $val['caption'],
                    'is_support' => $val['is_support_express'],
                );
            }
        }
        return $result;
    }

}