package com.tievd.cube.modules.system.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.tievd.cube.commons.base.Result; import com.tievd.cube.modules.system.entity.SysUser; import com.tievd.cube.modules.system.model.SysUserSysDepartModel; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; /** * 用户管理 * * @author 杨欣武 * @version 2.4.0 * @since 2022-05-07 */ public interface ISysUserService extends IService { /** * 新增用户 * * @param user 用户基础信息 * @param selectedRoles 用户绑定的角色 * @param selectedDeparts 用户绑定的部门 */ void add(SysUser user, String selectedRoles, String selectedDeparts); /** * 用户自己修改密码 */ Result changePassword(String oldPassword, String newPassword, String confirmPassword); /** * 管理员修改密码 */ Result changePassword(SysUser sysUser); /** * 删除用户 */ void deleteUser(String userId); /** * 批量删除用户 */ void deleteBatchUsers(String userIds); SysUser getUserByName(String username); /** * 添加用户和用户角色关系 */ void addUserWithRole(SysUser user, String roles); /** * 修改用户和用户角色关系 */ void editUserWithRole(SysUser user, String roles); /** * 获取用户的授权角色 */ List getRole(String username); /** * 根据部门Id查询 */ IPage getUserByDepId(Page page, String departId, String username); /** * 根据部门Ids查询 */ IPage getUserByDepIds(Page page, List departIds, String username); /** * 根据 userIds查询,查询用户所属部门的名称(多个部门名逗号隔开) */ Map getDepNamesByUserIds(List userIds); /** * 根据部门 Id 和 QueryWrapper 查询 */ IPage getUserByDepartIdAndQueryWrapper(Page page, String departId, QueryWrapper queryWrapper); /** * 根据 orgCode 查询用户,包括子部门下的用户 * * @param orgCode 部门编码 * @param userParams 用户查询条件,可为空 * @param page 分页参数 */ List queryUserByOrgCode(String orgCode, SysUser userParams, IPage page); /** * 根据角色Id查询 */ IPage getUserByRoleId(Page page, String roleId, String username); /** * 根据用户名设置部门ID */ void updateUserDepart(String username, String orgCode); /** * 根据手机号获取用户名和密码 */ SysUser getUserByPhone(String phone); /** * 根据邮箱获取用户 */ SysUser getUserByEmail(String email); /** * 添加用户和用户部门关系 */ void addUserWithDepart(SysUser user, String selectedParts); /** * 编辑用户和用户部门关系 */ void editUserWithDepart(SysUser user, String departs); /** * 查询被逻辑删除的用户 */ List queryLogicDeleted(); /** * 查询被逻辑删除的用户(可拼装查询条件) */ List queryLogicDeleted(LambdaQueryWrapper wrapper); /** * 还原被逻辑删除的用户 */ boolean revertLogicDeleted(List userIds, SysUser updateEntity); /** * 彻底删除被逻辑删除的用户 */ boolean removeLogicDeleted(List userIds); /** * 更新手机号、邮箱空字符串为 null */ @Transactional(rollbackFor = Exception.class) boolean updateNullPhoneEmail(); /** * 保存第三方用户信息 */ void saveThirdUser(SysUser sysUser); /** * 根据部门Ids查询 */ List queryByDepIds(List departIds, String username); }