From 98145e92ec5954af90db70229d14813c2eeaef53 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Wed, 28 Aug 2024 15:45:46 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=88=E6=9C=AC=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E5=92=8C=20=E7=89=88=E6=9C=AC=E6=96=87=E4=BB=B6=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/TbVersionController.java | 8 ++++ .../java/cn/ysk/cashier/dto/TbVersionDto.java | 7 ++- .../cashier/dto/TbVersionQueryCriteria.java | 4 +- .../java/cn/ysk/cashier/pojo/TbVersion.java | 11 ++++- .../repository/TbVersionRepository.java | 12 +++++ .../ysk/cashier/service/TbVersionService.java | 2 + .../service/impl/TbVersionServiceImpl.java | 45 ++++++++++--------- .../cn/ysk/cashier/rest/QiniuController.java | 9 ++++ .../cn/ysk/cashier/service/QiNiuService.java | 2 + .../service/impl/QiNiuServiceImpl.java | 16 +++++++ .../service/AbstractCloudStorageService.java | 20 +++++++++ .../service/AliyunCloudStorageService.java | 5 +++ .../service/HuaweiCloudStorageService.java | 5 +++ .../service/QcloudCloudStorageService.java | 5 +++ .../service/QiniuCloudStorageService.java | 5 +++ 15 files changed, 129 insertions(+), 27 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbVersionController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbVersionController.java index 8ddffb0f..cfd2f7af 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbVersionController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbVersionController.java @@ -40,6 +40,14 @@ public class TbVersionController { return new ResponseEntity<>(HttpStatus.NO_CONTENT); } + @PutMapping("upSel") + @ApiOperation("修改当前选中") + public ResponseEntity updateSel(@Validated @RequestBody TbVersion resources){ + tbVersionService.updateSel(resources); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @DeleteMapping @ApiOperation("删除版本") public ResponseEntity deleteTbVersion(@RequestBody Integer[] ids) { diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/TbVersionDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/TbVersionDto.java index b304f05d..e72ccf13 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/TbVersionDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/TbVersionDto.java @@ -14,7 +14,7 @@ public class TbVersionDto implements Serializable { private Integer id; - /** LDBL_APP;WX; */ + /** PC;APP; */ private String source; /** ios;android; */ @@ -22,9 +22,12 @@ public class TbVersionDto implements Serializable { /** 版本号 */ private String version; + /** 下载地址 */ + private String url; - /** 0:不更新;1:更新 */ + /** 是否强制更新 0:否 1:是 */ private Integer isUp; + private Integer sel; /** 更新提示内容 */ private String message; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/TbVersionQueryCriteria.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/TbVersionQueryCriteria.java index 850440c3..269951bd 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/TbVersionQueryCriteria.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/TbVersionQueryCriteria.java @@ -12,7 +12,7 @@ import lombok.Data; public class TbVersionQueryCriteria{ @Query - /** LDBL-APP;WX; */ + /** PC;APP; */ private String source; @Query /** ios;android; */ @@ -21,7 +21,7 @@ public class TbVersionQueryCriteria{ /** 版本号 */ private String version; @Query - /** 0:不更新;1:更新 */ + /** 是否强制更新 0:否 1:是*/ private Integer isUp; private Integer pageSize; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/TbVersion.java b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/TbVersion.java index fe8a9129..e33cf56d 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/TbVersion.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/TbVersion.java @@ -19,7 +19,7 @@ public class TbVersion implements Serializable { private Integer id; @Column(name = "`source`") - @ApiModelProperty(value = "LDBL-APP;WX;") + @ApiModelProperty(value = "PC;APP;") private String source; @Column(name = "`type`") @@ -30,10 +30,17 @@ public class TbVersion implements Serializable { @ApiModelProperty(value = "版本号") private String version; + @Column(name = "`url`") + @ApiModelProperty(value = "下载地址") + private String url; + @Column(name = "`is_up`") - @ApiModelProperty(value = "0:不更新;1:更新") + @ApiModelProperty(value = "是否强制更新 0:否 1:是") private Integer isUp; + @ApiModelProperty(value = "选中 0:否 1:是") + private Integer sel; + @Column(name = "`message`") @ApiModelProperty(value = "更新提示内容") private String message; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/repository/TbVersionRepository.java b/eladmin-system/src/main/java/cn/ysk/cashier/repository/TbVersionRepository.java index be3fc867..c65cf39d 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/repository/TbVersionRepository.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/repository/TbVersionRepository.java @@ -4,6 +4,7 @@ import cn.ysk.cashier.pojo.TbVersion; import org.apache.ibatis.annotations.Param; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; /** @@ -15,4 +16,15 @@ public interface TbVersionRepository extends JpaRepository, @Query("SELECT count(1) FROM TbVersion WHERE source = :source AND type =:type AND version =:version") int isExist(@Param("source") String source, @Param("type") String type, @Param("version") String version); + + @Query("SELECT count(1) FROM TbVersion WHERE source = :source AND version =:version") + int isExist(@Param("source") String source, @Param("version") String version); + + @Modifying + @Query("update TbVersion version set version.sel=CASE" + + " WHEN version.source=:source AND version.id=:id THEN 1 " + + " WHEN version.source=:source AND version.id!=:id THEN 0 " + + " ELSE version.sel END " + + " WHERE version.source = :source") + int updateSelBySource(@Param("source") String source, @Param("id") Integer id); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/TbVersionService.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/TbVersionService.java index ef297bfe..decc3ddc 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/TbVersionService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/TbVersionService.java @@ -52,6 +52,8 @@ public interface TbVersionService { */ void update(TbVersion resources); + void updateSel(TbVersion resources); + /** * 多选删除 * @param ids / diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbVersionServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbVersionServiceImpl.java index d53a7d91..4d1db8a9 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbVersionServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbVersionServiceImpl.java @@ -7,10 +7,7 @@ import cn.ysk.cashier.mapper.TbVersionMapper; import cn.ysk.cashier.pojo.TbVersion; import cn.ysk.cashier.repository.TbVersionRepository; import cn.ysk.cashier.service.TbVersionService; -import cn.ysk.cashier.utils.PageUtil; -import cn.ysk.cashier.utils.QueryHelp; -import cn.ysk.cashier.utils.RedisUtils; -import cn.ysk.cashier.utils.ValidationUtil; +import cn.ysk.cashier.utils.*; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; @@ -61,17 +58,17 @@ public class TbVersionServiceImpl implements TbVersionService { @Override @Transactional(rollbackFor = Exception.class) public TbVersionDto create(TbVersion resources) { - int exist = tbVersionRepository.isExist(resources.getSource(), resources.getType(), resources.getVersion()); + int exist = tbVersionRepository.isExist(resources.getSource(), resources.getVersion()); if (exist > 0) { throw new BadRequestException("该版本已存在。"); } resources.setCreatedAt(Instant.now().toEpochMilli()); TbVersionDto dto = tbVersionMapper.toDto(tbVersionRepository.save(resources)); - if (dto.getIsUp() == 1) { - //产品标识:型号:版本 - //LDBL_APP_VERSION:ios:version 存在即需要强制更新 - redisUtils.set(dto.getSource() + "_VERSION:" + dto.getType() + ":" + dto.getVersion(), dto.getMessage()); - } +// if (dto.getIsUp() == 1) { +// //产品标识:型号:版本 +// //VERSION:PC::version 存在即需要强制更新 +// redisUtils.set(CacheKey.VERSION + dto.getSource() + ":" + dto.getVersion(), dto); +// } return dto; } @@ -80,17 +77,23 @@ public class TbVersionServiceImpl implements TbVersionService { public void update(TbVersion resources) { TbVersion tbVersion = tbVersionRepository.findById(resources.getId()).orElseGet(TbVersion::new); ValidationUtil.isNull(tbVersion.getId(), "TbVersion", "id", resources.getId()); - redisUtils.del(tbVersion.getSource() + "_VERSION:" + tbVersion.getType() + ":" + tbVersion.getVersion()); +// redisUtils.del(tbVersion.getSource() + "_VERSION:" + tbVersion.getType() + ":" + tbVersion.getVersion()); tbVersion.copy(resources); tbVersion.setUpdatedAt(Instant.now().toEpochMilli()); tbVersionRepository.save(tbVersion); - if (resources.getIsUp() == 1) { - //产品标识:型号:版本 - //LDBL_APP_VERSION:ios:version 存在即需要强制更新 - redisUtils.set(tbVersion.getSource() + "_VERSION:" + tbVersion.getType() + ":" + tbVersion.getVersion(), tbVersion.getMessage()); - } else { - redisUtils.del(tbVersion.getSource() + "_VERSION:" + tbVersion.getType() + ":" + tbVersion.getVersion()); - } +// if (resources.getIsUp() == 1) { +// //产品标识:型号:版本 +// //LDBL_APP_VERSION:ios:version 存在即需要强制更新 +// redisUtils.set(tbVersion.getSource() + "_VERSION:" + tbVersion.getType() + ":" + tbVersion.getVersion(), tbVersion.getMessage()); +// } else { +// redisUtils.del(tbVersion.getSource() + "_VERSION:" + tbVersion.getType() + ":" + tbVersion.getVersion()); +// } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateSel(TbVersion resources) { + tbVersionRepository.updateSelBySource(resources.getSource(),resources.getId()); } @Override @@ -99,9 +102,9 @@ public class TbVersionServiceImpl implements TbVersionService { TbVersion tbVersion = tbVersionRepository.findById(id).orElseGet(TbVersion::new); ValidationUtil.isNull(tbVersion.getId(), "TbVersion", "id", id); tbVersionRepository.deleteById(id); - if (tbVersion.getIsUp() == 1) { - redisUtils.del(tbVersion.getSource() + "_VERSION:" + tbVersion.getType() + ":" + tbVersion.getVersion()); - } +// if (tbVersion.getIsUp() == 1) { +// redisUtils.del(tbVersion.getSource() + "_VERSION:" + tbVersion.getType() + ":" + tbVersion.getVersion()); +// } } } diff --git a/eladmin-tools/src/main/java/cn/ysk/cashier/rest/QiniuController.java b/eladmin-tools/src/main/java/cn/ysk/cashier/rest/QiniuController.java index 48db46a1..5fa72bba 100644 --- a/eladmin-tools/src/main/java/cn/ysk/cashier/rest/QiniuController.java +++ b/eladmin-tools/src/main/java/cn/ysk/cashier/rest/QiniuController.java @@ -89,6 +89,15 @@ public class QiniuController { return new ResponseEntity<>(map,HttpStatus.OK); } + @ApiOperation("上传PC版本文件") + @AnonymousPostMapping("uploadVersionFile") + public ResponseEntity uploadVersionFile(@RequestParam MultipartFile file,@RequestParam String name){ + String url = qiNiuService.uploadVersionFile(file,qiNiuService.findCloud(),name); + Map map = new HashMap<>(1); + map.put("data",url); + return new ResponseEntity<>(map,HttpStatus.OK); + } + // @Log("上传文件") @ApiOperation("上传文件") diff --git a/eladmin-tools/src/main/java/cn/ysk/cashier/service/QiNiuService.java b/eladmin-tools/src/main/java/cn/ysk/cashier/service/QiNiuService.java index 3cecf955..f255cba4 100644 --- a/eladmin-tools/src/main/java/cn/ysk/cashier/service/QiNiuService.java +++ b/eladmin-tools/src/main/java/cn/ysk/cashier/service/QiNiuService.java @@ -63,6 +63,8 @@ public interface QiNiuService { */ List queryAll(QiniuQueryCriteria criteria); + String uploadVersionFile(MultipartFile file, CloudStorageConfig qiniuConfig,String fileName); + /** * 上传文件 * @param file 文件 diff --git a/eladmin-tools/src/main/java/cn/ysk/cashier/service/impl/QiNiuServiceImpl.java b/eladmin-tools/src/main/java/cn/ysk/cashier/service/impl/QiNiuServiceImpl.java index a6598e14..96de3e58 100644 --- a/eladmin-tools/src/main/java/cn/ysk/cashier/service/impl/QiNiuServiceImpl.java +++ b/eladmin-tools/src/main/java/cn/ysk/cashier/service/impl/QiNiuServiceImpl.java @@ -115,6 +115,22 @@ public class QiNiuServiceImpl implements QiNiuService { return qiniuContentRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)); } + @Override + @Transactional(rollbackFor = Exception.class) + public String uploadVersionFile(MultipartFile file, CloudStorageConfig qiniuConfig,String fileName) { + if(qiniuConfig== null){ + throw new BadRequestException("请先添加相应配置,再操作"); + } + // 构造一个带指定Zone对象的配置类 + try { + String extension = FilenameUtils.getExtension(file.getOriginalFilename()); + + return OSSFactory.build(qiniuConfig).uploadFileName(file.getBytes(), extension,fileName); + } catch (Exception e) { + throw new BadRequestException(e.getMessage()); + } + } + @Override @Transactional(rollbackFor = Exception.class) public QiniuContent upload(MultipartFile file, CloudStorageConfig qiniuConfig) { diff --git a/oss-service/src/main/java/com/dianguang/cloud/ossservice/service/AbstractCloudStorageService.java b/oss-service/src/main/java/com/dianguang/cloud/ossservice/service/AbstractCloudStorageService.java index 341456e2..0e308f30 100644 --- a/oss-service/src/main/java/com/dianguang/cloud/ossservice/service/AbstractCloudStorageService.java +++ b/oss-service/src/main/java/com/dianguang/cloud/ossservice/service/AbstractCloudStorageService.java @@ -43,6 +43,25 @@ public abstract class AbstractCloudStorageService { return path + "." + suffix; } + /** + * 文件路径 + * @param prefix 前缀 + * @param fileName 文件名 + * @param suffix 后缀 + * @return 返回上传路径 + */ + public String getPath(String prefix,String suffix, String fileName) { + //文件路径 +// String path = DateUtils.getDays() + "/" + fileName; + String path = "version/" + fileName; + + if(StringUtils.isNotBlank(prefix)){ + path = prefix + "/" + path; + } + + return path + "." + suffix; + } + /** * 文件上传 * @param data 文件字节数组 @@ -58,6 +77,7 @@ public abstract class AbstractCloudStorageService { * @return 返回http地址 */ public abstract String uploadSuffix(byte[] data, String suffix) throws Exception; + public abstract String uploadFileName(byte[] data, String suffix,String fileName) throws Exception; /** * 文件上传 diff --git a/oss-service/src/main/java/com/dianguang/cloud/ossservice/service/AliyunCloudStorageService.java b/oss-service/src/main/java/com/dianguang/cloud/ossservice/service/AliyunCloudStorageService.java index a4de4454..17a58159 100644 --- a/oss-service/src/main/java/com/dianguang/cloud/ossservice/service/AliyunCloudStorageService.java +++ b/oss-service/src/main/java/com/dianguang/cloud/ossservice/service/AliyunCloudStorageService.java @@ -49,6 +49,11 @@ public class AliyunCloudStorageService extends AbstractCloudStorageService { return upload(data, getPath(config.getPrefix(), suffix)); } + @Override + public String uploadFileName(byte[] data, String suffix,String fileName) throws Exception { + return upload(data, getPath(config.getPrefix(), suffix,fileName)); + } + @Override public String uploadSuffix(InputStream inputStream, String suffix) throws Exception { return upload(inputStream, getPath(config.getPrefix(), suffix)); diff --git a/oss-service/src/main/java/com/dianguang/cloud/ossservice/service/HuaweiCloudStorageService.java b/oss-service/src/main/java/com/dianguang/cloud/ossservice/service/HuaweiCloudStorageService.java index 06b315a4..0d9c03d6 100644 --- a/oss-service/src/main/java/com/dianguang/cloud/ossservice/service/HuaweiCloudStorageService.java +++ b/oss-service/src/main/java/com/dianguang/cloud/ossservice/service/HuaweiCloudStorageService.java @@ -35,6 +35,11 @@ public class HuaweiCloudStorageService extends AbstractCloudStorageService { return config.getUrl() + "/" + path; } + @Override + public String uploadFileName(byte[] data, String suffix,String fileName) throws Exception { + return upload(data, getPath(config.getPrefix(), suffix,fileName)); + } + @Override public String uploadSuffix(InputStream inputStream, String suffix) throws Exception { return upload(inputStream, getPath(config.getPrefix(), suffix)); diff --git a/oss-service/src/main/java/com/dianguang/cloud/ossservice/service/QcloudCloudStorageService.java b/oss-service/src/main/java/com/dianguang/cloud/ossservice/service/QcloudCloudStorageService.java index a42f2ab1..07377b32 100644 --- a/oss-service/src/main/java/com/dianguang/cloud/ossservice/service/QcloudCloudStorageService.java +++ b/oss-service/src/main/java/com/dianguang/cloud/ossservice/service/QcloudCloudStorageService.java @@ -82,4 +82,9 @@ public class QcloudCloudStorageService extends AbstractCloudStorageService { public String uploadSuffix(InputStream inputStream, String suffix) throws Exception { return upload(inputStream, getPath(config.getPrefix(), suffix)); } + + @Override + public String uploadFileName(byte[] data, String suffix,String fileName) throws Exception { + return upload(data, getPath(config.getPrefix(), suffix,fileName)); + } } \ No newline at end of file diff --git a/oss-service/src/main/java/com/dianguang/cloud/ossservice/service/QiniuCloudStorageService.java b/oss-service/src/main/java/com/dianguang/cloud/ossservice/service/QiniuCloudStorageService.java index 2817a857..55379b1d 100644 --- a/oss-service/src/main/java/com/dianguang/cloud/ossservice/service/QiniuCloudStorageService.java +++ b/oss-service/src/main/java/com/dianguang/cloud/ossservice/service/QiniuCloudStorageService.java @@ -75,4 +75,9 @@ public class QiniuCloudStorageService extends AbstractCloudStorageService { public String uploadSuffix(InputStream inputStream, String suffix) throws Exception { return upload(inputStream, getPath(config.getPrefix(), suffix)); } + + @Override + public String uploadFileName(byte[] data, String suffix,String fileName) throws Exception { + return upload(data, getPath(config.getPrefix(), suffix,fileName)); + } }