| | |
| | | import com.ruoyi.common.utils.StringUtils;
|
| | | import com.ruoyi.common.utils.ip.AddressUtils;
|
| | | import com.ruoyi.common.utils.ip.IpUtils;
|
| | | import com.ruoyi.common.utils.uuid.IdUtils;
|
| | | import com.ruoyi.framework.redis.RedisCache;
|
| | | import com.ruoyi.framework.security.LoginUser;
|
| | | import eu.bitwalker.useragentutils.UserAgent;
|
| | | import com.ruoyi.common.utils.uuid.IdUtils; |
| | | import com.ruoyi.framework.redis.RedisCache; |
| | | import com.ruoyi.framework.security.LoginUser; |
| | | import com.ruoyi.project.system.domain.SysRole; |
| | | import eu.bitwalker.useragentutils.UserAgent; |
| | | import io.jsonwebtoken.Claims;
|
| | | import io.jsonwebtoken.Jwts;
|
| | | import io.jsonwebtoken.SignatureAlgorithm;
|
| | |
| | | {
|
| | | loginUser.setLoginTime(System.currentTimeMillis());
|
| | | loginUser.setExpireTime(loginUser.getLoginTime() + expireTime * MILLIS_MINUTE);
|
| | | loginUser.setDeptIds(getDeptIdsByUserId(loginUser.getUserId()));
|
| | | loginUser.setCurrentDeptId(loginUser.getDeptIds()[0]);
|
| | | loginUser.setDeptIds(getDeptIdsByUserId(loginUser.getUserId())); |
| | | if (loginUser.getDeptIds() != null && loginUser.getDeptIds().length > 0) |
| | | { |
| | | loginUser.setCurrentDeptId(loginUser.getDeptIds()[0]); |
| | | } |
| | | loginUser.setDataScope(resolveDataScope(loginUser)); |
| | | // 根据uuid将loginUser缓存
|
| | | String userKey = getTokenKey(loginUser.getToken());
|
| | | redisCache.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
|
| | | }
|
| | |
|
| | | public Long[] getDeptIdsByUserId(Long userId){
|
| | | public String resolveDataScope(LoginUser loginUser) |
| | | { |
| | | if (loginUser == null || loginUser.getUser() == null || CollectionUtils.isEmpty(loginUser.getUser().getRoles())) |
| | | { |
| | | return null; |
| | | } |
| | | boolean hasCustom = false; |
| | | boolean hasDeptAndChild = false; |
| | | boolean hasDept = false; |
| | | boolean hasSelf = false; |
| | | for (SysRole role : loginUser.getUser().getRoles()) |
| | | { |
| | | if (role == null || !"0".equals(role.getStatus())) |
| | | { |
| | | continue; |
| | | } |
| | | if ("1".equals(role.getDataScope())) |
| | | { |
| | | return "1"; |
| | | } |
| | | if ("2".equals(role.getDataScope())) |
| | | { |
| | | hasCustom = true; |
| | | } |
| | | else if ("4".equals(role.getDataScope())) |
| | | { |
| | | hasDeptAndChild = true; |
| | | } |
| | | else if ("3".equals(role.getDataScope())) |
| | | { |
| | | hasDept = true; |
| | | } |
| | | else if ("5".equals(role.getDataScope())) |
| | | { |
| | | hasSelf = true; |
| | | } |
| | | } |
| | | if (hasCustom) |
| | | { |
| | | return "2"; |
| | | } |
| | | if (hasDeptAndChild) |
| | | { |
| | | return "4"; |
| | | } |
| | | if (hasDept) |
| | | { |
| | | return "3"; |
| | | } |
| | | if (hasSelf) |
| | | { |
| | | return "5"; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public Long[] getDeptIdsByUserId(Long userId){ |
| | | LambdaQueryWrapper<SysUserDept> sysUserDeptLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
| | | sysUserDeptLambdaQueryWrapper.eq(SysUserDept::getUserId, userId);
|
| | | List<SysUserDept> sysUserDept = sysUserDeptMapper.selectList(sysUserDeptLambdaQueryWrapper);
|