package com.consum.base.aop; import cn.hutool.core.util.ReflectUtil; import com.consum.base.core.utils.IdUtil; import com.iplatform.base.cache.DictCacheProvider; import com.iplatform.core.BeanContextAware; import com.iplatform.model.po.S_dict_data; import com.walker.infrastructure.utils.NumberGenerator; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; import org.springframework.stereotype.Component; import java.lang.reflect.Method; /** * @ClassName DictDataAop * @Author cy * @Date 2023/12/4 * @Description 对码表做切面 * @Version 1.0 **/ @Aspect @Component public class DictDataAop { @Pointcut("execution(public * com.iplatform.base.controller.CodeController.insertDictData(..))" + "|| execution(public * com.iplatform.base.controller.CodeController.updateDictData(..))" + "|| execution(public * com.iplatform.base.controller.CodeController.removeDictData(..))" ) public void insertDictDataPointcut() { } @After("insertDictDataPointcut()") public void beforeInsertDictData(JoinPoint joinPoint) { DictCacheProvider dictCacheProvider = BeanContextAware.getBeanByType(DictCacheProvider.class); try { Method reload = ReflectUtil.getMethodByName(DictCacheProvider.class, "reload"); ReflectUtil.invoke(dictCacheProvider, reload); } catch (Exception e) { e.printStackTrace(); } } @Pointcut("execution(public * com.iplatform.base.controller.CodeController.insertDictData(..))") public void insertDictDataBeforPointcut() { } @Before("insertDictDataBeforPointcut()") public void insertDictDataBeforPointcut(JoinPoint joinPoint) { Object[] args = joinPoint.getArgs(); try { S_dict_data dictData = (S_dict_data) args[0]; if (dictData.getDict_code() == null) { dictData.setDict_code(IdUtil.generateId()); } } catch (Exception e) { e.getMessage(); } } }