whycxzp
2024-01-02 f395aaf4da7103084610d8435544a0ea11baabc4
更新socket
1个文件已添加
1个文件已修改
94 ■■■■■ 已修改文件
src/main/java/com/whyc/service/DocLogService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/webSocket/LogSocket.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/DocLogService.java
@@ -1,6 +1,7 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.constant.UserOperation;
@@ -16,6 +17,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
@@ -170,4 +172,24 @@
        });
        return new Response().setII(1,list.size()>0,list,"数据返回");
    }
    public List<DocLog> getListOfToday() {
        Calendar startTime = Calendar.getInstance();
        startTime.set(Calendar.HOUR_OF_DAY,0);
        startTime.set(Calendar.MINUTE,0);
        startTime.set(Calendar.SECOND,0);
        Calendar endTime = Calendar.getInstance();
        endTime.set(Calendar.HOUR_OF_DAY,23);
        endTime.set(Calendar.MINUTE,59);
        endTime.set(Calendar.SECOND,59);
        QueryWrapper<DocLog> query = Wrappers.query();
        query.ge("oprate_day",startTime.getTime());
        query.le("oprate_day",endTime.getTime());
        return mapper.selectList(query);
    }
}
src/main/java/com/whyc/webSocket/LogSocket.java
New file
@@ -0,0 +1,72 @@
package com.whyc.webSocket;
import com.whyc.config.WebSocketConfig;
import com.whyc.dto.Response;
import com.whyc.pojo.DocLog;
import com.whyc.service.DocLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.List;
/**
 * 通用日志
 */
@Component
@ServerEndpoint(value = "/log",encoders = WebSocketEncoder.class,configurator = WebSocketConfig.class)
public class LogSocket {
    private Session session;
    private Thread thread;
    private static DocLogService logService;
    @Autowired
    public void setLogService(DocLogService logService) {
        LogSocket.logService = logService;
    }
    @OnOpen
    public void onOpen(Session session, EndpointConfig config){
        this.session = session;
        Thread thread = new Thread() {
            @Override
            public void run() {
                try{
                    while (!currentThread().isInterrupted()) {
                        List<DocLog> logList = logService.getListOfToday();
                        session.getBasicRemote().sendObject(new Response<>().set(1,logList,"查询完成"));
                        sleep(4000);
                    }
                } catch (Exception e) {
                    this.interrupt();
                }
            }
        };
        thread.start();
        this.thread = thread;
    }
    @OnClose
    public void onClose(CloseReason closeReason) throws IOException {
        System.err.println("closeReason = " + closeReason);
        if(session.isOpen()){
            session.close();
        }
    }
    @OnError
    public void onError(Throwable error) throws IOException {
        error.printStackTrace();
        thread.isInterrupted();
        if(session.isOpen()){
            session.close();
        }
    }
}