package tech.powerjob.server.core.service.impl.job; import com.alibaba.fastjson.JSON; import com.google.common.collect.Lists; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import tech.powerjob.common.enums.DispatchStrategy; import tech.powerjob.common.enums.ExecuteType; import tech.powerjob.common.enums.ProcessorType; import tech.powerjob.common.enums.TimeExpressionType; import tech.powerjob.common.model.AlarmConfig; import tech.powerjob.common.model.JobAdvancedRuntimeConfig; import tech.powerjob.common.model.LifeCycle; import tech.powerjob.common.model.LogConfig; import tech.powerjob.common.request.http.SaveJobInfoRequest; import tech.powerjob.common.response.JobInfoDTO; import tech.powerjob.common.serialize.JsonUtils; import tech.powerjob.server.common.SJ; import tech.powerjob.server.persistence.remote.model.JobInfoDO; import java.util.stream.Collectors; /** * JobConverter * * @author tjq * @since 2023/3/4 */ public class JobConverter { public static SaveJobInfoRequest convertJobInfoDO2SaveJobInfoRequest(JobInfoDO jobInfoDO) { SaveJobInfoRequest saveJobInfoRequest = new SaveJobInfoRequest(); BeanUtils.copyProperties(jobInfoDO, saveJobInfoRequest); saveJobInfoRequest.setTimeExpressionType(TimeExpressionType.of(jobInfoDO.getTimeExpressionType())); saveJobInfoRequest.setExecuteType(ExecuteType.of(jobInfoDO.getExecuteType())); saveJobInfoRequest.setProcessorType(ProcessorType.of(jobInfoDO.getProcessorType())); if (StringUtils.isNotEmpty(jobInfoDO.getNotifyUserIds())) { saveJobInfoRequest.setNotifyUserIds(Lists.newArrayList(SJ.COMMA_SPLITTER.split(jobInfoDO.getNotifyUserIds())).stream().map(Long::valueOf).collect(Collectors.toList())); } saveJobInfoRequest.setDispatchStrategy(DispatchStrategy.of(jobInfoDO.getDispatchStrategy())); saveJobInfoRequest.setLifeCycle(LifeCycle.parse(jobInfoDO.getLifecycle())); saveJobInfoRequest.setAlarmConfig(JsonUtils.parseObjectIgnoreException(jobInfoDO.getAlarmConfig(), AlarmConfig.class)); saveJobInfoRequest.setLogConfig(JsonUtils.parseObjectIgnoreException(jobInfoDO.getLogConfig(), LogConfig.class)); saveJobInfoRequest.setAdvancedRuntimeConfig(JsonUtils.parseObjectIgnoreException(jobInfoDO.getAdvancedRuntimeConfig(), JobAdvancedRuntimeConfig.class)); return saveJobInfoRequest; } public static JobInfoDTO convertJobInfoDO2JobInfoDTO(JobInfoDO jobInfoDO) { JobInfoDTO jobInfoDTO = new JobInfoDTO(); BeanUtils.copyProperties(jobInfoDO, jobInfoDTO); if (jobInfoDO.getAlarmConfig() != null) { jobInfoDTO.setAlarmConfig(JSON.parseObject(jobInfoDO.getAlarmConfig(), AlarmConfig.class)); } if (StringUtils.isNotEmpty(jobInfoDO.getLogConfig())) { jobInfoDTO.setLogConfig(JSON.parseObject(jobInfoDO.getLogConfig(), LogConfig.class)); } if (StringUtils.isNotEmpty(jobInfoDO.getAdvancedRuntimeConfig())) { jobInfoDTO.setAdvancedRuntimeConfig(JSON.parseObject(jobInfoDO.getAdvancedRuntimeConfig(), JobAdvancedRuntimeConfig.class)); } return jobInfoDTO; } }