From 3972ae9b80856fa559dbda517d4e5af2e5111875 Mon Sep 17 00:00:00 2001 From: mx <1289317512@qq.com> Date: Wed, 6 Nov 2024 17:29:01 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E7=9F=A5bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SysNoticeServiceImpl.java | 98 ++++++++++--------- 1 file changed, 54 insertions(+), 44 deletions(-) diff --git a/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysNoticeServiceImpl.java b/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysNoticeServiceImpl.java index a0260b0..e5d852b 100644 --- a/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysNoticeServiceImpl.java +++ b/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysNoticeServiceImpl.java @@ -31,6 +31,8 @@ import com.pusong.system.mapper.SysUserMapper; import com.pusong.system.service.ISysNoticeService; import com.pusong.system.service.ISysUserService; import lombok.RequiredArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.web.socket.WebSocketSession; @@ -48,6 +50,7 @@ import java.util.stream.Collectors; @Service public class SysNoticeServiceImpl implements ISysNoticeService { + private static final Logger logger = LoggerFactory.getLogger(SysNoticeServiceImpl.class); private final SysNoticeMapper baseMapper; private final SysUserMapper userMapper; private final DictService dictService; @@ -109,57 +112,64 @@ public class SysNoticeServiceImpl implements ISysNoticeService { } @Override public int sendNotice(SysNoticeBo bo) { - String type = dictService.getDictLabel("sys_notice_type", bo.getNoticeType()); - List insertData = new ArrayList<>(); - List uids = new ArrayList<>(); + try { + String type = dictService.getDictLabel("sys_notice_type", bo.getNoticeType()); + List insertData = new ArrayList<>(); + List uids = new ArrayList<>(); - if (bo.getRecMenuRole() != null){ - QueryWrapper qw = Wrappers.query(); - qw.eq("menu.path", bo.getRecMenuRole()); - List sysRoleVos = roleMapper.selectRoleByMenuPath(qw); - List roleKeyList = sysRoleVos.stream().map(SysRoleVo::getRoleKey).toList(); - bo.setRecRole(roleKeyList); - } + if (bo.getRecMenuRole() != null){ + QueryWrapper qw = Wrappers.query(); + qw.eq("menu.path", bo.getRecMenuRole()); + List sysRoleVos = roleMapper.selectRoleByMenuPath(qw); + List roleKeyList = sysRoleVos.stream().map(SysRoleVo::getRoleKey).toList(); + bo.setRecRole(roleKeyList); + } - if (bo.getRecRole() != null){ - SysUserBo query = new SysUserBo(); - query.setRoleKey(bo.getRecRole()); - PageQuery pageQuery = new PageQuery(); - pageQuery.setPageSize(999); - TableDataInfo sysUserVoTableDataInfo = userService.selectAllocatedList(query, pageQuery); - for (SysUserVo row : sysUserVoTableDataInfo.getRows()) { - uids.add(row.getUserId()); + if (bo.getRecRole() != null){ + SysUserBo query = new SysUserBo(); + query.setRoleKey(bo.getRecRole()); + PageQuery pageQuery = new PageQuery(); + pageQuery.setPageSize(999); + TableDataInfo sysUserVoTableDataInfo = userService.selectAllocatedList(query, pageQuery); + for (SysUserVo row : sysUserVoTableDataInfo.getRows()) { + uids.add(row.getUserId()); + SysNotice sysNoticeBo = MapstructUtils.convert(bo, SysNotice.class); + sysNoticeBo.setRecUid(row.getUserId()); + insertData.add(sysNoticeBo); + } + }else if (bo.getRecUid() != null){ + uids.add(bo.getRecUid()); SysNotice sysNoticeBo = MapstructUtils.convert(bo, SysNotice.class); - sysNoticeBo.setRecUid(row.getUserId()); + sysNoticeBo.setRecUid(bo.getRecUid()); insertData.add(sysNoticeBo); + }else{ + //全员 + SysUserBo user = new SysUserBo(); + PageQuery pageQuery = new PageQuery(); + pageQuery.setPageSize(100000); + TableDataInfo sysUserVoTableDataInfo = userService.selectPageUserList(user, pageQuery); + for (SysUserVo row : sysUserVoTableDataInfo.getRows()) { + uids.add(row.getUserId()); + SysNotice sysNoticeBo = MapstructUtils.convert(bo, SysNotice.class); + sysNoticeBo.setRecUid(row.getUserId()); + insertData.add(sysNoticeBo); + } } - }else if (bo.getRecUid() != null){ - uids.add(bo.getRecUid()); - SysNotice sysNoticeBo = MapstructUtils.convert(bo, SysNotice.class); - sysNoticeBo.setRecUid(bo.getRecUid()); - insertData.add(sysNoticeBo); - }else{ - //全员 - SysUserBo user = new SysUserBo(); - PageQuery pageQuery = new PageQuery(); - pageQuery.setPageSize(100000); - TableDataInfo sysUserVoTableDataInfo = userService.selectPageUserList(user, pageQuery); - for (SysUserVo row : sysUserVoTableDataInfo.getRows()) { - uids.add(row.getUserId()); - SysNotice sysNoticeBo = MapstructUtils.convert(bo, SysNotice.class); - sysNoticeBo.setRecUid(row.getUserId()); - insertData.add(sysNoticeBo); - } - } - SysNoticeVo vo = MapstructUtils.convert(bo, SysNoticeVo.class); - WebSocketMessageDto webSocketMessage = new WebSocketMessageDto(); + baseMapper.insertBatch(insertData); + + SysNoticeVo vo = MapstructUtils.convert(MapstructUtils.convert(bo, SysNotice.class), SysNoticeVo.class); + WebSocketMessageDto webSocketMessage = new WebSocketMessageDto(); // webSocketMessage.setMessage(bo.getNoticeContent()); - webSocketMessage.setMessage(JsonUtils.toJsonString(vo)); - webSocketMessage.setSessionKeys(uids); - WebSocketUtils.publishMessage(webSocketMessage); + webSocketMessage.setMessage(JsonUtils.toJsonString(vo)); + webSocketMessage.setSessionKeys(uids); + WebSocketUtils.publishMessage(webSocketMessage); - baseMapper.insertBatch(insertData); - return 1; + + return 1; + }catch (Exception e){ + logger.error("sendNotice error", e); + } + return 0; } /** * 修改公告