/*
* Copyright (c) 京北方信息技术股份有限公司 Corporation 2022 . All rights reserved.
*
*/
package net.northking.cctp.scriptcase.db.dao;

import net.northking.cctp.scriptcase.db.entity.AtuScriptGroup;
import net.northking.cctp.scriptcase.db.mapper.AtuScriptGroupMapper;
import net.northking.cctp.scriptcase.dto.atuScript.atuScriptGroup.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * Mybatis数据库持久层（业务层）：脚本分组表
 *
 * <p>文件内容由代码生成器产生，请不要手动修改！ <br>
 * createdate:  2022-10-18 17:29:31  <br>
 * @author:  maven-cctp-plugin  <br>
 * @since:  1.0 <br>
 */
@Repository
public interface AtuScriptGroupDao extends AtuScriptGroupMapper
{
    /**
     * 更新子目录节点名称路径
     * @param childScriptGroup
     * @param namePathNew
     * @return
     */
    int updateChildNamePath(@Param(value = "tree") AtuScriptGroup childScriptGroup, @Param(value = "newPath") String namePathNew);

    /**
     * 条件查询目录树
     * @param queryDto
     * @return
     */
    List<AtuScriptGroupDetailDto> selectScriptTree(AtuScriptGroupQueryDto queryDto);

    /**
     * 计算目录最大层级
     * @param queryLevel
     * @return
     */
    int countMaxLevelNo(AtuScriptGroup queryLevel);

    /**
     * 移动目录节点后更新对应次序
     * @param childUp
     */
    void updateSeqByMove(AtuScriptGroupMoveDto childUp);

    /**
     * 更新子目录节点id路径
     * @param childUp
     * @param idPath
     */
    void updateChildIdPath(@Param(value = "tree") AtuScriptGroup childUp, @Param(value = "newPath") String idPath);

    /**
     * 根据节点id查节点列表
     * @param list
     * @return
     */
    List<AtuScriptGroup> queryByIds(@Param(value = "list") List<String> list);

    /**
     * 根据节点id查询子节点列表
     * @param groupId
     * @return
     */
    List<AtuScriptGroup> queryChildrenTreeList(String groupId);

    /**
     * 条件查询idPath列表
     * @param dto
     * @return
     */
    List<String> getAllIdPath(PublishScriptQueryDto dto);

    /**
     * 条件查询目录列表
     * @param dto
     * @return
     */
    List<AtuScriptGroup> findTreeListLike(PublishScriptQueryDto dto);



}
