通知bug
This commit is contained in:
parent
73c0951ff5
commit
3972ae9b80
@ -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<SysNotice> insertData = new ArrayList<>();
|
||||
List<Long> uids = new ArrayList<>();
|
||||
try {
|
||||
String type = dictService.getDictLabel("sys_notice_type", bo.getNoticeType());
|
||||
List<SysNotice> insertData = new ArrayList<>();
|
||||
List<Long> uids = new ArrayList<>();
|
||||
|
||||
if (bo.getRecMenuRole() != null){
|
||||
QueryWrapper<SysMenu> qw = Wrappers.query();
|
||||
qw.eq("menu.path", bo.getRecMenuRole());
|
||||
List<SysRoleVo> sysRoleVos = roleMapper.selectRoleByMenuPath(qw);
|
||||
List<String> roleKeyList = sysRoleVos.stream().map(SysRoleVo::getRoleKey).toList();
|
||||
bo.setRecRole(roleKeyList);
|
||||
}
|
||||
if (bo.getRecMenuRole() != null){
|
||||
QueryWrapper<SysMenu> qw = Wrappers.query();
|
||||
qw.eq("menu.path", bo.getRecMenuRole());
|
||||
List<SysRoleVo> sysRoleVos = roleMapper.selectRoleByMenuPath(qw);
|
||||
List<String> 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<SysUserVo> 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<SysUserVo> 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<SysUserVo> 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<SysUserVo> 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;
|
||||
}
|
||||
/**
|
||||
* 修改公告
|
||||
|
Loading…
Reference in New Issue
Block a user