package com.cool.bang.modules.system.mapper;

import com.cool.bang.common.base.BaseMapper;
import com.cool.bang.modules.system.domain.po.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 * system user mapper interface
 *
 * @author PeiZhi Guo
 * 2021-2-18 14:20
 */
@Repository
public interface UserMapper extends BaseMapper<User> {

    /**
     * 根据username查询单条数据
     *
     * Param username
     * Return user
     */
    User selectByUsername(String username);

    /**
     * 用户唯一校验
     *
     * Param username
     * Param id
     * Return int
     */
    int usernameUniqueCheck(@Param("username") String username, @Param("id")  Long id);

    /**
     * 用户禁|启用
     *
     * Param id
     * Param enable
     * Return int
     */
    int updateEnable(Long id, boolean enable);

    /**
     * 验证失败，增加锁定次数
     *
     * Param id
     * Return
     */
    int updateLoginInfo(String username, Integer loginFailureNum);

    /**
     * 用户锁定
     *
     * Param id
     * Return
     */
    int lockUser(String username);

}
