shikeyin
2024-01-11 65da8373531677b1c37a98f53eaa30c892f35e5a
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
package com.iplatform.base.util;
 
import com.iplatform.base.util.cache.CategorySortComparator;
import com.iplatform.model.po.S_category;
import com.iplatform.model.vo.CategoryTreeVo;
import com.walker.infrastructure.utils.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
public class CategoryUtils {
 
    protected static Logger logger = LoggerFactory.getLogger(CategoryUtils.class);
 
    public static final List<CategoryTreeVo> acquireListTree(List<S_category> allTree, CategorySortComparator sortComparator){
        // 重新排序
        Collections.sort(allTree, sortComparator);
        //
        List<CategoryTreeVo> treeList = new ArrayList<>();
        if(allTree.size() == 0){
            return treeList;
        }
 
        //
        for (S_category category : allTree) {
            treeList.add(CategoryUtils.toCategoryTreeVo(category));
        }
 
        Map<Integer, CategoryTreeVo> map = new HashMap<>(treeList.size());
        //ID 为 key 存储到map 中
        for (CategoryTreeVo categoryTreeVo : treeList) {
            map.put(categoryTreeVo.getId(), categoryTreeVo);
        }
 
        List<CategoryTreeVo> list = new ArrayList<>();
        CategoryTreeVo parentTree = null;
        for (CategoryTreeVo tree : treeList) {
            //子集ID返回对象,有则添加。
            parentTree = map.get(tree.getPid());
            if (parentTree != null) {
                parentTree.getChild().add(tree);
            } else {
                list.add(tree);
            }
        }
 
        return list;
    }
 
    public static final boolean isCondition(S_category tempCategory
            , Integer type, Integer status, String name, List<Integer> categoryIdList, int owner){
        if(owner != tempCategory.getOwner().intValue()){
            return false;
        }
        if(type != null && type.intValue() != tempCategory.getType().intValue()){
            return false;
        }
        if(status != null && status.intValue() >= 0 && status.intValue() != tempCategory.getStatus().intValue()){
            return false;
        }
        if(!StringUtils.isEmptyList(categoryIdList) && !categoryIdList.contains(tempCategory.getId())){
            logger.debug("不包含在给定的集合中'categoryIdList'");
            return false;
        }
        return true;
    }
 
    public static final CategoryTreeVo toCategoryTreeVo(S_category category){
        CategoryTreeVo categoryTreeVo = new CategoryTreeVo();
        categoryTreeVo.setId(category.getId());
        categoryTreeVo.setName(category.getName());
        categoryTreeVo.setPid(category.getPid());
        categoryTreeVo.setExtra(category.getExtra());
        categoryTreeVo.setPath(category.getPath());
        categoryTreeVo.setSort(category.getSort());
        categoryTreeVo.setStatus(category.getStatus() == 1);
        categoryTreeVo.setType(category.getType());
        categoryTreeVo.setUrl(category.getUrl());
        return categoryTreeVo;
    }
 
}