| src/main/java/com/ruoyi/basic/enums/ApplicationTypeEnum.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/basic/utils/FileUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/other/controller/PdaVersionController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/other/dto/PdaVersionDTO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/other/pojo/PdaVersion.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/other/service/PdaVersionService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/other/service/impl/PdaVersionServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/ruoyi/basic/enums/ApplicationTypeEnum.java
@@ -4,7 +4,8 @@ IMAGE("image"), FILE("file"), AFTER_FILE("after_file"), BEFORE_FILE("before_file"); BEFORE_FILE("before_file"), APK("apk"); private final String type; src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
@@ -2,7 +2,8 @@ public enum RecordTypeEnum { SHIPPING_INFO("shipping_info"), INSPECTION_TASK("inspection_task"); INSPECTION_TASK("inspection_task"), PDA_VERSION("pda_version"); private final String type; RecordTypeEnum(String type) { this.type = type; } src/main/java/com/ruoyi/basic/utils/FileUtil.java
@@ -481,6 +481,68 @@ return res; } /** * éè¿æä»¶å ³èidè·åæä»¶é¢è§å°å * * @param application åºç¨ * @param recordType è®°å½ç±»å * @param recordId è®°å½id */ public List<String> getFilePreviewURLByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId) { List<StorageAttachment> storageAttachments = getStorageAttachmentsByApplicationAndRecordTypeAndRecordId(application, recordType, recordId); if (CollectionUtils.isEmpty(storageAttachments)) { return new ArrayList<>(); } return getFilePreviewURLByStorageAttachmentIds(storageAttachments.stream().map(StorageAttachment::getId).collect(Collectors.toList())); } /** * éè¿æä»¶å ³èidè·åæä»¶é¢è§å°ååå¨è¿ææ¶é´ * * @param application åºç¨ * @param recordType è®°å½ç±»å * @param recordId è®°å½id * @param expired è¿ææ¶é´ï¼åéï¼ */ public List<String> getFilePreviewURLByApplicationAndRecordTypeAndRecordIdAndExpired(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId, BigDecimal expired) { List<StorageAttachment> storageAttachments = getStorageAttachmentsByApplicationAndRecordTypeAndRecordId(application, recordType, recordId); if (CollectionUtils.isEmpty(storageAttachments)) { return new ArrayList<>(); } return getFilePreviewURLByStorageAttachmentIds(storageAttachments.stream().map(StorageAttachment::getId).collect(Collectors.toList()), expired); } /** * éè¿æä»¶å ³èidè·åæä»¶ä¸è½½å°å * * @param application åºç¨ * @param recordType è®°å½ç±»å * @param recordId è®°å½id */ public List<String> getFileDownloadURLByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId) { List<StorageAttachment> storageAttachments = getStorageAttachmentsByApplicationAndRecordTypeAndRecordId(application, recordType, recordId); if (CollectionUtils.isEmpty(storageAttachments)) { return new ArrayList<>(); } return getFileDownloadURLByStorageAttachmentIds(storageAttachments.stream().map(StorageAttachment::getId).collect(Collectors.toList())); } /** * éè¿æä»¶å ³èidè·åæä»¶ä¸è½½å°ååå¨è¿ææ¶é´ * * @param application åºç¨ * @param recordType è®°å½ç±»å * @param recordId è®°å½id * @param expired è¿ææ¶é´ï¼åéï¼ */ public List<String> getFileDownloadURLByApplicationAndRecordTypeAndRecordIdAndExpired(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId, BigDecimal expired) { List<StorageAttachment> storageAttachments = getStorageAttachmentsByApplicationAndRecordTypeAndRecordId(application, recordType, recordId); if (CollectionUtils.isEmpty(storageAttachments)) { return new ArrayList<>(); } return getFileDownloadURLByStorageAttachmentIds(storageAttachments.stream().map(StorageAttachment::getId).collect(Collectors.toList()), expired); } public String buildSignedPreviewUrl(StorageBlobVO storageBlob) { return buildSignedUrl(storageBlob, "/preview/", properties.getExpired()); } src/main/java/com/ruoyi/other/controller/PdaVersionController.java
@@ -2,12 +2,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.framework.web.domain.R; import com.ruoyi.other.dto.PdaVersionDTO; import com.ruoyi.other.pojo.PdaVersion; import com.ruoyi.other.service.PdaVersionService; import io.swagger.v3.oas.annotations.Operation; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @RestController @RequestMapping("/app") @@ -22,10 +22,10 @@ return R.ok(pdaVersionService.getAllVersion(page, pdaVersion)); } @Operation(summary = "ä¸ä¼ apk") @PostMapping("/uploadApk") public R uploadApk(@RequestParam("file") MultipartFile file, String name, String version) { return R.ok(pdaVersionService.uploadApk(file, name, version)); @Operation(summary = "æ·»å çæ¬") @PostMapping("/add") public R add(@RequestBody PdaVersionDTO pdaVersion) { return R.ok(pdaVersionService.add(pdaVersion)); } } src/main/java/com/ruoyi/other/dto/PdaVersionDTO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ package com.ruoyi.other.dto; import com.ruoyi.basic.dto.StorageBlobDTO; import com.ruoyi.basic.dto.StorageBlobVO; import com.ruoyi.other.pojo.PdaVersion; import lombok.Data; import java.util.List; @Data public class PdaVersionDTO extends PdaVersion { private List<StorageBlobDTO> storageBlobDTOList; private List<StorageBlobVO> storageBlobVOList; private String downloadURL; } src/main/java/com/ruoyi/other/pojo/PdaVersion.java
@@ -2,14 +2,12 @@ import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.sales.pojo.CommonFile; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.time.LocalDateTime; import java.util.List; @Data @TableName("pda_version") @@ -50,9 +48,6 @@ @Schema(description = "ç§æ·ID") @TableField(fill = FieldFill.INSERT) private Long tenantId; @TableField(exist = false) private List<CommonFile> commonFileList; @TableField(fill = FieldFill.INSERT) private Long deptId; src/main/java/com/ruoyi/other/service/PdaVersionService.java
@@ -3,11 +3,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.other.dto.PdaVersionDTO; import com.ruoyi.other.pojo.PdaVersion; import org.springframework.web.multipart.MultipartFile; public interface PdaVersionService extends IService<PdaVersion> { IPage<PdaVersion> getAllVersion(Page<PdaVersion> page, PdaVersion pdaVersion); IPage<PdaVersionDTO> getAllVersion(Page<PdaVersion> page, PdaVersion pdaVersion); boolean uploadApk(MultipartFile file, String name, String version); boolean add(PdaVersionDTO pdaVersion); } src/main/java/com/ruoyi/other/service/impl/PdaVersionServiceImpl.java
@@ -1,20 +1,24 @@ 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.common.enums.FileNameType; 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 com.ruoyi.other.service.TempFileService; import com.ruoyi.sales.service.impl.CommonFileServiceImpl; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; import java.util.List; @Service @RequiredArgsConstructor @@ -23,38 +27,34 @@ private final PdaVersionMapper pdaVersionMapper; private final TempFileService tempFileService; private final CommonFileServiceImpl commonFileService; private final FileUtil fileUtil; @Override public IPage<PdaVersion> getAllVersion(Page<PdaVersion> page, PdaVersion pdaVersion) { public IPage<PdaVersionDTO> getAllVersion(Page<PdaVersion> page, PdaVersion pdaVersion) { LambdaQueryWrapper<PdaVersion> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.orderByDesc(PdaVersion::getCreateTime); Page<PdaVersion> pdaVersionPage = pdaVersionMapper.selectPage(page, queryWrapper); Page<PdaVersionDTO> pdaVersionDTOPage = new Page<>(page.getCurrent(), page.getSize()); List<PdaVersionDTO> pdaVersionDTOList = new ArrayList<>(); pdaVersionPage.getRecords().forEach(item ->{ item.setCommonFileList(commonFileService.getFileListByBusinessId(item.getId(), FileNameType.APP.getValue())); 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); }); return pdaVersionPage; pdaVersionDTOPage.setRecords(pdaVersionDTOList); return pdaVersionDTOPage; } @Override @Transactional(rollbackFor = Exception.class) public boolean uploadApk(MultipartFile file, String name, String version) { public boolean add(PdaVersionDTO pdaVersion) { // åæ°æ ¡éª Assert.notNull(file, "æä»¶ä¸è½ä¸ºç©º"); Assert.hasText(version, "çæ¬å·ä¸è½ä¸ºç©º"); try { PdaVersion pdaVersion = new PdaVersion(); pdaVersion.setName(name); pdaVersion.setVersion(version); Assert.hasText(pdaVersion.getVersion(), "çæ¬å·ä¸è½ä¸ºç©º"); pdaVersionMapper.insert(pdaVersion); tempFileService.uploadByCommon(file, FileNameType.APP.getValue(), pdaVersion.getId()); fileUtil.saveStorageAttachment(ApplicationTypeEnum.APK, RecordTypeEnum.PDA_VERSION, pdaVersion.getId(), pdaVersion.getStorageBlobDTOList()); return true; } catch (Exception e) { throw new RuntimeException("ä¸ä¼ APK失败: " + e.getMessage()); } } }