<?php

namespace Plugin\DataProcess;

use Plugin\Helpers;

/**
 * 楼层数据处理类
 */
class FloorProcess
{
    /**
     * 频道参数
     * 
     * @var array 
     */
    private static $channel = array(
        '1' => '1,3',
        '2' => '2,3'
    );

    /**
     * 处理首页内容
     * @param $data
     * @param $type 类型 默认1:男首页 2:女首页  3:kids 4:lifestyle
     */
    public static function getContent($data, $type = 1)
    {
        if (empty($data['list'])) {
            return array();
        }

        $result = array();

        $build = array();
        foreach ($data['list'] as $v) {
            $fun = $v['template_name'];
            if (empty($v['data']) || !is_callable("self::$fun")) {
                continue;
            }
            $build = self::$fun($v['data'], $type);
            if (empty($build)) {
                continue;
            }
            $result[] = $build;
        }
        $build = array();

        return $result;
    }

    /**
     * 焦点图数据处理方法
     * @param  array $data 焦点图数据
     * @param $type 类型 默认1:男首页 2:女首页  3:kids 4:lifestyle
     * @return array       处理之后的焦点图数据
     */
    private static function focus($data, $type)
    {
        $result = array();

        foreach ($data as $one) {
            $result['bannerTop']['list'][] = Helpers::formatBanner($one, 640, 240);
        }

        return $result;
    }

    /**
     * 图标
     */
    private static function floor($data)
    {
        $result = array();

        foreach ($data as &$one) {
            $one['url'] = Helpers::getFilterUrl($one['url']);
            $one['img'] = Helpers::getImageUrl($one['src'], 98, 98);
            unset($one['src']);
        }
        $result['iconsEnter']['list'] = $data;

        return $result;
    }

    /**
     * 图标列表数据处理方法
     * 
     * @param  array $data 图标列表数据
     * @param $type 类型 默认1:男首页 2:女首页  3:kids 4:lifestyle
     * @return array       处理之后的图标列表数据
     */
    private static function app_icon_list($data, $type)
    {
        $result = array();

        foreach ($data as &$one) {
            $one['url'] = Helpers::getFilterUrl($one['url']);
            $one['img'] = Helpers::getImageUrl($one['src'], 98, 98);
            unset($one['src']);
        }
        $result['iconsEnter']['list'] = $data;

        return $result;
    }

    /**
     * 单广告图片数据处理方法
     * 
     * @param  array $data 单图片数据
     * @param $type 类型 默认1:男首页 2:女首页  3:kids 4:lifestyle
     * @return array       处理之后的单图片数据
     */
    private static function single_image($data, $type)
    {
        $result = array();

        foreach ($data as &$one) {
            $one['url'] = Helpers::getFilterUrl($one['url']);
            $one['img'] = Helpers::getImageUrl($one['src'], 640, 200);
            unset($one['src']);
        }
        $result['banner'] = $data;

        return $result;
    }

    /**
     * 女生品类
     * 推荐(1T-12F)
     */
    private static function recommend_content_three($data, $type)
    {
        $result = array();

        $build = array();
        if (!empty($data['big_image'][0])) {
            $build['img'] = Helpers::getImageUrl($data['big_image'][0]['src'], 640, 200);
            $build['url'] = Helpers::getFilterUrl($data['big_image'][0]['url']);
            $result['hotCategory']['banner'] = $build;
        }

        $build = array();
        foreach ($data['list'] as $one) {
            $build['url'] = Helpers::getFilterUrl($one['url']);
            $build['img'] = Helpers::getImageUrl($one['src'], 128, 140);
            $build['textCn'] = $one['title'];
            $result['hotCategory']['list'][] = $build;
        }

        if (isset($data['title']['more_url'])) {
            $data['title']['more_url'] = Helpers::getFilterUrl($data['title']['more_url']);
        }

        return $result;
    }

