流程配置相关
This commit is contained in:
@ -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);
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user