package com.fdkankan.scene.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.common.constant.TbStatus;
import com.fdkankan.scene.entity.ScenePro;
import com.fdkankan.scene.entity.SceneProEdit;
import com.fdkankan.scene.mapper.ISceneProEditExtMapper;
import com.fdkankan.scene.mapper.ISceneProEditMapper;
import com.fdkankan.scene.service.ISceneProEditExtService;
import com.fdkankan.scene.service.ISceneProEditService;
import com.fdkankan.scene.service.ISceneProService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Objects;

/**
 * <p>
 * pro场景编辑数据表 服务实现类
 * </p>
 *
 * @author dengsixing
 * @since 2021-12-23
 */
@Service
public class SceneProEditServiceImpl extends ServiceImpl<ISceneProEditMapper, SceneProEdit> implements ISceneProEditService {

    @Autowired
    ISceneProEditExtMapper sceneProEditExtMapper;
    @Autowired
    ISceneProService sceneProService;
    @Autowired
    ISceneProEditService sceneProEditService;
    @Autowired
    ISceneProEditExtService sceneProEditExtService;

    @Override
    public SceneProEdit findByProId(Long proId) {
        return this.getOne(new QueryWrapper<SceneProEdit>()
                            .eq("tb_status", TbStatus.VALID.code())
                            .eq("pro_id", proId));

    }

    @Override
    public int findDownloadNum() {
        return sceneProEditExtMapper.selectCntDownloadNum();
    }

    @Override
    public void updateImageVersionByProId(Long id) {
        SceneProEdit sceneProEdit = this.findByProId(id);
        if(Objects.isNull(sceneProEdit)){
            return;
        }
        sceneProEditExtMapper.updateImageVersionByProEditId(sceneProEdit.getId());
    }

    @Override
    public void updateImageVersionByNum(String num) {
        ScenePro scenePro = sceneProService.findBySceneNum(num);
        if(Objects.isNull(scenePro)){
            return;
        }
        this.updateImageVersionByProId(scenePro.getId());
    }
}