    /**
     * 带标题的12个小图推荐数据处理方法
     * 
     * @param  array $data 带标题的12个小图推荐数据
     * @param $type 类型 默认1:男首页 2:女首页  3:kids 4:lifestyle
     * @return array       处理之后的带标题的12个小图推荐数据
     */
    private static function recommend_content_five($data, $type)
    {
        $result = array();

        foreach ($data['list'] as &$one) {
            if (isset($one['url'])) {
                $one['url'] = Helpers::getFilterUrl($one['url']);
            }
            $one['img'] = Helpers::getImageUrl($one['src'], 140, 140);
            $one['textCn'] = $one['title'];
            unset($one['src']);
        }
        $data['is_show_name'] = $data['title']['is_show'];
        $data['name'] = $data['title']['title'];
        unset($data['title']);

        if (isset($data['title']['more_url'])) {
            $data['title']['more_url'] = Helpers::getFilterUrl($data['title']['more_url']);
        }

        $result['hotCategory'] = $data;

        return $result;
    }

    /**
     * 推荐品牌数据处理方法
     * @param  array $data 推荐品牌数据
     * @param $type 类型 默认1:男首页 2:女首页  3:kids 4:lifestyle
     * @return array       处理之后的推荐品牌数据
     */
    private static function app_hot_brands($data, $type)
    {
        $result = array();

        $data['is_show_name'] = (isset($data['is_show_name']) && $data['is_show_name'] === 'Y') ? 1 : 0;
        $data['name'] = $data['title']['title'];
        unset($data['title']);
        foreach ($data['list'] as &$one) {
            if (isset($one['url'])) {
                $one['url'] = Helpers::getFilterUrl($one['url']);
                isset(self::$channel[$type]) && $one['url'] .= '?gender='.self::$channel[$type];
            }
            $one['img'] = Helpers::getImageUrl($one['src'], 158, 174);
            unset($one['src']);
        }
        $data['more'] = '/brands?channel=' . $type;
        $result['hotBrands'] = $data;

        return $result;
    }

    /**
     * 潮人·搭配数据处理方法
     * @param  array $data 潮人·搭配数据
     * @param $type 类型 默认1:男首页 2:女首页  3:kids 4:lifestyle
     * @return array       处理之后的潮人·搭配数据
     */
    private static function trendsetter_collocation($data, $type)
    {
        $result = array();

        foreach ($data as $key => &$value) {
            if ($key == 'title') {
                $value['more_url'] = Helpers::url('', array('id' => 3, 'gender' => self::$channel[$type]), 'guang');
            }
            if ($key == 'article') {
                foreach ($value as &$one) {
                    if (isset($one['url'])) {
                        $one['url'] = Helpers::getFilterUrl($one['url']);
                    }
                    $one['img'] = Helpers::getImageUrl($one['src'], 400, 400);
                    unset($one['src']);
                }
            }
            if ($key == 'recommend_collocation') {
                foreach ($value as &$one) {
                    if (isset($one['url'])) {
                        $one['url'] = Helpers::getFilterUrl($one['url']);
                    }
                    $one['img'] = Helpers::getImageUrl($one['src'], 140, 140);
                    unset($one['src']);
                }
            }
        }
        $result['trendColloaction'] = $data;

        return $result;
    }

    /**
     * 潮品·话题数据处理方法
     * @param  array $data 潮品·话题数据
     * @param $type 类型 默认1:男首页 2:女首页  3:kids 4:lifestyle
     * @return array       处理之后的潮品·话题数据
     */
    private static function trendgoods_topic($data, $type)
    {
        $result = array();

        foreach ($data as $key => &$value) {
            if ($key == 'title') {
                $value['more_url'] = Helpers::url('', array('id' => 4, 'gender' => self::$channel[$type]), 'guang');
            }
            if ($key == 'list') {
                foreach ($value as &$one) {
                    if (isset($one['url'])) {
                        $one['url'] = Helpers::getFilterUrl($one['url']);
                    }
                    $one['img'] = Helpers::getImageUrl($one['src'], 580, 360);
                    unset($one['src']);
                }
            }
        }
        $result['trendTopics'] = $data;

        return $result;
    }

