getGoodsclassIndexedListAll(); $tree = new \mall\Tree(); $tree->setTree($goodsclass_list, 'gc_id', 'gc_parent_id', 'gc_name'); $result['class_list'] = $tree->getArrayList(); foreach ($result['class_list'] as $k1 => $v1) { $result['class_list'][$k1]['commis_rate'] = $goodsclass_list[$v1['id']]['commis_rate']; $result['class_list'][$k1]['image'] = goodsclass_image($v1['id']); foreach ($v1['children'] as $k2 => $v2) { $result['class_list'][$k1]['children'][$k2]['commis_rate'] = $goodsclass_list[$v2['id']]['commis_rate']; $result['class_list'][$k1]['children'][$k2]['image'] = goodsclass_image($v2['id']); foreach ($v2['children'] as $k3 => $v3) { $result['class_list'][$k1]['children'][$k2]['children'][$k3]['commis_rate'] = $goodsclass_list[$v3['id']]['commis_rate']; $result['class_list'][$k1]['children'][$k2]['children'][$k3]['image'] = goodsclass_image($v3['id']); } } } wcache($cache_key, $result); } /** * 插入品牌数据 * lin * 20210919 */ $brand = model("brand")->getBrandRecommendList([], '*', 0, 'brand_sort asc, brand_id asc'); $brandArr = []; if (!empty($brand)) { $count = count($result['class_list']); foreach ($brand as $k => $v) { $brand[$k]['image'] = ds_get_pic(ATTACH_BRAND, $v['brand_pic']); } $brandArr[$count] = [ 'value' => '品牌', 'image' => $brand[0]['image'], 'id' => 0, 'children' => $brand ]; $result['class_list'] = array_merge($result['class_list'],$brandArr); } ds_json_encode(10000, '', $result); } /** * 返回一级分类列表 */ private function _get_root_class() { $goodsclass_model = model('goodsclass'); $goods_class_array = model('goodsclass')->getGoodsclassForCacheModel(); $class_list = $goodsclass_model->getGoodsclassListByParentId(0); foreach ($class_list as $key => $value) { $class_list[$key]['text'] = ''; if (isset($goods_class_array[$value['gc_id']]['child'])) { $child_class_string = $goods_class_array[$value['gc_id']]['child']; $child_class_array = explode(',', $child_class_string); foreach ($child_class_array as $child_class) { $class_list[$key]['text'] .= $goods_class_array[$child_class]['gc_name'] . '/'; } } $class_list[$key]['text'] = rtrim($class_list[$key]['text'], '/'); } ds_json_encode(10000, '', array('class_list' => $class_list)); } /** * 根据分类编号返回下级分类列表 */ private function _get_class_list($gc_id) { $goods_class_array = model('goodsclass')->getGoodsclassForCacheModel(); $goods_class = $goods_class_array[$gc_id]; if (empty($goods_class['child'])) { //无下级分类返回0 return array('class_list' => array()); } else { //返回下级分类列表 $class_list = array(); $child_class_string = $goods_class_array[$gc_id]['child']; $child_class_array = explode(',', $child_class_string); foreach ($child_class_array as $child_class) { $class_item = array(); $class_item['gc_id'] = ''; $class_item['gc_name'] = ''; $class_item['gc_id'] .= $goods_class_array[$child_class]['gc_id']; $class_item['gc_name'] .= $goods_class_array[$child_class]['gc_name']; $class_item['image'] = ds_get_pic(ATTACH_COMMON, $goods_class_array[$child_class]['gc_image']); $class_list[] = $class_item; } return array('class_list' => $class_list); } } /** * 获取全部子集分类 */ public function get_child_all() { $gc_id = intval(input('param.gc_id')); $data = array(); if ($gc_id > 0) { $prefix = 'api-goodsclass-all-'; $data = rcache($gc_id, $prefix); if (empty($data)) { $data = $this->_get_class_list($gc_id); if (!empty($data['class_list'])) { foreach ($data['class_list'] as $key => $val) { $d = $this->_get_class_list($val['gc_id']); $data['class_list'][$key]['child'] = $d['class_list']; } } wcache($gc_id, $data, $prefix, 3600); } } ds_json_encode(10000, '', $data); } } ?>