diff --git a/laws-module-system/src/main/java/com/jero/modules/system/entity/SysUser.java b/laws-module-system/src/main/java/com/jero/modules/system/entity/SysUser.java index 73162392..c175c32a 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/entity/SysUser.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/entity/SysUser.java @@ -207,6 +207,9 @@ public class SysUser implements Serializable { */ private String postStatus; + @TableField(exist = false) + private String departIds_dicText; + /** * 拼接真实姓名和工号形成唯一的用户信息可用户查看 * 不能用get开头,否则会造成初始化queryWrapper的bug diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/LoginServiceImpl.java b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/LoginServiceImpl.java index 816d5c90..e537a678 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/LoginServiceImpl.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/LoginServiceImpl.java @@ -2,10 +2,12 @@ package com.jero.modules.system.service.impl; import cn.hutool.core.util.RandomUtil; import cn.hutool.crypto.asymmetric.RSA; +import cn.hutool.poi.excel.ExcelUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.aliyuncs.exceptions.ClientException; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.common.api.CommonAPI; import com.jero.common.api.vo.Result; import com.jero.common.constant.CacheConstant; import com.jero.common.constant.CommonConstant; @@ -13,6 +15,7 @@ import com.jero.common.exception.JeroBootException; import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.util.JwtUtil; import com.jero.common.system.vo.LoginUser; +import com.jero.common.system.vo.SysDictItemCore; import com.jero.common.util.*; import com.jero.common.util.encryption.EncryptedString; import com.jero.modules.base.service.BaseCommonService; @@ -72,6 +75,8 @@ public class LoginServiceImpl implements ILoginService { private Oauth oauth; @Autowired private RestTemplate restTemplate; + @Resource + private CommonAPI commonAPI; private static final String BASE_CHECK_CODES = "qwertyuiplkjhgfdsazxcvbnmQWERTYUPLKJHGFDSAZXCVBNM1234567890"; //密码登录错误的次数前缀 public static final String RETRY_LOGIN_PREFIX = "login:retryLoginCount_"; @@ -161,6 +166,37 @@ public class LoginServiceImpl implements ILoginService { } + private String translateDictValue(String code, String text, String table, String key, List listDict) { + if (oConvertUtils.isEmpty(key)) { + return null; + } + StringBuilder textValue = new StringBuilder(); + String[] keys = key.split(","); + for (String k : keys) { + String tmpValue = null; + if (k.trim().length() == 0) { + continue; //跳过循环 + } + if (!org.springframework.util.StringUtils.isEmpty(table)) { + tmpValue = commonAPI.queryTableDictTextByKey(table, text, code, k.trim()); + } else { + List listNew = listDict.stream() + .filter(o -> Objects.equals(o.getDictCode(), code) && Objects.equals(o.getItemValue(), k.trim())).collect(Collectors.toList()); + if (!org.springframework.util.CollectionUtils.isEmpty(listNew)) { + tmpValue = listNew.get(0).getItemText(); + } + } + + if (tmpValue != null) { + if (!"".contentEquals(textValue)) { + textValue.append(","); + } + textValue.append(tmpValue); + } + } + return textValue.toString(); + } + @Override public Result loginByOauth2(Oauth oauth) { Result result; @@ -670,7 +706,11 @@ public class LoginServiceImpl implements ILoginService { // 设置token缓存有效时间 redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token); redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME / 1000); - + String departIds = sysUser.getDepartIds(); + if (StringUtils.isNotBlank(departIds)) { + String departIds_dicText = this.translateDictValue("id", "depart_name", "sys_depart", departIds, null); + sysUser.setDepartIds_dicText(departIds_dicText); + } obj.put("token", token); obj.put(USER_INFO, sysUser); obj.put("sysAllDictItems", sysDictService.queryAllDictItems());