zhaowenxuan
17 小时以前 dedacd79c93f8ef95e0cb986f5e7fbd27ddbd907
ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysNoticeController.java
@@ -1,10 +1,13 @@
package com.ltkj.web.controller.system;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ltkj.common.core.domain.entity.SysUser;
import com.ltkj.common.core.domain.model.LoginUser;
@@ -12,6 +15,8 @@
import com.ltkj.hosp.domain.SysNoticeUser;
import com.ltkj.hosp.service.SysNoticeUserService;
import com.ltkj.system.service.ISysUserService;
import com.ltkj.web.websocket.ClientSessionInfo;
import com.ltkj.web.websocket.WebSockerManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
@@ -31,6 +36,8 @@
import com.ltkj.common.enums.BusinessType;
import com.ltkj.system.domain.SysNotice;
import com.ltkj.system.service.ISysNoticeService;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
/**
 * 公告 信息操作处理
@@ -46,6 +53,8 @@
    private SysNoticeUserService sysNoticeUserService;
    @Autowired
    private ISysUserService userService;
    @Autowired
    private WebSockerManager webSockerManager;
    /**
     * 获取通知公告列表
@@ -55,6 +64,15 @@
    public TableDataInfo list(SysNotice notice) {
        startPage();
        List<SysNotice> list = noticeService.selectNoticeList(notice);
        for (SysNotice sysNotice : list) {
            LambdaQueryWrapper<SysNoticeUser> wq = new LambdaQueryWrapper<>();
            wq.eq(SysNoticeUser::getNoticeId, sysNotice.getNoticeId());
            List<SysNoticeUser> sysNoticeUsers = sysNoticeUserService.list(wq);
            if(null != sysNoticeUsers && !sysNoticeUsers.isEmpty()){
                List<String> longList = sysNoticeUsers.stream().map(i -> i.getUserId().toString()).collect(Collectors.toList());
                sysNotice.setUserIds(longList);
            }
        }
        return getDataTable(list);
    }
@@ -104,6 +122,14 @@
                sysNoticeUserService.save(user);
            }
        }else return AjaxResult.error();
        for (Map.Entry<String, ClientSessionInfo> entry : webSockerManager.userSessions.entrySet()) {
            if (!notice.getUserIds().contains(entry.getKey())) continue;
            WebSocketSession session = entry.getValue().getSession();
            try {
                session.sendMessage(new TextMessage(JSONUtil.toJsonStr(notice)));
            } catch (IOException ignored) {
            }
        }
        return AjaxResult.success();
    }