Files
youlai-boot/src/main/java/com/youlai/boot/system/service/UserService.java

206 lines
4.9 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.youlai.boot.system.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.common.model.Option;
import com.youlai.boot.framework.security.model.UserAuthInfo;
import com.youlai.boot.system.model.vo.CurrentUserVO;
import com.youlai.boot.system.model.vo.UserExportVO;
import com.youlai.boot.system.model.entity.SysUser;
import com.youlai.boot.system.model.query.UserQuery;
import com.youlai.boot.system.model.vo.UserPageVO;
import com.youlai.boot.system.model.vo.UserProfileVO;
import com.youlai.boot.system.model.form.*;
import java.util.List;
/**
* 用户业务接口
*
* @author Ray.Hao
* @since 2022/1/14
*/
public interface UserService extends IService<SysUser> {
/**
* 用户分页列表
*
* @return {@link IPage<UserPageVO>} 用户分页列表
*/
IPage<UserPageVO> getUserPage(UserQuery queryParams);
/**
* 获取用户表单数据
*
* @param userId 用户ID
* @return {@link UserForm} 用户表单数据
*/
UserForm getUserFormData(Long userId);
/**
* 新增用户
*
* @param userForm 用户表单对象
* @return {@link Boolean} 是否新增成功
*/
boolean saveUser(UserForm userForm);
/**
* 修改用户
*
* @param userId 用户ID
* @param userForm 用户表单对象
* @return {@link Boolean} 是否修改成功
*/
boolean updateUser(Long userId, UserForm userForm);
/**
* 修改用户状态
*
* @param userId 用户ID
* @param status 状态值
* @return {@link Boolean} 是否修改成功
*/
boolean updateUserStatus(Long userId, Integer status);
/**
* 删除用户
*
* @param idsStr 用户ID多个以英文逗号(,)分割
* @return {@link Boolean} 是否删除成功
*/
boolean deleteUsers(String idsStr);
/**
* 根据用户名获取认证信息
*
* @param username 用户名
* @return {@link UserAuthInfo}
*/
UserAuthInfo getAuthInfoByUsername(String username);
default UserAuthInfo getAuthCredentialsByUsername(String username) {
return getAuthInfoByUsername(username);
}
/**
* 获取导出用户列表
*
* @param queryParams 查询参数
* @return {@link List<UserExportVO>} 导出用户列表
*/
List<UserExportVO> listExportUsers(UserQuery queryParams);
/**
* 获取登录用户信息
*
* @return {@link CurrentUserVO} 登录用户信息
*/
CurrentUserVO getCurrentUserInfo();
/**
* 获取个人中心用户信息
*
* @return {@link UserProfileVO} 个人中心用户信息
*/
UserProfileVO getUserProfile(Long userId);
/**
* 修改个人中心用户信息
*
* @param formData 表单数据
* @return {@link Boolean} 是否修改成功
*/
boolean updateUserProfile(UserProfileForm formData);
/**
* 修改指定用户密码
*
* @param userId 用户ID
* @param data 修改密码表单数据
* @return {@link Boolean} 是否修改成功
*/
boolean changeUserPassword(Long userId, PasswordUpdateForm data);
/**
* 重置指定用户密码
*
* @param userId 用户ID
* @param password 重置后的密码
* @return {@link Boolean} 是否重置成功
*/
boolean resetUserPassword(Long userId, String password);
/**
* 发送短信验证码(绑定或更换手机号)
*
* @param mobile 手机号
* @return {@link Boolean} 是否发送成功
*/
boolean sendMobileCode(String mobile);
/**
* 修改当前用户手机号
*
* @param data 表单数据
* @return {@link Boolean} 是否修改成功
*/
boolean bindOrChangeMobile(MobileUpdateForm data);
/**
* 发送邮箱验证码(绑定或更换邮箱)
*
* @param email 邮箱
*/
void sendEmailCode(String email);
/**
* 绑定或更换邮箱
*
* @param data 表单数据
* @return {@link Boolean} 是否绑定成功
*/
boolean bindOrChangeEmail(EmailUpdateForm data);
/**
* 解绑手机号
*
* @param data 表单数据
* @return {@link Boolean} 是否解绑成功
*/
boolean unbindMobile(PasswordVerifyForm data);
/**
* 解绑邮箱
*
* @param data 表单数据
* @return {@link Boolean} 是否解绑成功
*/
boolean unbindEmail(PasswordVerifyForm data);
/**
* 获取用户选项列表
*
* @return {@link List<Option<String>>} 用户选项列表
*/
List<Option<String>> listUserOptions();
/**
* 根据手机号获取用户认证信息
*
* @param mobile 手机号
* @return {@link UserAuthInfo}
*/
UserAuthInfo getAuthInfoByMobile(String mobile);
default UserAuthInfo getAuthCredentialsByMobile(String mobile) {
return getAuthInfoByMobile(mobile);
}
}