package com.cool.store.mapper;

import com.cool.store.entity.SysRoleDO;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author zhangchenbiao
 * @date 2023-06-08 10:54
 */
public interface SysRoleMapper {
    /**
     *
     * 默认插入方法，只会给有值的字段赋值
	 * 会对传进来的字段做判空处理，如果字段为空，则使用数据库默认字段或者null
     * dateTime:2023-06-08 10:54
     */
    int batchInsertSelective(@Param("insertOrUpdateList") List<SysRoleDO> insertOrUpdateList);

    /**
     *
     * 默认更新方法，根据主键更新，不会把null值更新到数据库，避免覆盖之前有值的
     * dateTime:2023-06-08 10:54
     */
    int updateByPrimaryKeySelective(SysRoleDO record);

    Integer deleteRole(@Param("roleType")Integer roleType, @Param("roleIds") List<String> roleIds);

    /**
     * 获取用户权限
     * @param userId
     * @return
     */
    SysRoleDO getHighestPriorityRoleByUserId(@Param("userId") String userId);

    /**
     * 获取角色
     * @param roleName
     * @return
     */
    SysRoleDO getRoleByName(@Param("roleName") String roleName, @Param("roleType")Integer roleType);

    /**
     * 角色分页
     * @return
     */
    Page<SysRoleDO> getRolePage();

    /**
     * 获取角色详情
     * @param roleId
     * @return
     */
    SysRoleDO getRoleDetail(@Param("roleId") String roleId);
}