zjh
4 天以前 cc25bc0eec2d50da39d62f9896ed4d5e66805366
ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysNoticeController.java
@@ -1,17 +1,24 @@
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.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.ltkj.common.core.domain.entity.SysUser;
import com.ltkj.common.core.domain.model.LoginUser;
import com.ltkj.common.utils.SecurityUtils;
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 +38,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 +55,8 @@
    private SysNoticeUserService sysNoticeUserService;
    @Autowired
    private ISysUserService userService;
    @Autowired
    private WebSockerManager webSockerManager;
    /**
     * 获取通知公告列表
@@ -113,9 +124,32 @@
                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();
    }
    @Log(title = "公告已读", businessType = BusinessType.UPDATE)
    @PostMapping("readNotice")
    public AjaxResult read(@RequestBody String json){
        JSONObject entries = JSONUtil.parseObj(json);
        String noticeId = entries.getStr("noticeId");
        LambdaUpdateWrapper<SysNoticeUser> wrapper = new LambdaUpdateWrapper<>();
        wrapper.eq(SysNoticeUser::getNoticeId, noticeId);
        wrapper.eq(SysNoticeUser::getUserId, getUserId());
        wrapper.set(SysNoticeUser::getIsRead, 1);
        boolean update = sysNoticeUserService.update(wrapper);
        if (update) {
            return success();
        }else return error();
    }
    /**
     * 修改通知公告
     */