流程配置相关

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