feat: 翻译登录接口中的部门字段

This commit is contained in:
2023-10-25 10:42:47 +08:00
parent ded2ffdabb
commit 69dfd7ab3b
2 changed files with 44 additions and 1 deletions
@@ -207,6 +207,9 @@ public class SysUser implements Serializable {
*/
private String postStatus;
@TableField(exist = false)
private String departIds_dicText;
/**
* 拼接真实姓名和工号形成唯一的用户信息可用户查看
* 不能用get开头,否则会造成初始化queryWrapper的bug
@@ -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<SysDictItemCore> 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<SysDictItemCore> 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<JSONObject> loginByOauth2(Oauth oauth) {
Result<JSONObject> 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());