mirror of https://github.com/elunez/eladmin
[代码完善](v2.5): v2.5 beta 修复邮件问题,修复RedisUtils.delByKeys删除失败的问题
修复第一次保存失败的问题,修复某些场景下发送失败的问题 close #363pull/372/head
parent
59bf09eb31
commit
9b90cc41ca
|
@ -646,13 +646,13 @@ public class RedisUtils {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param dict
|
* @param prefix 前缀
|
||||||
* @param ids
|
* @param ids id
|
||||||
*/
|
*/
|
||||||
public void delByKeys(String prefix, Set<Long> ids) {
|
public void delByKeys(String prefix, Set<Long> ids) {
|
||||||
List<String> keys = new ArrayList<>();
|
Set<Object> keys = new HashSet<>();
|
||||||
for (Long id : ids) {
|
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);
|
redisTemplate.delete(keys);
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,8 +59,7 @@ public class AliPayController {
|
||||||
@ApiOperation("配置支付宝")
|
@ApiOperation("配置支付宝")
|
||||||
@PutMapping
|
@PutMapping
|
||||||
public ResponseEntity<Object> updateConfig(@Validated @RequestBody AlipayConfig alipayConfig){
|
public ResponseEntity<Object> updateConfig(@Validated @RequestBody AlipayConfig alipayConfig){
|
||||||
alipayConfig.setId(1L);
|
alipayService.config(alipayConfig);
|
||||||
alipayService.update(alipayConfig);
|
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,15 +48,15 @@ public class EmailController {
|
||||||
@Log("配置邮件")
|
@Log("配置邮件")
|
||||||
@PutMapping
|
@PutMapping
|
||||||
@ApiOperation("配置邮件")
|
@ApiOperation("配置邮件")
|
||||||
public ResponseEntity<Object> updateConfig(@Validated @RequestBody EmailConfig emailConfig){
|
public ResponseEntity<Object> updateConfig(@Validated @RequestBody EmailConfig emailConfig) throws Exception {
|
||||||
emailService.update(emailConfig,emailService.find());
|
emailService.config(emailConfig,emailService.find());
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Log("发送邮件")
|
@Log("发送邮件")
|
||||||
@PostMapping
|
@PostMapping
|
||||||
@ApiOperation("发送邮件")
|
@ApiOperation("发送邮件")
|
||||||
public ResponseEntity<Object> sendEmail(@Validated @RequestBody EmailVo emailVo) throws Exception {
|
public ResponseEntity<Object> sendEmail(@Validated @RequestBody EmailVo emailVo){
|
||||||
emailService.send(emailVo,emailService.find());
|
emailService.send(emailVo,emailService.find());
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,7 +58,7 @@ public class QiniuController {
|
||||||
@ApiOperation("配置七牛云存储")
|
@ApiOperation("配置七牛云存储")
|
||||||
@PutMapping(value = "/config")
|
@PutMapping(value = "/config")
|
||||||
public ResponseEntity<Object> updateConfig(@Validated @RequestBody QiniuConfig qiniuConfig){
|
public ResponseEntity<Object> updateConfig(@Validated @RequestBody QiniuConfig qiniuConfig){
|
||||||
qiNiuService.update(qiniuConfig);
|
qiNiuService.config(qiniuConfig);
|
||||||
qiNiuService.update(qiniuConfig.getType());
|
qiNiuService.update(qiniuConfig.getType());
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,19 @@ import me.zhengjie.domain.AlipayConfig;
|
||||||
*/
|
*/
|
||||||
public interface AliPayService {
|
public interface AliPayService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询配置
|
||||||
|
* @return AlipayConfig
|
||||||
|
*/
|
||||||
|
AlipayConfig find();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新配置
|
||||||
|
* @param alipayConfig 支付宝配置
|
||||||
|
* @return AlipayConfig
|
||||||
|
*/
|
||||||
|
AlipayConfig config(AlipayConfig alipayConfig);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理来自PC的交易请求
|
* 处理来自PC的交易请求
|
||||||
* @param alipay 支付宝配置
|
* @param alipay 支付宝配置
|
||||||
|
@ -41,17 +54,4 @@ public interface AliPayService {
|
||||||
* @throws Exception 异常
|
* @throws Exception 异常
|
||||||
*/
|
*/
|
||||||
String toPayAsWeb(AlipayConfig alipay, TradeVo trade) throws Exception;
|
String toPayAsWeb(AlipayConfig alipay, TradeVo trade) throws Exception;
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询配置
|
|
||||||
* @return AlipayConfig
|
|
||||||
*/
|
|
||||||
AlipayConfig find();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新配置
|
|
||||||
* @param alipayConfig 支付宝配置
|
|
||||||
* @return AlipayConfig
|
|
||||||
*/
|
|
||||||
AlipayConfig update(AlipayConfig alipayConfig);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,7 @@ public interface EmailService {
|
||||||
* @param old 旧的配置
|
* @param old 旧的配置
|
||||||
* @return EmailConfig
|
* @return EmailConfig
|
||||||
*/
|
*/
|
||||||
EmailConfig update(EmailConfig emailConfig, EmailConfig old);
|
EmailConfig config(EmailConfig emailConfig, EmailConfig old) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询配置
|
* 查询配置
|
||||||
|
|
|
@ -31,6 +31,19 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public interface QiNiuService {
|
public interface QiNiuService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查配置
|
||||||
|
* @return QiniuConfig
|
||||||
|
*/
|
||||||
|
QiniuConfig find();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改配置
|
||||||
|
* @param qiniuConfig 配置
|
||||||
|
* @return QiniuConfig
|
||||||
|
*/
|
||||||
|
QiniuConfig config(QiniuConfig qiniuConfig);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询
|
* 分页查询
|
||||||
* @param criteria 条件
|
* @param criteria 条件
|
||||||
|
@ -46,19 +59,6 @@ public interface QiNiuService {
|
||||||
*/
|
*/
|
||||||
List<QiniuContent> queryAll(QiniuQueryCriteria criteria);
|
List<QiniuContent> queryAll(QiniuQueryCriteria criteria);
|
||||||
|
|
||||||
/**
|
|
||||||
* 查配置
|
|
||||||
* @return QiniuConfig
|
|
||||||
*/
|
|
||||||
QiniuConfig find();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改配置
|
|
||||||
* @param qiniuConfig 配置
|
|
||||||
* @return QiniuConfig
|
|
||||||
*/
|
|
||||||
QiniuConfig update(QiniuConfig qiniuConfig);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上传文件
|
* 上传文件
|
||||||
* @param file 文件
|
* @param file 文件
|
||||||
|
|
|
@ -45,6 +45,21 @@ public class AliPayServiceImpl implements AliPayService {
|
||||||
|
|
||||||
private final AliPayRepository alipayRepository;
|
private final AliPayRepository alipayRepository;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Cacheable(key = "'id:1'")
|
||||||
|
public AlipayConfig find() {
|
||||||
|
Optional<AlipayConfig> 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
|
@Override
|
||||||
public String toPayAsPc(AlipayConfig alipay, TradeVo trade) throws Exception {
|
public String toPayAsPc(AlipayConfig alipay, TradeVo trade) throws Exception {
|
||||||
|
|
||||||
|
@ -103,18 +118,4 @@ public class AliPayServiceImpl implements AliPayService {
|
||||||
" }");
|
" }");
|
||||||
return alipayClient.pageExecute(request, "GET").getBody();
|
return alipayClient.pageExecute(request, "GET").getBody();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
@Cacheable(key = "'1'")
|
|
||||||
public AlipayConfig find() {
|
|
||||||
Optional<AlipayConfig> 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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,22 +45,19 @@ public class EmailServiceImpl implements EmailService {
|
||||||
private final EmailRepository emailRepository;
|
private final EmailRepository emailRepository;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@CachePut(key = "'1'")
|
@CachePut(key = "'id:1'")
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public EmailConfig update(EmailConfig emailConfig, EmailConfig old) {
|
public EmailConfig config(EmailConfig emailConfig, EmailConfig old) throws Exception {
|
||||||
try {
|
emailConfig.setId(1L);
|
||||||
if(!emailConfig.getPass().equals(old.getPass())){
|
if(!emailConfig.getPass().equals(old.getPass())){
|
||||||
// 对称加密
|
// 对称加密
|
||||||
emailConfig.setPass(EncryptUtils.desEncrypt(emailConfig.getPass()));
|
emailConfig.setPass(EncryptUtils.desEncrypt(emailConfig.getPass()));
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return emailRepository.save(emailConfig);
|
return emailRepository.save(emailConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Cacheable(key = "'1'")
|
@Cacheable(key = "'id:1'")
|
||||||
public EmailConfig find() {
|
public EmailConfig find() {
|
||||||
Optional<EmailConfig> emailConfig = emailRepository.findById(1L);
|
Optional<EmailConfig> emailConfig = emailRepository.findById(1L);
|
||||||
return emailConfig.orElseGet(EmailConfig::new);
|
return emailConfig.orElseGet(EmailConfig::new);
|
||||||
|
@ -86,6 +83,8 @@ public class EmailServiceImpl implements EmailService {
|
||||||
account.setFrom(emailConfig.getUser()+"<"+emailConfig.getFromUser()+">");
|
account.setFrom(emailConfig.getUser()+"<"+emailConfig.getFromUser()+">");
|
||||||
// ssl方式发送
|
// ssl方式发送
|
||||||
account.setSslEnable(true);
|
account.setSslEnable(true);
|
||||||
|
// 使用STARTTLS安全连接
|
||||||
|
account.setStarttlsEnable(true);
|
||||||
String content = emailVo.getContent();
|
String content = emailVo.getContent();
|
||||||
// 发送
|
// 发送
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -66,6 +66,25 @@ public class QiNiuServiceImpl implements QiNiuService {
|
||||||
@Value("${qiniu.max-size}")
|
@Value("${qiniu.max-size}")
|
||||||
private Long maxSize;
|
private Long maxSize;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Cacheable(key = "'id:1'")
|
||||||
|
public QiniuConfig find() {
|
||||||
|
Optional<QiniuConfig> qiniuConfig = qiNiuConfigRepository.findById(1L);
|
||||||
|
return qiniuConfig.orElseGet(QiniuConfig::new);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@CachePut(key = "'id:1'")
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
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://开头");
|
||||||
|
}
|
||||||
|
return qiNiuConfigRepository.save(qiniuConfig);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object queryAll(QiniuQueryCriteria criteria, Pageable pageable){
|
public Object queryAll(QiniuQueryCriteria criteria, Pageable pageable){
|
||||||
return PageUtil.toPage(qiniuContentRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable));
|
return PageUtil.toPage(qiniuContentRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable));
|
||||||
|
@ -76,25 +95,6 @@ public class QiNiuServiceImpl implements QiNiuService {
|
||||||
return qiniuContentRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder));
|
return qiniuContentRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
@Cacheable(key = "'1'")
|
|
||||||
public QiniuConfig find() {
|
|
||||||
Optional<QiniuConfig> qiniuConfig = qiNiuConfigRepository.findById(1L);
|
|
||||||
return qiniuConfig.orElseGet(QiniuConfig::new);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@CachePut(key = "'1'")
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public QiniuConfig update(QiniuConfig qiniuConfig) {
|
|
||||||
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
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public QiniuContent upload(MultipartFile file, QiniuConfig qiniuConfig) {
|
public QiniuContent upload(MultipartFile file, QiniuConfig qiniuConfig) {
|
||||||
|
|
Loading…
Reference in New Issue