通用发送消息集成飞书

This commit is contained in:
梁琦涛
2024-07-25 17:58:56 +08:00
parent 4129816778
commit ea1a69be65
3 changed files with 71 additions and 4 deletions
@@ -0,0 +1,37 @@
package com.jero.modules.docking.hiwork.handle;
import com.alibaba.fastjson.JSON;
import com.jero.common.util.SpringContextUtils;
import com.jero.modules.docking.feishu.dto.BotMessageDto;
import com.jero.modules.docking.feishu.service.IFeiShuDockingService;
import com.jero.modules.docking.hiwork.entity.LawsUnifiedTodoLog;
import com.jero.modules.docking.hiwork.service.LawsUnifiedTodoLogService;
import com.jero.modules.message.handle.ISendMsgHandle;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* @Author: liao
* @Date: 2023/10/17 11:23
* @Description: 发送消息
*/
@Slf4j
@Service
public class SendFeiShuHandle implements ISendMsgHandle {
@Override
public void SendMsg(String esReceiver, String esTitle, String esContent, String openType, String openPage) {
IFeiShuDockingService bean = SpringContextUtils.getBean(IFeiShuDockingService.class);
Environment env = SpringContextUtils.getBean(Environment.class);
BotMessageDto botMessageDto = new BotMessageDto();
botMessageDto.setHrefText(esContent);
botMessageDto.setHrefUrl(env.getProperty("feishu.redirect_prefix") + openPage);
botMessageDto.setTitle(esTitle);
botMessageDto.setReceiveIds(esReceiver);
log.info("飞书====================" + JSON.toJSONString(botMessageDto));
bean.sendHrefMessageByBot(botMessageDto);
}
}
@@ -96,11 +96,9 @@ public class SendMessageServiceImpl implements SendMessageAPI {
String finalOpenPage = openPage;
typeList.forEach(type -> {
log.info("消息标题:{},消息内容:{},消息类型:{}", sysMessageTemplate.getTemplateName(), sysMessageTemplate.getTemplateContent(), type);
ISendMsgHandle sendMsgHandle;
// 普通系统消息
sendMsgHandle = new SmsSendMsgHandle();
if (isSend) {
sendMsgHandle.SendMsg(sendMessageDTO.getToUserId(), sysMessageTemplate.getTemplateName(), sysMessageTemplate.getTemplateContent(), finalOpenType, finalOpenPage);
SendMsgProcessor sp = new SendMsgProcessor();
sp.SendMsg(type, sendMessageDTO.getToUserId(), sysMessageTemplate.getTemplateName(), sysMessageTemplate.getTemplateContent(), finalOpenType, finalOpenPage);
}
});
} catch (Exception e) {
@@ -0,0 +1,32 @@
package com.jero.modules.docking.hiwork.service.impl;
import com.jero.modules.docking.hiwork.handle.SendFeiShuHandle;
import com.jero.modules.message.handle.ISendMsgHandle;
import com.jero.modules.message.handle.impl.SmsSendMsgHandle;
import java.util.HashMap;
import java.util.Map;
/**
* @author lqt
* @version 1.0
* @date 2024/7/25 14:40
*/
public class SendMsgProcessor {
private Map<String, ISendMsgHandle> handlers = new HashMap<>();
public SendMsgProcessor() {
// 系统消息
handlers.put("4", new SmsSendMsgHandle());
// 飞书消息
handlers.put("5", new SendFeiShuHandle());
}
public void SendMsg(String type, String esReceiver, String esTitle, String esContent, String openType, String openPage){
ISendMsgHandle handler = handlers.get(type);
if (handler == null) {
throw new IllegalArgumentException("消息处理异常");
}
handler.SendMsg(esReceiver, esTitle, esContent, openType, openPage);
}
}