package com.diagbot.facade;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.diagbot.dto.VersionDetailDTO;
import com.diagbot.dto.VersionWrapperDTO;
import com.diagbot.entity.VersionInfo;
import com.diagbot.enums.IsDeleteEnum;
import com.diagbot.enums.StatusEnum;
import com.diagbot.service.impl.VersionInfoServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @author dsYun
 * @Description:
 * @date 2024-07-27 14:39
 */
@Component
public class VersionInfoFacade extends VersionInfoServiceImpl {

    @Autowired
    VersionDetailFacade versionDetailFacade;


    /**
     * 查询版本信息
     *
     * @return
     */
    public VersionWrapperDTO getVersionInfoAll() {
        //查询最新的一条版本信息
        QueryWrapper<VersionInfo> versionInfoQuery = new QueryWrapper<>();
        versionInfoQuery
                .eq("is_deleted", IsDeleteEnum.N.getKey())
                .eq("STATUS", StatusEnum.Enable.getKey())
                .orderByDesc("gmt_modified");

        VersionInfo versionInfo = getOne(versionInfoQuery, false);
        VersionWrapperDTO versionList = new VersionWrapperDTO();

        if (versionInfo != null) {
            //当查出的数据不为空时，取到版本id，再去版本明细表中查询详细的信息
            long id = versionInfo.getId();
            List<VersionDetailDTO> detail = versionDetailFacade.getById(id);
            versionList.setId(versionInfo.getId());
            versionList.setName(versionInfo.getName());
            versionList.setRefreshTime(versionInfo.getRefreshTime());
            versionList.setStatus(versionInfo.getStatus());
            versionList.setDetail(detail);
        }
        return versionList;
    }
}