| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package com.ydtech.config;
- import com.ydtech.aop.request.DictEnum;
- import com.ydtech.constants.enums.dict.DictionaryData;
- import com.ydtech.constants.enums.dict.DictionaryManagement;
- import com.ydtech.constants.enums.dict.IBaseEnum;
- import lombok.Data;
- import org.reflections.Reflections;
- import org.springframework.beans.factory.InitializingBean;
- import org.springframework.stereotype.Component;
- import java.util.*;
- import java.util.function.Function;
- import java.util.stream.Collectors;
- /**
- * 枚举类 字典配置
- *
- * @author: lig
- * @date: 2023年04月10日 0010
- */
- @Component
- @Data
- public class DictEnumConfig implements InitializingBean {
- private static Map<String, DictionaryManagement> dmMap = new HashMap<>();
- public static Map<String, DictionaryManagement> getDmMap() {
- return dmMap;
- }
- public static List<DictionaryManagement> dictManageList;
- private static void setDmMap(Map<String, DictionaryManagement> dmMap) {
- DictEnumConfig.dmMap = dmMap;
- }
- @Override
- public void afterPropertiesSet() {
- Reflections reflections = new Reflections("com.ydtech.constants.enums.dict");
- Set<Class<? extends IBaseEnum>> monitorClasses = reflections.getSubTypesOf(IBaseEnum.class);
- // List<DictionaryManagement> dmList = new ArrayList<>();
- dictManageList = new ArrayList<DictionaryManagement>();
- monitorClasses.forEach(m -> {
- if (m.isAnnotationPresent(DictEnum.class)) {
- DictEnum dictEnum = m.getAnnotation(DictEnum.class);
- DictionaryManagement dictionaryManagement = new DictionaryManagement();
- // dictionaryManagement.setEnumFlag(Boolean.TRUE);
- dictionaryManagement.setDictType(dictEnum.key());
- dictionaryManagement.setDictName(dictEnum.desc());
- // dictionaryManagement.setStatus(0);
- // dictionaryManagement.setSysDictFlag(Boolean.TRUE);
- List<DictionaryData> ddList = new ArrayList<>();
- DictionaryData dictionaryData;
- IBaseEnum[] enumConstants = m.getEnumConstants();
- for (IBaseEnum baseEnum : enumConstants) {
- dictionaryData = new DictionaryData();
- dictionaryData.setDictValue(baseEnum.getCode());
- dictionaryData.setDictTag(baseEnum.getDesc());
- dictionaryData.setSort(baseEnum.getSort());
- dictionaryData.setStatus(baseEnum.getStatus());
- ddList.add(dictionaryData);
- }
- dictionaryManagement.setDdList(ddList);
- dictManageList.add(dictionaryManagement);
- }
- });
- setDmMap(dictManageList.stream().collect(Collectors.toMap(DictionaryManagement::getDictType, Function.identity())));
- }
- }
|