package com.fdkankan.modeling.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.common.constant.ConstantFilePath;
import com.fdkankan.common.constant.RecStatus;
import com.fdkankan.common.constant.TbStatus;
import com.fdkankan.common.util.FileUtils;
import com.fdkankan.modeling.entity.ScenePro;
import com.fdkankan.modeling.entity.SceneProExt;
import com.fdkankan.modeling.mapper.ISceneProMapper;
import com.fdkankan.modeling.service.ISceneProExtService;
import com.fdkankan.modeling.service.ISceneProService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* pro场景表 服务实现类
*
*
* @author dengsixing
* @since 2021-12-23
*/
@Service
public class SceneProServiceImpl extends ServiceImpl implements ISceneProService {
@Autowired
private ISceneProExtService sceneProExtService;
@Override
public ScenePro findBySceneNum(String projectNum) {
List list = this.list(new QueryWrapper()
.eq("tb_status", TbStatus.VALID.code())
.eq("rec_status", RecStatus.VALID.code())
.eq("scene_code", projectNum));
if(CollUtil.isEmpty(list)){
return null;
}
return list.get(0);
}
@Override
public void updateTime(String projectNum, Long space, int payStatus, String videos, long computeTime) {
ScenePro scenePro = this.findBySceneNum(projectNum);
if(scenePro == null){
return;
}
SceneProExt sceneProExt = sceneProExtService.getBySceneProId(scenePro.getId());
if( sceneProExt == null){
return;
}
scenePro.setVideos(videos);
this.updateById(scenePro);
sceneProExt.setSceneStatus(-2);
sceneProExt.setPayStatus(payStatus);
sceneProExt.setSpace(space);
sceneProExt.setComputeTime(computeTime);
sceneProExtService.updateById(sceneProExt);
}
@Override
public void tempScenes(List lockedIds) {
if (lockedIds == null || lockedIds.size() == 0){
return;
}
for (Long id : lockedIds){
SceneProExt sceneProExt = sceneProExtService.getBySceneProId(id);
sceneProExt.setPayStatus(-2);
sceneProExtService.updateById(sceneProExt);
ScenePro sceneProEntity = this.getById(id);
// sceneProEntity.setPayStatus(-2);
// this.updateById(sceneProEntity);
try{
Map map = new HashMap<>();
map.put("payStatus", -2);
FileUtils.writeJsonFile(ConstantFilePath.SCENE_PATH + "data/data" + sceneProEntity.getSceneCode() + "/scene.json", map);
}catch (Exception e){
e.printStackTrace();
}
}
}
}