| | |
| | | import org.dromara.common.websocket.utils.WebSocketUtils; |
| | | import org.dromara.system.domain.SysClient; |
| | | import org.dromara.system.domain.bo.SysTenantBo; |
| | | import org.dromara.system.domain.vo.SysClientVo; |
| | | import org.dromara.system.domain.vo.SysTenantVo; |
| | | import org.dromara.system.service.ISysClientService; |
| | | import org.dromara.system.service.ISysConfigService; |
| | |
| | | // 授权类型和客户端id |
| | | String clientId = loginBody.getClientId(); |
| | | String grantType = loginBody.getGrantType(); |
| | | SysClient client = clientService.queryByClientId(clientId); |
| | | SysClientVo client = clientService.queryByClientId(clientId); |
| | | // 查询不到 client 或 client 内不包含 grantType |
| | | if (ObjectUtil.isNull(client) || !StringUtils.contains(client.getGrantType(), grantType)) { |
| | | log.info("客户端id: {} 认证类型:{} 异常!.", clientId, grantType); |
| | |
| | | import org.dromara.common.core.exception.ServiceException; |
| | | import org.dromara.common.core.utils.SpringUtils; |
| | | import org.dromara.system.domain.SysClient; |
| | | import org.dromara.system.domain.vo.SysClientVo; |
| | | import org.dromara.web.domain.vo.LoginVo; |
| | | |
| | | /** |
| | |
| | | /** |
| | | * 登录 |
| | | */ |
| | | static LoginVo login(String body, SysClient client, String grantType) { |
| | | static LoginVo login(String body, SysClientVo client, String grantType) { |
| | | // 授权类型和客户端id |
| | | String beanName = grantType + BASE_NAME; |
| | | if (!SpringUtils.containsBean(beanName)) { |
| | |
| | | /** |
| | | * 登录 |
| | | */ |
| | | LoginVo login(String body, SysClient client); |
| | | LoginVo login(String body, SysClientVo client); |
| | | |
| | | } |
| | |
| | | import org.dromara.common.tenant.helper.TenantHelper; |
| | | import org.dromara.system.domain.SysUser; |
| | | import org.dromara.system.domain.bo.SysSocialBo; |
| | | import org.dromara.system.domain.vo.SysRoleVo; |
| | | import org.dromara.system.domain.vo.SysSocialVo; |
| | | import org.dromara.system.domain.vo.SysTenantVo; |
| | | import org.dromara.system.domain.vo.SysUserVo; |
| | | import org.dromara.system.mapper.SysUserMapper; |
| | | import org.dromara.system.service.ISysPermissionService; |
| | | import org.dromara.system.service.ISysRoleService; |
| | | import org.dromara.system.service.ISysSocialService; |
| | | import org.dromara.system.service.ISysTenantService; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | |
| | | private final ISysTenantService tenantService; |
| | | private final ISysPermissionService permissionService; |
| | | private final ISysSocialService sysSocialService; |
| | | private final ISysRoleService roleService; |
| | | private final SysUserMapper userMapper; |
| | | |
| | | |
| | |
| | | loginUser.setMenuPermission(permissionService.getMenuPermission(user.getUserId())); |
| | | loginUser.setRolePermission(permissionService.getRolePermission(user.getUserId())); |
| | | loginUser.setDeptName(ObjectUtil.isNull(user.getDept()) ? "" : user.getDept().getDeptName()); |
| | | List<RoleDTO> roles = BeanUtil.copyToList(user.getRoles(), RoleDTO.class); |
| | | loginUser.setRoles(roles); |
| | | List<SysRoleVo> roles = DataPermissionHelper.ignore(() -> { |
| | | return roleService.selectRolesByUserId(user.getUserId()); |
| | | }); |
| | | loginUser.setRoles(BeanUtil.copyToList(roles, RoleDTO.class)); |
| | | return loginUser; |
| | | } |
| | | |
| | |
| | | import org.dromara.common.tenant.helper.TenantHelper; |
| | | import org.dromara.system.domain.SysClient; |
| | | import org.dromara.system.domain.SysUser; |
| | | import org.dromara.system.domain.vo.SysClientVo; |
| | | import org.dromara.system.domain.vo.SysUserVo; |
| | | import org.dromara.system.mapper.SysUserMapper; |
| | | import org.dromara.web.domain.vo.LoginVo; |
| | |
| | | private final SysUserMapper userMapper; |
| | | |
| | | @Override |
| | | public LoginVo login(String body, SysClient client) { |
| | | public LoginVo login(String body, SysClientVo client) { |
| | | EmailLoginBody loginBody = JsonUtils.parseObject(body, EmailLoginBody.class); |
| | | ValidatorUtils.validate(loginBody); |
| | | String tenantId = loginBody.getTenantId(); |
| | |
| | | |
| | | private SysUserVo loadUserByEmail(String tenantId, String email) { |
| | | return TenantHelper.dynamic(tenantId, () -> { |
| | | SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>() |
| | | .select(SysUser::getEmail, SysUser::getStatus) |
| | | .eq(SysUser::getEmail, email)); |
| | | SysUserVo user = userMapper.selectVoOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getEmail, email)); |
| | | if (ObjectUtil.isNull(user)) { |
| | | log.info("登录用户:{} 不存在.", email); |
| | | throw new UserException("user.not.exists", email); |
| | |
| | | log.info("登录用户:{} 已被停用.", email); |
| | | throw new UserException("user.blocked", email); |
| | | } |
| | | return userMapper.selectUserByEmail(email); |
| | | return user; |
| | | }); |
| | | } |
| | | |
| | |
| | | import org.dromara.common.web.config.properties.CaptchaProperties; |
| | | import org.dromara.system.domain.SysClient; |
| | | import org.dromara.system.domain.SysUser; |
| | | import org.dromara.system.domain.vo.SysClientVo; |
| | | import org.dromara.system.domain.vo.SysUserVo; |
| | | import org.dromara.system.mapper.SysUserMapper; |
| | | import org.dromara.web.domain.vo.LoginVo; |
| | |
| | | private final SysUserMapper userMapper; |
| | | |
| | | @Override |
| | | public LoginVo login(String body, SysClient client) { |
| | | public LoginVo login(String body, SysClientVo client) { |
| | | PasswordLoginBody loginBody = JsonUtils.parseObject(body, PasswordLoginBody.class); |
| | | ValidatorUtils.validate(loginBody); |
| | | String tenantId = loginBody.getTenantId(); |
| | |
| | | |
| | | private SysUserVo loadUserByUsername(String tenantId, String username) { |
| | | return TenantHelper.dynamic(tenantId, () -> { |
| | | SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>() |
| | | .select(SysUser::getUserName, SysUser::getStatus) |
| | | .eq(SysUser::getUserName, username)); |
| | | SysUserVo user = userMapper.selectVoOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, username)); |
| | | if (ObjectUtil.isNull(user)) { |
| | | log.info("登录用户:{} 不存在.", username); |
| | | throw new UserException("user.not.exists", username); |
| | |
| | | log.info("登录用户:{} 已被停用.", username); |
| | | throw new UserException("user.blocked", username); |
| | | } |
| | | return userMapper.selectUserByUserName(username); |
| | | return user; |
| | | }); |
| | | } |
| | | |
| | |
| | | import org.dromara.common.tenant.helper.TenantHelper; |
| | | import org.dromara.system.domain.SysClient; |
| | | import org.dromara.system.domain.SysUser; |
| | | import org.dromara.system.domain.vo.SysClientVo; |
| | | import org.dromara.system.domain.vo.SysUserVo; |
| | | import org.dromara.system.mapper.SysUserMapper; |
| | | import org.dromara.web.domain.vo.LoginVo; |
| | |
| | | private final SysUserMapper userMapper; |
| | | |
| | | @Override |
| | | public LoginVo login(String body, SysClient client) { |
| | | public LoginVo login(String body, SysClientVo client) { |
| | | SmsLoginBody loginBody = JsonUtils.parseObject(body, SmsLoginBody.class); |
| | | ValidatorUtils.validate(loginBody); |
| | | String tenantId = loginBody.getTenantId(); |
| | |
| | | |
| | | private SysUserVo loadUserByPhonenumber(String tenantId, String phonenumber) { |
| | | return TenantHelper.dynamic(tenantId, () -> { |
| | | SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>() |
| | | .select(SysUser::getPhonenumber, SysUser::getStatus) |
| | | .eq(SysUser::getPhonenumber, phonenumber)); |
| | | SysUserVo user = userMapper.selectVoOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getPhonenumber, phonenumber)); |
| | | if (ObjectUtil.isNull(user)) { |
| | | log.info("登录用户:{} 不存在.", phonenumber); |
| | | throw new UserException("user.not.exists", phonenumber); |
| | |
| | | log.info("登录用户:{} 已被停用.", phonenumber); |
| | | throw new UserException("user.blocked", phonenumber); |
| | | } |
| | | return userMapper.selectUserByPhonenumber(phonenumber); |
| | | return user; |
| | | }); |
| | | } |
| | | |
| | |
| | | import org.dromara.common.tenant.helper.TenantHelper; |
| | | import org.dromara.system.domain.SysClient; |
| | | import org.dromara.system.domain.SysUser; |
| | | import org.dromara.system.domain.vo.SysClientVo; |
| | | import org.dromara.system.domain.vo.SysSocialVo; |
| | | import org.dromara.system.domain.vo.SysUserVo; |
| | | import org.dromara.system.mapper.SysUserMapper; |
| | |
| | | * @param client 客户端信息 |
| | | */ |
| | | @Override |
| | | public LoginVo login(String body, SysClient client) { |
| | | public LoginVo login(String body, SysClientVo client) { |
| | | SocialLoginBody loginBody = JsonUtils.parseObject(body, SocialLoginBody.class); |
| | | ValidatorUtils.validate(loginBody); |
| | | AuthResponse<AuthUser> response = SocialUtils.loginAuth( |
| | |
| | | |
| | | private SysUserVo loadUser(String tenantId, Long userId) { |
| | | return TenantHelper.dynamic(tenantId, () -> { |
| | | SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>() |
| | | .select(SysUser::getUserName, SysUser::getStatus) |
| | | .eq(SysUser::getUserId, userId)); |
| | | SysUserVo user = userMapper.selectVoById(userId); |
| | | if (ObjectUtil.isNull(user)) { |
| | | log.info("登录用户:{} 不存在.", ""); |
| | | throw new UserException("user.not.exists", ""); |
| | |
| | | log.info("登录用户:{} 已被停用.", ""); |
| | | throw new UserException("user.blocked", ""); |
| | | } |
| | | return userMapper.selectUserByUserName(user.getUserName()); |
| | | return user; |
| | | }); |
| | | } |
| | | |
| | |
| | | import org.dromara.common.json.utils.JsonUtils; |
| | | import org.dromara.common.satoken.utils.LoginHelper; |
| | | import org.dromara.system.domain.SysClient; |
| | | import org.dromara.system.domain.vo.SysClientVo; |
| | | import org.dromara.system.domain.vo.SysUserVo; |
| | | import org.dromara.web.domain.vo.LoginVo; |
| | | import org.dromara.web.service.IAuthStrategy; |
| | |
| | | private final SysLoginService loginService; |
| | | |
| | | @Override |
| | | public LoginVo login(String body, SysClient client) { |
| | | public LoginVo login(String body, SysClientVo client) { |
| | | XcxLoginBody loginBody = JsonUtils.parseObject(body, XcxLoginBody.class); |
| | | ValidatorUtils.validate(loginBody); |
| | | // xcxCode 为 小程序调用 wx.login 授权后获取 |
| | |
| | | String SYS_TENANT = GlobalConstants.GLOBAL_REDIS_KEY + "sys_tenant#30d"; |
| | | |
| | | /** |
| | | * 客户端 |
| | | */ |
| | | String SYS_CLIENT = GlobalConstants.GLOBAL_REDIS_KEY + "sys_client#30d"; |
| | | |
| | | /** |
| | | * 用户账户 |
| | | */ |
| | | String SYS_USER_NAME = "sys_user_name#30d"; |
| | |
| | | @Log(title = "客户端管理", businessType = BusinessType.UPDATE) |
| | | @PutMapping("/changeStatus") |
| | | public R<Void> changeStatus(@RequestBody SysClientBo bo) { |
| | | return toAjax(sysClientService.updateUserStatus(bo.getId(), bo.getStatus())); |
| | | return toAjax(sysClientService.updateUserStatus(bo.getClientId(), bo.getStatus())); |
| | | } |
| | | |
| | | /** |
| | |
| | | import org.dromara.system.domain.vo.SysOssVo; |
| | | import org.dromara.system.domain.vo.SysUserVo; |
| | | import org.dromara.system.service.ISysOssService; |
| | | import org.dromara.system.service.ISysRoleService; |
| | | import org.dromara.system.service.ISysUserService; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.http.MediaType; |
| | |
| | | public class SysProfileController extends BaseController { |
| | | |
| | | private final ISysUserService userService; |
| | | private final ISysRoleService roleService; |
| | | private final ISysOssService ossService; |
| | | |
| | | /** |
| | |
| | | @GetMapping |
| | | public R<ProfileVo> profile() { |
| | | SysUserVo user = userService.selectUserById(LoginHelper.getUserId()); |
| | | user.setRoles(roleService.selectRolesByUserId(user.getUserId())); |
| | | ProfileVo profileVo = new ProfileVo(); |
| | | profileVo.setUser(user); |
| | | profileVo.setRoleGroup(userService.selectUserRoleGroup(user.getUserName())); |
| | | profileVo.setPostGroup(userService.selectUserPostGroup(user.getUserName())); |
| | | profileVo.setRoleGroup(userService.selectUserRoleGroup(user.getUserId())); |
| | | profileVo.setPostGroup(userService.selectUserPostGroup(user.getUserId())); |
| | | return R.ok(profileVo); |
| | | } |
| | | |
| | |
| | | if (ObjectUtil.isNull(user)) { |
| | | return R.fail("没有权限访问用户数据!"); |
| | | } |
| | | user.setRoles(roleService.selectRolesByUserId(user.getUserId())); |
| | | userInfoVo.setUser(user); |
| | | userInfoVo.setPermissions(loginUser.getMenuPermission()); |
| | | userInfoVo.setRoles(loginUser.getRolePermission()); |
| | |
| | | if (ObjectUtil.isNotNull(userId)) { |
| | | SysUserVo sysUser = userService.selectUserById(userId); |
| | | userInfoVo.setUser(sysUser); |
| | | userInfoVo.setRoleIds(StreamUtils.toList(sysUser.getRoles(), SysRoleVo::getRoleId)); |
| | | userInfoVo.setRoleIds(roleService.selectRoleListByUserId(userId)); |
| | | userInfoVo.setPostIds(postService.selectPostListByUserId(userId)); |
| | | } |
| | | return R.ok(userInfoVo); |
| | |
| | | @SaCheckPermission("system:user:query") |
| | | @GetMapping("/authRole/{userId}") |
| | | public R<SysUserInfoVo> authRole(@PathVariable Long userId) { |
| | | userService.checkUserDataScope(userId); |
| | | SysUserVo user = userService.selectUserById(userId); |
| | | List<SysRoleVo> roles = roleService.selectRolesByUserId(userId); |
| | | List<SysRoleVo> roles = roleService.selectRolesAuthByUserId(userId); |
| | | SysUserInfoVo userInfoVo = new SysUserInfoVo(); |
| | | userInfoVo.setUser(user); |
| | | userInfoVo.setRoles(LoginHelper.isSuperAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isSuperAdmin())); |
| | |
| | | @DataPermission({ |
| | | @DataColumn(key = "deptName", value = "dept_id") |
| | | }) |
| | | SysDeptVo selectDeptById(Long deptId); |
| | | long countDeptById(Long deptId); |
| | | |
| | | /** |
| | | * 根据角色ID查询部门树信息 |
| | |
| | | public interface SysPostMapper extends BaseMapperPlus<SysPost, SysPostVo> { |
| | | |
| | | /** |
| | | * 根据用户ID获取岗位选择框列表 |
| | | * |
| | | * @param userId 用户ID |
| | | * @return 选中岗位ID列表 |
| | | */ |
| | | List<Long> selectPostListByUserId(Long userId); |
| | | |
| | | /** |
| | | * 查询用户所属岗位组 |
| | | * |
| | | * @param userName 用户名 |
| | | * @param userId 用户ID |
| | | * @return 结果 |
| | | */ |
| | | List<SysPostVo> selectPostsByUserName(String userName); |
| | | List<SysPostVo> selectPostsByUserId(Long userId); |
| | | |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Constants; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.dromara.common.mybatis.annotation.DataColumn; |
| | | import org.dromara.common.mybatis.annotation.DataPermission; |
| | | import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
| | | import org.dromara.system.domain.SysRole; |
| | | import org.dromara.system.domain.vo.SysRoleVo; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | */ |
| | | List<SysRoleVo> selectRolePermissionByUserId(Long userId); |
| | | |
| | | |
| | | /** |
| | | * 根据用户ID获取角色选择框列表 |
| | | * |
| | | * @param userId 用户ID |
| | | * @return 选中角色ID列表 |
| | | */ |
| | | List<Long> selectRoleListByUserId(Long userId); |
| | | |
| | | /** |
| | | * 根据用户ID查询角色 |
| | | * |
| | | * @param userName 用户名 |
| | | * @param userId 用户ID |
| | | * @return 角色列表 |
| | | */ |
| | | List<SysRoleVo> selectRolesByUserName(String userName); |
| | | List<SysRoleVo> selectRolesByUserId(Long userId); |
| | | |
| | | } |
| | |
| | | }) |
| | | Page<SysUserVo> selectUnallocatedList(@Param("page") Page<SysUser> page, @Param(Constants.WRAPPER) Wrapper<SysUser> queryWrapper); |
| | | |
| | | /** |
| | | * 通过用户名查询用户 |
| | | * |
| | | * @param userName 用户名 |
| | | * @return 用户对象信息 |
| | | */ |
| | | SysUserVo selectUserByUserName(String userName); |
| | | |
| | | /** |
| | | * 通过手机号查询用户 |
| | | * |
| | | * @param phonenumber 手机号 |
| | | * @return 用户对象信息 |
| | | */ |
| | | SysUserVo selectUserByPhonenumber(String phonenumber); |
| | | |
| | | /** |
| | | * 通过邮箱查询用户 |
| | | * |
| | | * @param email 邮箱 |
| | | * @return 用户对象信息 |
| | | */ |
| | | SysUserVo selectUserByEmail(String email); |
| | | |
| | | /** |
| | | * 通过用户ID查询用户 |
| | | * |
| | | * @param userId 用户ID |
| | | * @return 用户对象信息 |
| | | */ |
| | | @DataPermission({ |
| | | @DataColumn(key = "deptName", value = "d.dept_id"), |
| | | @DataColumn(key = "userName", value = "u.user_id") |
| | | @DataColumn(key = "deptName", value = "dept_id"), |
| | | @DataColumn(key = "userName", value = "user_id") |
| | | }) |
| | | SysUserVo selectUserById(Long userId); |
| | | long countUserById(Long userId); |
| | | |
| | | @Override |
| | | @DataPermission({ |
| | |
| | | /** |
| | | * 查询客户端信息基于客户端id |
| | | */ |
| | | SysClient queryByClientId(String clientId); |
| | | SysClientVo queryByClientId(String clientId); |
| | | |
| | | /** |
| | | * 查询客户端管理列表 |
| | |
| | | /** |
| | | * 修改状态 |
| | | */ |
| | | int updateUserStatus(Long id, String status); |
| | | int updateUserStatus(String clientId, String status); |
| | | |
| | | /** |
| | | * 校验并批量删除客户端管理信息 |
| | |
| | | List<SysRoleVo> selectRolesByUserId(Long userId); |
| | | |
| | | /** |
| | | * 根据用户ID查询角色列表(包含被授权状态) |
| | | * |
| | | * @param userId 用户ID |
| | | * @return 角色列表 |
| | | */ |
| | | List<SysRoleVo> selectRolesAuthByUserId(Long userId); |
| | | |
| | | /** |
| | | * 根据用户ID查询角色权限 |
| | | * |
| | | * @param userId 用户ID |
| | |
| | | int insertAuthUsers(Long roleId, Long[] userIds); |
| | | |
| | | void cleanOnlineUserByRole(Long roleId); |
| | | |
| | | } |
| | |
| | | /** |
| | | * 根据用户ID查询用户所属角色组 |
| | | * |
| | | * @param userName 用户名 |
| | | * @param userId 用户ID |
| | | * @return 结果 |
| | | */ |
| | | String selectUserRoleGroup(String userName); |
| | | String selectUserRoleGroup(Long userId); |
| | | |
| | | /** |
| | | * 根据用户ID查询用户所属岗位组 |
| | | * |
| | | * @param userName 用户名 |
| | | * @param userId 用户ID |
| | | * @return 结果 |
| | | */ |
| | | String selectUserPostGroup(String userName); |
| | | String selectUserPostGroup(Long userId); |
| | | |
| | | /** |
| | | * 校验用户名称是否唯一 |
| | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.dromara.common.core.constant.CacheNames; |
| | | import org.dromara.common.core.utils.MapstructUtils; |
| | | import org.dromara.common.core.utils.StringUtils; |
| | | import org.dromara.common.mybatis.core.page.PageQuery; |
| | |
| | | import org.dromara.system.domain.vo.SysClientVo; |
| | | import org.dromara.system.mapper.SysClientMapper; |
| | | import org.dromara.system.service.ISysClientService; |
| | | import org.springframework.cache.annotation.CacheEvict; |
| | | import org.springframework.cache.annotation.Cacheable; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.Collection; |
| | |
| | | /** |
| | | * 查询客户端管理 |
| | | */ |
| | | @Cacheable(cacheNames = CacheNames.SYS_CLIENT, key = "#clientId") |
| | | @Override |
| | | public SysClient queryByClientId(String clientId) { |
| | | return baseMapper.selectOne(new LambdaQueryWrapper<SysClient>().eq(SysClient::getClientId, clientId)); |
| | | public SysClientVo queryByClientId(String clientId) { |
| | | return baseMapper.selectVoOne(new LambdaQueryWrapper<SysClient>().eq(SysClient::getClientId, clientId)); |
| | | } |
| | | |
| | | /** |
| | |
| | | /** |
| | | * 修改客户端管理 |
| | | */ |
| | | @CacheEvict(cacheNames = CacheNames.SYS_CLIENT, key = "#bo.clientId") |
| | | @Override |
| | | public Boolean updateByBo(SysClientBo bo) { |
| | | SysClient update = MapstructUtils.convert(bo, SysClient.class); |
| | |
| | | /** |
| | | * 修改状态 |
| | | */ |
| | | @CacheEvict(cacheNames = CacheNames.SYS_CLIENT, key = "#clientId") |
| | | @Override |
| | | public int updateUserStatus(Long id, String status) { |
| | | public int updateUserStatus(String clientId, String status) { |
| | | return baseMapper.update(null, |
| | | new LambdaUpdateWrapper<SysClient>() |
| | | .set(SysClient::getStatus, status) |
| | | .eq(SysClient::getId, id)); |
| | | .eq(SysClient::getClientId, clientId)); |
| | | } |
| | | |
| | | /** |
| | |
| | | /** |
| | | * 批量删除客户端管理 |
| | | */ |
| | | @CacheEvict(cacheNames = CacheNames.SYS_CLIENT, allEntries = true) |
| | | @Override |
| | | public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { |
| | | if (isValid) { |
| | |
| | | if (LoginHelper.isSuperAdmin()) { |
| | | return; |
| | | } |
| | | SysDeptVo dept = baseMapper.selectDeptById(deptId); |
| | | if (ObjectUtil.isNull(dept)) { |
| | | if (baseMapper.countDeptById(deptId) == 0) { |
| | | throw new ServiceException("没有权限访问部门数据!"); |
| | | } |
| | | } |
| | |
| | | import org.dromara.system.domain.SysClient; |
| | | import org.dromara.system.domain.SysLogininfor; |
| | | import org.dromara.system.domain.bo.SysLogininforBo; |
| | | import org.dromara.system.domain.vo.SysClientVo; |
| | | import org.dromara.system.domain.vo.SysLogininforVo; |
| | | import org.dromara.system.mapper.SysClientMapper; |
| | | import org.dromara.system.mapper.SysLogininforMapper; |
| | |
| | | final String ip = ServletUtils.getClientIP(request); |
| | | // 客户端信息 |
| | | String clientid = request.getHeader(LoginHelper.CLIENT_KEY); |
| | | SysClient client = null; |
| | | SysClientVo client = null; |
| | | if (StringUtils.isNotBlank(clientid)) { |
| | | client = clientService.queryByClientId(clientid); |
| | | } |
| | |
| | | import org.dromara.common.mybatis.core.page.PageQuery; |
| | | import org.dromara.common.mybatis.core.page.TableDataInfo; |
| | | import org.dromara.system.domain.SysNotice; |
| | | import org.dromara.system.domain.SysUser; |
| | | import org.dromara.system.domain.bo.SysNoticeBo; |
| | | import org.dromara.system.domain.vo.SysNoticeVo; |
| | | import org.dromara.system.domain.vo.SysUserVo; |
| | |
| | | lqw.like(StringUtils.isNotBlank(bo.getNoticeTitle()), SysNotice::getNoticeTitle, bo.getNoticeTitle()); |
| | | lqw.eq(StringUtils.isNotBlank(bo.getNoticeType()), SysNotice::getNoticeType, bo.getNoticeType()); |
| | | if (StringUtils.isNotBlank(bo.getCreateByName())) { |
| | | SysUserVo sysUser = userMapper.selectUserByUserName(bo.getCreateByName()); |
| | | SysUserVo sysUser = userMapper.selectVoOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, bo.getCreateByName())); |
| | | lqw.eq(SysNotice::getCreateBy, ObjectUtil.isNotNull(sysUser) ? sysUser.getUserId() : null); |
| | | } |
| | | lqw.orderByAsc(SysNotice::getNoticeId); |
| | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import org.dromara.common.core.exception.ServiceException; |
| | | import org.dromara.common.core.utils.MapstructUtils; |
| | | import org.dromara.common.core.utils.StreamUtils; |
| | | import org.dromara.common.core.utils.StringUtils; |
| | | import org.dromara.common.mybatis.core.page.PageQuery; |
| | | import org.dromara.common.mybatis.core.page.TableDataInfo; |
| | |
| | | */ |
| | | @Override |
| | | public List<Long> selectPostListByUserId(Long userId) { |
| | | return baseMapper.selectPostListByUserId(userId); |
| | | List<SysPostVo> list = baseMapper.selectPostsByUserId(userId); |
| | | return StreamUtils.toList(list, SysPostVo::getPostId); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public List<SysRoleVo> selectRolesByUserId(Long userId) { |
| | | return baseMapper.selectRolesByUserId(userId); |
| | | } |
| | | |
| | | /** |
| | | * 根据用户ID查询角色列表(包含被授权状态) |
| | | * |
| | | * @param userId 用户ID |
| | | * @return 角色列表 |
| | | */ |
| | | @Override |
| | | public List<SysRoleVo> selectRolesAuthByUserId(Long userId) { |
| | | List<SysRoleVo> userRoles = baseMapper.selectRolePermissionByUserId(userId); |
| | | List<SysRoleVo> roles = selectRoleAll(); |
| | | for (SysRoleVo role : roles) { |
| | |
| | | */ |
| | | @Override |
| | | public List<Long> selectRoleListByUserId(Long userId) { |
| | | return baseMapper.selectRoleListByUserId(userId); |
| | | List<SysRoleVo> list = baseMapper.selectRolesByUserId(userId); |
| | | return StreamUtils.toList(list, SysRoleVo::getRoleId); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public SysUserVo selectUserByUserName(String userName) { |
| | | return baseMapper.selectUserByUserName(userName); |
| | | return baseMapper.selectVoOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, userName)); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public SysUserVo selectUserByPhonenumber(String phonenumber) { |
| | | return baseMapper.selectUserByPhonenumber(phonenumber); |
| | | return baseMapper.selectVoOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getPhonenumber, phonenumber)); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public SysUserVo selectUserById(Long userId) { |
| | | return baseMapper.selectUserById(userId); |
| | | return baseMapper.selectVoById(userId); |
| | | } |
| | | |
| | | /** |
| | | * 查询用户所属角色组 |
| | | * |
| | | * @param userName 用户名 |
| | | * @param userId 用户ID |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public String selectUserRoleGroup(String userName) { |
| | | List<SysRoleVo> list = roleMapper.selectRolesByUserName(userName); |
| | | public String selectUserRoleGroup(Long userId) { |
| | | List<SysRoleVo> list = roleMapper.selectRolesByUserId(userId); |
| | | if (CollUtil.isEmpty(list)) { |
| | | return StringUtils.EMPTY; |
| | | } |
| | |
| | | /** |
| | | * 查询用户所属岗位组 |
| | | * |
| | | * @param userName 用户名 |
| | | * @param userId 用户ID |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public String selectUserPostGroup(String userName) { |
| | | List<SysPostVo> list = postMapper.selectPostsByUserName(userName); |
| | | public String selectUserPostGroup(Long userId) { |
| | | List<SysPostVo> list = postMapper.selectPostsByUserId(userId); |
| | | if (CollUtil.isEmpty(list)) { |
| | | return StringUtils.EMPTY; |
| | | } |
| | |
| | | if (LoginHelper.isSuperAdmin()) { |
| | | return; |
| | | } |
| | | if (ObjectUtil.isNull(baseMapper.selectUserById(userId))) { |
| | | if (baseMapper.countUserById(userId) == 0) { |
| | | throw new ServiceException("没有权限访问用户数据!"); |
| | | } |
| | | } |
| | |
| | | select * from sys_dept ${ew.getCustomSqlSegment} |
| | | </select> |
| | | |
| | | <select id="selectDeptById" resultMap="SysDeptResult"> |
| | | select * from sys_dept where del_flag = '0' and dept_id = #{deptId} |
| | | <select id="countDeptById" resultType="Long"> |
| | | select count(*) from sys_dept where del_flag = '0' and dept_id = #{deptId} |
| | | </select> |
| | | |
| | | <select id="selectDeptListByRoleId" resultType="Long"> |
| | |
| | | <resultMap type="org.dromara.system.domain.vo.SysPostVo" id="SysPostResult"> |
| | | </resultMap> |
| | | |
| | | <select id="selectPostListByUserId" parameterType="Long" resultType="Long"> |
| | | select p.post_id |
| | | from sys_post p |
| | | left join sys_user_post up on up.post_id = p.post_id |
| | | left join sys_user u on u.user_id = up.user_id |
| | | where u.user_id = #{userId} |
| | | </select> |
| | | |
| | | <select id="selectPostsByUserName" parameterType="String" resultMap="SysPostResult"> |
| | | <select id="selectPostsByUserId" parameterType="Long" resultMap="SysPostResult"> |
| | | select p.post_id, p.post_name, p.post_code |
| | | from sys_post p |
| | | left join sys_user_post up on up.post_id = p.post_id |
| | | left join sys_user u on u.user_id = up.user_id |
| | | where u.user_name = #{userName} |
| | | where u.user_id = #{userId} |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | WHERE r.del_flag = '0' and sur.user_id = #{userId} |
| | | </select> |
| | | |
| | | <select id="selectRoleListByUserId" parameterType="Long" resultType="Long"> |
| | | select r.role_id |
| | | from sys_role r |
| | | left join sys_user_role sur on sur.role_id = r.role_id |
| | | left join sys_user u on u.user_id = sur.user_id |
| | | where u.user_id = #{userId} |
| | | </select> |
| | | |
| | | <select id="selectRolesByUserName" parameterType="String" resultMap="SysRoleResult"> |
| | | <select id="selectRolesByUserId" parameterType="Long" resultMap="SysRoleResult"> |
| | | select r.role_id, |
| | | r.role_name, |
| | | r.role_key, |
| | | r.role_sort |
| | | r.role_sort, |
| | | r.data_scope, |
| | | r.status |
| | | from sys_role r |
| | | left join sys_user_role sur on sur.role_id = r.role_id |
| | | left join sys_user u on u.user_id = sur.user_id |
| | | WHERE r.del_flag = '0' and u.user_name = #{userName} |
| | | WHERE r.del_flag = '0' and sur.user_id = #{userId} |
| | | </select> |
| | | |
| | | <select id="selectRoleById" resultMap="SysRoleResult"> |
| | |
| | | <id property="userId" column="user_id"/> |
| | | <result property="deptId" column="dept_id"/> |
| | | <association property="dept" column="dept_id" resultMap="deptResult"/> |
| | | <collection property="roles" javaType="java.util.List" resultMap="RoleResult"/> |
| | | </resultMap> |
| | | |
| | | <resultMap id="deptResult" type="org.dromara.system.domain.vo.SysDeptVo"> |
| | |
| | | <result property="status" column="dept_status"/> |
| | | <result property="createTime" column="dept_create_time"/> |
| | | </resultMap> |
| | | |
| | | <resultMap id="RoleResult" type="org.dromara.system.domain.vo.SysRoleVo"> |
| | | <id property="roleId" column="role_id"/> |
| | | <result property="status" column="role_status"/> |
| | | <result property="createTime" column="role_create_time"/> |
| | | </resultMap> |
| | | |
| | | <sql id="selectUserVo"> |
| | | select u.user_id, |
| | | u.tenant_id, |
| | | u.dept_id, |
| | | u.user_name, |
| | | u.nick_name, |
| | | u.user_type, |
| | | u.email, |
| | | u.avatar, |
| | | u.phonenumber, |
| | | u.password, |
| | | u.sex, |
| | | u.status, |
| | | u.del_flag, |
| | | u.login_ip, |
| | | u.login_date, |
| | | u.create_by, |
| | | u.create_time, |
| | | u.remark, |
| | | d.dept_id, |
| | | d.parent_id, |
| | | d.ancestors, |
| | | d.dept_name, |
| | | d.order_num, |
| | | d.leader, |
| | | d.status as dept_status, |
| | | d.email as dept_email, |
| | | d.create_time as dept_cteate_time, |
| | | r.role_id, |
| | | r.role_name, |
| | | r.role_key, |
| | | r.role_sort, |
| | | r.data_scope, |
| | | r.status as role_status |
| | | from sys_user u |
| | | left join sys_dept d on u.dept_id = d.dept_id |
| | | left join sys_user_role sur on u.user_id = sur.user_id |
| | | left join sys_role r on r.role_id = sur.role_id |
| | | </sql> |
| | | |
| | | <select id="selectPageUserList" resultMap="SysUserResult"> |
| | | select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, |
| | |
| | | ${ew.getCustomSqlSegment} |
| | | </select> |
| | | |
| | | <select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult"> |
| | | <include refid="selectUserVo"/> |
| | | where u.del_flag = '0' and u.user_name = #{userName} |
| | | </select> |
| | | |
| | | <select id="selectUserByPhonenumber" parameterType="String" resultMap="SysUserResult"> |
| | | <include refid="selectUserVo"/> |
| | | where u.del_flag = '0' and u.phonenumber = #{phonenumber} |
| | | </select> |
| | | |
| | | <select id="selectUserByEmail" parameterType="String" resultMap="SysUserResult"> |
| | | <include refid="selectUserVo"/> |
| | | where u.del_flag = '0' and u.email = #{email} |
| | | </select> |
| | | |
| | | <select id="selectUserById" parameterType="Long" resultMap="SysUserResult"> |
| | | <include refid="selectUserVo"/> |
| | | where u.del_flag = '0' and u.user_id = #{userId} |
| | | <select id="countUserById" resultType="Long"> |
| | | select count(*) from sys_user where del_flag = '0' and user_id = #{userId} |
| | | </select> |
| | | |
| | | |