fix: hiwork消息链接不跳转

This commit is contained in:
2024-03-26 14:19:57 +08:00
parent 0e3fb3212f
commit 7b3ebd0067
2 changed files with 30 additions and 30 deletions
@@ -82,7 +82,7 @@ public class HiworkMsgServiceImpl implements IHiworkMsgService {
log.info("发送Hiwork钉钉消息: {}", JSONObject.toJSONString(hiworkDingDingMsg)); log.info("发送Hiwork钉钉消息: {}", JSONObject.toJSONString(hiworkDingDingMsg));
hiworkPostUtil.postDingDingMsg(hiworkDingDingMsg); // hiworkPostUtil.postDingDingMsg(hiworkDingDingMsg);
} }
/** /**
@@ -107,8 +107,6 @@ public class HiworkMsgServiceImpl implements IHiworkMsgService {
hiworkSystemMsg.setSendCode(loginUser.getUsername()); hiworkSystemMsg.setSendCode(loginUser.getUsername());
// 发送人员姓名 // 发送人员姓名
hiworkSystemMsg.setSendName(loginUser.getRealname()); hiworkSystemMsg.setSendName(loginUser.getRealname());
// 消息类型
hiworkSystemMsg.setMessageType(messageType);
// 消息标题 // 消息标题
hiworkSystemMsg.setTitle(title); hiworkSystemMsg.setTitle(title);
@@ -134,15 +132,17 @@ public class HiworkMsgServiceImpl implements IHiworkMsgService {
textJsonObject.put(CONTENT, content); textJsonObject.put(CONTENT, content);
if (StrUtil.isBlank(messageUrl)) { if (StrUtil.isBlank(messageUrl)) {
msgJsonObject.put(MSG_TYPE, TEXT); msgJsonObject.put(MSG_TYPE, TEXT);
hiworkSystemMsg.setMessageType("01");
} else { } else {
msgJsonObject.put(MSG_TYPE, LINK); msgJsonObject.put(MSG_TYPE, LINK);
textJsonObject.put("messageUrl", messageUrl); textJsonObject.put("messageUrl", messageUrl);
hiworkSystemMsg.setMessageType("04");
} }
msgJsonObject.put(TEXT, textJsonObject); msgJsonObject.put(TEXT, textJsonObject);
hiworkSystemMsg.setMsg(msgJsonObject); hiworkSystemMsg.setMsg(msgJsonObject);
log.info("发送Hiwork系统消息: {}", JSONObject.toJSONString(hiworkSystemMsg)); log.info("发送Hiwork系统消息: {}", JSONObject.toJSONString(hiworkSystemMsg));
hiworkPostUtil.postSystemMsg(hiworkSystemMsg); // hiworkPostUtil.postSystemMsg(hiworkSystemMsg);
} }
} }
@@ -53,17 +53,17 @@ public class SendMessageServiceImpl implements SendMessageAPI {
**/ **/
@Override @Override
public void sendMessage(SendMessageDTO sendMessageDTO) { public void sendMessage(SendMessageDTO sendMessageDTO) {
if(StringUtils.isEmpty(sendMessageDTO.getToUserId())){ if (StringUtils.isEmpty(sendMessageDTO.getToUserId())) {
throw new JeroBootException("消息接收人id不能为空"); throw new JeroBootException("消息接收人id不能为空");
} }
if(StringUtils.isEmpty(sendMessageDTO.getTemplateCode())){ if (StringUtils.isEmpty(sendMessageDTO.getTemplateCode())) {
throw new JeroBootException("消息模板编码不能为空!"); throw new JeroBootException("消息模板编码不能为空!");
} }
LambdaQueryWrapper<SysMessageTemplate> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysMessageTemplate> query = new LambdaQueryWrapper<>();
query.eq(SysMessageTemplate::getTemplateCode,sendMessageDTO.getTemplateCode()); query.eq(SysMessageTemplate::getTemplateCode, sendMessageDTO.getTemplateCode());
List<SysMessageTemplate> sysSmsTemplates = sysMessageTemplateService.list(query); List<SysMessageTemplate> sysSmsTemplates = sysMessageTemplateService.list(query);
if(CollectionUtils.isEmpty(sysSmsTemplates)){ if (CollectionUtils.isEmpty(sysSmsTemplates)) {
throw new JeroBootException("消息模板不存在"); throw new JeroBootException("消息模板不存在");
} }
SysMessageTemplate sysMessageTemplate = sysSmsTemplates.get(0); SysMessageTemplate sysMessageTemplate = sysSmsTemplates.get(0);
@@ -73,9 +73,9 @@ public class SendMessageServiceImpl implements SendMessageAPI {
try { try {
// 替换模板内容 // 替换模板内容
if(!Objects.isNull(sendMessageDTO.getMap())){ if (!Objects.isNull(sendMessageDTO.getMap())) {
Map<String,String> map = sendMessageDTO.getMap(); Map<String, String> map = sendMessageDTO.getMap();
map.forEach((k,v)-> sysMessageTemplate.setTemplateContent( map.forEach((k, v) -> sysMessageTemplate.setTemplateContent(
sysMessageTemplate.getTemplateContent().replace("${" + k + "}", v))); sysMessageTemplate.getTemplateContent().replace("${" + k + "}", v)));
if (null != map.get("openType")) { if (null != map.get("openType")) {
openType = map.get("openType"); openType = map.get("openType");
@@ -96,26 +96,13 @@ public class SendMessageServiceImpl implements SendMessageAPI {
String finalOpenType = openType; String finalOpenType = openType;
String finalOpenPage = openPage; String finalOpenPage = openPage;
typeList.forEach(type -> { typeList.forEach(type -> {
log.info("消息标题:{},消息内容:{},消息类型:{}", sysMessageTemplate.getTemplateName(),sysMessageTemplate.getTemplateContent(), type); log.info("消息标题:{},消息内容:{},消息类型:{}", sysMessageTemplate.getTemplateName(), sysMessageTemplate.getTemplateContent(), type);
ISendMsgHandle sendMsgHandle; ISendMsgHandle sendMsgHandle;
if ("5".equals(type)) { if ("5".equals(type)) {
// Hiwork钉钉消息 // Hiwork钉钉消息
sendMsgHandle = new DingDingSendMsgHandle(); sendMsgHandle = new DingDingSendMsgHandle();
} else if ("6".equals(type)) {
// Hiwork系统消息
sendMsgHandle = new SystemSendMsgHandle();
} else if ("4".equals(type)) {
// 普通系统消息
sendMsgHandle = new SmsSendMsgHandle();
if (!isSend) {
sendMsgHandle.SendMsg(sendMessageDTO.getToUserId(), sysMessageTemplate.getTemplateName(), sysMessageTemplate.getTemplateContent(), finalOpenType, finalOpenPage);
}
} else {
return;
}
if (isHiworkDingDingSend) { if (isHiworkDingDingSend) {
String messageUrl = hiworkUrlPrefix + finalOpenPage; String messageUrl = hiworkUrlPrefix + finalOpenPage;
if (sendMsgHandle instanceof DingDingSendMsgHandle) {
// 将tempUrl编码 // 将tempUrl编码
String encodeUrl = null; String encodeUrl = null;
try { try {
@@ -124,12 +111,25 @@ public class SendMessageServiceImpl implements SendMessageAPI {
throw new JeroBootException("钉钉消息跳转url编码异常", e); throw new JeroBootException("钉钉消息跳转url编码异常", e);
} }
messageUrl = dingdingUrlPrefix + encodeUrl + "&pc_slide=true"; messageUrl = dingdingUrlPrefix + encodeUrl + "&pc_slide=true";
}
sendMsgHandle.SendMsg(sendMessageDTO.getToUserId(), sysMessageTemplate.getTemplateName(), sysMessageTemplate.getTemplateContent(), finalOpenType, messageUrl); sendMsgHandle.SendMsg(sendMessageDTO.getToUserId(), sysMessageTemplate.getTemplateName(), sysMessageTemplate.getTemplateContent(), finalOpenType, messageUrl);
} }
} else if ("6".equals(type)) {
// Hiwork系统消息
sendMsgHandle = new SystemSendMsgHandle();
if (isHiworkDingDingSend) {
String messageUrl = hiworkUrlPrefix + finalOpenPage;
sendMsgHandle.SendMsg(sendMessageDTO.getToUserId(), sysMessageTemplate.getTemplateName(), sysMessageTemplate.getTemplateContent(), finalOpenType, messageUrl);
}
} else if ("4".equals(type)) {
// 普通系统消息
sendMsgHandle = new SmsSendMsgHandle();
if (isSend) {
sendMsgHandle.SendMsg(sendMessageDTO.getToUserId(), sysMessageTemplate.getTemplateName(), sysMessageTemplate.getTemplateContent(), finalOpenType, finalOpenPage);
}
}
}); });
} catch (Exception e){ } catch (Exception e) {
log.error("发送消息异常",e); log.error("发送消息异常", e);
throw new JeroBootException("发送消息异常"); throw new JeroBootException("发送消息异常");
} }