67 lines
2.4 KiB
Java
67 lines
2.4 KiB
Java
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);
|
|
}
|
|
}
|
|
}
|