ConfigGroupVo.java 2.41 KB
package cn.fw.dalaran.domain.vo;

import cn.fw.dalaran.domain.db.GlobalConfig;
import lombok.Data;
import org.springframework.util.CollectionUtils;

import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;

/**
 * @author wmy3969
 * @version 1.0
 * @date 2022-5-5 14:50:59
 * @Description 配置组
 */
@Data
public class ConfigGroupVo {
    /**
     * 主键id
     */
    @NotNull(message = "配置组id不能为空")
    private Long id;
    /**
     * 创建该配置的用户id
     */
    @NotNull(message = "创建该配置组用户id不能为空")
    private Long userId;
    /**
     * 创建该配置的用户名
     */
    private String userName;
    /**
     * 能否编辑
     */
    private boolean canAlter;
    /**
     * 集团id
     */
    private Long groupId;
    /**
     * 全部门店(-1:授权范围内, 0:否, 1:是)
     */
    //@NotNull(message = "请必须指定适应门店范围")
    private Integer allShop;
    /**
     * 该配置适用门店集合
     */
    private List<Long> shopIds;
    /**
     * 该配置适用门店名集合
     */
    private List<String> shopNames;
    /**
     * 视频/直播占比指标实体
     */
    private List<EvlIndexVO> videoAndLiveEvlIndex;
    /**
     * 视频占比指标配置
     */
    private List<EvlSubIndexVO> videoEvlSubIndexConfigs;
    /**
     * 直播占比指标配置
     */
    private List<EvlSubIndexVO> liveEvlSubIndexConfigs;
    /**
     * 视频最低指标配置
     */
    private List<ValidConfigNewVo.singleVo> videoValidConfigs;
    /**
     * 直播最低指标配置
     */
    private List<ValidConfigNewVo.singleVo> liveValidConfigs;
    /**
     * 配置(封面匹配度, 话题匹配度)
     */
    private List<GlobalConfig.GlobalConfigVo> globalConfigs;

    /**
     * 重写get方法
     */
    public List<Long> getShopIds() {
        if (CollectionUtils.isEmpty(shopIds))
            return new ArrayList<>();
        return shopIds.stream()
                .filter(Objects::nonNull)
                .collect(Collectors.toList());
    }

    /**
     * 重写get方法
     */
    public List<String> getShopNames() {
        if (CollectionUtils.isEmpty(shopNames))
            return new ArrayList<>();
        return shopNames.stream()
                .filter(Objects::nonNull)
                .collect(Collectors.toList());
    }
}