feat: 系统消息支持跳转

This commit is contained in:
2024-03-21 14:40:22 +08:00
parent 23edc0d888
commit 022dbac006
11 changed files with 33 additions and 10 deletions
+4
View File
@@ -38,6 +38,10 @@ INSERT INTO sys_dict_item (id, dict_id, item_text, item_value, description, sort
INSERT INTO sys_dict_item (id, dict_id, item_text, item_value, description, sort_order, `status`, create_by, create_time, is_tag_dict, is_read_only, del_flag) VALUES ('1769605071110258690', '1769604615294271489', 'D', '4', '', 4, 1, 'admin', '2024-03-18 14:01:41', 0, 0, 0);
INSERT INTO sys_dict_item (id, dict_id, item_text, item_value, description, sort_order, `status`, create_by, create_time, is_tag_dict, is_read_only, del_flag) VALUES ('1769605104899571714', '1769604615294271489', 'E', '5', '', 5, 1, 'admin', '2024-03-18 14:01:49', 0, 0, 0);
#
ALTER TABLE `sys_sms_template`
ADD COLUMN `open_type` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '打开方式(组件:component 路由:url)' AFTER `update_by`,
ADD COLUMN `open_page` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '组件/路由 地址' AFTER `open_type`;
-- 2024 0318 菜单:专项项目库 -> 法规评估库
@@ -37,4 +37,10 @@ public class SysMessageTemplate extends JeroEntity {
@Excel(name = "模板类型", width = 15)
@Dict(dicCode = "msgType")
private java.lang.String templateType;
/**打开方式(组件:component 路由:url)*/
private java.lang.String openType;
/**组件/路由 地址*/
private java.lang.String openPage;
}
@@ -2,5 +2,5 @@ package com.jero.modules.message.handle;
public interface ISendMsgHandle {
void SendMsg(String esReceiver, String esTitle, String esContent);
void SendMsg(String esReceiver, String esTitle, String esContent, String openType, String openPage);
}
@@ -18,7 +18,7 @@ public class EmailSendMsgHandle implements ISendMsgHandle {
}
@Override
public void SendMsg(String esReceiver, String esTitle, String esContent) {
public void SendMsg(String esReceiver, String esTitle, String esContent, String openType, String openPage) {
JavaMailSender mailSender = (JavaMailSender) SpringContextUtils.getBean("mailSender");
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = null;
@@ -16,7 +16,7 @@ import java.util.Date;
public class SmsSendMsgHandle implements ISendMsgHandle {
@Override
public void SendMsg(String esReceiver, String esTitle, String esContent) {
public void SendMsg(String esReceiver, String esTitle, String esContent, String openType, String openPage) {
ISysAnnouncementService bean = SpringContextUtils.getBean(ISysAnnouncementService.class);
String id = UUIDUtils.randomUUID20();
SysAnnouncement sysAnnouncement = new SysAnnouncement();
@@ -37,6 +37,8 @@ public class SmsSendMsgHandle implements ISendMsgHandle {
sysAnnouncement.setSendTime(new Date());
sysAnnouncement.setDelFlag("0");
sysAnnouncement.setUserIds(esReceiver);
sysAnnouncement.setOpenType(openType);
sysAnnouncement.setOpenPage(openPage);
log.info("发送Local系统消息: {}", JSONObject.toJSONString(sysAnnouncement));
@@ -6,7 +6,7 @@ import com.jero.modules.message.handle.ISendMsgHandle;
public class WxSendMsgHandle implements ISendMsgHandle {
@Override
public void SendMsg(String esReceiver, String esTitle, String esContent) {
public void SendMsg(String esReceiver, String esTitle, String esContent, String openType, String openPage) {
// TODO Auto-generated method stub
log.info("发微信消息模板");
}
@@ -58,7 +58,7 @@ public class SendMsgJob implements Job {
throw new NullPointerException();
}
sendMsgHandle.SendMsg(sysMessage.getEsReceiver(), sysMessage.getEsTitle(),
sysMessage.getEsContent());
sysMessage.getEsContent(), null, null);
// 发送消息成功
sysMessage.setEsSendStatus(SendMsgStatusEnum.SUCCESS.getCode());
} catch (Exception e) {
@@ -1050,7 +1050,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
@Override
public void sendEmailMsg(String email, String title, String content) {
EmailSendMsgHandle emailHandle=new EmailSendMsgHandle();
emailHandle.SendMsg(email, title, content);
emailHandle.SendMsg(email, title, content, null, null);
}
/**
@@ -22,7 +22,7 @@ public class DingDingSendMsgHandle implements ISendMsgHandle {
* @Description: Hiwork钉钉消息
**/
@Override
public void SendMsg(String esReceiver, String esTitle, String esContent) {
public void SendMsg(String esReceiver, String esTitle, String esContent, String openType, String openPage) {
IHiworkMsgService hiworkMsgService = SpringContextUtils.getBean(IHiworkMsgService.class);
hiworkMsgService.sendDingDingMsg(Arrays.asList(esReceiver.split(",")), esTitle, esContent);
}
@@ -11,7 +11,7 @@ import java.util.Arrays;
public class SystemSendMsgHandle implements ISendMsgHandle {
@Override
public void SendMsg(String esReceiver, String esTitle, String esContent) {
public void SendMsg(String esReceiver, String esTitle, String esContent, String openType, String openPage) {
IHiworkMsgService hiworkMsgService = SpringContextUtils.getBean(IHiworkMsgService.class);
// TODO 先写死 01 消息类型(暂未确定)
String messageType = "01";
@@ -58,15 +58,26 @@ public class SendMessageServiceImpl implements SendMessageAPI {
}
SysMessageTemplate sysMessageTemplate = sysSmsTemplates.get(0);
String openType = sysMessageTemplate.getOpenType();
String openPage = sysMessageTemplate.getOpenPage();
try {
// 替换模板内容
if(!Objects.isNull(sendMessageDTO.getMap())){
Map<String,String> map = sendMessageDTO.getMap();
map.forEach((k,v)-> sysMessageTemplate.setTemplateContent(
sysMessageTemplate.getTemplateContent().replace("${" + k + "}", v)));
if (null != map.get("openType")) {
openType = map.get("openType");
}
if (null != map.get("openPage")) {
openPage = map.get("openPage");
}
}
List<String> typeList = Arrays.asList(sysMessageTemplate.getTemplateType().split(","));
String finalOpenType = openType;
String finalOpenPage = openPage;
typeList.forEach(type -> {
log.info("消息标题:{},消息内容:{},消息类型:{}", sysMessageTemplate.getTemplateName(),sysMessageTemplate.getTemplateContent(), type);
ISendMsgHandle sendMsgHandle;
@@ -80,13 +91,13 @@ public class SendMessageServiceImpl implements SendMessageAPI {
// 普通系统消息
sendMsgHandle = new SmsSendMsgHandle();
if (!isSend) {
sendMsgHandle.SendMsg(sendMessageDTO.getToUserId(), sysMessageTemplate.getTemplateName(), sysMessageTemplate.getTemplateContent());
sendMsgHandle.SendMsg(sendMessageDTO.getToUserId(), sysMessageTemplate.getTemplateName(), sysMessageTemplate.getTemplateContent(), finalOpenType, finalOpenPage);
}
} else {
return;
}
if (isSend) {
sendMsgHandle.SendMsg(sendMessageDTO.getToUserId(), sysMessageTemplate.getTemplateName(), sysMessageTemplate.getTemplateContent());
sendMsgHandle.SendMsg(sendMessageDTO.getToUserId(), sysMessageTemplate.getTemplateName(), sysMessageTemplate.getTemplateContent(), finalOpenType, finalOpenPage);
}
});
} catch (Exception e){