feat: 翻译登录接口中的部门字段
This commit is contained in:
@@ -207,6 +207,9 @@ public class SysUser implements Serializable {
|
||||
*/
|
||||
private String postStatus;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String departIds_dicText;
|
||||
|
||||
/**
|
||||
* 拼接真实姓名和工号形成唯一的用户信息可用户查看
|
||||
* 不能用get开头,否则会造成初始化queryWrapper的bug
|
||||
|
||||
+41
-1
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user