package com.muyu.constant; import com.muyu.common.domain.RuleData; import com.muyu.common.domain.RuleVersion; import com.muyu.common.security.utils.SecurityUtils; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; import java.util.Date; /** * @Author:蓬叁 * @Package:com.muyu.constant * @Project:cloud-rule * @name:GenerateConstant * @Date:2024/8/30 上午12:49 * @Description: 规则引擎版本生成 */ @Component public class GenerateConstant { public static final String DATA_FIELD = "DataEngineValueActuator"; public static final String DATA_RECORD = "DataEngineRecordActuator"; public static final String DATA_SET = "DataEngineSetActuator"; public static final String ACTION_IMPORT = "import com.muyu.rule.engine.action.ActionDiscard;\n"; public static final String SCOPE_IMPORT = "import com.muyu.rule.engine.scope.DataModelEngine"; public static final String PACKAGE_PATH = "package com.muyu.generate;"; public static String getClassName(String versionCode){ String[] splits = versionCode.split("_"); String className=""; for (String split : splits) { className += split.substring(0,1).toUpperCase()+split.substring(1); } return className; } public static String generateConstant(RuleData ruleData, RuleVersion ruleVersion){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); String format = simpleDateFormat.format(new Date()); String level = selectType(ruleData.getRuleRegion()); return PACKAGE_PATH + "\n" + ACTION_IMPORT + "\n" + SCOPE_IMPORT+level+";\n" + "\n" + "/**\n" + " * @Author: "+ SecurityUtils.getUsername() +"\n" + " * @date: "+format+"\n" + " * @Description: "+ruleVersion.getRuleVersionName()+"_"+ruleVersion.getRuleVersionCode()+"\n" + " * @Version: 1.0\n" + " */\n" + "public class "+getClassName(ruleVersion.getRuleVersionType()) + " extends "+level+" {\n" + " @Override\n" + " public void run () {\n" + " }\n" + "}"; } public static String selectType(String level){ String type = ""; switch (level) { case "F": type = DATA_FIELD; break; case "R": type = DATA_RECORD; break; case "C": type = DATA_SET; break; } return type; } }