package com.yfd.platform.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yfd.platform.system.domain.SysMenu;
import org.apache.ibatis.annotations.Param;

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

/**
 * <p>
 * 菜单及按钮 Mapper 接口
 * </p>
 *
 *
 * @since 2021-12-15
 */
public interface SysMenuMapper extends BaseMapper<SysMenu> {

    /***********************************
     * 用途说明：菜单及按钮序号向上移动
     * 参数说明
     * parentid    上级id
     *Orderno    小于序号（原序号）
     *upOrderno     大于等于序号（更改的序号加一）
     * 返回值说明:   是否更新成功
     ***********************************/
    boolean upMoveOrderno(@Param("parentid") String parentid, @Param("Orderno") int Orderno, @Param("upOrderno") int upOrderno);

    /***********************************
     * 用途说明：菜单及按钮序号向下移动
     * 参数说明
     * parentid    上级id
     *Orderno      大于序号（原序号）
     *downOrderno  小于等于序号（更改的序号减一）
     * 返回值说明:   是否更新成功
     ***********************************/
    boolean downMoveOrderno(@Param("parentid") String parentid, @Param("Orderno") int Orderno, @Param("downOrderno") int downOrderno);


    List<String> selectPermsByUserId(String userId);

    //List<SysMenu> selectMenuByUserId(String userId);
    List<Map<String,Object>> selectMenuByUserId(String userId);

    /***********************************
     * 用途说明：根据权限id查找系统类型
     * 参数说明 id 权限id
     * 返回值说明:   返回系统类型
     ***********************************/
    String getSystemCodeById(String id);

    /***********************************
     * 用途说明：根据角色Id查找权限
     * 参数说明 id 权限id
     * 返回值说明:   返回权限集合
     ***********************************/
    List<String> selectMenuByRoleId(String id);

    /**********************************
    * 用途说明: 根据系统类型获取用户菜单
    * 参数说明 id
    * 参数说明 sysetmCode
    * 返回值说明: java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
    ***********************************/
    List<Map<String, Object>> selectMenuByType(String id, String systemCode);
}
