package com.fdkankan.contro.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.fdkankan.common.constant.CommonStatus;
import com.fdkankan.common.constant.CommonSuccessStatus;
import com.fdkankan.contro.entity.SceneColdStorage;
import com.fdkankan.contro.entity.SceneColdStorageLog;
import com.fdkankan.contro.mapper.ISceneColdStorageMapper;
import com.fdkankan.contro.service.ISceneColdStorageLogService;
import com.fdkankan.contro.service.ISceneColdStorageService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.model.utils.SceneUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Objects;
/**
*
* 场景封存状态表 服务实现类
*
*
* @author
* @since 2023-07-25
*/
@Service
public class SceneColdStorageServiceImpl extends ServiceImpl implements ISceneColdStorageService {
@Autowired
private ISceneColdStorageLogService sceneColdStorageLogService;
@Override
public void unfreeze(String num, String reason, String dataSource) {
//修改封存状态
SceneColdStorage sceneColdStorage = this.getByNum(num);
if(Objects.isNull(sceneColdStorage) || sceneColdStorage.getState() == 2){//如果是解冻状态就无需再记录解冻日志
return;
}
if(Objects.isNull(sceneColdStorage)){
sceneColdStorage = new SceneColdStorage();
}
sceneColdStorage.setState(2);
this.saveOrUpdate(sceneColdStorage);
//插入日志表
SceneColdStorageLog sceneColdStorageLog = new SceneColdStorageLog();
sceneColdStorageLog.setNum(num);
sceneColdStorageLog.setPath(SceneUtil.getHomePath(dataSource));
sceneColdStorageLog.setState(CommonSuccessStatus.SUCCESS.code());
sceneColdStorageLog.setReason(reason);
sceneColdStorageLog.setType(2);
sceneColdStorageLogService.save(sceneColdStorageLog);
}
@Override
public SceneColdStorage getByNum(String num) {
return this.getOne(new LambdaQueryWrapper().eq(SceneColdStorage::getNum, num));
}
}