DictEnumConfig.java 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package com.ydtech.config;
  2. import com.ydtech.aop.request.DictEnum;
  3. import com.ydtech.constants.enums.dict.DictionaryData;
  4. import com.ydtech.constants.enums.dict.DictionaryManagement;
  5. import com.ydtech.constants.enums.dict.IBaseEnum;
  6. import lombok.Data;
  7. import org.reflections.Reflections;
  8. import org.springframework.beans.factory.InitializingBean;
  9. import org.springframework.stereotype.Component;
  10. import java.util.*;
  11. import java.util.function.Function;
  12. import java.util.stream.Collectors;
  13. /**
  14. * 枚举类 字典配置
  15. *
  16. * @author: lig
  17. * @date: 2023年04月10日 0010
  18. */
  19. @Component
  20. @Data
  21. public class DictEnumConfig implements InitializingBean {
  22. private static Map<String, DictionaryManagement> dmMap = new HashMap<>();
  23. public static Map<String, DictionaryManagement> getDmMap() {
  24. return dmMap;
  25. }
  26. public static List<DictionaryManagement> dictManageList;
  27. private static void setDmMap(Map<String, DictionaryManagement> dmMap) {
  28. DictEnumConfig.dmMap = dmMap;
  29. }
  30. @Override
  31. public void afterPropertiesSet() {
  32. Reflections reflections = new Reflections("com.ydtech.constants.enums.dict");
  33. Set<Class<? extends IBaseEnum>> monitorClasses = reflections.getSubTypesOf(IBaseEnum.class);
  34. // List<DictionaryManagement> dmList = new ArrayList<>();
  35. dictManageList = new ArrayList<DictionaryManagement>();
  36. monitorClasses.forEach(m -> {
  37. if (m.isAnnotationPresent(DictEnum.class)) {
  38. DictEnum dictEnum = m.getAnnotation(DictEnum.class);
  39. DictionaryManagement dictionaryManagement = new DictionaryManagement();
  40. // dictionaryManagement.setEnumFlag(Boolean.TRUE);
  41. dictionaryManagement.setDictType(dictEnum.key());
  42. dictionaryManagement.setDictName(dictEnum.desc());
  43. // dictionaryManagement.setStatus(0);
  44. // dictionaryManagement.setSysDictFlag(Boolean.TRUE);
  45. List<DictionaryData> ddList = new ArrayList<>();
  46. DictionaryData dictionaryData;
  47. IBaseEnum[] enumConstants = m.getEnumConstants();
  48. for (IBaseEnum baseEnum : enumConstants) {
  49. dictionaryData = new DictionaryData();
  50. dictionaryData.setDictValue(baseEnum.getCode());
  51. dictionaryData.setDictTag(baseEnum.getDesc());
  52. dictionaryData.setSort(baseEnum.getSort());
  53. dictionaryData.setStatus(baseEnum.getStatus());
  54. ddList.add(dictionaryData);
  55. }
  56. dictionaryManagement.setDdList(ddList);
  57. dictManageList.add(dictionaryManagement);
  58. }
  59. });
  60. setDmMap(dictManageList.stream().collect(Collectors.toMap(DictionaryManagement::getDictType, Function.identity())));
  61. }
  62. }