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 { /** * 用户分页列表 * * @return {@link IPage} 用户分页列表 */ IPage 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} 导出用户列表 */ List 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>} 用户选项列表 */ List> listUserOptions(); /** * 根据手机号获取用户认证信息 * * @param mobile 手机号 * @return {@link UserAuthInfo} */ UserAuthInfo getAuthInfoByMobile(String mobile); default UserAuthInfo getAuthCredentialsByMobile(String mobile) { return getAuthInfoByMobile(mobile); } }