package cn.reghao.bnt.web.admin.service;

import cn.reghao.bnt.web.admin.model.dto.*;
import cn.reghao.bnt.web.admin.model.po.User;
import cn.reghao.bnt.web.admin.model.vo.UserVO;
import cn.reghao.jutil.jdk.web.result.Result;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

import java.util.List;

/**
 * @author reghao
 * @date 2023-02-18 14:42:57
 */
public interface AccountService {
    Result createAccount(CreateAccountDto createAccountDto);
    void updateAccountPassword(int userId, String newPassword);
    Result updateAccountRole(AccountRole accountRole);
    Result updateMyUsername(UpdateUsernameDto updateUsernameDto);
    Result updateMyPassword(UpdatePasswordDto updatePasswordDto);
    Result deleteAccount(int userId);
    Page<UserVO> getUserVOByPage(PageRequest pageRequest);
    /**
     * 获取拥有某个角色的所有用户
     *
     * @param
     * @return
     * @date 2021-07-14 下午2:57
     */
    List<User> getUsersByRole(Integer roleId, int pageNumber);
    List<Integer> getUserIdsByRole(String roleName);
    int countUsersByRole(int roleId);
    User getById(int userId);
    User getByUsername(String username);
    AccountInfo getAccountInfo();
}
