SyncTimeService.java 3.04 KB
package com.huaheng.pc.config.syncTime.service;



import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.huaheng.common.utils.DateUtils;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.pc.config.syncTime.domain.SyncTime;
import com.huaheng.pc.config.syncTime.mapper.SyncTimeMapper;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

import java.text.SimpleDateFormat;
import java.util.Date;


/**
 * 同步更新的状态时间等
 */

@Service
public class SyncTimeService extends ServiceImpl<SyncTimeMapper, SyncTime>{


    SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    public SyncTime getSyncTime(String syncName){
        LambdaQueryWrapper<SyncTime> wrapper=new LambdaQueryWrapper<>();
        wrapper.eq(SyncTime::getSyncName,syncName);
        wrapper.last("limit 1");
        return this.getOne(wrapper);
    }

    /**
     *
     * @param syncName 同步名称
     * @param time  间隔多少分钟同步一次
     * @return
     */
    public Boolean isSync(String syncName,Integer time){
        Boolean tag= false;
        LambdaQueryWrapper<SyncTime> wrapper=new LambdaQueryWrapper<>();
        wrapper.eq(SyncTime::getSyncName,syncName);
        wrapper.last("limit 1");
        SyncTime syncTime= this.getOne(wrapper);
        if(syncTime!=null){
            String startTime= DateUtils.getNowPreMin("yyyy-MM-dd HH:mm:ss", time);
            Date syncPre=syncTime.getSyncTimes();
            Date date=null;
            try{
                date=sf.parse(startTime);
            }catch (Exception e){
            }
            //syncPre < date    返回true则可以继续同步,false则不可以
            if(syncPre.before(date)){
                tag=true;
            }
        }
        return tag;
    }

    /**
     * 修改状态,同步时间
     * @param syncName
     * @param status
     */
    public void updateStatus(String syncName, int status, Date updateTime){
        LambdaQueryWrapper<SyncTime> wrapper=new LambdaQueryWrapper<>();
        wrapper.eq(SyncTime::getSyncName,syncName);
        SyncTime syncTime=new SyncTime();
        syncTime.setStatus(status);
        if(updateTime!=null){
            syncTime.setSyncTimes(updateTime);
        }
        this.update(syncTime,wrapper);
    }

    /**
     * 修改开始编码
     * @param syncName
     */
    public void updateCodeStart(String syncName, String codeStart){
        LambdaQueryWrapper<SyncTime> wrapper=new LambdaQueryWrapper<>();
        wrapper.eq(SyncTime::getSyncName,syncName);
        SyncTime syncTime=new SyncTime();
        if(StringUtils.isNotEmpty(codeStart)){
            syncTime.setCodeStart(codeStart);
        }
        this.update(syncTime,wrapper);
    }
    public SyncTime getTimeByName(String syncName){
        LambdaQueryWrapper<SyncTime> wrapper=new LambdaQueryWrapper<>();
        wrapper.eq(SyncTime::getSyncName,syncName);
        wrapper.last("limit 1");
        SyncTime syncTime= this.getOne(wrapper);
        return syncTime;
    }

}