package com.dk.mdm.mapper.core;

import com.dk.common.mapper.BaseMapper;
import com.dk.mdm.model.query.core.OrganizationQuery;
import com.dk.mdm.model.pojo.core.Organization;
import com.dk.mdm.model.response.core.OrganizationResponse;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
*  组织部门 Mapper
*/
@Repository
public interface OrganizationMapper extends BaseMapper<Organization>{

    /**
     * @desc   : 根据条件进行查询
     * @author : 姜宁
     * @date   : 2023/1/10 17:20
     */
    List<OrganizationResponse> selectByCond(OrganizationQuery organizationQuery);

   /**
    * @desc   : 根据条件进行查询（数量）
    * @author : 姜宁
    * @date   : 2023/1/10 17:20
    */
    Long countByCond(OrganizationQuery organizationQuery);

    /**
     * @desc   : 组织编码编码是否重复
     * @author : 姜宁
     * @date   : 2023/1/11 10:37
     */
    Long selectByCode(Organization organization);

    /**
     * @desc   : 更新组织部门层级相关字段
     * @author : 姜宁
     * @date   : 2023/1/11 14:13
     */
    boolean selectResetOrgLevel(Organization organization);

    /**
     * @desc   : 更新最顶级部门的topId
     * @author : 姜宁
     * @date   : 2023/1/12 13:24
     */
    int updateOrgTopId(Organization organization);

    /**
     * @desc   : 更新部门的有效标识
     * @author : 姜宁
     * @date   : 2023/1/12 13:24
     */
    int updateOrgFlgValid(Organization organization);

    /**
     * @desc   : 根据部门Id获取有效标识
     * @author : 姜宁
     * @date   : 2023/2/1 13:29
     */
    boolean selectFlgValidIdById(Organization organization);
}

