diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java index 7f3ce33..a32fc86 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java @@ -227,4 +227,12 @@ public interface ISysUserService { */ @ApiOperation(value = "封装用户信息",notes = "封装登录完成后的用户信息(角色、权限、部门、组织、岗位)") SessionUser packSessionUser(SessionUser sessionUser, SysUser user, Integer userType, String languageCode); + + /** + * 根据id查询用户信息 + * @param ids 用户id + * @return 查询结果 + */ + @ApiOperation(value = "根据id查询用户信息") + List findSysUserByIds(Long[] ids); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysConfigController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysConfigController.java index fe1e6a6..baf83ce 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysConfigController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysConfigController.java @@ -252,8 +252,8 @@ public class SysConfigController extends CoreBaseController { mailUtil.setTo(mailConfig.getTestTo()); mailUtil.send(); return ResultBean.success("测试邮件已发送").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(MessagingException messageExcep){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(messageExcep); + } catch(MessagingException messageExcep){ + return ResultBean.fail("邮件配置错误:" + messageExcep.getMessage()); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); }catch(Exception e){ diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMessageController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMessageController.java index b5da61d..9fe97c9 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMessageController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMessageController.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysUserService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; @@ -29,6 +30,7 @@ import org.springframework.web.bind.annotation.*; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * @Description : 消息管理服务 @@ -46,6 +48,9 @@ public class SysMessageController extends CoreBaseController { @Autowired private ISysMessageService sysMessageService; + @Autowired + private ISysUserService sysUserService; + @PostMapping(value = "/sys-message/insert") @ApiOperation(value = "新增消息",notes = "新增消息") public ResultBean insertSysMessage(SysMessage sysMessage){ @@ -65,6 +70,13 @@ public class SysMessageController extends CoreBaseController { sysMessage.setMessageContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.HTML.getValue()); sysMessage.setMessageReceiverType(ImppEnumUtil.MESSAGE_RECEIVER_TYPE.INTERNAL.getValue()); + // 设置收件人名称 + String[] messageReceiver = sysMessage.getMessageReceiversId().split(","); + String receiversName = sysUserService.findSysUserByIds(StringTool.getArrayLong(messageReceiver)) + .stream().map(e -> e.getUserName()).collect(Collectors.joining(",")); + + sysMessage.setMessageReceiversNameRdd(receiversName); + sysMessageService.doSendSysMessage(sysMessage); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); }catch(ImppBusiException busExcep){ diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java index ca3dc62..ea7ffa5 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java @@ -74,7 +74,6 @@ public class MessageLetterQueueReceiver { List userList = personnelService.findSysUserByIds(StringTool.getArrayLong(userIds)); if(userList != null && userList.size() > 0){ - List names = new ArrayList<>(userList.size()); List insertList = new ArrayList<>(userList.size()); SysRefUserMessage refUserMessage; @@ -90,7 +89,6 @@ public class MessageLetterQueueReceiver { refUserMessage.setReceiverTime(TimeTool.getNowTime(true)); refUserMessage.setIsUrgent(msg.getIsUrgent()); - names.add(user.getUserName()); insertList.add(refUserMessage); } @@ -102,10 +100,6 @@ public class MessageLetterQueueReceiver { MessageWebSocket.sendMessage(userMessage.getReceiverId(), MAPPER.writeValueAsString(userMessage)); } } - - // 更新冗余信息 - msg.setMessageReceiversNameRdd(StringUtils.join(names,",")); - sysMessageService.updateSysMessage(msg); } } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java index 1f6781a..55638d7 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java @@ -56,6 +56,7 @@ public class MessageMailQueueReceiver { if (msg.getMessageSendTime() == null) { msg.setMessageSendTime(TimeTool.getNowTime(true)); } + msg = sysMessageService.insertSysMessage(msg); // 设置邮件主题内容及收件人 @@ -79,14 +80,12 @@ public class MessageMailQueueReceiver { } else if (msg.getMessageReceiverType().intValue() == ImppEnumUtil.MESSAGE_RECEIVER_TYPE.INTERNAL.getValue()) { // 收件人信息 String[] messageReceiver = msg.getMessageReceiversId().split(","); - String[] receiverName = new String[messageReceiver.length]; SysRefUserMessage refUserMessage; SysUser sysUser; for (int i = 0; i < messageReceiver.length; i++) { sysUser = sysUserService.getSysUserById(Long.parseLong(messageReceiver[i])); - receiverName[i] = sysUser.getUserName(); refUserMessage = new SysRefUserMessage(); refUserMessage.setMessageId(msg.getId()); @@ -103,9 +102,6 @@ public class MessageMailQueueReceiver { mailUtil.setTo(sysUser.getUserEmail()); mailUtil.send(); } - - msg.setMessageReceiversNameRdd(StringUtils.join(receiverName, ",")); - sysMessageService.updateSysMessage(msg); } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java index 1c55c81..ec2797c 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java @@ -1,6 +1,8 @@ package cn.estsh.i3plus.core.apiservice.mq; import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskPlanService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysUserService; +import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; @@ -19,6 +21,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.stereotype.Component; import java.io.IOException; +import java.util.stream.Collectors; /** * @Description : 定时任务通道业务处理 @@ -37,6 +40,9 @@ public class ScheduleQueueReceiver { private ISysTaskPlanService sysTaskPlanService; @Autowired + private ISysUserService sysUserService; + + @Autowired private RabbitTemplate rabbitTemplate; /** @@ -69,7 +75,7 @@ public class ScheduleQueueReceiver { && CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == taskPlan.getIsNotice()) { // 设置通知邮件内容 SysMessage sysMessage = new SysMessage(); - sysMessage.setMessageType(ImppEnumUtil.MESSAGE_TYPE.MAIL.getValue()); + sysMessage.setMessageType(taskPlan.getNoticeMethod()); sysMessage.setMessageSenderNameRdd("系统管理员"); sysMessage.setMessageTitle("任务计划失败通知"); sysMessage.setMessageContent( @@ -86,6 +92,12 @@ public class ScheduleQueueReceiver { sysMessage.setMessageReceiversNameRdd(taskPlan.getNoticeChannel()); }else{ sysMessage.setMessageReceiverType(ImppEnumUtil.MESSAGE_RECEIVER_TYPE.INTERNAL.getValue()); + // 设置收件人名称 + String[] messageReceiver = taskPlan.getNoticeChannel().split(","); + String receiversName = sysUserService.findSysUserByIds(StringTool.getArrayLong(messageReceiver)) + .stream().map(e -> e.getUserName()).collect(Collectors.joining(",")); + + sysMessage.setMessageReceiversNameRdd(receiversName); } // 发送到对应处理队列 diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java index 521ddd8..74694fc 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java @@ -9,11 +9,13 @@ import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.EncryptTool; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.tool.TimeTool; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.shirotoken.UserToken; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.tool.HqlPack; import cn.estsh.i3plus.pojo.platform.bean.*; import cn.estsh.i3plus.pojo.platform.repository.*; @@ -550,6 +552,13 @@ public class SysUserService implements ISysUserService { return sessionUser; } + @Override + public List findSysUserByIds(Long[] ids) { + DdlPackBean ddlPackBean = new DdlPackBean(); + DdlPreparedPack.getInPackArray(ids, "id", ddlPackBean); + return sysUserRDao.findByHqlWhere(ddlPackBean); + } + /** * 账号数据排序 * 创建时间 角色升序