package com.cloudroam.service; import com.cloudroam.dto.projectDaily.QueryProjectDailyDTO; import com.cloudroam.dto.user.LoginDTO; import com.cloudroam.vo.LoginCaptchaVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.cloudroam.common.mybatis.LinPage; import com.cloudroam.dto.user.ChangePasswordDTO; import com.cloudroam.dto.user.RegisterDTO; import com.cloudroam.dto.user.UpdateInfoDTO; import com.cloudroam.model.GroupDO; import com.cloudroam.model.PermissionDO; import com.cloudroam.model.UserDO; import java.awt.*; import java.io.IOException; import java.security.GeneralSecurityException; import java.util.List; import java.util.Map; /** * 用户服务实现类 * * @author * @author */ public interface UserService extends IService { /** * 新建用户 * * @param validator 新建用户校验器 * @return 被创建的用户 */ UserDO createUser(RegisterDTO validator); /** * 更新用户 * * @param validator 更新用户信息用户校验器 * @return 被更新的用户 */ UserDO updateUserInfo(UpdateInfoDTO validator); /** * 修改用户密码 * * @param validator 修改密码校验器 * @return 被修改密码的用户 */ UserDO changeUserPassword(ChangePasswordDTO validator); /** * 获得用户的所有分组 * * @param userId 用户id * @return 所有分组 */ List getUserGroups(Integer userId); /** * 获得用户所有权限 * * @param userId 用户id * @return 权限 */ List>>> getStructuralUserPermissions(Integer userId); /** * 获得用户所有权限 * * @param userId 用户id * @return 权限 */ List getUserPermissions(Integer userId); /** * 获得用户在模块下的所有权限 * * @param userId 用户id * @param module 权限模块 * @return 权限 */ List getUserPermissionsByModule(Integer userId, String module); /** * 通过用户名查找用户 * * @param username 用户名 * @return 用户 */ UserDO getUserByUsername(String username); /** * 根据用户名检查用户是否存在 * * @param username 用户名 * @return true代表存在 */ boolean checkUserExistByUsername(String username); /** * 根据用户名检查用户是否存在 * * @param email 邮箱 * @return true代表存在 */ boolean checkUserExistByEmail(String email); /** * 根据用户id检查用户是否存在 * * @param id 用户名 * @return true代表存在 */ boolean checkUserExistById(Integer id); /** * 根据分组id分页获取用户数据 * * @param pager 分页 * @param groupId 分组id * @return 数据页 */ IPage getUserPageByGroupId(LinPage pager, Integer groupId); /** * 获取超级管理员的id * * @return 超级管理员的id */ Integer getRootUserId(); /** * 生成无状态的登录验证码 * * @return LoginCaptchaVO 验证码视图对象 * @throws IOException * @throws FontFormatException * @throws GeneralSecurityException */ LoginCaptchaVO generateCaptcha() throws IOException, FontFormatException, GeneralSecurityException; /** * 校验登录验证码 * * @return 结果 */ boolean verifyCaptcha(String captcha, String tag); /** * 获取所有用户信息 * @param dto * @return */ List getAllUsers(QueryProjectDailyDTO dto); UserDO getUserById(String userId); }