define TerminalInfo

This commit is contained in:
Gao Wei 2022-06-10 17:16:41 +08:00
parent 271b3a177d
commit 08997d87d0
5 changed files with 115 additions and 67 deletions

View File

@ -6,6 +6,7 @@ public class AuthConstants {
public static final String HEADER_AUTH = "authorization";
public static final String HEADER_TENANT_ID = "tenantId";
public static final String HEADER_SAAS_TENANT_ID = "SAAS_TENANT_ID";
public static final String HEADER_WORKSPACE_ID = "workspaceId";
@ -22,6 +23,9 @@ public class AuthConstants {
public static final String USER_INFO = "userinfo";
//这个Header用于 apisix向pudge /apisix/authorization 做校验请求
public static final String HEADER_REQUEST_CODE = "requestCode";
public static final String VISIT_TO = "visitTo";
}

View File

@ -33,8 +33,12 @@ public class ContextInfo {
private Long ouId;
/**
* 租户id
* 如果是企业视角传EntId
* 如果是项目视角传ProjectId
*
* @deprecated 只在630近期使用以后的版本这个可以废弃了
*/
@Deprecated
private Long tenantId;
/**

View File

@ -7,7 +7,7 @@ public class LegacyGuessMissedReq {
public static final String HEADER_LEGACY_GUESS = "legacyGuess";
private String requestParamProjectId;
private Long requestParamProjectId;
private String originalUrl;

View File

@ -5,6 +5,12 @@ import java.util.Map;
public class TerminalInfo {
/**
* 之前的CEMSPMS合成一个叫CMS了
* 现在没有PMS了
*
* 有个地方做了转换
*/
@Deprecated
public static final String STR_TERMINAL_PMS = "PMS";
@Deprecated
@ -15,13 +21,18 @@ public class TerminalInfo {
@Deprecated
public static final String NUM_TERMINAL_CEMS = "2";
/**
* CMS
*
* 可以通过tenantId区分 项目视角企业视角
*/
@Deprecated
public static final String STR_TERMINAL_CMS = "cms";
@Deprecated
public static final String NUM_TERMINAL_CMS = "3";
/**
* 从业人员
* 从业人员App企业版App
*/
@Deprecated
public static final String STR_TERMINAL_CMP = "cmp";
@ -29,7 +40,7 @@ public class TerminalInfo {
public static final String NUM_TERMINAL_CMP = "4";
/**
* 产业工人
* 产业工人App安心筑App原生App不区分班组长还是工人的功能
*/
@Deprecated
public static final String STR_TERMINAL_CM = "cm";
@ -37,81 +48,113 @@ public class TerminalInfo {
public static final String NUM_TERMINAL_CM = "5";
/**
* 平台身份
* 产业工人App安心筑App小程序或H5班组老板的端
*/
@Deprecated
public final static String STR_TERMINAL_CM_LEADER = "cm_leader";
/**
* 产业工人App安心筑App小程序或H5工人的端
*/
@Deprecated
public final static String STR_TERMINAL_CM_WORKER = "cm_worker";
/**
* 平台身份OMS
*/
@Deprecated
public static final String STR_TERMINAL_PLAT = "plat";
/**
* 企业
* 企业很可能没有用
*/
@Deprecated
public static final String STR_TERMINAL_ENT = "ent";
/**
* 项目
* 项目很可能没有用
*/
@Deprecated
public static final String STR_TERMINAL_PROJ = "proj";
@Deprecated
public final static String STR_TERMINAL_CM_LEADER = "cm_leader";
@Deprecated
public final static String STR_TERMINAL_CM_WORKER = "cm_worker";
@Deprecated
public static final String STR_TERMINAL_SCREEN = "screen";
@Deprecated
public static final String STR_TERMINAL_BOSS = "boss";
private static Map<String, String> aliasMap = new HashMap<String, String>();
@Deprecated
public static final String STR_REGULATORY_AGENCY = "regulatory_agency";
/**
* 企业工作台Web-总包
*/
public static final String NT_CMS_WEB_ENT_ZB = "NT_CMS_WEB_ENT_ZB";
static {
aliasMap.put(NT_CMS_WEB_ENT_ZB, NT_CMS_WEB_ENT_ZB);
aliasMap.put(STR_TERMINAL_ENT, NT_CMS_WEB_ENT_ZB);
}
@Deprecated
public static final String STR_REGULATORY_AGENCY_SCREEN = "regulatory_agency_screen";
/**
* 项目部工作台Web
*/
public static final String NT_CMS_WEB_PROJ = "NT_CMS_WEB_PROJ";
static {
aliasMap.put(NT_CMS_WEB_PROJ, NT_CMS_WEB_PROJ);
aliasMap.put(STR_TERMINAL_PROJ, NT_CMS_WEB_PROJ);
aliasMap.put(STR_TERMINAL_CMS, NT_CMS_WEB_PROJ);
//实际上不应该是直接对应于PROJ默认先对应一个需要再guess一下
}
@Deprecated
public static final String STR_TERMINAL_RECRUIT_H5 = "recruit_h5";
/**
* 企业版App-企业工作台-总包
*/
public static final String NT_CMP_APP_ENT_ZB = "NT_CMP_APP_ENT_ZB";
static {
aliasMap.put(NT_CMP_APP_ENT_ZB, NT_CMP_APP_ENT_ZB);
}
@Deprecated
public static final String STR_TERMINAL_H5 = "h5";
/**
* 企业版App-项目部工作台
*/
public static final String NT_CMP_APP_PROJ = "NT_CMP_APP_PROJ";
static {
aliasMap.put(NT_CMP_APP_PROJ, NT_CMP_APP_PROJ);
aliasMap.put(STR_TERMINAL_CMP, NT_CMP_APP_PROJ);
aliasMap.put(NUM_TERMINAL_CMP, NT_CMP_APP_PROJ);
}
/**
* crafts man leader
* 安心筑App-班组老板
*/
public static final String NT_CM_APP_CM_LEADER = "NT_CM_APP_CM_LEADER";
static {
aliasMap.put(NT_CM_APP_CM_LEADER, NT_CM_APP_CM_LEADER);
aliasMap.put(STR_TERMINAL_CM_LEADER, NT_CM_APP_CM_LEADER);
}
/**
* 安心筑App-工人
*/
public static final String NT_CM_APP_CM_WORKER = "NT_CM_APP_WORKER";
static {
aliasMap.put(NT_CM_APP_CM_WORKER, NT_CM_APP_CM_WORKER);
aliasMap.put(STR_TERMINAL_CM_WORKER, NT_CM_APP_CM_LEADER);
}
/**
* OMS运营管理后台
*/
public static final String NT_OMS = "NT_OMS";
/**
* 企业版Web-总包
* TODO: 这里可以和大家探讨一下是否要区分总包分包我觉得有必要区分 @gaowei
*/
public static final String NT_CMS_ENT_ZB = "NT_CMS_ENT_ZB";
/**
* 项目部管理台Web
*/
public static final String NT_CMS_PROJ = "NT_CMS_PROJ";
private static Map<String, String> aliasMap = new HashMap<String, String>();
public static final String NT_OMS_WEB = "NT_OMS_WEB";
static {
aliasMap.put(NT_OMS, NT_OMS);
aliasMap.put(NT_OMS_WEB, NT_OMS_WEB);
aliasMap.put(STR_TERMINAL_PLAT, NT_OMS_WEB);
}
aliasMap.put(NT_CMS_ENT_ZB, NT_CMS_ENT_ZB);
aliasMap.put(STR_TERMINAL_ENT, NT_CMS_ENT_ZB);
aliasMap.put(NT_CMS_PROJ, NT_CMS_PROJ);
aliasMap.put(STR_TERMINAL_PROJ, NT_CMS_PROJ);
// TODO: 确认cms是否对应NT_CMS_PROJ
aliasMap.put(STR_TERMINAL_CMS, NT_CMS_PROJ);
aliasMap.put(NUM_TERMINAL_CMS, NT_CMS_PROJ);
//TODO: 补齐所有的NT标签定义以及历史mapping关系@gaowei
//对于历史关系mapping起来比较麻烦的我设计了两个参数的构造函数可以直接定义NT
/**
* Screen数据大屏
*/
public static final String NT_SCREEN = "NT_SCREEN";
static {
aliasMap.put(NT_SCREEN, NT_SCREEN);
aliasMap.put(STR_TERMINAL_SCREEN, NT_SCREEN);
}
private String rawTerminalString;
@ -148,16 +191,15 @@ public class TerminalInfo {
}
public boolean isOMS() {
return NT_OMS.equals(newTerminalString);
return NT_OMS_WEB.equals(newTerminalString);
}
public boolean isCMS_ENT_ZB() {
return NT_CMS_ENT_ZB.equals(newTerminalString);
public boolean isCMS_WEB_ENT_ZB() {
return NT_CMS_WEB_ENT_ZB.equals(newTerminalString);
}
public boolean isCMS_PROJ() {
return NT_CMS_PROJ.equals(newTerminalString);
public boolean isCMS_WEB_PROJ() {
return NT_CMS_WEB_PROJ.equals(newTerminalString);
}
}

View File

@ -129,9 +129,9 @@ public class ContextInfoBuilderAspect {
try {
HttpRequest request = HttpRequest.get(url).header(AuthConstants.HEADER_AUTH, contextInfo.getToken())
.header(AuthConstants.HEADER_TERMINAL, contextInfo.getTerminalInfo().getRawTerminalString()) //
.header(AuthConstants.HEADER_TERMINAL, contextInfo.getTerminalInfo().getRawTerminalString())
.header(AuthConstants.HEADER_REQUEST_CODE, "") //本地调试传个空
.header(AuthConstants.HEADER_SAAS_TENANT_ID, contextInfo.getSaasTenantId().toString());
// requestCode
//期待未来前端补齐header之后删掉这一行以及相关代码
request = request.header(LegacyGuessMissedReq.HEADER_LEGACY_GUESS, buildLegacyGuessMissedReqString(contextInfo, originalRequest));
@ -166,9 +166,7 @@ public class ContextInfoBuilderAspect {
req.setHeaderSaasTenantId(contextInfo.getSaasTenantId());
req.setHeaderTenantId(contextInfo.getTenantId());
req.setHeaderWorkspaceId(contextInfo.getWorkspaceId());
req.setRequestParamProjectId(originalRequest.getParameter("projectId"));
if(req.getRequestParamProjectId() == null)
req.setRequestParamProjectId("");
req.setRequestParamProjectId(StrUtil.nullSafeParseLong(originalRequest.getParameter("projectId")));
return JSONUtil.toJsonStr(req);
}