From 9b90cc41cac5193c3968f0bc5258003031c0a686 Mon Sep 17 00:00:00 2001 From: ZhengJie <201507802@qq.com> Date: Wed, 20 May 2020 17:24:33 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BB=A3=E7=A0=81=E5=AE=8C=E5=96=84](v2.5):?= =?UTF-8?q?=20v2.5=20beta=20=E4=BF=AE=E5=A4=8D=E9=82=AE=E4=BB=B6=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=8C=E4=BF=AE=E5=A4=8DRedisUtils.delByKeys?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=B1=E8=B4=A5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复第一次保存失败的问题,修复某些场景下发送失败的问题 close #363 --- .../java/me/zhengjie/utils/RedisUtils.java | 8 ++--- .../me/zhengjie/rest/AliPayController.java | 3 +- .../me/zhengjie/rest/EmailController.java | 6 ++-- .../me/zhengjie/rest/QiniuController.java | 2 +- .../me/zhengjie/service/AliPayService.java | 26 ++++++++--------- .../me/zhengjie/service/EmailService.java | 2 +- .../me/zhengjie/service/QiNiuService.java | 26 ++++++++--------- .../service/impl/AliPayServiceImpl.java | 29 ++++++++++--------- .../service/impl/EmailServiceImpl.java | 19 ++++++------ .../service/impl/QiNiuServiceImpl.java | 28 +++++++++--------- 10 files changed, 74 insertions(+), 75 deletions(-) diff --git a/eladmin-common/src/main/java/me/zhengjie/utils/RedisUtils.java b/eladmin-common/src/main/java/me/zhengjie/utils/RedisUtils.java index 2c2c61610..74921bff0 100644 --- a/eladmin-common/src/main/java/me/zhengjie/utils/RedisUtils.java +++ b/eladmin-common/src/main/java/me/zhengjie/utils/RedisUtils.java @@ -646,13 +646,13 @@ public long lRemove(String key, long count, Object value) { /** * - * @param dict - * @param ids + * @param prefix 前缀 + * @param ids id */ public void delByKeys(String prefix, Set ids) { - List keys = new ArrayList<>(); + Set keys = new HashSet<>(); for (Long id : ids) { - keys.add(new StringBuffer(prefix).append(id).toString()); + keys.addAll(redisTemplate.keys(new StringBuffer(prefix).append(id).toString())); } redisTemplate.delete(keys); } diff --git a/eladmin-tools/src/main/java/me/zhengjie/rest/AliPayController.java b/eladmin-tools/src/main/java/me/zhengjie/rest/AliPayController.java index 1dd79cdc1..a1bad94ea 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/rest/AliPayController.java +++ b/eladmin-tools/src/main/java/me/zhengjie/rest/AliPayController.java @@ -59,8 +59,7 @@ public ResponseEntity queryConfig(){ @ApiOperation("配置支付宝") @PutMapping public ResponseEntity updateConfig(@Validated @RequestBody AlipayConfig alipayConfig){ - alipayConfig.setId(1L); - alipayService.update(alipayConfig); + alipayService.config(alipayConfig); return new ResponseEntity<>(HttpStatus.OK); } diff --git a/eladmin-tools/src/main/java/me/zhengjie/rest/EmailController.java b/eladmin-tools/src/main/java/me/zhengjie/rest/EmailController.java index 1fd716426..974de9988 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/rest/EmailController.java +++ b/eladmin-tools/src/main/java/me/zhengjie/rest/EmailController.java @@ -48,15 +48,15 @@ public ResponseEntity queryConfig(){ @Log("配置邮件") @PutMapping @ApiOperation("配置邮件") - public ResponseEntity updateConfig(@Validated @RequestBody EmailConfig emailConfig){ - emailService.update(emailConfig,emailService.find()); + public ResponseEntity updateConfig(@Validated @RequestBody EmailConfig emailConfig) throws Exception { + emailService.config(emailConfig,emailService.find()); return new ResponseEntity<>(HttpStatus.OK); } @Log("发送邮件") @PostMapping @ApiOperation("发送邮件") - public ResponseEntity sendEmail(@Validated @RequestBody EmailVo emailVo) throws Exception { + public ResponseEntity sendEmail(@Validated @RequestBody EmailVo emailVo){ emailService.send(emailVo,emailService.find()); return new ResponseEntity<>(HttpStatus.OK); } diff --git a/eladmin-tools/src/main/java/me/zhengjie/rest/QiniuController.java b/eladmin-tools/src/main/java/me/zhengjie/rest/QiniuController.java index 6787e070b..593c6d1f6 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/rest/QiniuController.java +++ b/eladmin-tools/src/main/java/me/zhengjie/rest/QiniuController.java @@ -58,7 +58,7 @@ public ResponseEntity queryConfig(){ @ApiOperation("配置七牛云存储") @PutMapping(value = "/config") public ResponseEntity updateConfig(@Validated @RequestBody QiniuConfig qiniuConfig){ - qiNiuService.update(qiniuConfig); + qiNiuService.config(qiniuConfig); qiNiuService.update(qiniuConfig.getType()); return new ResponseEntity<>(HttpStatus.OK); } diff --git a/eladmin-tools/src/main/java/me/zhengjie/service/AliPayService.java b/eladmin-tools/src/main/java/me/zhengjie/service/AliPayService.java index 79351634a..be19c9055 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/service/AliPayService.java +++ b/eladmin-tools/src/main/java/me/zhengjie/service/AliPayService.java @@ -24,6 +24,19 @@ */ public interface AliPayService { + /** + * 查询配置 + * @return AlipayConfig + */ + AlipayConfig find(); + + /** + * 更新配置 + * @param alipayConfig 支付宝配置 + * @return AlipayConfig + */ + AlipayConfig config(AlipayConfig alipayConfig); + /** * 处理来自PC的交易请求 * @param alipay 支付宝配置 @@ -41,17 +54,4 @@ public interface AliPayService { * @throws Exception 异常 */ String toPayAsWeb(AlipayConfig alipay, TradeVo trade) throws Exception; - - /** - * 查询配置 - * @return AlipayConfig - */ - AlipayConfig find(); - - /** - * 更新配置 - * @param alipayConfig 支付宝配置 - * @return AlipayConfig - */ - AlipayConfig update(AlipayConfig alipayConfig); } diff --git a/eladmin-tools/src/main/java/me/zhengjie/service/EmailService.java b/eladmin-tools/src/main/java/me/zhengjie/service/EmailService.java index 3932dd782..bb9208e33 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/service/EmailService.java +++ b/eladmin-tools/src/main/java/me/zhengjie/service/EmailService.java @@ -31,7 +31,7 @@ public interface EmailService { * @param old 旧的配置 * @return EmailConfig */ - EmailConfig update(EmailConfig emailConfig, EmailConfig old); + EmailConfig config(EmailConfig emailConfig, EmailConfig old) throws Exception; /** * 查询配置 diff --git a/eladmin-tools/src/main/java/me/zhengjie/service/QiNiuService.java b/eladmin-tools/src/main/java/me/zhengjie/service/QiNiuService.java index ac6121986..09dca6a8e 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/service/QiNiuService.java +++ b/eladmin-tools/src/main/java/me/zhengjie/service/QiNiuService.java @@ -31,6 +31,19 @@ */ public interface QiNiuService { + /** + * 查配置 + * @return QiniuConfig + */ + QiniuConfig find(); + + /** + * 修改配置 + * @param qiniuConfig 配置 + * @return QiniuConfig + */ + QiniuConfig config(QiniuConfig qiniuConfig); + /** * 分页查询 * @param criteria 条件 @@ -46,19 +59,6 @@ public interface QiNiuService { */ List queryAll(QiniuQueryCriteria criteria); - /** - * 查配置 - * @return QiniuConfig - */ - QiniuConfig find(); - - /** - * 修改配置 - * @param qiniuConfig 配置 - * @return QiniuConfig - */ - QiniuConfig update(QiniuConfig qiniuConfig); - /** * 上传文件 * @param file 文件 diff --git a/eladmin-tools/src/main/java/me/zhengjie/service/impl/AliPayServiceImpl.java b/eladmin-tools/src/main/java/me/zhengjie/service/impl/AliPayServiceImpl.java index 00e31c8bb..5cbe3873f 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/service/impl/AliPayServiceImpl.java +++ b/eladmin-tools/src/main/java/me/zhengjie/service/impl/AliPayServiceImpl.java @@ -45,6 +45,21 @@ public class AliPayServiceImpl implements AliPayService { private final AliPayRepository alipayRepository; + @Override + @Cacheable(key = "'id:1'") + public AlipayConfig find() { + Optional alipayConfig = alipayRepository.findById(1L); + return alipayConfig.orElseGet(AlipayConfig::new); + } + + @Override + @CachePut(key = "'id:1'") + @Transactional(rollbackFor = Exception.class) + public AlipayConfig config(AlipayConfig alipayConfig) { + alipayConfig.setId(1L); + return alipayRepository.save(alipayConfig); + } + @Override public String toPayAsPc(AlipayConfig alipay, TradeVo trade) throws Exception { @@ -103,18 +118,4 @@ public String toPayAsWeb(AlipayConfig alipay, TradeVo trade) throws Exception { " }"); return alipayClient.pageExecute(request, "GET").getBody(); } - - @Override - @Cacheable(key = "'1'") - public AlipayConfig find() { - Optional alipayConfig = alipayRepository.findById(1L); - return alipayConfig.orElseGet(AlipayConfig::new); - } - - @Override - @CachePut(key = "'1'") - @Transactional(rollbackFor = Exception.class) - public AlipayConfig update(AlipayConfig alipayConfig) { - return alipayRepository.save(alipayConfig); - } } diff --git a/eladmin-tools/src/main/java/me/zhengjie/service/impl/EmailServiceImpl.java b/eladmin-tools/src/main/java/me/zhengjie/service/impl/EmailServiceImpl.java index 73043e9e8..f9ea59cb3 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/service/impl/EmailServiceImpl.java +++ b/eladmin-tools/src/main/java/me/zhengjie/service/impl/EmailServiceImpl.java @@ -45,22 +45,19 @@ public class EmailServiceImpl implements EmailService { private final EmailRepository emailRepository; @Override - @CachePut(key = "'1'") + @CachePut(key = "'id:1'") @Transactional(rollbackFor = Exception.class) - public EmailConfig update(EmailConfig emailConfig, EmailConfig old) { - try { - if(!emailConfig.getPass().equals(old.getPass())){ - // 对称加密 - emailConfig.setPass(EncryptUtils.desEncrypt(emailConfig.getPass())); - } - } catch (Exception e) { - e.printStackTrace(); + public EmailConfig config(EmailConfig emailConfig, EmailConfig old) throws Exception { + emailConfig.setId(1L); + if(!emailConfig.getPass().equals(old.getPass())){ + // 对称加密 + emailConfig.setPass(EncryptUtils.desEncrypt(emailConfig.getPass())); } return emailRepository.save(emailConfig); } @Override - @Cacheable(key = "'1'") + @Cacheable(key = "'id:1'") public EmailConfig find() { Optional emailConfig = emailRepository.findById(1L); return emailConfig.orElseGet(EmailConfig::new); @@ -86,6 +83,8 @@ public void send(EmailVo emailVo, EmailConfig emailConfig){ account.setFrom(emailConfig.getUser()+"<"+emailConfig.getFromUser()+">"); // ssl方式发送 account.setSslEnable(true); + // 使用STARTTLS安全连接 + account.setStarttlsEnable(true); String content = emailVo.getContent(); // 发送 try { diff --git a/eladmin-tools/src/main/java/me/zhengjie/service/impl/QiNiuServiceImpl.java b/eladmin-tools/src/main/java/me/zhengjie/service/impl/QiNiuServiceImpl.java index ba7661b71..6beb8ad61 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/service/impl/QiNiuServiceImpl.java +++ b/eladmin-tools/src/main/java/me/zhengjie/service/impl/QiNiuServiceImpl.java @@ -67,34 +67,34 @@ public class QiNiuServiceImpl implements QiNiuService { private Long maxSize; @Override - public Object queryAll(QiniuQueryCriteria criteria, Pageable pageable){ - return PageUtil.toPage(qiniuContentRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable)); - } - - @Override - public List queryAll(QiniuQueryCriteria criteria) { - return qiniuContentRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)); - } - - @Override - @Cacheable(key = "'1'") + @Cacheable(key = "'id:1'") public QiniuConfig find() { Optional qiniuConfig = qiNiuConfigRepository.findById(1L); return qiniuConfig.orElseGet(QiniuConfig::new); } @Override - @CachePut(key = "'1'") + @CachePut(key = "'id:1'") @Transactional(rollbackFor = Exception.class) - public QiniuConfig update(QiniuConfig qiniuConfig) { + public QiniuConfig config(QiniuConfig qiniuConfig) { + qiniuConfig.setId(1L); String http = "http://", https = "https://"; if (!(qiniuConfig.getHost().toLowerCase().startsWith(http)||qiniuConfig.getHost().toLowerCase().startsWith(https))) { throw new BadRequestException("外链域名必须以http://或者https://开头"); } - qiniuConfig.setId(1L); return qiNiuConfigRepository.save(qiniuConfig); } + @Override + public Object queryAll(QiniuQueryCriteria criteria, Pageable pageable){ + return PageUtil.toPage(qiniuContentRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable)); + } + + @Override + public List queryAll(QiniuQueryCriteria criteria) { + return qiniuContentRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)); + } + @Override @Transactional(rollbackFor = Exception.class) public QiniuContent upload(MultipartFile file, QiniuConfig qiniuConfig) {