修改消息
This commit is contained in:
+9
@@ -12,4 +12,13 @@ public interface SendMessageService {
|
||||
* @Exception
|
||||
*/
|
||||
void SendMessageService(SendMessageDTO sendMessageDTO);
|
||||
/**
|
||||
* @Description 发送短信,消息,邮件(定时任务专用,不抛异常)
|
||||
* @Author lqt
|
||||
* @Date 2021/9/24
|
||||
* @Param sendMessageDTO
|
||||
* @Return
|
||||
* @Exception
|
||||
*/
|
||||
void SendMessageJobService(SendMessageDTO sendMessageDTO);
|
||||
}
|
||||
|
||||
+171
@@ -400,4 +400,175 @@ public class SendMessageServiceImpl implements SendMessageService {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void SendMessageJobService(SendMessageDTO sendMessageDTO) {
|
||||
if(StringUtils.isEmpty(sendMessageDTO.getTemplateCode())){
|
||||
throw new JeroBootException("模板编码不能为空!");
|
||||
}
|
||||
List<SysMessageTemplate> sysSmsTemplates = sysMessageTemplateService.selectByCode(sendMessageDTO.getTemplateCode());
|
||||
if(CollectionUtils.isEmpty(sysSmsTemplates)){
|
||||
throw new JeroBootException("消息模板不能为空!");
|
||||
}
|
||||
SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0);
|
||||
// 没有选项,不发送消息
|
||||
String templateType = sysSmsTemplate.getTemplateType();
|
||||
if(StringUtils.isBlank(templateType)){
|
||||
return;
|
||||
}
|
||||
//模板标题
|
||||
String title = sysBaseAPI.translateDict("notice_type",sysSmsTemplate.getTemplateName());
|
||||
//模板内容
|
||||
String content = sysSmsTemplate.getTemplateContent();
|
||||
HashMap<String,String> map = sendMessageDTO.getTemplateParam();
|
||||
if(!Objects.isNull(map)) {
|
||||
for (Map.Entry<String, String> entry : map.entrySet()) {
|
||||
String str = "${" + entry.getKey() + "}";
|
||||
content = content.replace(str, entry.getValue());
|
||||
}
|
||||
}
|
||||
// 1短信 2邮件 3系统
|
||||
// 发送邮件 true
|
||||
String fromUser = sendMessageDTO.getFromUser();
|
||||
LoginUser loginUser = sysBaseAPI.getUserByName(fromUser);
|
||||
if(templateType.contains(ProjectCommon.MESSAGE_TYPE2)){
|
||||
if(StringUtils.isEmpty(sendMessageDTO.getEmail())){
|
||||
throw new JeroBootException("发送邮件,邮箱地址不能为空!");
|
||||
}
|
||||
try {
|
||||
String email = loginUser.getEmail();
|
||||
String emailPassword = loginUser.getEmailPassword();
|
||||
//如果发件人没有邮箱或邮箱密码则使用admin账户的邮箱密码
|
||||
if (StringUtils.isBlank(email) || StringUtils.isBlank(emailPassword)) {
|
||||
loginUser = sysBaseAPI.getUserByName("admin");
|
||||
email = loginUser.getEmail();
|
||||
emailPassword = loginUser.getEmailPassword();
|
||||
}
|
||||
email = PasswordUtil.decrypt(email);
|
||||
emailPassword = PasswordUtil.decrypt(emailPassword);
|
||||
EmailSendMsgHandle emailHandle = new EmailSendMsgHandle(email,emailPassword);
|
||||
// 发送带附件邮箱
|
||||
if(!CollectionUtils.isEmpty(sendMessageDTO.getListFile())){
|
||||
emailHandle.SendMsgAndFile(sendMessageDTO.getEmail(), title, content,sendMessageDTO.getListFile());
|
||||
}else{
|
||||
//如果有通知内容就替换
|
||||
if (StringUtils.isNotBlank(sendMessageDTO.getMeetingNotice())){
|
||||
emailHandle.SendMsg(sendMessageDTO.getEmail(), title, sendMessageDTO.getMeetingNotice());
|
||||
}else {
|
||||
emailHandle.SendMsg(sendMessageDTO.getEmail(), title, content);
|
||||
}
|
||||
}
|
||||
}catch (Exception e){
|
||||
log.error("发送邮件异常",e);
|
||||
}
|
||||
}
|
||||
// 发送消息
|
||||
if(templateType.contains(ProjectCommon.MESSAGE_TYPE3)){
|
||||
if(StringUtils.isEmpty(sendMessageDTO.getToUser())){
|
||||
throw new JeroBootException("发送消息,账号不能为空!");
|
||||
}
|
||||
try {
|
||||
String toUser = sendMessageDTO.getToUser();
|
||||
String busId = sendMessageDTO.getBusId();
|
||||
String busType = sendMessageDTO.getBusType();
|
||||
|
||||
SysAnnouncement announcement = new SysAnnouncement();
|
||||
announcement.setTitile(sysSmsTemplate.getTemplateName());
|
||||
announcement.setMsgContent(content);
|
||||
announcement.setSender(fromUser);
|
||||
announcement.setPriority(CommonConstant.PRIORITY_M);
|
||||
announcement.setMsgType(CommonConstant.MSG_TYPE_UESR);
|
||||
announcement.setSendStatus(CommonConstant.HAS_SEND);
|
||||
announcement.setSendTime(new Date());
|
||||
announcement.setMsgCategory(CommonConstant.MSG_CATEGORY_2);
|
||||
announcement.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0));
|
||||
announcement.setBusId(busId);
|
||||
announcement.setBusType(busType);
|
||||
if(!StringUtils.isEmpty(busType)){
|
||||
announcement.setOpenType(MessageUrlEnums.getByType(busType).getOpenType());
|
||||
announcement.setOpenPage(MessageUrlEnums.getByType(busType).getOpenPage());
|
||||
}
|
||||
announcement.setTemplateCode(sendMessageDTO.getTemplateCode());
|
||||
sysAnnouncementService.save(announcement);
|
||||
// 2.插入用户通告阅读标记表记录
|
||||
String[] userIds = toUser.split(",");
|
||||
String anntId = announcement.getId();
|
||||
for (String id : userIds) {
|
||||
if (oConvertUtils.isNotEmpty(id)) {
|
||||
LoginUser user = new LoginUser();
|
||||
SysUser sysUser = sysUserService.getUserByName(id);
|
||||
if (Objects.isNull(sysUser)) {
|
||||
PayContactsManagement contactsManagement = sysUserService.getPayContactsManagementByPhone(PasswordUtil.encrypt(id));
|
||||
if (contactsManagement == null) {
|
||||
continue;
|
||||
} else {
|
||||
BeanUtils.copyProperties(contactsManagement, user);
|
||||
}
|
||||
} else {
|
||||
BeanUtils.copyProperties(sysUser, user);
|
||||
}
|
||||
SysAnnouncementSend announcementSend = new SysAnnouncementSend();
|
||||
announcementSend.setAnntId(anntId);
|
||||
announcementSend.setUserId(user.getId());
|
||||
announcementSend.setReadFlag(CommonConstant.NO_READ_FLAG);
|
||||
sysAnnouncementSendService.save(announcementSend);
|
||||
JSONObject obj = new JSONObject();
|
||||
obj.put(WebsocketConst.MSG_CMD, WebsocketConst.CMD_USER);
|
||||
obj.put(WebsocketConst.MSG_USER_ID, user.getId());
|
||||
obj.put(WebsocketConst.MSG_ID, announcement.getId());
|
||||
obj.put(WebsocketConst.MSG_TXT, title);
|
||||
webSocket.sendMessage(user.getId(), obj.toJSONString());
|
||||
}
|
||||
}
|
||||
}catch (Exception e){
|
||||
log.error("发送消息异常",e);
|
||||
}
|
||||
}
|
||||
// todo 发送短信 待完成
|
||||
if(templateType.contains(ProjectCommon.MESSAGE_TYPE1)){
|
||||
if(StringUtils.isEmpty(sendMessageDTO.getPhone())){
|
||||
throw new JeroBootException("发送短信,手机号不能为空!");
|
||||
}
|
||||
try {
|
||||
String sender = "";
|
||||
String signature = "";
|
||||
String templateId = "";
|
||||
String codeType = sendMessageDTO.getTemplateCode();
|
||||
switch (codeType) {
|
||||
case "QY_11_CKTZ_PAY":
|
||||
// 中汽中心标准所-企业端-催款通知-1
|
||||
sender = "8821092414406";
|
||||
signature = "中汽中心标准所";
|
||||
templateId = "518b44718fb6403094f7d3e7b1fb6555";
|
||||
break;
|
||||
default:
|
||||
throw new JeroBootException("codeType flase.");
|
||||
}
|
||||
String str = "";
|
||||
// 企业端
|
||||
if(Objects.equals(sendMessageDTO.getTemplateCode().substring(0,2),"QY")){
|
||||
str = CompanyMessageEnums.getByCode(sendMessageDTO.getTemplateCode()).getField();
|
||||
}
|
||||
String templateParas = "";
|
||||
if(!StringUtils.isEmpty(str)){
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("[");
|
||||
String[] s = str.split(",");
|
||||
for (int i = 0; i < s.length; i++) {
|
||||
if(map.containsKey(s[i])){
|
||||
sb.append("\"" + map.get(s[i]) + "\"");
|
||||
if(i < (s.length - 1)){
|
||||
sb.append(",");
|
||||
}
|
||||
}
|
||||
}
|
||||
sb.append("]");
|
||||
templateParas = sb.toString();
|
||||
}
|
||||
sysBaseAPI.sendMessage(sendMessageDTO.getPhone(),sender,templateId,signature,templateParas);
|
||||
}catch (Exception e){
|
||||
log.error("发送短信异常",e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+4
@@ -5,6 +5,7 @@ import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
@@ -283,6 +284,9 @@ public class PayMailBillController extends JeroController<PayMailBill, IPayMailB
|
||||
sendMessageDTO.setTemplateCode(CompanyMessageEnums.MSG9.getCode());
|
||||
sendMessageDTO.setTemplateParam(map);
|
||||
sendMessageDTO.setBusType("C_OPEN_TYPE9");
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("id",payMailBill.getPostNo());
|
||||
sendMessageDTO.setBusId(jsonObject.toJSONString());
|
||||
sendMessageService.SendMessageService(sendMessageDTO);
|
||||
}
|
||||
return Result.OK("编辑成功!");
|
||||
|
||||
+4
@@ -4,6 +4,7 @@ import java.util.*;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||
import com.jero.common.api.vo.Result;
|
||||
@@ -138,6 +139,9 @@ public class PayMailContractController extends JeroController<PayMailContract, I
|
||||
sendMessageDTO.setFromUser(sysUser.getUsername());
|
||||
sendMessageDTO.setTemplateCode(CompanyMessageEnums.MSG10.getCode());
|
||||
sendMessageDTO.setTemplateParam(map);
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("id",payMailContract.getPostNo());
|
||||
sendMessageDTO.setBusId(jsonObject.toJSONString());
|
||||
sendMessageDTO.setBusType("C_OPEN_TYPE10");
|
||||
sendMessageService.SendMessageService(sendMessageDTO);
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ public class RemindersAllJob implements Job {
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("id",p.getId());
|
||||
sendMessageDTO.setBusId(json.toJSONString());
|
||||
sendMessageService.SendMessageService(sendMessageDTO);
|
||||
sendMessageService.SendMessageJobService(sendMessageDTO);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user