通知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.ISysNoticeService;
|
||||||
import com.pusong.system.service.ISysUserService;
|
import com.pusong.system.service.ISysUserService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.socket.WebSocketSession;
|
import org.springframework.web.socket.WebSocketSession;
|
||||||
|
|
||||||
@ -48,6 +50,7 @@ import java.util.stream.Collectors;
|
|||||||
@Service
|
@Service
|
||||||
public class SysNoticeServiceImpl implements ISysNoticeService {
|
public class SysNoticeServiceImpl implements ISysNoticeService {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(SysNoticeServiceImpl.class);
|
||||||
private final SysNoticeMapper baseMapper;
|
private final SysNoticeMapper baseMapper;
|
||||||
private final SysUserMapper userMapper;
|
private final SysUserMapper userMapper;
|
||||||
private final DictService dictService;
|
private final DictService dictService;
|
||||||
@ -109,57 +112,64 @@ public class SysNoticeServiceImpl implements ISysNoticeService {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public int sendNotice(SysNoticeBo bo) {
|
public int sendNotice(SysNoticeBo bo) {
|
||||||
String type = dictService.getDictLabel("sys_notice_type", bo.getNoticeType());
|
try {
|
||||||
List<SysNotice> insertData = new ArrayList<>();
|
String type = dictService.getDictLabel("sys_notice_type", bo.getNoticeType());
|
||||||
List<Long> uids = new ArrayList<>();
|
List<SysNotice> insertData = new ArrayList<>();
|
||||||
|
List<Long> uids = new ArrayList<>();
|
||||||
|
|
||||||
if (bo.getRecMenuRole() != null){
|
if (bo.getRecMenuRole() != null){
|
||||||
QueryWrapper<SysMenu> qw = Wrappers.query();
|
QueryWrapper<SysMenu> qw = Wrappers.query();
|
||||||
qw.eq("menu.path", bo.getRecMenuRole());
|
qw.eq("menu.path", bo.getRecMenuRole());
|
||||||
List<SysRoleVo> sysRoleVos = roleMapper.selectRoleByMenuPath(qw);
|
List<SysRoleVo> sysRoleVos = roleMapper.selectRoleByMenuPath(qw);
|
||||||
List<String> roleKeyList = sysRoleVos.stream().map(SysRoleVo::getRoleKey).toList();
|
List<String> roleKeyList = sysRoleVos.stream().map(SysRoleVo::getRoleKey).toList();
|
||||||
bo.setRecRole(roleKeyList);
|
bo.setRecRole(roleKeyList);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bo.getRecRole() != null){
|
if (bo.getRecRole() != null){
|
||||||
SysUserBo query = new SysUserBo();
|
SysUserBo query = new SysUserBo();
|
||||||
query.setRoleKey(bo.getRecRole());
|
query.setRoleKey(bo.getRecRole());
|
||||||
PageQuery pageQuery = new PageQuery();
|
PageQuery pageQuery = new PageQuery();
|
||||||
pageQuery.setPageSize(999);
|
pageQuery.setPageSize(999);
|
||||||
TableDataInfo<SysUserVo> sysUserVoTableDataInfo = userService.selectAllocatedList(query, pageQuery);
|
TableDataInfo<SysUserVo> sysUserVoTableDataInfo = userService.selectAllocatedList(query, pageQuery);
|
||||||
for (SysUserVo row : sysUserVoTableDataInfo.getRows()) {
|
for (SysUserVo row : sysUserVoTableDataInfo.getRows()) {
|
||||||
uids.add(row.getUserId());
|
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);
|
SysNotice sysNoticeBo = MapstructUtils.convert(bo, SysNotice.class);
|
||||||
sysNoticeBo.setRecUid(row.getUserId());
|
sysNoticeBo.setRecUid(bo.getRecUid());
|
||||||
insertData.add(sysNoticeBo);
|
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){
|
baseMapper.insertBatch(insertData);
|
||||||
uids.add(bo.getRecUid());
|
|
||||||
SysNotice sysNoticeBo = MapstructUtils.convert(bo, SysNotice.class);
|
SysNoticeVo vo = MapstructUtils.convert(MapstructUtils.convert(bo, SysNotice.class), SysNoticeVo.class);
|
||||||
sysNoticeBo.setRecUid(bo.getRecUid());
|
WebSocketMessageDto webSocketMessage = new WebSocketMessageDto();
|
||||||
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();
|
|
||||||
// webSocketMessage.setMessage(bo.getNoticeContent());
|
// webSocketMessage.setMessage(bo.getNoticeContent());
|
||||||
webSocketMessage.setMessage(JsonUtils.toJsonString(vo));
|
webSocketMessage.setMessage(JsonUtils.toJsonString(vo));
|
||||||
webSocketMessage.setSessionKeys(uids);
|
webSocketMessage.setSessionKeys(uids);
|
||||||
WebSocketUtils.publishMessage(webSocketMessage);
|
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