package com.ruoyi.other.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.basic.enums.ApplicationTypeEnum; import com.ruoyi.basic.enums.RecordTypeEnum; import com.ruoyi.basic.utils.FileUtil; import com.ruoyi.other.dto.PdaVersionDTO; import com.ruoyi.other.mapper.PdaVersionMapper; import com.ruoyi.other.pojo.PdaVersion; import com.ruoyi.other.service.PdaVersionService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import java.util.ArrayList; import java.util.List; @Service @RequiredArgsConstructor @Transactional(rollbackFor = Exception.class) public class PdaVersionServiceImpl extends ServiceImpl implements PdaVersionService { private final PdaVersionMapper pdaVersionMapper; private final FileUtil fileUtil; @Override public IPage getAllVersion(Page page, PdaVersion pdaVersion) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.orderByDesc(PdaVersion::getCreateTime); Page pdaVersionPage = pdaVersionMapper.selectPage(page, queryWrapper); Page pdaVersionDTOPage = new Page<>(page.getCurrent(), page.getSize()); List pdaVersionDTOList = new ArrayList<>(); pdaVersionPage.getRecords().forEach(item -> { PdaVersionDTO pdaVersionDTO = new PdaVersionDTO(); BeanUtil.copyProperties(item, pdaVersionDTO); pdaVersionDTO.setStorageBlobVOList(fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum.APK, RecordTypeEnum.PDA_VERSION, item.getId())); String downloadURL = fileUtil.getFileDownloadURLByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum.APK, RecordTypeEnum.PDA_VERSION, item.getId()).get(0) == null ? "" : fileUtil.getFileDownloadURLByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum.APK, RecordTypeEnum.PDA_VERSION, item.getId()).get(0); pdaVersionDTO.setDownloadURL(downloadURL); pdaVersionDTOList.add(pdaVersionDTO); }); pdaVersionDTOPage.setRecords(pdaVersionDTOList); return pdaVersionDTOPage; } @Override public boolean add(PdaVersionDTO pdaVersion) { // 参数校验 Assert.hasText(pdaVersion.getVersion(), "版本号不能为空"); pdaVersionMapper.insert(pdaVersion); fileUtil.saveStorageAttachment(ApplicationTypeEnum.APK, RecordTypeEnum.PDA_VERSION, pdaVersion.getId(), pdaVersion.getStorageBlobDTOList()); return true; } }