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
package cn.lili.modules.goods.entity.vos;
 
import cn.hutool.core.bean.BeanUtil;
import cn.lili.modules.goods.entity.dos.Brand;
import cn.lili.modules.goods.entity.dos.Category;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
 
import java.math.BigDecimal;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
 
/**
 * 分类VO
 *
 * @author paulG
 * @since 2020/12/1
 **/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CategoryVO extends Category {
 
    private static final long serialVersionUID = 3775766246075838410L;
 
    @ApiModelProperty(value = "父节点名称")
    private String parentTitle;
 
    @ApiModelProperty("子分类列表")
    private List<CategoryVO> children;
 
    @ApiModelProperty("分类关联的品牌列表")
    private List<Brand> brandList;
 
    public CategoryVO(Category category) {
        BeanUtil.copyProperties(category, this);
    }
 
    public CategoryVO(String id, String createBy, Date createTime, String updateBy, Date updateTime, Boolean deleteFlag, String name, String parentId, Integer level, BigDecimal sortOrder, Double commissionRate, String image, Boolean supportChannel) {
        super(id, createBy, createTime, updateBy, updateTime, deleteFlag, name, parentId, level, sortOrder, commissionRate, image, supportChannel);
    }
 
    public List<CategoryVO> getChildren() {
 
        if (children != null) {
            children.sort(new Comparator<CategoryVO>() {
                @Override
                public int compare(CategoryVO o1, CategoryVO o2) {
                    return o1.getSortOrder().compareTo(o2.getSortOrder());
                }
            });
            return children;
        }
        return null;
    }
}