package com.fdkankan.scene.service.impl; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.fdkankan.common.constant.DownloadStatus; import com.fdkankan.common.constant.RecStatus; import com.fdkankan.common.constant.TbStatus; import com.fdkankan.scene.entity.SceneCooperation; import com.fdkankan.scene.entity.SceneDataDownload; import com.fdkankan.scene.entity.SceneDownloadLog; import com.fdkankan.scene.mapper.ISceneDownloadLogMapper; import com.fdkankan.scene.service.ISceneDownloadLogService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.util.stream.Collectors; import org.springframework.stereotype.Service; import java.util.Calendar; import java.util.List; /** *

* 场景下载记录 服务实现类 *

* * @author dengsixing * @since 2021-12-23 */ @Service public class SceneDownloadLogServiceImpl extends ServiceImpl implements ISceneDownloadLogService { @Override public void updateStatusByNum(String sceneNum, Integer status) { this.update(new LambdaUpdateWrapper() .eq(SceneDownloadLog::getNum, sceneNum) .eq(SceneDownloadLog::getTbStatus, TbStatus.VALID.code()) .set(SceneDownloadLog::getDownloadStatus, status)); } @Override public void deleteStatusByNum(String sceneNum) { this.update(new LambdaUpdateWrapper() .eq(SceneDownloadLog::getNum, sceneNum) .eq(SceneDownloadLog::getTbStatus, TbStatus.VALID.code()) .eq(SceneDownloadLog::getDownloadStatus, DownloadStatus.SUCCESS.code()) .set(SceneDownloadLog::getUpdateTime, Calendar.getInstance().getTime()) .set(SceneDownloadLog::getTbStatus, TbStatus.DELETE.code())); } @Override public SceneDownloadLog findByStatusAndNum(String sceneNum, Integer status) { List list = this.list(new LambdaQueryWrapper() .eq(SceneDownloadLog::getNum, sceneNum) .eq(SceneDownloadLog::getDownloadStatus, status) .orderByDesc(SceneDownloadLog::getId)); if(CollUtil.isEmpty(list)){ return null; } return list.get(0); } @Override public SceneDownloadLog findLastOneByNum(String sceneNum) { SceneDownloadLog downloadLog = this.getOne(new LambdaQueryWrapper() .eq(SceneDownloadLog::getNum, sceneNum) .orderByDesc(SceneDownloadLog::getId).last("limit 1")); return downloadLog; } @Override public void updateSceneDownloadLog(String num, Integer status, String url, String reason) { List downloadLogIngList = this.list( new LambdaQueryWrapper().eq(SceneDownloadLog::getNum, num) .select(SceneDownloadLog::getId) .eq(SceneDownloadLog::getDownloadStatus, DownloadStatus.DOWNLOADING.code())); if(CollUtil.isEmpty(downloadLogIngList)){ return; } List idList = downloadLogIngList.stream().map(SceneDownloadLog::getId).collect(Collectors.toList()); this.update(new LambdaUpdateWrapper() .set(SceneDownloadLog::getDownloadStatus, status) .set(SceneDownloadLog::getDownloadUrl, url) .set(SceneDownloadLog::getReason, reason) .in(SceneDownloadLog::getId, idList)); } }