package com.ruoyi.voc.common.utils;
import com.ruoyi.voc.dto.VocAppealMasterAndMasterExtRelationDTO;
import java.lang.reflect.Field;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ParseTemplateUtil {
private static final Pattern PATTERN = Pattern.compile("\\$\\{(.+?)\\}");
public static String parseTemplate(String input, Object obj) {
Matcher matcher = PATTERN.matcher(input);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
String field = matcher.group(1);
String value = getValue(field, obj);
matcher.appendReplacement(sb, value);
}
matcher.appendTail(sb);
return sb.toString();
}
private static String getValue(String field, Object obj) {
try {
Field f = obj.getClass().getDeclaredField(field);
f.setAccessible(true);
Object value = f.get(obj);
return value != null ? value.toString() : "";
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
public static void main(String[] args) {
VocAppealMasterAndMasterExtRelationDTO vocAppealMasterAndMasterExtRelationDTO = new VocAppealMasterAndMasterExtRelationDTO();
vocAppealMasterAndMasterExtRelationDTO.setAppealNo("123154114124213");
vocAppealMasterAndMasterExtRelationDTO.setStatusName("提报初审");
System.out.println(parseTemplate("诉求编号为${appealNo}的诉求流转到${statusName},请尽快处理!!!", vocAppealMasterAndMasterExtRelationDTO));
}
}