refactor: 日志和websocket代码优化

This commit is contained in:
Ray.Hao
2024-09-13 21:50:41 +08:00
parent 5d24d7496f
commit ef6889857a
10 changed files with 48 additions and 33 deletions

View File

@@ -49,9 +49,10 @@ public class WebsocketController {
*/
@MessageMapping("/sendToUser/{username}")
public void sendToUser(Principal principal, @DestinationVariable String username, String message) {
String sender = principal.getName(); // 发送人
String receiver = username; // 接收人
// 发送人
String sender = principal.getName();
// 接收人
String receiver = username;
log.info("发送人:{}; 接收人:{}", sender, receiver);
// 发送消息给指定用户,拼接后路径 /user/{receiver}/queue/greeting

View File

@@ -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.module.websocket.service.WebsocketService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.event.EventListener;
@@ -12,25 +11,21 @@ import org.springframework.stereotype.Service;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
/**
* 在线用户服务
*
* @author Ray
* @since 2.3.0
*/
@Service
@Slf4j
@RequiredArgsConstructor
public class WebsocketServiceImpl implements WebsocketService {
@Slf4j
public class OnlineUserService {
private final SimpMessagingTemplate messagingTemplate;
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
public void handleUserConnectionEvent(UserConnectionEvent event) {
String username = event.getUsername();

View File

@@ -1,9 +0,0 @@
package com.youlai.boot.module.websocket.service;
public interface WebsocketService {
void addUser(String username);
void removeUser(String username) ;
}

View File

@@ -34,10 +34,10 @@ public class LogController {
@Operation(summary = "日志分页列表")
@GetMapping("/page")
public PageResult<LogPageVO> listPagedLogs(
public PageResult<LogPageVO> getLogPage(
LogPageQuery queryParams
) {
Page<LogPageVO> result = logService.listPagedLogs(queryParams);
Page<LogPageVO> result = logService.getLogPage(queryParams);
return PageResult.success(result);
}

View File

@@ -3,11 +3,33 @@ package com.youlai.boot.system.event;
import lombok.Getter;
import org.springframework.context.ApplicationEvent;
/**
* 用户连接事件
*
* @author Ray
* @since 2.3.0
*/
@Getter
public class UserConnectionEvent extends ApplicationEvent {
/**
* 用户名
*/
private final String username;
/**
* 是否连接
*/
private final boolean connected;
/**
* 用户连接事件
*
* @param source 事件源
* @param username 用户名
* @param connected 是否连接
*/
public UserConnectionEvent(Object source, String username, boolean connected) {
super(source);
this.username = username;

View File

@@ -28,7 +28,7 @@ public interface LogMapper extends BaseMapper<Log> {
* @param queryParams
* @return
*/
Page<LogPageVO> listPagedLogs(Page<LogPageVO> page, LogPageQuery queryParams);
Page<LogPageVO> getLogPage(Page<LogPageVO> page, LogPageQuery queryParams);
/**
* 统计浏览数(PV)

View File

@@ -7,6 +7,12 @@ import lombok.Setter;
import java.util.List;
/**
* 访问趋势VO
*
* @author Ray
* @since 2.3.0
*/
@Schema(description = "访问趋势VO")
@Getter
@Setter

View File

@@ -25,7 +25,7 @@ public interface LogService extends IService<Log> {
* @param queryParams 查询参数
* @return
*/
Page<LogPageVO> listPagedLogs(LogPageQuery queryParams);
Page<LogPageVO> getLogPage(LogPageQuery queryParams);
/**

View File

@@ -36,8 +36,8 @@ public class LogServiceImpl extends ServiceImpl<LogMapper, Log>
* @return
*/
@Override
public Page<LogPageVO> listPagedLogs(LogPageQuery queryParams) {
return this.baseMapper.listPagedLogs(new Page<>(queryParams.getPageNum(), queryParams.getPageSize()),
public Page<LogPageVO> getLogPage(LogPageQuery queryParams) {
return this.baseMapper.getLogPage(new Page<>(queryParams.getPageNum(), queryParams.getPageSize()),
queryParams);
}