Address.php 7.16 KB
<?php

use Action\WebAction;
use WebPlugin\Helpers;
use Home\UserModel;
use Home\AddressModel;
use LibModels\Web\Home\AddressData;

/**
 * 个人中心——地址管理
 */
class AddressController extends WebAction
{
    /**
     * 地址管理列表
     */
    public function indexAction()
    {
        //判断是否登录
        $uid = $this->auditJumpLogin();

        //头部导航
        $channel = Helpers::getChannelNameByCookie();
        $this->setWebNavHeader($channel);
        //面包屑-左侧导航
        $path = UserModel::getCenterCrumb('地址管理');
        $leftNav = UserModel::getCenterLeftNav('地址管理');
        //获取地址列表信息
        $addressList = AddressModel::addressList($uid);
        //用户信息
        $data = array(
            'path' => $path,
            'homeNav' => $leftNav,
            'userThumb' => UserModel::getUserHeadImg($uid),
            'submitId' => 'address-info',
            'addressList' => $addressList,
            'data' => array(
                array(
                    'key' => 'addressName',
                    'labelText' => '收货人姓名:',
                    'value' => '',
                    'tips' => '请输入收货人姓名'
                ),
                array(
                    'isSelect' => true,
                    'labelText' => '省份:',
                    'tips' => '注:标"*"的为支持货到付款的地区',
                    'tipsUrl' => '/help/?category_id=48',
                    'selects' => array(
                        array(
                            'key' => 'province'
                        ),
                        array(
                            'key' => 'city'
                        ),
                        array(
                            'key' => 'areaCode'
                        )
                    )
                ),
                array(
                    'key' => 'address',
                    'labelText' => '地址:',
                    'value' => '',
                    'tips' => '请填写详细地址'
                ),
                array(
                    'key' => 'zipCode',
                    'labelText' => '邮编:',
                    'value' => '',
                    'tips' => '请输入收货人所在地邮编号'
                ),
                array(
                    'key' => 'phone',
                    'labelText' => '固定电话:',
                    'value' => '',
                    'tips' => '请输入你的联系电话,可以为空哦'
                ),
                array(
                    'key' => 'mobile',
                    'labelText' => '手机号码:',
                    'value' => '',
                    'tips' => '填写手机号便于接收发货和收货通知'
                ),
                array(
                    'key' => 'email',
                    'labelText' => '电子邮件:',
                    'value' => '',
                    'tips' => '用来接收订单提醒邮件,便于您及时了解订单状态'
                )
            )
        );

        $this->_view->display('address', array(
            'address' => $data,
            'meAddressPage' => true
        ));
    }

    /**
     * 设置默认地址
     */
    public function defaultAddressAction()
    {
        $result = array('code' => 400, 'message' => '', 'data' => '');

        do {
            /* 判断是不是AJAX请求 */
            if (!$this->isAjax()) {
                break;
            }
            //获取相关参数
            $uid = $this->getUid(true);
            $id = $this->get('id', '');
            if (!$uid || !$id) {
                $result = array('code' => 400, 'message' => '缺失必填项', 'data' => '');
                break;
            }
            $result = AddressData::setDefaultAddress($uid, $id);
            if (!isset($result['code'])) {
                break;
            }
        }
        while (false);

        $this->echoJson($result);
    }

    /**
     * 获取省市区信息
     */
    public function areaAction()
    {
        $result = array('code' => 400, 'message' => '', 'data' => '');
        if ($this->isAjax()) {
            $areaCode = $this->get('id', '');
            $result = AddressModel::provincesListInfo($areaCode);
        }
        if (empty($result)) {
            $result = array('code' => 400, 'message' => '无数据返回', 'data' => '');
        }
        else {
            $this->echoJson($result);
        }
    }

    /**
     * 编辑修改地址
     */
    public function editAddressAction()
    {
        $result = array('code' => 400, 'message' => '', 'data' => '');
        if ($this->isAjax()) {
            $id = $this->get('id', null);
            $uid = $this->getUid(true);
            if ($id !== null) { // 编辑地址
                // 获取特定地址的数据
                $result = AddressModel::getAddressDataById($uid, $id);
            }
        }
        if (empty($result)) {
            $result = array('code' => 400, 'message' => '无数据返回', 'data' => '');
        }
        else {
            $this->echoJson($result);
        }
    }

    /**
     * 添加保存地址
     */
    public function saveAddressAction()
    {
        $result = array('code' => 400, 'message' => '', 'data' => '');

        do {
            /* 判断是不是AJAX请求 */
            if (!$this->isAjax()) {
                break;
            }
            //获取相关参数
            $uid = $this->getUid(true);
            $address = trim($this->post('address', ''));
            $areaCode = trim($this->post('areaCode', ''));
            $consignee = trim($this->post('addressName', ''));
            $email = trim($this->post('email', ''));
            $id = $this->post('addrId', null);
            $mobile = trim($this->post('mobile', ''));
            $phone = trim($this->post('phone', ''));
            $zipCode = trim($this->post('zipCode', ''));

            if (!$uid || !$address || !$areaCode || !$consignee || !$email || !$zipCode) {
                $result = array('code' => 400, 'message' => '缺失必填项', 'data' => '');
                break;
            }
            $result = AddressData::saveAddressData($uid, $address, $areaCode, $consignee, $email, $id, $mobile, $phone, $zipCode);
            if (!isset($result['code'])) {
                break;
            }
        }
        while (false);

        $this->echoJson($result);
    }

    /**
     * 删除地址
     */
    public function delAddressAction()
    {
        $result = array('code' => 400, 'message' => '', 'data' => '');

        do {
            /* 判断是不是AJAX请求 */
            if (!$this->isAjax()) {
                break;
            }
            //获取相关参数
            $uid = $this->getUid(true);
            $id = $this->get('id', '');
            if (!$uid || !$id) {
                $result = array('code' => 400, 'message' => '缺失必填项', 'data' => '');
                break;
            }
            $result = AddressData::deleteAddress($uid, $id);
            if (!isset($result['code'])) {
                break;
            }
        }
        while (false);

        $this->echoJson($result);
    }

}