Merge remote-tracking branch 'origin/feature/REQ-2046' into feature/20240306

This commit is contained in:
TanJ 2024-03-05 20:14:40 +08:00
commit 5b1c8513b7
3 changed files with 86 additions and 27 deletions

View File

@ -11,6 +11,8 @@ import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.util.List;
/** /**
* *
* 经过auth之后可以得到ContextInfo * 经过auth之后可以得到ContextInfo
@ -57,6 +59,8 @@ public class ContextInfo {
*/ */
private Integer ouType; private Integer ouType;
private List<Integer> ouTypes;
/** /**
* 如果是企业视角传EntId * 如果是企业视角传EntId
* 如果是项目视角传ProjectId * 如果是项目视角传ProjectId
@ -87,6 +91,8 @@ public class ContextInfo {
*/ */
private Integer workspaceJoinType; private Integer workspaceJoinType;
private List<Integer> workspaceJoinTypes;
/** /**
* 模板方法用来自定义ContextInfo * 模板方法用来自定义ContextInfo
* *
@ -273,4 +279,20 @@ public class ContextInfo {
public void setWorkspaceJoinType(Integer workspaceJoinType) { public void setWorkspaceJoinType(Integer workspaceJoinType) {
this.workspaceJoinType = workspaceJoinType; this.workspaceJoinType = workspaceJoinType;
} }
public List<Integer> getOuTypes() {
return ouTypes;
}
public void setOuTypes(List<Integer> ouTypes) {
this.ouTypes = ouTypes;
}
public List<Integer> getWorkspaceJoinTypes() {
return workspaceJoinTypes;
}
public void setWorkspaceJoinTypes(List<Integer> workspaceJoinTypes) {
this.workspaceJoinTypes = workspaceJoinTypes;
}
} }

View File

@ -9,11 +9,9 @@ import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.Set; import java.util.Set;
import jdk.nashorn.internal.ir.Terminal; import cn.hutool.core.util.StrUtil;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.*;
import java.util.Map.Entry;
/** /**
@ -452,18 +450,37 @@ public class TerminalInfo {
return NT_CMS_WEB_ENT_ZB.equals(newTerminalString); return NT_CMS_WEB_ENT_ZB.equals(newTerminalString);
} }
public boolean isCMS_WEB_ENT_ZB(Integer workspaceType) {
return NT_CMS_WEB_ENT_ZB.equals(newTerminalString)
|| (NT_CMS_WEB_GENERAL.equals(newTerminalString) && workspaceType == 1);
}
public boolean isCMS_WEB_PROJ() { public boolean isCMS_WEB_PROJ() {
return NT_CMS_WEB_PROJ.equals(newTerminalString); return NT_CMS_WEB_PROJ.equals(newTerminalString);
} }
public boolean isCMS_WEB_PROJ(Integer workspaceType) {
return NT_CMS_WEB_PROJ.equals(newTerminalString)
|| (NT_CMS_WEB_GENERAL.equals(newTerminalString) && workspaceType == 2);
}
public boolean isCMP_APP_ENT_ZB() { public boolean isCMP_APP_ENT_ZB() {
return NT_CMP_APP_ENT_ZB.equals(newTerminalString); return NT_CMP_APP_ENT_ZB.equals(newTerminalString);
} }
public boolean isCMP_APP_ENT_ZB(Integer workspaceType) {
return NT_CMP_APP_ENT_ZB.equals(newTerminalString)
|| (NT_CMP_APP_GENERAL.equals(newTerminalString) && workspaceType == 1);
}
public boolean isCMP_APP_PROJ() { public boolean isCMP_APP_PROJ() {
return NT_CMP_APP_PROJ.equals(newTerminalString); return NT_CMP_APP_PROJ.equals(newTerminalString);
} }
public boolean isCMP_APP_PROJ(Integer workspaceType) {
return NT_CMP_APP_PROJ.equals(newTerminalString)
|| (NT_CMP_APP_GENERAL.equals(newTerminalString) && workspaceType == 2);
}
public boolean isCM_APP_CM_LEADER() { public boolean isCM_APP_CM_LEADER() {
return NT_CM_APP_CM_LEADER.equals(newTerminalString); return NT_CM_APP_CM_LEADER.equals(newTerminalString);
} }
@ -701,6 +718,15 @@ public class TerminalInfo {
return terminalKey; return terminalKey;
} }
/** 是否管理端APP - 待细化 现在等同于isAppGeneral **/
public boolean isManageApp() {
//APP管理端多terminal统一使用NT_CMP_APP_GENERAL 同时兼容老APP terminal
if (StrUtil.isBlank(newTerminalString)) {
return false;
}
return StrUtil.equalsAny(newTerminalString, NT_CM_APP_CM_LEADER, NT_CM_APP_GENERAL, NT_CMP_APP_PROJ, NT_CMP_APP_GENERAL, NT_CMP_APP_ENT_ZB);
}
public static void main(String[] args) { public static void main(String[] args) {
TerminalInfo tm = new TerminalInfo("proj"); TerminalInfo tm = new TerminalInfo("proj");
System.out.println(tm.getRawTerminalString()); System.out.println(tm.getRawTerminalString());

View File

@ -20,10 +20,15 @@ import cn.hutool.core.lang.TypeReference;
import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.http.HttpException; import cn.hutool.http.HttpException;
import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.Set;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -304,36 +309,42 @@ public class ContextInfoBuilderAspect {
BeanUtil.fillBeanWithMap(userinfoMap, userInfo, false); BeanUtil.fillBeanWithMap(userinfoMap, userInfo, false);
contextInfo.setUserInfo(userInfo); contextInfo.setUserInfo(userInfo);
try {
if(userinfoMap.containsKey("ouType"))
contextInfo.setOuType(Integer.parseInt(userinfoMap.get("ouType").toString()));
} catch (Throwable t) {
log.warn("fill ouType error, user identityId=" + userInfo.getIdentityId());
}
try {
contextInfo.setWorkspaceType(Integer.parseInt(userinfoMap.get("workspaceType").toString()));
}catch (Throwable t) {
log.warn("fill workspaceType error, user identityId=" + userInfo.getIdentityId());
}
try {
contextInfo.setWorkspaceJoinType(Integer.parseInt(userinfoMap.get("workspaceJoinType").toString()));
}catch (Throwable t) {
log.warn("fill workspaceJoinType error, user identityId=" + userInfo.getIdentityId());
}
try { try {
fillOUWorkspaceType(contextInfo, userinfoMap);
fillLegacyGuess(contextInfo, userinfoMap); fillLegacyGuess(contextInfo, userinfoMap);
contextInfo.getSystemAndDeviceInfo().setLoginDevice(contextInfo.getTerminalInfo().getSimpleTerminal()); contextInfo.getSystemAndDeviceInfo().setLoginDevice(contextInfo.getTerminalInfo().getSimpleTerminal());
// loginDevice 字段已经被消费了所以这里需要新创建一个字段 用来设置登录端 // loginDevice 字段已经被消费了所以这里需要新创建一个字段 用来设置登录端
contextInfo.getSystemAndDeviceInfo().setDevice((String) userinfoMap.get("loginDevice")); contextInfo.getSystemAndDeviceInfo().setDevice((String) userinfoMap.get("loginDevice"));
} catch (Exception e) { } catch (Exception e) {
log.warn("fill legacy guess error for user identityId=" + userInfo.getIdentityId(), e); log.warn("fill contextInfo error for user identityId=" + userInfo.getIdentityId(), e);
} }
contextInfo.setUserInfoMap(new UserInfoMap(userinfoMap)); contextInfo.setUserInfoMap(new UserInfoMap(userinfoMap));
} }
private void fillOUWorkspaceType(ContextInfo contextInfo, Map<String, Object> userinfoMap) {
try {
contextInfo.setWorkspaceType(Integer.parseInt(userinfoMap.getOrDefault("workspaceType", "0").toString()));
//ouType和ouTypes
contextInfo.setOuType(Integer.parseInt(userinfoMap.getOrDefault("ouType", "0").toString()));
Object ouTypes = userinfoMap.get("ouTypes");
if (ouTypes instanceof JSONArray) {
contextInfo.setOuTypes(((JSONArray) ouTypes).toList(Integer.class));
}
//workspaceJoinType和 workspaceJoinTypes;
contextInfo.setWorkspaceJoinType(Integer.parseInt(userinfoMap.getOrDefault("workspaceJoinType", "0").toString()));
Object workspaceTypes = userinfoMap.get("workspaceJoinTypes");
if (workspaceTypes instanceof JSONArray) {
contextInfo.setWorkspaceJoinTypes(((JSONArray) workspaceTypes).toList(Integer.class));
}
} catch (Throwable t) {
log.warn("fill ouType/workspace join type error", t);
}
}
/** /**
* 期待着前端上线之后header都补齐这些代码可以全都删掉 * 期待着前端上线之后header都补齐这些代码可以全都删掉
* *