流程配置相关

This commit is contained in:
efren
2025-08-07 16:49:44 +08:00
parent f590535cf9
commit 4206c5215a
2 changed files with 21 additions and 13 deletions

View File

@ -8,4 +8,6 @@ public interface CoscoProcessEnvService extends IBaseService<CoscoProcessEnv> {
CoscoProcessEnv selectByBusinessType(String businessType); CoscoProcessEnv selectByBusinessType(String businessType);
String buildBusinessUrl(String businessType, Object obj); String buildBusinessUrl(String businessType, Object obj);
String buildBusinessUrl(String businessType, String userId, Object obj);
} }

View File

@ -48,16 +48,20 @@ public class CoscoProcessEnvServiceImpl extends BaseServiceImpl<CoscoProcessEnvM
*/ */
@Override @Override
public String buildBusinessUrl(String businessType, Object obj) { public String buildBusinessUrl(String businessType, Object obj) {
return buildBusinessUrl(businessType, null, obj);
}
@Override
public String buildBusinessUrl(String businessType, String userId, Object obj) {
CoscoProcessEnv env = selectByBusinessType(businessType); CoscoProcessEnv env = selectByBusinessType(businessType);
if (env == null || env.getBusinessUrl() == null) return null; if (env == null || env.getBusinessUrl() == null) return null;
String baseUrl = env.getBusinessUrl(); String baseUrl = env.getBusinessUrl();
String paramStr = toKeyValueString(obj); String paramStr = toKeyValueString(obj, userId);
log.info("paramStr: {}", paramStr); log.info("paramStr: {}", paramStr);
if (paramStr.isEmpty()) { if (paramStr.isEmpty()) {
return baseUrl; return baseUrl;
} else { } else {
String encoded = Base64.getEncoder() String encoded = Base64.getUrlEncoder().withoutPadding().encodeToString(paramStr.getBytes(StandardCharsets.UTF_8));
.encodeToString(paramStr.getBytes(StandardCharsets.UTF_8));
return baseUrl + "?code=" + encoded; return baseUrl + "?code=" + encoded;
} }
} }
@ -67,8 +71,8 @@ public class CoscoProcessEnvServiceImpl extends BaseServiceImpl<CoscoProcessEnvM
* @param obj 对象 * @param obj 对象
* @return 拼接后的字符串 * @return 拼接后的字符串
*/ */
private String toKeyValueString(Object obj) { private String toKeyValueString(Object obj, String userId) {
if (obj == null) return ""; if (obj == null) return userId == null ? "" : ("userId=" + userId);
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
Field[] fields = obj.getClass().getDeclaredFields(); Field[] fields = obj.getClass().getDeclaredFields();
for (Field field : fields) { for (Field field : fields) {
@ -81,14 +85,16 @@ public class CoscoProcessEnvServiceImpl extends BaseServiceImpl<CoscoProcessEnvM
} }
} catch (IllegalAccessException ignored) {} } catch (IllegalAccessException ignored) {}
} }
// 通过TokenUtil获取userId并拼接 String finalUserId = userId;
if (finalUserId == null || finalUserId.isEmpty()) {
try { try {
String userId = TokenUtil.getCurrentUser().getUserId(); finalUserId = TokenUtil.getCurrentUser().getUserId();
if (userId != null && !userId.isEmpty()) {
if (sb.length() > 0) sb.append("&");
sb.append("userId=").append(userId);
}
} catch (Exception ignored) {} } catch (Exception ignored) {}
}
if (finalUserId != null && !finalUserId.isEmpty()) {
if (sb.length() > 0) sb.append("&");
sb.append("userId=").append(finalUserId);
}
return sb.toString(); return sb.toString();
} }
} }