feat:任务加载配置
This commit is contained in:
66
src/main/java/com/xiang/ApplicationInit.java
Normal file
66
src/main/java/com/xiang/ApplicationInit.java
Normal file
@@ -0,0 +1,66 @@
|
||||
package com.xiang;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.xiang.common.enums.ScheduleEnums;
|
||||
import com.xiang.common.pojo.schedule.ScheduleOpeningConfigDO;
|
||||
import com.xiang.common.service.IScheduleOpeningConfigService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.springframework.boot.ApplicationArguments;
|
||||
import org.springframework.boot.ApplicationRunner;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author: xiang
|
||||
* @Date: 2026-05-08 14:32
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ApplicationInit implements ApplicationRunner {
|
||||
|
||||
private final IScheduleOpeningConfigService scheduleOpeningConfigService;
|
||||
|
||||
@Override
|
||||
public void run(ApplicationArguments args) throws Exception {
|
||||
|
||||
log.info("开始加载任务配置!");
|
||||
loadScheduleTask();
|
||||
log.info("任务配置加载完成!");
|
||||
}
|
||||
|
||||
private void loadScheduleTask() {
|
||||
List<ScheduleOpeningConfigDO> allSchedules = scheduleOpeningConfigService.getAll();
|
||||
Map<String, ScheduleOpeningConfigDO> map = Maps.newHashMap();
|
||||
if (CollectionUtils.isNotEmpty(allSchedules)) {
|
||||
map.putAll(allSchedules.stream().collect(Collectors.toMap(ScheduleOpeningConfigDO::getBeanName, Function.identity(), (a, b) -> a)));
|
||||
}
|
||||
ScheduleEnums[] enums = ScheduleEnums.values();
|
||||
if (ArrayUtils.isEmpty(enums)) {
|
||||
log.info("暂无需要配置的");
|
||||
return;
|
||||
}
|
||||
List<ScheduleOpeningConfigDO> list = Lists.newArrayList();
|
||||
for (ScheduleEnums scheduleEnum : enums) {
|
||||
if (map.containsKey(scheduleEnum.getTaskName())) {
|
||||
continue;
|
||||
}
|
||||
ScheduleOpeningConfigDO scheduleOpeningConfigDO = new ScheduleOpeningConfigDO();
|
||||
scheduleOpeningConfigDO.setModule(scheduleEnum.getModeleCode());
|
||||
scheduleOpeningConfigDO.setBeanName(scheduleEnum.getTaskName());
|
||||
scheduleOpeningConfigDO.setStatus(1);
|
||||
list.add(scheduleOpeningConfigDO);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
scheduleOpeningConfigService.saveBatch(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user