refactor: 日志和websocket代码优化
This commit is contained in:
@@ -49,9 +49,10 @@ public class WebsocketController {
|
|||||||
*/
|
*/
|
||||||
@MessageMapping("/sendToUser/{username}")
|
@MessageMapping("/sendToUser/{username}")
|
||||||
public void sendToUser(Principal principal, @DestinationVariable String username, String message) {
|
public void sendToUser(Principal principal, @DestinationVariable String username, String message) {
|
||||||
|
// 发送人
|
||||||
String sender = principal.getName(); // 发送人
|
String sender = principal.getName();
|
||||||
String receiver = username; // 接收人
|
// 接收人
|
||||||
|
String receiver = username;
|
||||||
|
|
||||||
log.info("发送人:{}; 接收人:{}", sender, receiver);
|
log.info("发送人:{}; 接收人:{}", sender, receiver);
|
||||||
// 发送消息给指定用户,拼接后路径 /user/{receiver}/queue/greeting
|
// 发送消息给指定用户,拼接后路径 /user/{receiver}/queue/greeting
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.youlai.boot.module.websocket.service.impl;
|
package com.youlai.boot.module.websocket.service;
|
||||||
|
|
||||||
import com.youlai.boot.system.event.UserConnectionEvent;
|
import com.youlai.boot.system.event.UserConnectionEvent;
|
||||||
import com.youlai.boot.module.websocket.service.WebsocketService;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.context.event.EventListener;
|
import org.springframework.context.event.EventListener;
|
||||||
@@ -12,25 +11,21 @@ import org.springframework.stereotype.Service;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 在线用户服务
|
||||||
|
*
|
||||||
|
* @author Ray
|
||||||
|
* @since 2.3.0
|
||||||
|
*/
|
||||||
@Service
|
@Service
|
||||||
@Slf4j
|
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class WebsocketServiceImpl implements WebsocketService {
|
@Slf4j
|
||||||
|
public class OnlineUserService {
|
||||||
|
|
||||||
private final SimpMessagingTemplate messagingTemplate;
|
private final SimpMessagingTemplate messagingTemplate;
|
||||||
|
|
||||||
private final Set<String> onlineUsers = ConcurrentHashMap.newKeySet();
|
private final Set<String> onlineUsers = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addUser(String username) {
|
|
||||||
onlineUsers.add(username);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeUser(String username) {
|
|
||||||
onlineUsers.remove(username);
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventListener
|
@EventListener
|
||||||
public void handleUserConnectionEvent(UserConnectionEvent event) {
|
public void handleUserConnectionEvent(UserConnectionEvent event) {
|
||||||
String username = event.getUsername();
|
String username = event.getUsername();
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
package com.youlai.boot.module.websocket.service;
|
|
||||||
|
|
||||||
public interface WebsocketService {
|
|
||||||
|
|
||||||
void addUser(String username);
|
|
||||||
|
|
||||||
void removeUser(String username) ;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -34,10 +34,10 @@ public class LogController {
|
|||||||
|
|
||||||
@Operation(summary = "日志分页列表")
|
@Operation(summary = "日志分页列表")
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
public PageResult<LogPageVO> listPagedLogs(
|
public PageResult<LogPageVO> getLogPage(
|
||||||
LogPageQuery queryParams
|
LogPageQuery queryParams
|
||||||
) {
|
) {
|
||||||
Page<LogPageVO> result = logService.listPagedLogs(queryParams);
|
Page<LogPageVO> result = logService.getLogPage(queryParams);
|
||||||
return PageResult.success(result);
|
return PageResult.success(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,33 @@ package com.youlai.boot.system.event;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.context.ApplicationEvent;
|
import org.springframework.context.ApplicationEvent;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户连接事件
|
||||||
|
*
|
||||||
|
* @author Ray
|
||||||
|
* @since 2.3.0
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
public class UserConnectionEvent extends ApplicationEvent {
|
public class UserConnectionEvent extends ApplicationEvent {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户名
|
||||||
|
*/
|
||||||
private final String username;
|
private final String username;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否连接
|
||||||
|
*/
|
||||||
private final boolean connected;
|
private final boolean connected;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户连接事件
|
||||||
|
*
|
||||||
|
* @param source 事件源
|
||||||
|
* @param username 用户名
|
||||||
|
* @param connected 是否连接
|
||||||
|
*/
|
||||||
public UserConnectionEvent(Object source, String username, boolean connected) {
|
public UserConnectionEvent(Object source, String username, boolean connected) {
|
||||||
super(source);
|
super(source);
|
||||||
this.username = username;
|
this.username = username;
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ public interface LogMapper extends BaseMapper<Log> {
|
|||||||
* @param queryParams
|
* @param queryParams
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
Page<LogPageVO> listPagedLogs(Page<LogPageVO> page, LogPageQuery queryParams);
|
Page<LogPageVO> getLogPage(Page<LogPageVO> page, LogPageQuery queryParams);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 统计浏览数(PV)
|
* 统计浏览数(PV)
|
||||||
|
|||||||
@@ -7,6 +7,12 @@ import lombok.Setter;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 访问趋势VO
|
||||||
|
*
|
||||||
|
* @author Ray
|
||||||
|
* @since 2.3.0
|
||||||
|
*/
|
||||||
@Schema(description = "访问趋势VO")
|
@Schema(description = "访问趋势VO")
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ public interface LogService extends IService<Log> {
|
|||||||
* @param queryParams 查询参数
|
* @param queryParams 查询参数
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
Page<LogPageVO> listPagedLogs(LogPageQuery queryParams);
|
Page<LogPageVO> getLogPage(LogPageQuery queryParams);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -36,8 +36,8 @@ public class LogServiceImpl extends ServiceImpl<LogMapper, Log>
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Page<LogPageVO> listPagedLogs(LogPageQuery queryParams) {
|
public Page<LogPageVO> getLogPage(LogPageQuery queryParams) {
|
||||||
return this.baseMapper.listPagedLogs(new Page<>(queryParams.getPageNum(), queryParams.getPageSize()),
|
return this.baseMapper.getLogPage(new Page<>(queryParams.getPageNum(), queryParams.getPageSize()),
|
||||||
queryParams);
|
queryParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<mapper namespace="com.youlai.boot.system.mapper.LogMapper">
|
<mapper namespace="com.youlai.boot.system.mapper.LogMapper">
|
||||||
|
|
||||||
<!-- 日志分页列表 -->
|
<!-- 日志分页列表 -->
|
||||||
<select id="listPagedLogs" resultType="com.youlai.boot.system.model.vo.LogPageVO">
|
<select id="getLogPage" resultType="com.youlai.boot.system.model.vo.LogPageVO">
|
||||||
SELECT
|
SELECT
|
||||||
t1.id,
|
t1.id,
|
||||||
t1.module,
|
t1.module,
|
||||||
|
|||||||
Reference in New Issue
Block a user