Class.php
3.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<?php
namespace Category;
use LibModels\Wap\Category\ClassData;
use Configs\CacheConfig;
use Plugin\Helpers;
use Plugin\Cache;
/**
* 品牌相关的模板数据模型
*
* @name BrandModel
* @package Models/Category
* @copyright yoho.inc
* @version 1.0 (2015-10-21 13:52:44)
* @author fei.hong <fei.hong@yoho.cn>
*/
class ClassModel
{
/**
* 根据频道获取品牌一览数据
*
* @param int $channel 1表示男生频道, 2表示女生频道, 3表示潮童频道, 4表示创意生活频道
* @return array
*/
public static function getClassData()
{
$classes = array();
if (USE_CACHE) {
// 先尝试获取一级缓存(master), 有数据则直接返回.
$result = Cache::get(CacheConfig::KEY_CATEGORY_CLASSES_DATA, 'master');
if (!empty($result)) {
return $result;
}
}
do {
$num = 1;
$data = ClassData::getClassesData();
if(!isset($data['code']) || $data['code'] !== 200)
{
break;
}
if(!isset($data['data']))
{
break;
}
foreach ($data['data'] as $k => $v){
$oneClass = array('name'=>$k, 'ca'=>array());
if($num === 1)
{
$oneClass['focus'] = true;
}
foreach ($v as $val) {
$item = array();
$item['name'] = $val['category_name'];
$item['id'] = $val['relation_parameter']['sort'];
foreach ($val['sub'] as $value) {
$subitem = array();
$subitem['name'] = $value['category_name'];
$subitem['id'] = $value['relation_parameter']['sort'];
$subitem['url'] = $value['category_id'];
$item['sub'][] = $subitem;
}
$oneClass['ca'][] = $item;
}
$num++;
$classes[] = $oneClass;
}
if (USE_CACHE) {
// 接口调用异常时, 不害怕,从我们的二级缓存(slave)里再取数据.
if (empty($classes)) {
$classes = Cache::get(CacheConfig::KEY_ACTION_INDEX_INDEX, 'slave');
}
// 接口调用正常,数据封装完成, 则设置一级(master)和二级(slave)数据缓存
else {
Cache::set(CacheConfig::KEY_ACTION_INDEX_INDEX, $classes);
}
}
}while(false);
return $classes;
}
/**
* 返回品类构成的数组
*
* @return array 键为品类查询sort参数,值为品类名称构成的数组
*/
public static function getClassesArr()
{
$classes = array();
$classesData = self::getClassData();
foreach ($classesData as $val) {
foreach ($val['ca'] as $single) {
$classes[$single['id']] = $single['name'];
$classes += array_column($single['sub'], 'name', 'id');
}
}
return $classes;
}
}