ListData.php 4.68 KB
<?php

namespace LibModels\Web\Guang;

use Api\Sign;
use Api\Yohobuy;

/**
 * 逛首页列表相关的数据模型
 *
 * @name ListData
 * @package LibModels/Web/Guang
 * @copyright yoho.inc
 * @version 1.0 (2015-10-10 9:54:07)
 * @author fei.hong <fei.hong@yoho.cn>
 */
class ListData
{
    const URI_CATEGORY = 'guang/api/v1/category/get';
    const URI_ARTICLELIST = 'guang/api/v2/article/getList';
    const URI_GETAUTHOR = 'guang/service/v1/author/getAuthor';

    /**
     * 逛分类
     *
     * 备注: id (0:最新,1:话题,2:搭配,3:潮人,4:潮品,5:小贴士)
     *
     * @return array
     */
    public static function category()
    {
        $param = Yohobuy::param();
        $param['client_secret'] = Sign::getSign($param);

        return Yohobuy::get(SERVICE_URL . self::URI_CATEGORY, $param, 3600); // 有缓存1小时
    }

    /**
     * 逛内容列表
     *
     * @param string $gender "1,3"表示男, "2,3"表示女, "1,2,3"表示所有
     * @param int $sortId 分类ID
     * @param int $uid 用户ID
     * @param string $udid 客户端唯一标识
     * @param int $page 分页第几页, 默认第1页
     * @param string $tag 标签
     * @param int $authorId 作者ID
     * @param int $limit 返回的限制数
     * @param bool $useCache 是否使用缓存
     * @return array
     */
    public static function article($gender, $sortId, $uid = 0, $udid = '', $page = 1, $tag = null, $authorId = null, $limit = null, $useCache = false)
    {
        $param = Yohobuy::param();
        $param['gender'] = $gender;
        $param['page'] = $page;
        $param['uid'] = $uid;
        $param['udid'] = $udid;
        if (isset($sortId)) {
            $param['sort_id'] = $sortId;
        }
        if (!empty($tag)) {
            $param['tag'] = $tag;
        }
        if (isset($authorId) && is_numeric($authorId)) {
            $param['author_id'] = $authorId;
        }
        if (isset($limit)) {
            $param['limit'] = $limit;
        }
        $param['client_type'] = "web";
        $param['private_key'] = Yohobuy::$privateKeyList['web'];
        $param['client_secret'] = Sign::getSign($param);

        $cache = $useCache ? 300 : false;

        return Yohobuy::get(SERVICE_URL . self::URI_ARTICLELIST, $param, $cache);  // 缓存5分钟
    }

    /**
     * 根据分类进行分组的逛内容列表
     *
     * @param array $category 分类
     * @param string $gender "1,3"表示男, "2,3"表示女
     * @param int $uid 用户ID
     * @param string $udid 客户端唯一标识
     * @param int $page 分页第几页, 默认第1页
     * @return array
     */
    public static function articleGroup($category, $gender, $uid = 0, $udid, $page = 1)
    {
        $urlList = array();
        $param = array();

        foreach ($category as $value) {
            $param = Yohobuy::param();
            $param['gender'] = $gender;
            $param['page'] = $page;
            $param['sort_id'] = $value['id'];
            $param['uid'] = $uid;
            $param['udid'] = $udid;
            $param['client_secret'] = Sign::getSign($param);

            $urlList[$value['id']] = Yohobuy::httpBuildQuery(SERVICE_URL . self::URI_ARTICLELIST, $param);
        }

        return Yohobuy::getMulti($urlList);
    }

    /**
     * 获取作者信息
     *
     * @param int $id 作者ID
     * @return array
     */
    public static function author($id)
    {
        $result = array();
        if (is_numeric($id)) {
//            $result = Yohobuy::yarClient(SERVICE_URL . self::URI_AUTHOR, 'getAuthor', array($id), 3600); // 缓存1小时
            $param = Yohobuy::param();
            $param['author_id'] = $id;
            $param['client_type'] = "web";
            $param['private_key'] = Yohobuy::$privateKeyList['web'];
            $param['client_secret'] = Sign::getSign($param);

            $result = Yohobuy::get(SERVICE_URL . self::URI_GETAUTHOR, $param);  // 缓存1小时
        }
        return $result;
    }

    /**
     * 通过品牌获取相关文章
     * @param type $brandId 品牌id
     * @param type $limit 取推荐内容的数量
     * @param type $udid
     * @return type []
     */
    public static function getArticleByBrand($brandId, $limit, $udid = '')
    {
        $param = Yohobuy::param();
        $param['brand_id'] = $brandId;
        $param['udid'] = $udid;
        $param['limit'] = $limit;
        $param['private_key'] = Yohobuy::$privateKeyList['web'];
        $param['client_secret'] = Sign::getSign($param);

        return Yohobuy::get(SERVICE_URL . 'guang/service/v2/article/getArticleByBrand', $param);
    }
}