流程配置相关
This commit is contained in:
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
try {
|
if (finalUserId == null || finalUserId.isEmpty()) {
|
||||||
String userId = TokenUtil.getCurrentUser().getUserId();
|
try {
|
||||||
if (userId != null && !userId.isEmpty()) {
|
finalUserId = TokenUtil.getCurrentUser().getUserId();
|
||||||
if (sb.length() > 0) sb.append("&");
|
} catch (Exception ignored) {}
|
||||||
sb.append("userId=").append(userId);
|
}
|
||||||
}
|
if (finalUserId != null && !finalUserId.isEmpty()) {
|
||||||
} catch (Exception ignored) {}
|
if (sb.length() > 0) sb.append("&");
|
||||||
|
sb.append("userId=").append(finalUserId);
|
||||||
|
}
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user