2025-10-10 12:11
import cn.hutool.json.JSONUtil;
import org.springframework.beans.factory.annotation.Autowired;
import com.byence.framework.utils.tool.spring.SpringUtils;
import com.byence.core.framework.config.aspect.enhance.model.EnhanceContext;
import com.byence.core.framework.config.aspect.enhance.model.EnhanceResult;
import com.byence.core.framework.utils.Func;
import com.byence.tool.framework.file.core.client.s3.CosService;
import java.util.List;
import java.util.Map;
public class TestListEnhance {
private CosService cosService;
public void beforeExecute(EnhanceContext context){
//todo 编写自己的前置代码
if (cosService == null) {
cosService = SpringUtils.getBean(CosService.class); // 假设有一个工具类可以获取ApplicationContext
}
}
public void afterExecute(EnhanceContext context){
//todo 编写自己的后置置代码
EnhanceResult result = context.getResult();
List<Map<String, Object>> records = result.getRecords();
for (Map<String, Object> dataMap : records) {
// 1. 安全处理 picture_basic 字段
processField(dataMap, "picture_basic", "picture_basic");
// 2. 安全处理 picture_demo 字段
processField(dataMap, "picture_demo", "picture_demo");
// 3. 安全处理 file_demo 字段
processField(dataMap, "file_demo", "file_demo");
}
}
确实是在线增强中引用了。这在线脚本在1.0.1-JDK1.8版本中能够正常运行,为何升级到1.1.2-JDK17就会错误
2025-10-10 10:55
com.byence.core.framework.config.aspect.enhancecom.byence.core.framework.config.aspect.enhance.annotation.com.byence.core.framework.config.aspect.enhance.criteria.CriteriaFilterAdvicePluginUtilscom.byence.core.framework.config.aspect.enhance.model.*com.byence.core.framework.config.aspect.enhance.plugin.*com.byence.core.framework.config.aspect.enhance.strategy.enums.JavaEnhanceEnumscom.byence.core.framework.config.aspect.enhance.strategy.java.EnhanceJavaStrategycom.byence.core.framework.entity.EnhanceJavaEntitycom.byence.core.framework.service.IEnhanceJavaServicecom.byence.core.framework.utils.Funccom.byence.tool.framework.lowcode.constant.EnhanceConstantcom.byence.tool.framework.lowcode.model.ExecuteEnhanceModelcom.byence.tool.framework.lowcode.model.ResultDataModelcom.byence.tool.framework.lowcode.tool.spring.SpringUtilscom.byence.tool.framework.lowcode.utils.FuncBasegroovy.lang.GroovyClassLoaderjakarta.annotation.lombok.extern.slf4j.org.aspectj.lang.JoinPointorg.aspectj.lang.ProceedingJoinPointorg.aspectj.lang.annotation.*org.springframework.beans.factory.annotation.org.springframework.context.annotation.org.springframework.stereotype.java.util.*java.util.concurrent.atomic.AtomicReferencejava.util.stream.Collectorscom.byence.tool.framework.lowcode.constant.EnhanceConstant.com.byence.tool.framework.lowcode.constant.EnhanceConstant.ByenceJavaEnhance ByenceBaseEnhance {
    Map<StringList<EnhanceJavaEntity>> = HashMap<>()IEnhanceJavaService GroovyClassLoader = GroovyClassLoader()GroovyClassLoader () {
        }
    () {
        List<EnhanceJavaEntity> allJavaEnhanceList = .getAllJavaEnhance()allJavaEnhanceList.forEach(enhanceJavaEntity -> {
                    Long dbformId = enhanceJavaEntity.getDbformId()String buttonCode = enhanceJavaEntity.getButtonCode()String pluginKey = dbformId + + buttonCode.merge(pluginKeyArrayList<>(Collections.(enhanceJavaEntity))(oldValuenewValue) -> {
                        oldValue.addAll(newValue)oldValue}){
                        (FuncBase.(enhanceJavaEntity.getJavaType()EnhanceConstant.)) {String javaClassUrl = enhanceJavaEntity.getJavaClassUrl()Object bean = SpringUtils.(javaClassUrl)(Func.(bean) && bean BaseAdvicePlugin) {
                                PluginManager.(javaClassUrl(BaseAdvicePlugin) bean)}
                        } (FuncBase.(enhanceJavaEntity.getJavaType()EnhanceConstant.)) {Class<?> enhanceClass = Class.(enhanceJavaEntity.getJavaClassUrl())BaseAdvicePlugin plugin = (BaseAdvicePlugin) enhanceClass.newInstance()PluginManager.(enhanceJavaEntity.getJavaClassUrl()plugin)}
                    } (Exception e) {
                        .error(e)}
                }
        )(EnhanceJavaEntity enhanceJavaEntity : allJavaEnhanceList) {
            {
                String javaType = enhanceJavaEntity.getJavaType()(!FuncBase.(javaTypeEnhanceConstant.)){
                    }
                String onlineScript = enhanceJavaEntity.getOnlineScript()(Func.(onlineScript)) {
                    }
                .parseClass(onlineScript)} (Exception e) {
                e.printStackTrace()}
        }
    }
    ()
    (JoinPoint joinPointByenceEnhance) Throwable {
        BuildEnhanceContext enhanceContext = .getContextAndPlugins(ByenceEnhancejoinPoint)(FuncBase.(enhanceContext)) {
            }
        List<EnhanceJavaEntity> enhanceJavaEntityList = enhanceContext.getEntitys()(Func.(enhanceJavaEntityList)) {
            }
        EnhanceContext context = enhanceContext.getContext()(EnhanceJavaEntity enhanceJavaEntity : enhanceJavaEntityList) {
            String javaType = enhanceJavaEntity.getJavaType()JavaEnhanceEnums javaEnhanceEnums = JavaEnhanceEnums.(javaType)EnhanceJavaStrategy strategy = javaEnhanceEnums.getStrategy()strategy.execute(enhanceJavaEntitycontextJavaEnhanceEventState..getName()joinPoint)(context.getResult().isExitFlag()) {
                }
        }
    }
    (pointcut = returning = )
    Object (JoinPoint joinPointObject returnValByenceEnhance) Throwable {
        BuildEnhanceContext enhanceContext = .getContextAndPlugins(ByenceEnhancejoinPoint)(FuncBase.(enhanceContext)) {
            returnVal}
        (!(returnVal ResultDataModel) && !(returnVal ExecuteEnhanceModel)) {
            returnVal}
        List<EnhanceJavaEntity> enhanceJavaEntityList = enhanceContext.getEntitys()(Func.(enhanceJavaEntityList)) {returnVal}
        EnhanceContext context = enhanceContext.getContext()resultFlag = (returnVal ResultDataModel) {ResultDataModel resultDataModel = (ResultDataModel) returnValEnhanceResult enhanceResult = EnhanceResult()enhanceResult.setRecords(resultDataModel.getRecords())enhanceResult.setTotal(resultDataModel.getTotal())context.getParam().setList(resultDataModel.getRecords())context.setResult(enhanceResult)resultFlag = } (returnVal ExecuteEnhanceModel) {ExecuteEnhanceModel executeEnhanceModel = (ExecuteEnhanceModel) returnValEnhanceResult enhanceResult = EnhanceResult()enhanceResult.setId(executeEnhanceModel.getId())enhanceResult.setExitFlag(executeEnhanceModel.isExitFlag())context.setResult(enhanceResult)}
        List<EnhanceJavaEntity> alferJavaEntityList = enhanceContext.getAlferJavaEntityList()CriteriaFilterAdvicePluginUtils.(contextalferJavaEntityList)(EnhanceJavaEntity enhanceJavaEntity : enhanceJavaEntityList) {
            (Func.(alferJavaEntityList) && alferJavaEntityList.contains(enhanceJavaEntity)) {
                }
            String javaType = enhanceJavaEntity.getJavaType()JavaEnhanceEnums javaEnhanceEnums = JavaEnhanceEnums.(javaType)EnhanceJavaStrategy strategy = javaEnhanceEnums.getStrategy()strategy.execute(enhanceJavaEntitycontextJavaEnhanceEventState..getName()joinPoint)(context.getResult().isExitFlag()) {
                }
        }
        Object result = .getResult(joinPointcontext)(resultFlag) {
            ResultDataModel returnValData = (ResultDataModel) returnValResultDataModel resultDataModel = (ResultDataModel) resultreturnValData.setRecords(resultDataModel.getRecords())returnValData.setTotal(resultDataModel.getTotal())returnValData} {
            ExecuteEnhanceModel returnValData = (ExecuteEnhanceModel) returnValExecuteEnhanceModel resultDataModel = (ExecuteEnhanceModel) resultreturnValData.setId(resultDataModel.getId())returnValData}
    }
    (value = )
    Object (ProceedingJoinPoint joinPointByenceEnhance) Throwable {
        BuildEnhanceContext enhanceContext = .getContextAndPlugins(ByenceEnhancejoinPoint)(FuncBase.(enhanceContext)) {
            joinPoint.proceed()}
        List<EnhanceJavaEntity> javaEntityList = enhanceContext.getEntitys()(Func.(javaEntityList)) {
            joinPoint.proceed()}
        EnhanceContext context = enhanceContext.getContext()(EnhanceJavaEntity enhanceJavaEntity : javaEntityList) {
            String javaType = enhanceJavaEntity.getJavaType()JavaEnhanceEnums javaEnhanceEnums = JavaEnhanceEnums.(javaType)EnhanceJavaStrategy strategy = javaEnhanceEnums.getStrategy()strategy.execute(enhanceJavaEntitycontextJavaEnhanceEventState..getName()joinPoint)(context.getResult().isExitFlag()) {
                }
        }
        .getResult(joinPointcontext)}
    (pointcut = throwing = )
    (JoinPoint joinPointByenceEnhanceException ex) Throwable {
        BuildEnhanceContext enhanceContext = .getContextAndPlugins(ByenceEnhancejoinPoint)(FuncBase.(enhanceContext)) {
            }
        List<EnhanceJavaEntity> enhanceJavaEntityList = enhanceContext.getEntitys()(Func.(enhanceJavaEntityList)) {
            }
        EnhanceContext context = enhanceContext.getContext()(EnhanceJavaEntity enhanceJavaEntity : enhanceJavaEntityList) {
            String javaType = enhanceJavaEntity.getJavaType()JavaEnhanceEnums javaEnhanceEnums = JavaEnhanceEnums.(javaType)EnhanceJavaStrategy strategy = javaEnhanceEnums.getStrategy()strategy.execute(enhanceJavaEntitycontextJavaEnhanceEventState..getName()joinPoint)(context.getResult().isExitFlag()) {
                }
        }
    }
    BuildEnhanceContext (String typeByenceEnhanceJoinPoint joinPoint) {
        Map<StringObject> paramMap = .getJoinPointParam(joinPoint)String buttonCode = ByenceEnhance.buttonCode()Long dbFormId = (Long) paramMap.get()String key = dbFormId + + buttonCodeList<EnhanceJavaEntity> allJavaEntityList = .getOrDefault(key)(Func.(allJavaEntityList)) {}
        List<EnhanceJavaEntity> javaList = .getEnhanceJavaEntityList(typeallJavaEntityList)(Func.(javaList)) {
            }
        List<EnhanceJavaEntity> afterJavaEntityList = allJavaEntityList.stream()
                .filter(enhanceJavaEntity -> (FuncBase.(enhanceJavaEntity.getButtonCode()) ||
                        FuncBase.(enhanceJavaEntity.getButtonCode())) && FuncBase.(PluginManager.(enhanceJavaEntity)))
                .collect(Collectors.())(afterJavaEntityList.size() < ) {
            afterJavaEntityList.clear()}
        EnhanceParam param = .getEnhanceParam(dbFormIdparamMap)EnhanceContext context = EnhanceContext()context.setParam(param)BuildEnhanceContext buildEnhanceContext = BuildEnhanceContext(contextjavaListafterJavaEntityList)buildEnhanceContext}
    (EnhanceJavaEntity javaEntity) {
        String key = (javaEntity).merge(keyArrayList<>(Collections.(javaEntity))(oldValuenewValue) -> {
            oldValue.addAll(newValue)oldValue})(javaEntity.getJavaType()javaEntity.getJavaClassUrl())}
    (EnhanceJavaEntity javaEntity) {
        String key = (javaEntity)AtomicReference<String> oldJavaClassUrlAtomicRe = AtomicReference<>().merge(keyArrayList<>(Collections.(javaEntity))(oldValuenewValue) -> {
            oldValue.removeIf(oldJavaEntity -> {
                (FuncBase.(oldJavaEntity.getId().getId())) {
                    .set(oldJavaEntity.getJavaClassUrl())} {
                    }
            })oldValue.add()oldValue})(oldJavaClassUrlAtomicRe.get())(javaEntity.getJavaType()javaEntity.getJavaClassUrl())}
    (EnhanceJavaEntity javaEntity) {
        String key = (javaEntity)List<EnhanceJavaEntity> javaEntityList = .getOrDefault(keyArrayList<>())AtomicReference<String> oldJavaClassUrlAtomicRe = AtomicReference<>()javaEntityList.removeIf(oldJavaEntity -> {
            (oldJavaEntity.getId().equals(.getId())) {
                .set(oldJavaEntity.getJavaClassUrl())} {
                }
        })(FuncBase.(javaEntityList)) {
            .remove(key)}
        (oldJavaClassUrlAtomicRe.get())}
    (String oldJavaClassUrl) {
        (Func.(oldJavaClassUrl)) {
            }
        Set<String> JavaClassUrlSet = .values().stream().flatMap(Collection::stream)
                .map(EnhanceJavaEntity::getJavaClassUrl).collect(Collectors.())(!JavaClassUrlSet.contains(oldJavaClassUrl)) {
            PluginManager.(oldJavaClassUrl)}
    }
    (String javaTypeString javaClassUrl) {
        {
            (Func.(javaTypeJavaEnhanceEnum..getType())) {
                Object bean = SpringUtils.(javaClassUrl)(Func.(bean) && bean BaseAdvicePlugin) {
                    PluginManager.(javaClassUrl(BaseAdvicePlugin) bean)}
            } (Func.(javaTypeJavaEnhanceEnum..getType())) {
                Class<?> enhanceClass = Class.(javaClassUrl)BaseAdvicePlugin plugin = (BaseAdvicePlugin) enhanceClass.newInstance()PluginManager.(javaClassUrlplugin)}
        } (Exception e) {
            e.printStackTrace()}
    }
    String (EnhanceJavaEntity javaEntity) {
        String key = javaEntity.getDbformId() + + javaEntity.getButtonCode()key}
    List<EnhanceJavaEntity> (String typeList<EnhanceJavaEntity> enhanceJavaEntityAllList){
        List<EnhanceJavaEntity> enhanceJavaEntityList=ArrayList<>()(EnhanceJavaEntity javaEntity:enhanceJavaEntityAllList){
            String javaClassUrl = javaEntity.getJavaClassUrl()String javaType = javaEntity.getJavaType()BaseAdvicePlugin plugin = PluginManager.(javaClassUrl)(type) {
                :(!(plugin BeforeAdvicePlugin)) {
                        }
                    enhanceJavaEntityList.add(javaEntity):(!(plugin AfterAdvicePlugin)) {
                        }
                    enhanceJavaEntityList.add(javaEntity):
                    (FuncBase.(javaTypeJavaEnhanceEnum..getType())) {
                        enhanceJavaEntityList.add(javaEntity)} (FuncBase.(javaTypeJavaEnhanceEnum..getType())) {
                        enhanceJavaEntityList.add(javaEntity)}
                    (!(plugin AroundAdvicePlugin)) {
                        }
                    enhanceJavaEntityList.add(javaEntity):
                    enhanceJavaEntityList.add(javaEntity):
                    }
        }
        enhanceJavaEntityList}
}