add Hiwork消息归入消息模板
This commit is contained in:
@@ -51,7 +51,7 @@ public class SysMessage extends JeroEntity {
|
|||||||
@Excel(name = "消息标题", width = 15)
|
@Excel(name = "消息标题", width = 15)
|
||||||
private java.lang.String esTitle;
|
private java.lang.String esTitle;
|
||||||
/**推送方式:1短信 2邮件 3微信*/
|
/**推送方式:1短信 2邮件 3微信*/
|
||||||
@Excel(name = "推送方式:1短信 2邮件 3微信", width = 15)
|
@Excel(name = "推送方式:1短信 2邮件 3微信 4系统", width = 15)
|
||||||
@Dict(dicCode = "msgType")
|
@Dict(dicCode = "msgType")
|
||||||
private java.lang.String esType;
|
private java.lang.String esType;
|
||||||
/**备注*/
|
/**备注*/
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public class PushMsgUtil {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private Configuration freemarkerConfig;
|
private Configuration freemarkerConfig;
|
||||||
/**
|
/**
|
||||||
* @param msgType 消息类型 1短信 2邮件 3微信
|
* @param msgType 消息类型 1短信 2邮件 3微信 4系统
|
||||||
* @param templateCode 消息模板码
|
* @param templateCode 消息模板码
|
||||||
* @param map 消息参数
|
* @param map 消息参数
|
||||||
* @param sentTo 接收消息方
|
* @param sentTo 接收消息方
|
||||||
|
|||||||
+26
@@ -0,0 +1,26 @@
|
|||||||
|
package com.jero.modules.docking.hiwork.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/17 11:19
|
||||||
|
* @Description: 发送消息
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class SendMessageDTO {
|
||||||
|
/**
|
||||||
|
* 模板code
|
||||||
|
*/
|
||||||
|
private String templateCode;
|
||||||
|
/**
|
||||||
|
* 接收人id,多个以逗号分隔
|
||||||
|
*/
|
||||||
|
private String toUserId;
|
||||||
|
/**
|
||||||
|
* 对象例如 用户名:${username} map:{"username":"张三"} 转换成 用户名:张三
|
||||||
|
*/
|
||||||
|
private Map<String, String> map;
|
||||||
|
}
|
||||||
+2
@@ -25,6 +25,8 @@ public class HiworkDingDingMsg {
|
|||||||
private String deptIdList;
|
private String deptIdList;
|
||||||
@ApiModelProperty(value = "agentId")
|
@ApiModelProperty(value = "agentId")
|
||||||
private String agentId;
|
private String agentId;
|
||||||
|
@ApiModelProperty(value = "标题")
|
||||||
|
private String title;
|
||||||
@ApiModelProperty(value = "消息体")
|
@ApiModelProperty(value = "消息体")
|
||||||
private JSONObject msg;
|
private JSONObject msg;
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -14,9 +14,10 @@ public interface IHiworkMsgService {
|
|||||||
* @Date: 2023/10/16 15:32
|
* @Date: 2023/10/16 15:32
|
||||||
* @Description: 发送钉钉消息
|
* @Description: 发送钉钉消息
|
||||||
* senderIdList:发送人员id集合
|
* senderIdList:发送人员id集合
|
||||||
|
* title:消息标题
|
||||||
* content:文本内容
|
* content:文本内容
|
||||||
**/
|
**/
|
||||||
void sendDingDingMsg(List<String> senderIdList, String content);
|
void sendDingDingMsg(List<String> senderIdList, String title, String content);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: liao
|
* @Author: liao
|
||||||
|
|||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
package com.jero.modules.docking.hiwork.service;
|
||||||
|
|
||||||
|
import com.jero.modules.docking.hiwork.dto.SendMessageDTO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/17 11:22
|
||||||
|
* @Description: 发送消息
|
||||||
|
*/
|
||||||
|
public interface ISendMessageService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/17 11:24
|
||||||
|
* @Description: 根据模板发送消息
|
||||||
|
**/
|
||||||
|
void sendMessage(SendMessageDTO sendMessageDTO);
|
||||||
|
|
||||||
|
}
|
||||||
+3
-1
@@ -45,7 +45,7 @@ public class HiworkMsgServiceImpl implements IHiworkMsgService {
|
|||||||
* content:文本内容
|
* content:文本内容
|
||||||
**/
|
**/
|
||||||
@Override
|
@Override
|
||||||
public void sendDingDingMsg(List<String> senderIdList, String content) {
|
public void sendDingDingMsg(List<String> senderIdList, String title, String content) {
|
||||||
HiworkDingDingMsg hiworkDingDingMsg = new HiworkDingDingMsg();
|
HiworkDingDingMsg hiworkDingDingMsg = new HiworkDingDingMsg();
|
||||||
// 异步系统标识
|
// 异步系统标识
|
||||||
hiworkDingDingMsg.setSysCode(HiworkPostUtil.getSysCode());
|
hiworkDingDingMsg.setSysCode(HiworkPostUtil.getSysCode());
|
||||||
@@ -57,6 +57,8 @@ public class HiworkMsgServiceImpl implements IHiworkMsgService {
|
|||||||
List<String> usernameList = senderUserList.stream().map(SysUser::getUsername).collect(Collectors.toList());
|
List<String> usernameList = senderUserList.stream().map(SysUser::getUsername).collect(Collectors.toList());
|
||||||
// 发送人员id(工号以英文逗号分隔)
|
// 发送人员id(工号以英文逗号分隔)
|
||||||
hiworkDingDingMsg.setUseridList(StringUtils.join(usernameList, ","));
|
hiworkDingDingMsg.setUseridList(StringUtils.join(usernameList, ","));
|
||||||
|
// 标题
|
||||||
|
hiworkDingDingMsg.setTitle(title);
|
||||||
|
|
||||||
// 消息体
|
// 消息体
|
||||||
JSONObject msgJsonObject = new JSONObject();
|
JSONObject msgJsonObject = new JSONObject();
|
||||||
|
|||||||
+89
@@ -0,0 +1,89 @@
|
|||||||
|
package com.jero.modules.docking.hiwork.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.jero.common.exception.JeroBootException;
|
||||||
|
import com.jero.common.system.vo.LoginUser;
|
||||||
|
import com.jero.modules.docking.hiwork.dto.SendMessageDTO;
|
||||||
|
import com.jero.modules.docking.hiwork.service.IHiworkMsgService;
|
||||||
|
import com.jero.modules.docking.hiwork.service.ISendMessageService;
|
||||||
|
import com.jero.modules.message.entity.SysMessageTemplate;
|
||||||
|
import com.jero.modules.message.service.ISysMessageTemplateService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.apache.shiro.SecurityUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/17 11:23
|
||||||
|
* @Description: 发送消息
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Service
|
||||||
|
public class SendMessageServiceImpl implements ISendMessageService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ISysMessageTemplateService sysMessageTemplateService;
|
||||||
|
@Autowired
|
||||||
|
private IHiworkMsgService hiworkMsgService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/17 11:25
|
||||||
|
* @Description: 根据模板发送消息
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public void sendMessage(SendMessageDTO sendMessageDTO) {
|
||||||
|
if(StringUtils.isEmpty(sendMessageDTO.getToUserId())){
|
||||||
|
throw new JeroBootException("消息接收人id不能为空");
|
||||||
|
}
|
||||||
|
if(StringUtils.isEmpty(sendMessageDTO.getTemplateCode())){
|
||||||
|
throw new JeroBootException("消息模板编码不能为空!");
|
||||||
|
}
|
||||||
|
|
||||||
|
LambdaQueryWrapper<SysMessageTemplate> query = new LambdaQueryWrapper<>();
|
||||||
|
query.eq(SysMessageTemplate::getTemplateCode,sendMessageDTO.getTemplateCode());
|
||||||
|
List<SysMessageTemplate> sysSmsTemplates = sysMessageTemplateService.list(query);
|
||||||
|
if(CollectionUtils.isEmpty(sysSmsTemplates)){
|
||||||
|
throw new JeroBootException("消息模板不存在");
|
||||||
|
}
|
||||||
|
SysMessageTemplate sysMessageTemplate = sysSmsTemplates.get(0);
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 替换模板内容
|
||||||
|
if(!Objects.isNull(sendMessageDTO.getMap())){
|
||||||
|
Map<String,String> map = sendMessageDTO.getMap();
|
||||||
|
map.forEach((k,v)-> sysMessageTemplate.setTemplateContent(
|
||||||
|
sysMessageTemplate.getTemplateContent().replace("${" + k + "}", v)));
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> toUserIdList = Arrays.asList(sendMessageDTO.getToUserId().split(","));
|
||||||
|
if ("5".equals(sysMessageTemplate.getTemplateType())) {
|
||||||
|
// Hiwork钉钉消息
|
||||||
|
hiworkMsgService.sendDingDingMsg(toUserIdList, sysMessageTemplate.getTemplateName(),
|
||||||
|
sysMessageTemplate.getTemplateContent());
|
||||||
|
} else if ("6".equals(sysMessageTemplate.getTemplateType())) {
|
||||||
|
// Hiwork系统消息
|
||||||
|
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
|
// 消息类型(暂未确定)
|
||||||
|
String messageType = "";
|
||||||
|
hiworkMsgService.sendSystemMsg(loginUser.getId(), toUserIdList,messageType,
|
||||||
|
sysMessageTemplate.getTemplateName(), sysMessageTemplate.getTemplateContent());
|
||||||
|
}
|
||||||
|
|
||||||
|
log.info(sysMessageTemplate.getTemplateContent());
|
||||||
|
} catch (Exception e){
|
||||||
|
log.error("发送消息异常",e);
|
||||||
|
throw new JeroBootException("发送消息异常");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user