fix:缓存可用发件邮箱
This commit is contained in:
parent
f31f163d5c
commit
a5412c684e
|
@ -76,10 +76,9 @@ public class StatusAspect {
|
|||
@Autowired
|
||||
private IAlarmItemService alarmItemService;
|
||||
|
||||
// 新增|修改邮箱服务器信息后 异步更新其状态信息
|
||||
// 新增邮箱服务器信息后 异步更新其状态信息
|
||||
@Async
|
||||
@AfterReturning("execution(* org.jeecg.modules.service.impl.SysEmailServiceImpl.update(..)) || " +
|
||||
"execution(* org.jeecg.modules.service.impl.SysEmailServiceImpl.create(..))")
|
||||
@AfterReturning("execution(* org.jeecg.modules.service.impl.SysEmailServiceImpl.create(..))")
|
||||
public void updateEamilStatus(JoinPoint point){
|
||||
Object[] args = point.getArgs();
|
||||
if (ArrayUtil.length(args) == 0) return;
|
||||
|
@ -87,6 +86,18 @@ public class StatusAspect {
|
|||
emailService.status2Redis(email);
|
||||
}
|
||||
|
||||
// 修改邮箱服务器信息后 异步更新其状态信息
|
||||
// 并更新一个可用的发件服务器缓存到Reids
|
||||
@Async
|
||||
@AfterReturning("execution(* org.jeecg.modules.service.impl.SysEmailServiceImpl.update(..))")
|
||||
public void updateEamil(JoinPoint point){
|
||||
emailService.sender2Redis();
|
||||
Object[] args = point.getArgs();
|
||||
if (ArrayUtil.length(args) == 0) return;
|
||||
SysEmail email = (SysEmail) args[0];
|
||||
emailService.status2Redis(email);
|
||||
}
|
||||
|
||||
/*
|
||||
* 新增|修改数据源信息后 异步更新其状态信息
|
||||
* */
|
||||
|
|
|
@ -33,4 +33,6 @@ public interface ISysEmailService extends IService<SysEmail> {
|
|||
void status2Redis(SysEmail email);
|
||||
|
||||
String getNameById(String id);
|
||||
|
||||
SysEmail sender2Redis();
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.netease.qiye.qiyeopenplatform.sdk.QiyeOpenPlatSDK;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jeecg.common.api.QueryRequest;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.constant.*;
|
||||
|
@ -45,6 +46,7 @@ import java.util.stream.Collectors;
|
|||
import static org.jeecg.modules.base.enums.Enabled.ENABLED;
|
||||
import static org.jeecg.modules.base.enums.Qiye.IS;
|
||||
|
||||
@Slf4j
|
||||
@Service("sysEmailService")
|
||||
public class SysEmailServiceImpl extends ServiceImpl<SysEmailMapper, SysEmail> implements ISysEmailService {
|
||||
|
||||
|
@ -152,11 +154,8 @@ public class SysEmailServiceImpl extends ServiceImpl<SysEmailMapper, SysEmail> i
|
|||
}
|
||||
sysEmail.setIsQiye(isQiye(username));
|
||||
boolean success = updateById(sysEmail);
|
||||
if (success) {
|
||||
// 更新邮箱发件服务器到Redis
|
||||
// updateSender();
|
||||
if (success)
|
||||
return Result.OK(Prompt.UPDATE_SUCC);
|
||||
}
|
||||
return Result.error(Prompt.UPDATE_ERR);
|
||||
}
|
||||
|
||||
|
@ -197,7 +196,7 @@ public class SysEmailServiceImpl extends ServiceImpl<SysEmailMapper, SysEmail> i
|
|||
if (redisUtil.hasKey(key))
|
||||
return Result.OK(redisUtil.get(key));
|
||||
|
||||
SysEmail sysEmail = updateSender();
|
||||
SysEmail sysEmail = this.sender2Redis();
|
||||
return Result.OK(sysEmail);
|
||||
}
|
||||
|
||||
|
@ -262,6 +261,22 @@ public class SysEmailServiceImpl extends ServiceImpl<SysEmailMapper, SysEmail> i
|
|||
return getById(id).getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SysEmail sender2Redis() {
|
||||
String key = RedisConstant.EMAIL_SENDER;
|
||||
LambdaQueryWrapper<SysEmail> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(SysEmail::getEmilType, SysMailType.SEND_EMAIL.getEmailType());
|
||||
wrapper.eq(SysEmail::getEnabled, ENABLED.getValue());
|
||||
List<SysEmail> emails = this.list(wrapper);
|
||||
Optional<SysEmail> first = emails.stream().findFirst();
|
||||
if(!first.isPresent())
|
||||
return null;
|
||||
SysEmail sender = first.get();
|
||||
redisUtil.set(key, sender);
|
||||
log.info("缓存了可用的发件邮箱到Redis: {}", sender.getUsername());
|
||||
return sender;
|
||||
}
|
||||
|
||||
/*
|
||||
* 删除指定id的邮箱服务器的状态值
|
||||
* */
|
||||
|
@ -282,16 +297,4 @@ public class SysEmailServiceImpl extends ServiceImpl<SysEmailMapper, SysEmail> i
|
|||
boolean contains = CollUtil.contains(domains, domain);
|
||||
return contains ? Qiye.IS.getValue() : Qiye.NOT.getValue();
|
||||
}
|
||||
|
||||
private SysEmail updateSender(){
|
||||
String key = RedisConstant.EMAIL_SENDER;
|
||||
LambdaQueryWrapper<SysEmail> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(SysEmail::getEmilType, SysMailType.SEND_EMAIL.getEmailType());
|
||||
wrapper.eq(SysEmail::getEnabled, ENABLED.getValue());
|
||||
List<SysEmail> emails = this.list(wrapper);
|
||||
SysEmail sysEmail = emails.stream().findFirst().get();
|
||||
if (ObjectUtil.isNotNull(sysEmail))
|
||||
redisUtil.set(key, sysEmail);
|
||||
return sysEmail;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package org.jeecg.modules.message.handle.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.sun.mail.smtp.SMTPAddressFailedException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
@ -39,10 +40,12 @@ public class EmailPushMsgHandle implements ISendMsgHandle {
|
|||
@Override
|
||||
public void sendMessage(MessageDTO messageDTO) {
|
||||
// 获取邮件发送服务器信息
|
||||
SysEmail sysEmail = abnormalAlarmClient.getSender().getResult();
|
||||
SysEmail sender = abnormalAlarmClient.getSender().getResult();
|
||||
if(ObjectUtil.isNull(sender))
|
||||
log.error("没有可用的发件邮箱服务");
|
||||
// 初始化邮件服务
|
||||
EmailServiceManager emailService = getInstance();
|
||||
emailService.init(sysEmail);
|
||||
emailService.init(sender);
|
||||
// 单独给每个用户发送邮件
|
||||
/*String toUser = messageDTO.getToUser();
|
||||
List<String> toUsers = StrUtil.splitTrim(toUser, ",");*/
|
||||
|
|
Loading…
Reference in New Issue
Block a user