package org.jeecg.modules.system.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.system.vo.SysUserCacheInfo; import org.jeecg.modules.system.entity.SysRoleIndex; import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.model.SysUserSysDepartModel; import org.jeecg.modules.system.vo.UserSelector; import org.springframework.transaction.annotation.Transactional; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; /** *

* 用户表 服务类 *

* * @Author scott * @since 2018-12-20 */ public interface ISysUserService extends IService { /** * 重置密码 * * @param username * @param oldpassword * @param newpassword * @param confirmpassword * @return */ Result resetPassword(String username, String oldpassword, String newpassword, String confirmpassword); /** * 修改密码 * * @param sysUser * @return */ Result changePassword(SysUser sysUser); /** * 删除用户 * @param userId * @return */ boolean deleteUser(String userId); /** * 批量删除用户 * @param userIds * @return */ boolean deleteBatchUsers(String userIds); /** * 根据用户名查询 * @param username 用户名 * @return SysUser */ SysUser getUserByName(String username); /** * 添加用户和用户角色关系 * @param user * @param roles */ void addUserWithRole(SysUser user, String roles); /** * 修改用户和用户角色关系 * @param user * @param roles */ void editUserWithRole(SysUser user, String roles); /** * 获取用户的授权角色 * @param username * @return */ List getRole(String username); /** * 获取根据登录用户的角色获取动态首页 * * @param username * @param version 前端UI版本 * @return */ SysRoleIndex getDynamicIndexByUserRole(String username, String version); /** * 查询用户信息包括 部门信息 * @param username * @return */ @Deprecated SysUserCacheInfo getCacheUser(String username); /** * 根据部门Id查询 * @param page * @param departId 部门id * @param username 用户账户名称 * @return */ IPage getUserByDepId(Page page, String departId, String username); /** * 根据部门Ids查询 * @param page * @param departIds 部门id集合 * @param username 用户账户名称 * @return */ IPage getUserByDepIds(Page page, List departIds, String username); /** * 根据 userIds查询,查询用户所属部门的名称(多个部门名逗号隔开) * @param userIds * @return */ Map getDepNamesByUserIds(List userIds); /** * 根据部门 Id 和 QueryWrapper 查询 * * @param page * @param departId * @param queryWrapper * @return */ //update-begin-author:taoyan date:2022-9-13 for: VUEN-2245【漏洞】发现新漏洞待处理20220906 ----sql注入 方法没有使用,注掉 // public IPage getUserByDepartIdAndQueryWrapper(Page page, String departId, QueryWrapper queryWrapper); //update-end-author:taoyan date:2022-9-13 for: VUEN-2245【漏洞】发现新漏洞待处理20220906 ----sql注入 方法没有使用,注掉 /** * 根据 orgCode 查询用户,包括子部门下的用户 * * @param orgCode * @param userParams 用户查询条件,可为空 * @param page 分页参数 * @return */ IPage queryUserByOrgCode(String orgCode, SysUser userParams, IPage page); /** * 根据角色Id查询 * @param page * @param roleId 角色id * @param username 用户账户名称 * @return */ IPage getUserByRoleId(Page page, String roleId, String username); /** * 通过用户名获取用户角色集合 * * @param username 用户名 * @return 角色集合 */ Set getUserRolesSet(String username); /** * 通过用户名获取用户权限集合 * * @param username 用户名 * @return 权限集合 */ Set getUserPermissionsSet(String username); /** * 根据用户名设置部门ID * @param username * @param orgCode */ void updateUserDepart(String username,String orgCode); /** * 根据手机号获取用户名和密码 * @param phone 手机号 * @return SysUser */ SysUser getUserByPhone(String phone); /** * 根据邮箱获取用户 * @param email 邮箱 * @return SysUser */ SysUser getUserByEmail(String email); /** * 添加用户和用户部门关系 * @param user * @param selectedParts */ void addUserWithDepart(SysUser user, String selectedParts); /** * 编辑用户和用户部门关系 * @param user * @param departs */ void editUserWithDepart(SysUser user, String departs); /** * 校验用户是否有效 * @param sysUser * @return */ Result checkUserIsEffective(SysUser sysUser, String loginType); /** * 查询被逻辑删除的用户 * @return List */ List queryLogicDeleted(); /** * 查询被逻辑删除的用户(可拼装查询条件) * @param wrapper * @return List */ List queryLogicDeleted(LambdaQueryWrapper wrapper); /** * 还原被逻辑删除的用户 * @param userIds 存放用户id集合 * @param updateEntity * @return boolean */ boolean revertLogicDeleted(List userIds, SysUser updateEntity); /** * 彻底删除被逻辑删除的用户 * @param userIds 存放用户id集合 * @return boolean */ boolean removeLogicDeleted(List userIds); /** * 更新手机号、邮箱空字符串为 null * @return boolean */ @Transactional(rollbackFor = Exception.class) boolean updateNullPhoneEmail(); /** * 保存第三方用户信息 * @param sysUser */ void saveThirdUser(SysUser sysUser); /** * 根据部门Ids查询 * @param departIds 部门id集合 * @param username 用户账户名称 * @return */ List queryByDepIds(List departIds, String username); /** * 保存用户 * @param user 用户 * @param selectedRoles 选择的角色id,多个以逗号隔开 * @param selectedDeparts 选择的部门id,多个以逗号隔开 * @param selectedProductions 选择的产线id,多个以逗号隔开 */ void saveUser(SysUser user, String selectedRoles, String selectedDeparts, String selectedProductions); /** * 编辑用户 * @param user 用户 * @param roles 选择的角色id,多个以逗号隔开 * @param departs 选择的部门id,多个以逗号隔开 * @param productions 选择的产线id,多个以逗号隔开 */ void editUser(SysUser user, String roles, String departs, String productions); /** * userId转为username * @param userIdList * @return List */ List userIdToUsername(Collection userIdList); /** * 获取用户信息 字段信息是加密后的 【加密用户信息】 * @param username * @return */ LoginUser getEncodeUserInfo(String username); /** * 根据 userIds查询,查询用户所属产线的名称(多个产线名逗号隔开) */ Map getProNamesByUserIds(List userIds); /** * 根据角色Id查询该角色下的所有用户信息,不分页 * * @param * @return */ List getAllUsersByRoleId(String roleId); List getUserByRoleCode(String roleCode); List getEquipmentAdmin(String roleCode, String equipmentId); /** * 选择用户 * @param equipmentCode 选择的设备ID * @param productionId 选择的车间ID * @param positionCode 岗位编号 * @return */ List selectOperatorList(String equipmentCode, String productionId, String positionCode); /** * 选择用户 * @param positionCode 岗位编号 * @return */ List selectOperatorList( String positionCode); /** * 根据用户名批量获取真实姓名映射 * @param userNames 用户名列表 * @return 用户名->真实姓名的映射(不存在时值为null) */ Map getUserRealNamesByUserNames(List userNames); }