    /**
     * 一张大图一个大的推荐和4个小图推荐数据处理方法
     * @param  array $data 一张大图一个大的推荐和4个小图推荐数据
     * @param $type 类型 默认1:男首页 2:女首页  3:kids 4:lifestyle
     * @return array       处理之后的一张大图一个大的推荐和4个小图推荐数据
     */
    private static function recommend_content_one($data, $type)
    {
        $result = array();

        foreach ($data['big_image'] as &$one) {
            if (isset($one['url'])) {
                $one['url'] = Helpers::getFilterUrl($one['url']);
            }
            $one['img'] = Helpers::getImageUrl($one['src'], 640, 403);
            unset($one['src']);
        }

	    // 区别多张图与一张图
	    if (count($data['big_image']) > 1) {
		    $result['big_image']['list'] = $data['big_image'];
		    unset($data['big_image']);
	    }

        foreach ($data['list'] as $kk => &$one) {
            if ($kk == 0) {
                $one['img'] = Helpers::getImageUrl($one['src'], 253, 383);
            } else {
                $one['img'] = Helpers::getImageUrl($one['src'], 191, 191);
            }
            if (isset($one['url'])) {
                $one['url'] = Helpers::getFilterUrl($one['url']);
            }
            $one['textCn'] = $one['title'];

            unset($one['src']);
        }

        if (isset($data['title']['more_url'])) {
            $data['title']['more_url'] = Helpers::getFilterUrl($data['title']['more_url']);
        }

        $result['goodsCategory'] = $data;

        return $result;
    }

    /**
     * 一张大图和6个小图推荐数据处理方法
     * @param  array $data 一张大图和6个小图推荐数据
     * @param $type 类型 默认1:男首页 2:女首页  3:kids 4:lifestyle
     * @return array       处理之后的一张大图和6个小图推荐数据
     */
    private static function recommend_content_two($data, $type)
    {
        $result = array();

        foreach ($data['big_image'] as &$one) {
            if (isset($one['url'])) {
                $one['url'] = Helpers::getFilterUrl($one['url']);
            }
            $one['img'] = Helpers::getImageUrl($one['src'], 640, 403);
            unset($one['src']);
        }
        $data['banner'] = $data['big_image'];
        unset($data['big_image']);

        foreach ($data['list'] as &$one) {
            if (isset($one['url'])) {
                $one['url'] = Helpers::getFilterUrl($one['url']);
            }
            $one['img'] = Helpers::getImageUrl($one['src'], 191, 191);
            unset($one['src']);
        }

        if (isset($data['title']['more_url'])) {
            $data['title']['more_url'] = Helpers::getFilterUrl($data['title']['more_url']);
        }
        $result['creativeLife'] = $data;

        return $result;
    }

    /**
     * 小图片数据处理方法
     * @param  array $data 小图片数据
     * @param $type 类型 默认1:男首页 2:女首页  3:kids 4:lifestyle
     * @return array       处理之后的小图片数据
     */
    private static function small_pic($data, $type)
    {
        // 按照以前业务操作,不显示
        return array();

        $result = array();

        foreach ($data as &$one) {
            if (isset($one['url'])) {
                $one['url'] = Helpers::getFilterUrl($one['url']);
            }
            $one['img'] = Helpers::getImageUrl($one['src'], 98, 98);
            unset($one['src']);
        }
        $result['small_pic'] = $data;

        return $result;
    }

    /**
     * plus,star
     * @param  array $data 单名字图片数据
     * @param $type 类型 默认1:男首页 2:女首页  3:kids 4:lifestyle
     * @return array       处理之后的单名字图片数据
     */
    private static function single_name_image($data, $type)
    {
        if (empty($data)) {
            return array();
        }

        $data['name'] = $data['title'];
        $data['img'] = Helpers::getImageUrl($data['src'], 640, 198);
        if (isset($data['url'])) {
            $data['url'] = Helpers::getFilterUrl($data['url']);
        }

        return array('plusStar' => $data);
    }

    /**
     * 自定义品牌
     *
     * @param unknown $data
     * @param mixed $type
     * @return multitype:
     */
    private static function custom_brands($data, $type)
    {
        // URL附加参数
        $param = '';
        if (isset(self::$channel[$type])) {
            $param = '/?gender=' . self::$channel[$type];
        }

        $result = array();
        $result['hotBrandsScroll']['name'] = $data['title']['title'];
        foreach ($data['list'] as &$one) {
            if (isset($one['url'])) {
                $one['url'] = Helpers::getFilterUrl($one['url']);
            }
            $one['img'] = Helpers::getImageUrl($one['src'], 140, 140);
            $one['textCn'] = $one['name'];
            if (isset($one['url'])) {
                $one['url'] .= $param;
            }
        }
        if (!empty($data['is_show_name']) && $data['is_show_name'] == 'Y') {
            $result['hotBrandsScroll']['is_show_name'] = true;
        }
        $result['hotBrandsScroll']['list'] = $data['list'];

        return $result;
    }

}