package com.hzs.system.config.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.vertex.BdVertex;
import com.hzs.common.domain.vertex.ext.BdVertexExt;
import com.hzs.system.config.param.VertexParam;
import com.hzs.system.config.vo.VertexVo;

import java.util.List;
import java.util.Map;

/**
 * 体系配置 服务类
 */
public interface IBdVertexService extends IService<BdVertex> {

    /**
     * 根据id查询出体系配置
     *
     * @param pkId
     * @return
     */
    BdVertex getVertex(Integer pkId);

    /**
     * 获取体系map
     *
     * @return
     */
    Map<Integer, BdVertex> getAllVertexMap();

    /**
     * 查询体系配置
     *
     * @param vertexParam
     * @return
     */
    List<VertexVo> selectByList(VertexParam vertexParam);

    /**
     * 根据管理员ID查询体系列表
     *
     * @param userId 管理员ID
     * @return
     */
    List<BdVertex> queryListByUserId(Long userId);

    /**
     * 根据主键更新所属体系
     */
    void updateBdVertexById(Integer pkVertex);

    /**
     * 查询体系层级
     *
     * @param pkCountry
     * @return
     */
    List<BdVertexExt> queryBdVertexChild(Integer pkCountry);

    /**
     * 查询体系以及会员信息
     *
     * @param pkId 主键
     * @return
     */
    BdVertexExt queryVertexAndMember(Long pkId);

    /**
     * 查询刷新体系数据
     *
     * @param pkCountry 所属国家
     * @return
     */
    void flushAllVertex(Integer pkCountry);

}
