Dao.php 4.3 KB
<?php

/**
 * User: elkan
 * Date: 14-7-29
 * Time: 下午3:49
 * To change this template use File | Settings | File Templates.
 */
use YHMDelivery\SqlMap\Delivery;

class YHMDelivery_Models_Delivery_Dao extends YHMDelivery_Dao
{

    private $_tag = 'passport_delivery_';

    public function __construct()
    {
        $this->router = 'delivery.yhm_passport';
    }

    /**
     * 查看用户收获地址
     * @param int $uid
     * @return array
     */
    function getUserDelivery($uid)
    {
        return $this->dao()->tag($this->_tag . $uid)->key('getUserDelivery')->fetchAssoc(Delivery\Delivery::SELECT_USER_DELIVERY_ADDRESS, array("uid" => $uid));
    }

    /**
     * 添加收获地址
     * @param int $uid
     * @param string $delivery_name
     * @param int $area_code
     * @param string $address
     * @param int $zip_code
     * @param int $telphone
     * @param int $is_default
     * @return int
     */
    function add($uid, $delivery_name, $area_code, $address, $zip_code, $telphone, $is_default)
    {
        return $this->dao()->tag($this->_tag . $uid)->insert(Delivery\Delivery::INSERT_DELIVERY, array(
            "uid" => $uid,
            "delivery_name" => $delivery_name,
            "area_code" => $area_code,
            "address" => $address,
            "zip_code" => $zip_code,
            "telphone" => $telphone,
            "is_default" => $is_default
        ))->lastInsertId();
    }

    /**
     * 检测是否有默认地址
     * @param int $uid
     * @return int
     */
    function isDefault($uid)
    {
        return $this->dao()->tag($this->_tag . $uid)->fetchRow(Delivery\Delivery::SELECT_USER_DEFAULT_ADDRESS, array("uid" => $uid));
    }

    /**
     * 先修改原本的默认地址
     * @param int $id
     * @param int $uid
     * @return
     */
    function updateEmptyDefaultAddress($uid)
    {
        return $this->dao()->tag($this->_tag . $uid)->update(Delivery\Delivery::UPDATE_USER_OLD_DEFAULT_ADDRESS, array("uid" => $uid));
    }

    /**
     * 修改用户默认地址
     * @param int $id
     * @param int $uid
     * @return
     */
    function updateUserDefaultAddress($id, $uid)
    {
        return $this->dao()->tag($this->_tag . $uid)->update(Delivery\Delivery::UPDATE_USER_DEFAULT_ADDRESS, array("id" => $id, "uid" => $uid));
    }

    /**
     * 删除用户收获地址
     * @param int $id
     * @param int $uid
     * @return type
     */
    function deleteDefaultAddress($id, $uid)
    {
        return $this->dao()->tag($this->_tag . $uid)->delete(Delivery\Delivery::DELETE_USER_DEFAULT_ADDRESS, array(
            "id" => $id,
            "uid" => $uid
        ))->rowCount();
    }

    /**
     * 修改用户地址信息
     * @param int $id
     * @param int $uid
     * @param string $delivery_name
     * @param int $area_code
     * @param string $address
     * @param int $zip_code
     * @param int $telphone
     * @param int $is_default
     * @param int $uid
     * @return
     */
    function updateDeliveryAddress($id, $uid, $delivery_name, $area_code, $address, $zip_code, $telphone, $is_default)
    {
        return $this->dao()->tag($this->_tag . $uid)->update(Delivery\Delivery::UPDATE_DELIVERY_ADDRESS_BY_ID, array(
                "id" => $id,
                "delivery_name" => $delivery_name,
                "area_code" => $area_code,
                "address" => $address,
                "zip_code" => $zip_code,
                "telphone" => $telphone,
                "is_default" => $is_default)
        );
    }

    /**
     * 获取用户默认地址
     * @param int $uid
     * @return type
     */
    function getDefaultDeliveryByUid($uid)
    {
        return $this->dao()->tag($this->_tag . $uid)->key('getDefaultDeliveryByUid')->fetchRow(Delivery\Delivery::SELECT_DEFAULT_DELIVERY_BY_UID, array('uid' => $uid));
    }

    /**
     * 取最近的一条收货地址
     * @param type $uid
     * @return type
     */
    function getDeliveryByUid($uid)
    {
        return $this->dao()->tag($this->_tag . $uid)->key('getDeliveryByUid')->fetchRow(Delivery\Delivery::SELECT_DELIVERY_BY_UID, array('uid' => $uid));
    }

    /**
     * 通过id获取地区
     * @param type $id
     */
    function getDeliveryById($id)
    {
        return $this->dao()->cache(false)->fetchRow(Delivery\Delivery::SELECT_DELIVERY_BY_ID, array('id' => $id));
    }
}