消息修改

This commit is contained in:
梁琦涛
2021-09-24 17:39:48 +08:00
parent 70e8935ffe
commit 5a263e0db9
6 changed files with 136 additions and 49 deletions
@@ -11,7 +11,35 @@ public enum SysAnnmentTypeEnum {
/**
* 工作流跳转链接我的办公
*/
BPM("bpm", "url", "/bpm/task/MyTaskList");
BPM("bpm", "url", "/bpm/task/MyTaskList"),
// 管理端
M_OPEN_TYPE1("M_OPEN_TYPE1","component","@comp/ProjectDetailModal"),
M_OPEN_TYPE2("M_OPEN_TYPE2","url","/contractManagement/RevenueContractDetail"),
M_OPEN_TYPE3("M_OPEN_TYPE3","url","/contractManagement/RevenueContractDetail"),
M_OPEN_TYPE4("M_OPEN_TYPE4","url","/contractManagement/RevenueContractDetail"),
M_OPEN_TYPE5("M_OPEN_TYPE5","component","@views/incomePayments/meetManage/modules/AuditModal"),
M_OPEN_TYPE6("M_OPEN_TYPE6","component","@comp/ProjectDetailModal"),
M_OPEN_TYPE7("M_OPEN_TYPE7","component","@comp/ProjectDetailModal"),
M_OPEN_TYPE8("M_OPEN_TYPE8","url","/incomePayments/meetManage/SignUpInfoDetail"),
M_OPEN_TYPE9("M_OPEN_TYPE9","url","/businessManagement/BusinessManagement"),
// todo 待定企业端
C_OPEN_TYPE1("C_OPEN_TYPE1","url",""),
C_OPEN_TYPE2("C_OPEN_TYPE2","component",""),
C_OPEN_TYPE3("C_OPEN_TYPE3","component",""),
C_OPEN_TYPE4("C_OPEN_TYPE4","component",""),
C_OPEN_TYPE5("C_OPEN_TYPE5","component",""),
C_OPEN_TYPE6("C_OPEN_TYPE6","component",""),
C_OPEN_TYPE7("C_OPEN_TYPE7","component",""),
C_OPEN_TYPE8("C_OPEN_TYPE8","none",""),
C_OPEN_TYPE9("C_OPEN_TYPE9","",""),
C_OPEN_TYPE10("C_OPEN_TYPE10","",""),
C_OPEN_TYPE11("C_OPEN_TYPE11","component",""),
C_OPEN_TYPE12("C_OPEN_TYPE12","component","");
/**
* 业务类型(email:邮件 bpm:流程)
@@ -6,4 +6,8 @@ public class RoleCommon {
* 项目负责人
*/
public final static String XMFZR = "xmfzr";
/**
* 财务人员
*/
public final static String CWRY = "cwry";
}
@@ -1,5 +1,6 @@
package com.jero.common.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.jero.common.common.RoleCommon;
import com.jero.common.dto.SendMessageDTO;
import com.jero.common.enums.CompanyMessageEnums;
@@ -46,8 +47,10 @@ public class ContractCreateProjectSendMessageServiceImpl implements ContractCrea
sendMessageDTO.setToUser(p.getUsername());
sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG1.getCode());
sendMessageDTO.setTemplateParam(map);
sendMessageDTO.setBusType("email");
sendMessageDTO.setBusId(p.getId());
sendMessageDTO.setBusType("M_OPEN_TYPE1");
JSONObject json = new JSONObject();
json.put("id",p.getId());
sendMessageDTO.setBusId(json.toJSONString());
sendMessageService.SendMessageService(sendMessageDTO);
});
}
@@ -20,6 +20,7 @@ import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysAnnouncementSendService;
import com.jero.modules.system.service.ISysAnnouncementService;
import com.jero.modules.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -28,6 +29,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.*;
@Slf4j
@Service
public class SendMessageServiceImpl implements SendMessageService {
@Autowired
@@ -82,59 +84,73 @@ public class SendMessageServiceImpl implements SendMessageService {
// 1短信 2邮件 3系统
// 发送邮件 true
if(templateType.contains(ProjectCommon.MESSAGE_TYPE2) && !StringUtils.isEmpty(sendMessageDTO.getEmail())){
EmailSendMsgHandle emailHandle = new EmailSendMsgHandle();
emailHandle.SendMsg(sendMessageDTO.getEmail(), title, content);
try {
EmailSendMsgHandle emailHandle = new EmailSendMsgHandle();
emailHandle.SendMsg(sendMessageDTO.getEmail(), title, content);
}catch (Exception e){
log.error("发送邮件异常",e);
}
}
// 发送消息
if(templateType.contains(ProjectCommon.MESSAGE_TYPE3) && !StringUtils.isEmpty(sendMessageDTO.getToUser())){
String fromUser = sendMessageDTO.getFromUser();
String toUser = sendMessageDTO.getToUser();
String busId = sendMessageDTO.getBusId();
String busType = sendMessageDTO.getBusType();
try {
String fromUser = sendMessageDTO.getFromUser();
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);
announcement.setOpenType(SysAnnmentTypeEnum.getByType(busType).getOpenType());
announcement.setOpenPage(SysAnnmentTypeEnum.getByType(busType).getOpenPage());
announcement.setTemplateCode(sendMessageDTO.getTemplateCode());
sysAnnouncementService.save(announcement);
// 2.插入用户通告阅读标记表记录
String userId = toUser;
String[] userIds = userId.split(",");
String anntId = announcement.getId();
for(int i=0;i<userIds.length;i++) {
if(oConvertUtils.isNotEmpty(userIds[i])) {
SysUser sysUser = sysUserService.getUserByName(userIds[i]);
if(Objects.isNull(sysUser)) {
continue;
}
SysAnnouncementSend announcementSend = new SysAnnouncementSend();
announcementSend.setAnntId(anntId);
announcementSend.setUserId(sysUser.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, sysUser.getId());
obj.put(WebsocketConst.MSG_ID, announcement.getId());
obj.put(WebsocketConst.MSG_TXT, title);
webSocket.sendMessage(sysUser.getId(), obj.toJSONString());
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(SysAnnmentTypeEnum.getByType(busType).getOpenType());
announcement.setOpenPage(SysAnnmentTypeEnum.getByType(busType).getOpenPage());
}
announcement.setTemplateCode(sendMessageDTO.getTemplateCode());
sysAnnouncementService.save(announcement);
// 2.插入用户通告阅读标记表记录
String userId = toUser;
String[] userIds = userId.split(",");
String anntId = announcement.getId();
for(int i=0;i<userIds.length;i++) {
if(oConvertUtils.isNotEmpty(userIds[i])) {
SysUser sysUser = sysUserService.getUserByName(userIds[i]);
if(Objects.isNull(sysUser)) {
continue;
}
SysAnnouncementSend announcementSend = new SysAnnouncementSend();
announcementSend.setAnntId(anntId);
announcementSend.setUserId(sysUser.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, sysUser.getId());
obj.put(WebsocketConst.MSG_ID, announcement.getId());
obj.put(WebsocketConst.MSG_TXT, title);
webSocket.sendMessage(sysUser.getId(), obj.toJSONString());
}
}
}catch (Exception e){
log.error("发送消息异常",e);
}
}
// todo 发送短信 待完成
if(templateType.contains(ProjectCommon.MESSAGE_TYPE1) && !StringUtils.isEmpty(sendMessageDTO.getPhone())){
// sysBaseAPI.sendSMS(sendMessageDTO.getPhone(),type,time,sendMessageDTO.getTemplateCode(),sendMessageDTO.getTemplateParam());
try {
sysBaseAPI.sendSMS(sendMessageDTO.getPhone(),type,time,sendMessageDTO.getTemplateCode(),sendMessageDTO.getTemplateParam());
}catch (Exception e){
log.error("发送短信异常",e);
}
}
}
}
@@ -6,8 +6,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.dto.message.BusTemplateMessageDTO;
import com.jero.common.common.RoleCommon;
import com.jero.common.dto.SendMessageDTO;
import com.jero.common.enums.CompanyMessageEnums;
import com.jero.common.enums.ManagementMessageEnums;
import com.jero.common.exception.JeroBootException;
import com.jero.common.service.SendMessageService;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.PasswordUtil;
@@ -101,8 +105,8 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
private IPayMemberProjectSubitemService memberProjectSubitemService;
@Resource
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
@Autowired
private ISysBaseAPI sysBaseAPI;
@Resource
private SendMessageService sendMessageService;
@Override
public IPage<PayIncomeContract> queryPageList(Page<PayIncomeContract> page, PayIncomeContract payIncomeContract, String chargeStatus,String projectName, String startTime, String endTime) {
@@ -664,6 +668,27 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
updatePayIncomeContract.set(PayIncomeContract::getStatus,PayIncomeContractCommon.STATUS2);
payIncomeContractService.update(updatePayIncomeContract);
// todo 缺少发送消息
// 获取项目负责人,发送消息
List<SysUser> list = sysUserService.getRolesUser(Arrays.asList(RoleCommon.CWRY));
if(!CollectionUtils.isEmpty(list)){
list.forEach(p->{
// 发送消息
SendMessageDTO sendMessageDTO = new SendMessageDTO();
if(!StringUtils.isBlank(p.getEmail())){
sendMessageDTO.setEmail(PasswordUtil.decrypt(p.getEmail()));
}
HashMap<String,String> map = new HashMap<>();
map.put("contractNum",payIncomeContractNew.getContractNum());
map.put("contractName",payIncomeContractNew.getContractName());
sendMessageDTO.setFromUser(sysUser.getId());
sendMessageDTO.setToUser(p.getUsername());
sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG2.getCode());
sendMessageDTO.setTemplateParam(map);
sendMessageDTO.setBusType("email");
sendMessageDTO.setBusId(p.getId());
sendMessageService.SendMessageService(sendMessageDTO);
});
}
}
/**
@@ -11,6 +11,8 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jero.common.system.api.ISysBaseAPI;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
import com.jero.common.api.vo.Result;
@@ -67,6 +69,8 @@ public class SysAnnouncementController {
private ISysAnnouncementSendService sysAnnouncementSendService;
@Resource
private WebSocket webSocket;
@Autowired
private ISysBaseAPI sysBaseAPI;
/**
* 分页列表查询
@@ -313,6 +317,13 @@ public class SysAnnouncementController {
anntMsgList = sysAnnouncementService.querySysCementPageByUserId(anntMsgList,userId,"1");//通知公告消息
Page<SysAnnouncement> sysMsgList = new Page<SysAnnouncement>(0,5);
sysMsgList = sysAnnouncementService.querySysCementPageByUserId(sysMsgList,userId,"2");//系统消息
if(!CollectionUtils.isEmpty(sysMsgList.getRecords())){
List<SysAnnouncement> list = sysMsgList.getRecords();
list.forEach(p->{
p.setTitile(sysBaseAPI.translateDict("notice_type",p.getTitile()));
});
sysMsgList.setRecords(list);
}
Map<String,Object> sysMsgMap = new HashMap<String, Object>();
sysMsgMap.put("sysMsgList", sysMsgList.getRecords());
sysMsgMap.put("sysMsgTotal", sysMsgList.getTotal());