package com.hzs.system.config.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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 org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 体系配置 Mapper 接口
 */
public interface BdVertexMapper extends BaseMapper<BdVertex> {

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

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

    /**
     * 更新所属体系
     */
    void updateBdVertexById(@Param("pkMember") Long pkMember, @Param("pkVertex") Integer pkVertex);

    /**
     * 更新体系（新）
     *
     * @param pkMember  体系顶点会员
     * @param pkVertex  体系ID
     * @param pkCountry 所属国家
     */
    void updateVertexNew(@Param("pkMember") Long pkMember,
                         @Param("pkVertex") Integer pkVertex,
                         @Param("pkCountry") Integer pkCountry);

    /**
     * 更新所属体系
     */
    void updateBdVertexNullById(@Param("pkVertex") Integer pkVertex);

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

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

    /**
     * 查询刷新体系数据
     *
     * @param memberCode 顶点会员编号
     * @param pkCountry  所属国家
     * @return
     */
    List<BdVertex> queryFlushVertexList(@Param("memberCode") String memberCode, @Param("pkCountry") Integer pkCountry);

}
