DetailData.php 3.6 KB
<?php

namespace LibModels\Wap\Product;

use Api\Sign;
use Api\Yohobuy;

/**
 * 商品详情相关的数据模型
 * 
 * @name DetailData
 * @package LibModels/Wap/Product
 * @copyright yoho.inc
 * @version 1.0 (2015-10-8 11:51:32)
 * @author fei.hong <fei.hong@yoho.cn>
 */
class DetailData
{

    const PRODUCT_BASE_INFO = 'product/queryProductDetailByProductId';
    const PRODUCT_SIZE_INFO = 'product/queryProductIntroBySkn';
    const PRODUCT_CONSULT_LIST = 'consult/queryConsults';
    const PRODUCT_COMMENT_LIST = 'sns/comments/commentList';

    /**
     * 商品基本信息
     * 
     * @param int $productId 商品ID
     * @param int $uid 用户ID
     * @return array
     */
    public static function baseInfo($productId, $uid)
    {
        $param = Yohobuy::param();
        $param['method'] = 'h5.product.data';
        $param['product_id'] = $productId;
        $param['uid'] = $uid;
        $param['client_secret'] = Sign::getSign($param);
        
        return Yohobuy::post(Yohobuy::API_URL, $param);
        
//        return Yohobuy::jsonPost(Yohobuy::API_URL_PRODUCTDETAIL . self::PRODUCT_BASE_INFO, array(
//                    'param' => intval($productId), 'userId' => intval($uid)
//                ));
    }

    /**
     * 商品尺码信息
     * 
     * @param int $productSkn 商品SKN号
     * @return array
     */
    public static function sizeInfo($productSkn)
    {
        return Yohobuy::jsonPost(Yohobuy::API_URL_PRODUCTDETAIL . self::PRODUCT_SIZE_INFO, array('param' => intval($productSkn)));
    }

    /**
     * 咨询内容列表
     * 
     * @param int $productId 产品ID
     * @param int $pageNum 页码数
     * @param int $pageSize 每页显示个数
     * @return array
     */
    public static function consultList($productId, $pageNum, $pageSize)
    {
        return Yohobuy::jsonPost(Yohobuy::API_URL_PRODUCTDETAIL . self::PRODUCT_CONSULT_LIST, array(
                    'productId' => intval($productId),
                    'pageNum' => intval($pageNum),
                    'pageSize' => intval($pageSize),
                ));
    }

    /**
     * 评论内容列表
     * 
     * @param int $productId 产品ID
     * @param int $pageNum 页码数
     * @param int $pageSize 每页显示个数
     * @return array
     */
    public static function commentList($productId, $pageNum, $pageSize)
    {
        return Yohobuy::jsonPost(Yohobuy::API_URL_PRODUCTDETAIL . self::PRODUCT_COMMENT_LIST, array(
                    'productId' => intval($productId),
                    'pageNum' => intval($pageNum),
                    'pageSize' => intval($pageSize),
                ));
    }

    /**
     * 为你优选的商品列表
     * 
     * @todo 需要替换成JAVA接口
     * @param int $productSkn 商品SKN号
     * @return array
     */
    public static function preference($productSkn)
    {
        $param = Yohobuy::param();
        $param['method'] = 'app.product.topreference';
        $param['product_skn'] = $productSkn;
        $param['client_secret'] = Sign::getSign($param);

        return Yohobuy::get(Yohobuy::API_URL, $param, 3600); // 缓存1小时
    }

    /**
     * 添加咨询
     * 
     * @param int $uid 用户ID
     * @param int $productId 商品ID
     * @return array
     */
    public static function addConsult($uid, $productId, $content)
    {
        $param = Yohobuy::param();
        $param['method'] = 'app.consult.add';
        $param['product_id'] = $productId;
        $param['content'] = $content;
        $param['uid'] = $uid;
        $param['client_secret'] = Sign::getSign($param);

        return Yohobuy::get(Yohobuy::API_URL, $param); 
    }

}