Skip to content
  • P
    Projects
  • G
    Groups
  • S
    Snippets
  • Help

semour / semour_web

  • This project
    • Loading...
  • Sign in
Go to a project
  • Project
  • Repository
  • Issues 0
  • Merge Requests 0
  • Pipelines
  • Wiki
  • Snippets
  • Settings
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Files
  • Commits
  • Branches
  • Tags
  • Contributors
  • Graph
  • Compare
  • Charts
Find file
Normal viewHistoryPermalink
Switch branch/tag
  • semour_web
  • app
  • Http
  • Services
  • ClassService.php
ClassService.php 3 KB
杨树贤's avatar
各种服务
e3d6f48c
 
杨树贤 committed 2 years ago
1 2 3 4
<?php

namespace App\Http\Services;

杨树贤's avatar
分类数据放到商城头部
d298318a
 
杨树贤 committed 2 years ago
5 6
use Illuminate\Support\Facades\Redis;

杨树贤's avatar
各种服务
e3d6f48c
 
杨树贤 committed 2 years ago
7 8
class ClassService
{
杨树贤's avatar
分类数据放到商城头部
d298318a
 
杨树贤 committed 2 years ago
9 10 11 12 13
    //获取首页需要的所有分类,没有英文名称的不要
    public static function getClassificationForHome()
    {
        //先获取所有分类
        $classCache = Redis::hgetall('pool_class_info');
杨树贤's avatar
分类数量返回
ba2c5366
 
杨树贤 committed 2 years ago
14
        $secondClassList = [];
杨树贤's avatar
分类数据放到商城头部
d298318a
 
杨树贤 committed 2 years ago
15 16 17
        foreach ($classCache as $key => &$class) {
            $class = json_decode($class, true);
            if (!$class['parent_id']) {
杨树贤's avatar
分类过滤问题
ac0ad9fa
 
杨树贤 committed 2 years ago
18 19 20
                if (empty($class['class_name_en'])) {
                    continue;
                }
杨树贤's avatar
分类数量返回
ba2c5366
 
杨树贤 committed 2 years ago
21
                $secondClassList[] = $class;
杨树贤's avatar
分类数据放到商城头部
d298318a
 
杨树贤 committed 2 years ago
22 23 24 25 26 27 28
            }
        }
        unset($class);
        foreach ($classCache as $key => $class) {
            if (!$class['parent_id']) {
                continue;
            }
杨树贤's avatar
分类数量返回
ba2c5366
 
杨树贤 committed 2 years ago
29 30
            foreach ($secondClassList as &$secondClass) {
                if ($secondClass['class_id'] == $class['parent_id']) {
杨树贤's avatar
分类过滤问题
ac0ad9fa
 
杨树贤 committed 2 years ago
31 32 33
                    if (empty($class['class_name_en'])) {
                        continue;
                    }
杨树贤's avatar
分类数量返回
ba2c5366
 
杨树贤 committed 2 years ago
34 35
                    $class['sku_number'] = Redis::hget('pool_class_info_count', $class['class_id']) ?: 0;
                    $secondClass['children'][] = $class;
杨树贤's avatar
分类数据放到商城头部
d298318a
 
杨树贤 committed 2 years ago
36 37
                }
            }
杨树贤's avatar
分类数量返回
ba2c5366
 
杨树贤 committed 2 years ago
38
            unset($secondClass);
杨树贤's avatar
分类数据放到商城头部
d298318a
 
杨树贤 committed 2 years ago
39 40 41
        }

        $topClassMapping = config('field.top_class_mapping');
杨树贤's avatar
品牌和分类数据修复
b1a69b5b
 
杨树贤 committed 2 years ago
42 43 44 45
        $topFields = [];
        foreach ($topClassMapping as $key => $mapping) {
            $topFields[$key] = [
                'class_name' => $key,
杨树贤's avatar
分类数量返回
ba2c5366
 
杨树贤 committed 2 years ago
46
            ];
杨树贤's avatar
品牌和分类数据修复
b1a69b5b
 
杨树贤 committed 2 years ago
47
        }
杨树贤's avatar
分类数据放到商城头部
d298318a
 
杨树贤 committed 2 years ago
48
        foreach ($topClassMapping as $key => $mapping) {
杨树贤's avatar
分类数量返回
ba2c5366
 
杨树贤 committed 2 years ago
49 50 51
            foreach ($secondClassList as $secondClass) {
                if (in_array($secondClass['class_id'], $topClassMapping[$key])) {
                    if (empty($secondClass['class_name_en'])) {
杨树贤's avatar
品牌和分类数据修复
b1a69b5b
 
杨树贤 committed 2 years ago
52 53
                        continue;
                    }
杨树贤's avatar
分类数量返回
ba2c5366
 
杨树贤 committed 2 years ago
54
                    $topFields[$key]['children'][] = $secondClass;
杨树贤's avatar
分类数据放到商城头部
d298318a
 
杨树贤 committed 2 years ago
55 56 57 58 59
                }
            }
        }
        return array_values($topFields);
    }
杨树贤's avatar
各种服务
e3d6f48c
 
杨树贤 committed 2 years ago
60

杨树贤's avatar
分类页面模板数据
ee659885
 
杨树贤 committed 2 years ago
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
    public static function getClassificationById($classId,$includeChildren = false)
    {
        $classification = Redis::hget('pool_class_info', $classId);
        $classification = json_decode($classification,true);
        if ($classification['parent_id']) {
            return $classification;
        }
        //获取子分类
        $classificationCache = Redis::hgetall('pool_class_info');
        $totalSkuNumber = 0;
        foreach ($classificationCache as $classCache) {
            $classCache = json_decode($classCache, true);
            if ($classCache['parent_id'] == $classId) {
                if (empty($classCache['class_name_en'])) {
                    continue;
                }
                $classCache['sku_number'] = Redis::hget('pool_class_info_count', $classCache['class_id']) ?: 0;
                $totalSkuNumber += $classCache['sku_number'];
                $classification['children'][] = $classCache;
            }
        }
        $classification['sku_number'] = $totalSkuNumber;
        return $classification;
    }

杨树贤's avatar
各种服务
e3d6f48c
 
杨树贤 committed 2 years ago
86
}