package com.highdatas.mdm.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.highdatas.mdm.entity.SysAssemble;
import com.highdatas.mdm.entity.SysAssembleParams;
import com.highdatas.mdm.mapper.SysAssembleParamsMapper;
import com.highdatas.mdm.service.ISysAssembleParamsService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.highdatas.mdm.service.ISysAssembleService;
import com.highdatas.mdm.util.Constant;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.support.CronSequenceGenerator;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
*
* 服务实现类
*
*
* @author kimi
* @since 2020-02-20
*/
@Slf4j
@Service
public class SysAssembleParamsServiceImpl extends ServiceImpl implements ISysAssembleParamsService {
@Autowired
ISysAssembleParamsService paramsService;
@Autowired
ISysAssembleService assembleService;
/**
*
* @description: 更新cron参数的值
* @param assembleId 汇集id
* @param cron cron表达式
* @return: 是否更新成功
*
*/
@Override
public boolean updateCornVal(String assembleId, String cron) {
SysAssemble assemble = assembleService.selectById(assembleId);
if (assemble == null ) {
return false;
}
SysAssembleParams sysAssembleParams = paramsService.selectOne(new EntityWrapper().eq("parent_id", assembleId).eq("code", Constant.Cron));
if (sysAssembleParams == null) {
return false;
}
if (StringUtils.isEmpty(cron)) {
return false;
}
if (!CronSequenceGenerator.isValidExpression(cron)) {
return false;
}
CronSequenceGenerator cronSequenceGenerator = new CronSequenceGenerator(cron);
Date currentTime = new Date();
Date nextTimePoint = cronSequenceGenerator.next(currentTime);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sysAssembleParams.setVal(simpleDateFormat.format(nextTimePoint));
boolean update = sysAssembleParams.updateById();
return update;
}
}