package cn.hnthyy.thmz.mapper.thmz;

import cn.hnthyy.thmz.entity.thmz.UserRoleRelation;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 角色和用户关系表
 */
public interface UserRoleRelationMapper {

    /**
     * 根据userId查询用户角色
     *
     * @param userId
     * @return
     */
    @Select("select * from t_user_role_relation where user_id=#{userId,jdbcType=BIGINT}")
    List<UserRoleRelation> selectByUserId(@Param("userId") Long userId);

    /**
     * 根据roleId查询用户角色
     *
     * @param roleId
     * @return
     */
    @Select("select * from t_user_role_relation where role_id=#{roleId,jdbcType=BIGINT}")
    List<UserRoleRelation> selectByRoleId(@Param("roleId") Long roleId);


    /**
     * 新增用户角色关系
     *
     * @param userRoleRelation
     * @return
     */
    @Insert("INSERT INTO t_user_role_relation(user_id,role_id,create_time,create_id) values(#{userId,jdbcType=BIGINT},#{roleId,jdbcType=BIGINT},#{createTime,jdbcType=TIMESTAMP},#{createId,jdbcType=BIGINT})")
    int insertUserRoleRelation(UserRoleRelation userRoleRelation);


    /**
     * 删除角色对应的所有用户关系
     *
     * @param roleId
     * @return
     */
    @Delete("delete from t_user_role_relation where role_id=#{roleId,jdbcType=BIGINT}")
    int deleteByRoleId(@Param("roleId") Long roleId);


    /**
     * 删除单个用户对应的角色关系
     *
     * @param userId
     * @return
     */
    @Delete("delete from t_user_role_relation where user_id=#{userId,jdbcType=BIGINT}")
    int deleteByUserId(@Param("userId") Long userId);


}
