zjr0325-新增邮件管理-优化
This commit is contained in:
parent
80e89777d2
commit
5e09b83df0
|
|
@ -1,6 +1,7 @@
|
||||||
package com.nflg.mobilebroken.admin.controller;
|
package com.nflg.mobilebroken.admin.controller;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.nflg.mobilebroken.admin.annotation.ApiMark;
|
import com.nflg.mobilebroken.admin.annotation.ApiMark;
|
||||||
import com.nflg.mobilebroken.common.constant.STATE;
|
import com.nflg.mobilebroken.common.constant.STATE;
|
||||||
import com.nflg.mobilebroken.common.exception.NflgException;
|
import com.nflg.mobilebroken.common.exception.NflgException;
|
||||||
|
|
@ -11,7 +12,9 @@ import com.nflg.mobilebroken.common.pojo.request.SendMsgConfigGetPageRequest;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.SendMsgConfigUpdateRequest;
|
import com.nflg.mobilebroken.common.pojo.request.SendMsgConfigUpdateRequest;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.SendMsgConfigGetPageVO;
|
import com.nflg.mobilebroken.common.pojo.vo.SendMsgConfigGetPageVO;
|
||||||
import com.nflg.mobilebroken.repository.entity.SendMsgConfig;
|
import com.nflg.mobilebroken.repository.entity.SendMsgConfig;
|
||||||
|
import com.nflg.mobilebroken.repository.entity.SendMsgConfigUser;
|
||||||
import com.nflg.mobilebroken.repository.service.ISendMsgConfigService;
|
import com.nflg.mobilebroken.repository.service.ISendMsgConfigService;
|
||||||
|
import com.nflg.mobilebroken.repository.service.ISendMsgConfigUserService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
@ -55,7 +58,7 @@ public class SendMsgConfigController extends ControllerBase{
|
||||||
if (CollectionUtil.isEmpty(ids)) {
|
if (CollectionUtil.isEmpty(ids)) {
|
||||||
throw new NflgException(STATE.ParamErr, "ids必传");
|
throw new NflgException(STATE.ParamErr, "ids必传");
|
||||||
}
|
}
|
||||||
sendMsgConfigService.removeByIds(ids);
|
sendMsgConfigService.removeSendMsgConfigByIds(ids);
|
||||||
return ApiResult.success(true);
|
return ApiResult.success(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -291,7 +291,9 @@ public class TicketScheduledTasks {
|
||||||
.replace("${createTime}", toTimeString(ticket.getCreateTime()))
|
.replace("${createTime}", toTimeString(ticket.getCreateTime()))
|
||||||
.replace("${msg}", subject);
|
.replace("${msg}", subject);
|
||||||
try {
|
try {
|
||||||
sendEamilForAdminUser(adminUsers, configEmailsAdminUsers, subject, content);
|
log.info("【工单超时提醒】发送邮件到adminUsers: {}",CollectionUtil.isNotEmpty(adminUsers) ? adminUsers.stream().map(AdminUser::getEmail).collect(Collectors.toList()) : Lists.newArrayList());
|
||||||
|
log.info("【工单超时提醒】发送邮件到configEmailsAdminUsers: {}",CollectionUtil.isNotEmpty(configEmailsAdminUsers) ? configEmailsAdminUsers.stream().map(AdminUser::getEmail).collect(Collectors.toList()) : Lists.newArrayList());
|
||||||
|
emailService.sendEmailForAdminUser(adminUsers, configEmailsAdminUsers, subject, content);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("【工单超时提醒】邮件发送失败", e);
|
log.error("【工单超时提醒】邮件发送失败", e);
|
||||||
}
|
}
|
||||||
|
|
@ -346,16 +348,6 @@ public class TicketScheduledTasks {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendEamilForAdminUser(List<AdminUser> adminUsers, List<AdminUser> configAdminUsers, String subject,String content) throws MessagingException {
|
|
||||||
Set<AdminUser> adminUserSet = Sets.union(Sets.newHashSet(adminUsers), Sets.newHashSet(configAdminUsers));
|
|
||||||
if (CollectionUtil.isNotEmpty(adminUserSet)){
|
|
||||||
for (AdminUser adminUser:adminUserSet) {
|
|
||||||
log.info("【工单超时提醒】发送邮件到{}",adminUser.getEmail());
|
|
||||||
emailService.sendEmail(adminUser.getEmail(),subject,content);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void sendEamilForAppUser(List<AppUser> users,String subject,String content) throws MessagingException {
|
private void sendEamilForAppUser(List<AppUser> users,String subject,String content) throws MessagingException {
|
||||||
if (CollectionUtil.isNotEmpty(users)){
|
if (CollectionUtil.isNotEmpty(users)){
|
||||||
for (AppUser user:users) {
|
for (AppUser user:users) {
|
||||||
|
|
|
||||||
|
|
@ -184,7 +184,7 @@ public class TicketScheduledTasks {
|
||||||
* 工单超时提醒
|
* 工单超时提醒
|
||||||
* 每天午夜12点执行一次
|
* 每天午夜12点执行一次
|
||||||
*/
|
*/
|
||||||
@Scheduled(cron = "0 0 0 * * ?")
|
@Scheduled(fixedRate = 10000)
|
||||||
public void timeoutRemind() {
|
public void timeoutRemind() {
|
||||||
log.info("【工单超时提醒】开始执行");
|
log.info("【工单超时提醒】开始执行");
|
||||||
ParamConfig config = paramConfigService.lambdaQuery().eq(ParamConfig::getCode, "TiketTimeout").one();
|
ParamConfig config = paramConfigService.lambdaQuery().eq(ParamConfig::getCode, "TiketTimeout").one();
|
||||||
|
|
@ -279,7 +279,7 @@ public class TicketScheduledTasks {
|
||||||
adminUserIds.addAll(followUserIds);
|
adminUserIds.addAll(followUserIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<SendMsgConfigUserReceiverTypeEnum, List<AdminUser>> sendMsgConfigAdminUserMap = sendMsgConfigService.getAdminUserMapByDataTypeAndRemindType(SendMsgConfigDataTypeEnum.MOBILE_BROKEN_TICKET, SendMsgConfigRemindTypeEnum.TITLE_TICKET_TIMEOUT);
|
Map<SendMsgConfigUserReceiverTypeEnum, List<AdminUser>> sendMsgConfigAdminUserMap = sendMsgConfigService.getAdminUserMapByDataTypeAndRemindType(SendMsgConfigDataTypeEnum.GONGFU_TICKET, SendMsgConfigRemindTypeEnum.TITLE_TICKET_TIMEOUT);
|
||||||
|
|
||||||
List<AdminUser> configEmailsAdminUsers = sendMsgConfigAdminUserMap.getOrDefault(SendMsgConfigUserReceiverTypeEnum.EMAIL, Lists.newArrayList());
|
List<AdminUser> configEmailsAdminUsers = sendMsgConfigAdminUserMap.getOrDefault(SendMsgConfigUserReceiverTypeEnum.EMAIL, Lists.newArrayList());
|
||||||
|
|
||||||
|
|
@ -294,7 +294,9 @@ public class TicketScheduledTasks {
|
||||||
.replace("${createTime}", toTimeString(ticket.getCreateTime()))
|
.replace("${createTime}", toTimeString(ticket.getCreateTime()))
|
||||||
.replace("${msg}", subject);
|
.replace("${msg}", subject);
|
||||||
try {
|
try {
|
||||||
sendEamilForAdminUser(adminUsers, configEmailsAdminUsers, subject, content);
|
log.info("【工单超时提醒】发送邮件到adminUsers: {}",CollectionUtil.isNotEmpty(adminUsers) ? adminUsers.stream().map(AdminUser::getEmail).collect(Collectors.toList()) : Lists.newArrayList());
|
||||||
|
log.info("【工单超时提醒】发送邮件到configEmailsAdminUsers: {}",CollectionUtil.isNotEmpty(configEmailsAdminUsers) ? configEmailsAdminUsers.stream().map(AdminUser::getEmail).collect(Collectors.toList()) : Lists.newArrayList());
|
||||||
|
emailService.sendEmailForAdminUser(adminUsers, configEmailsAdminUsers, subject, content);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("【工单超时提醒】邮件发送失败", e);
|
log.error("【工单超时提醒】邮件发送失败", e);
|
||||||
}
|
}
|
||||||
|
|
@ -309,7 +311,7 @@ public class TicketScheduledTasks {
|
||||||
.setTitle(ticket.getTitle())
|
.setTitle(ticket.getTitle())
|
||||||
.setUserId(c.getId())
|
.setUserId(c.getId())
|
||||||
.setSourceId(Long.valueOf(ticket.getId()))
|
.setSourceId(Long.valueOf(ticket.getId()))
|
||||||
.setSource(0)
|
.setSource(3)
|
||||||
.setType(MessageType.WorkOrderAssignment.getState())
|
.setType(MessageType.WorkOrderAssignment.getState())
|
||||||
.setSubType(MessageSubType.TicketTimeout.getState())
|
.setSubType(MessageSubType.TicketTimeout.getState())
|
||||||
.setIsRead(false)
|
.setIsRead(false)
|
||||||
|
|
@ -349,16 +351,6 @@ public class TicketScheduledTasks {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendEamilForAdminUser(List<AdminUser> adminUsers, List<AdminUser> configAdminUsers, String subject,String content) throws MessagingException {
|
|
||||||
Set<AdminUser> adminUserSet = Sets.union(Sets.newHashSet(adminUsers), Sets.newHashSet(configAdminUsers));
|
|
||||||
if (CollectionUtil.isNotEmpty(adminUserSet)){
|
|
||||||
for (AdminUser adminUser:adminUserSet) {
|
|
||||||
log.info("【工单超时提醒】发送邮件到{}",adminUser.getEmail());
|
|
||||||
emailService.sendEmail(adminUser.getEmail(),subject,content);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void sendEamilForAppUser(List<AppUser> users, String subject, String content) throws MessagingException {
|
private void sendEamilForAppUser(List<AppUser> users, String subject, String content) throws MessagingException {
|
||||||
if (CollectionUtil.isNotEmpty(users)) {
|
if (CollectionUtil.isNotEmpty(users)) {
|
||||||
for (AppUser user : users) {
|
for (AppUser user : users) {
|
||||||
|
|
|
||||||
|
|
@ -29,4 +29,5 @@ public interface ISendMsgConfigService extends IService<SendMsgConfig> {
|
||||||
|
|
||||||
Map<SendMsgConfigUserReceiverTypeEnum, List<AppUser>> getAppUserMapByDataTypeAndRemindType(SendMsgConfigDataTypeEnum dataTypeEnum, SendMsgConfigRemindTypeEnum remindTypeEnum);
|
Map<SendMsgConfigUserReceiverTypeEnum, List<AppUser>> getAppUserMapByDataTypeAndRemindType(SendMsgConfigDataTypeEnum dataTypeEnum, SendMsgConfigRemindTypeEnum remindTypeEnum);
|
||||||
|
|
||||||
|
void removeSendMsgConfigByIds(List<Long> ids);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ import com.nflg.mobilebroken.repository.service.ISendMsgConfigService;
|
||||||
import com.nflg.mobilebroken.repository.service.ISendMsgConfigUserService;
|
import com.nflg.mobilebroken.repository.service.ISendMsgConfigUserService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
@ -199,5 +200,10 @@ public class SendMsgConfigServiceImpl extends ServiceImpl<SendMsgConfigMapper, S
|
||||||
return resultMap;
|
return resultMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void removeSendMsgConfigByIds(List<Long> ids) {
|
||||||
|
removeByIds(ids);
|
||||||
|
sendMsgConfigUserService.remove(Wrappers.lambdaQuery(SendMsgConfigUser.class).in(SendMsgConfigUser::getSendMsgConfigId, ids));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue