package com.vci.web.initTask; import com.alibaba.fastjson.JSONObject; import com.vci.pagemodel.OsAttributeVO; import com.vci.starter.web.util.LocalFileUtil; import com.vci.web.service.OsAttributeServiceI; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; import java.util.List; import java.util.Locale; import java.util.stream.Collectors; /** * @Description 平台初始话任务 * @Author dangsn * @Date 2024/11/28 15:38 */ @Component public class OsInitTaskComponet implements ApplicationRunner { /** * 日志对象 */ private Logger logger = LoggerFactory.getLogger(getClass()); /** * 属性的服务 */ @Autowired private OsAttributeServiceI attributeService; @Override public void run(ApplicationArguments args) throws Exception { //初始化默认的属性 initDefaultAttribute(); } /** * 初始化默认的属性 */ private void initDefaultAttribute() { try { String attrJson = LocalFileUtil.readContentForFileInJar("DefaultAttribute.json"); if (StringUtils.isBlank(attrJson)) { logger.info("没有读取到classpath*:DefaultAttribute.json文件的内容"); return; } List attributeVOS = JSONObject.parseArray(attrJson, OsAttributeVO.class); if(!CollectionUtils.isEmpty(attributeVOS)){ attributeService.setDefaultAttributeVOs(attributeVOS.stream().sorted(((o1, o2) -> o1.getId().compareTo(o2.getId()))).collect(Collectors.toList())); attributeService.setDefaultAttributeVOMap(attributeVOS.stream().collect(Collectors.toMap(s->s.getId().toLowerCase(Locale.ROOT), t->t))); } logger.info("读取默认属性完成"); }catch (Throwable e){ logger.error("读取classpath*:DefaultAttribute.json的内容并转换的时候出错了",e); } } }