update 优化 规范DTO命名

This commit is contained in:
疯狂的狮子Li
2026-03-13 14:38:42 +08:00
parent 40ea2e55bb
commit 2a4dbdd974
14 changed files with 60 additions and 61 deletions

View File

@@ -27,7 +27,7 @@ import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.social.config.properties.SocialLoginConfigProperties; import org.dromara.common.social.config.properties.SocialLoginConfigProperties;
import org.dromara.common.social.config.properties.SocialProperties; import org.dromara.common.social.config.properties.SocialProperties;
import org.dromara.common.social.utils.SocialUtils; import org.dromara.common.social.utils.SocialUtils;
import org.dromara.common.sse.dto.SseMessageDto; import org.dromara.common.sse.dto.SseMessageDTO;
import org.dromara.common.sse.utils.SseMessageUtils; import org.dromara.common.sse.utils.SseMessageUtils;
import org.dromara.system.domain.vo.SysClientVo; import org.dromara.system.domain.vo.SysClientVo;
import org.dromara.system.service.ISysClientService; import org.dromara.system.service.ISysClientService;
@@ -94,7 +94,7 @@ public class AuthController {
Long userId = LoginHelper.getUserId(); Long userId = LoginHelper.getUserId();
scheduledExecutorService.schedule(() -> { scheduledExecutorService.schedule(() -> {
SseMessageDto dto = new SseMessageDto(); SseMessageDTO dto = new SseMessageDTO();
dto.setMessage(DateUtils.getTodayHour(new Date()) + "好,欢迎登录 RuoYi-Vue-Plus 后台管理系统"); dto.setMessage(DateUtils.getTodayHour(new Date()) + "好,欢迎登录 RuoYi-Vue-Plus 后台管理系统");
dto.setUserIds(List.of(userId)); dto.setUserIds(List.of(userId));
SseMessageUtils.publishMessage(dto); SseMessageUtils.publishMessage(dto);

View File

@@ -59,7 +59,7 @@ public class SseController implements DisposableBean {
// */ // */
// @GetMapping(value = "${sse.path}/send") // @GetMapping(value = "${sse.path}/send")
// public R<Void> send(Long userId, String msg) { // public R<Void> send(Long userId, String msg) {
// SseMessageDto dto = new SseMessageDto(); // SseMessageDTO dto = new SseMessageDTO();
// dto.setUserIds(List.of(userId)); // dto.setUserIds(List.of(userId));
// dto.setMessage(msg); // dto.setMessage(msg);
// sseEmitterManager.publishMessage(dto); // sseEmitterManager.publishMessage(dto);

View File

@@ -5,12 +5,11 @@ import cn.hutool.core.map.MapUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.redis.utils.RedisUtils; import org.dromara.common.redis.utils.RedisUtils;
import org.dromara.common.sse.dto.SseMessageDto; import org.dromara.common.sse.dto.SseMessageDTO;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
@@ -159,8 +158,8 @@ public class SseEmitterManager {
* *
* @param consumer 处理SSE消息的消费者函数 * @param consumer 处理SSE消息的消费者函数
*/ */
public void subscribeMessage(Consumer<SseMessageDto> consumer) { public void subscribeMessage(Consumer<SseMessageDTO> consumer) {
RedisUtils.subscribe(SSE_TOPIC, SseMessageDto.class, consumer); RedisUtils.subscribe(SSE_TOPIC, SseMessageDTO.class, consumer);
} }
/** /**
@@ -203,15 +202,15 @@ public class SseEmitterManager {
/** /**
* 发布SSE订阅消息 * 发布SSE订阅消息
* *
* @param sseMessageDto 要发布的SSE消息对象 * @param sseMessageDTO 要发布的SSE消息对象
*/ */
public void publishMessage(SseMessageDto sseMessageDto) { public void publishMessage(SseMessageDTO sseMessageDTO) {
SseMessageDto broadcastMessage = new SseMessageDto(); SseMessageDTO broadcastMessage = new SseMessageDTO();
broadcastMessage.setMessage(sseMessageDto.getMessage()); broadcastMessage.setMessage(sseMessageDTO.getMessage());
broadcastMessage.setUserIds(sseMessageDto.getUserIds()); broadcastMessage.setUserIds(sseMessageDTO.getUserIds());
RedisUtils.publish(SSE_TOPIC, broadcastMessage, consumer -> { RedisUtils.publish(SSE_TOPIC, broadcastMessage, consumer -> {
log.info("SSE发送主题订阅消息topic:{} session keys:{} message:{}", log.info("SSE发送主题订阅消息topic:{} session keys:{} message:{}",
SSE_TOPIC, sseMessageDto.getUserIds(), sseMessageDto.getMessage()); SSE_TOPIC, sseMessageDTO.getUserIds(), sseMessageDTO.getMessage());
}); });
} }
@@ -221,7 +220,7 @@ public class SseEmitterManager {
* @param message 要发布的消息内容 * @param message 要发布的消息内容
*/ */
public void publishAll(String message) { public void publishAll(String message) {
SseMessageDto broadcastMessage = new SseMessageDto(); SseMessageDTO broadcastMessage = new SseMessageDTO();
broadcastMessage.setMessage(message); broadcastMessage.setMessage(message);
RedisUtils.publish(SSE_TOPIC, broadcastMessage, consumer -> { RedisUtils.publish(SSE_TOPIC, broadcastMessage, consumer -> {
log.info("SSE发送主题订阅消息topic:{} message:{}", SSE_TOPIC, message); log.info("SSE发送主题订阅消息topic:{} message:{}", SSE_TOPIC, message);

View File

@@ -7,12 +7,12 @@ import java.io.Serializable;
import java.util.List; import java.util.List;
/** /**
* 消息的dto * 消息的DTO
* *
* @author zendwang * @author zendwang
*/ */
@Data @Data
public class SseMessageDto implements Serializable { public class SseMessageDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -5,7 +5,7 @@ import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.sse.core.SseEmitterManager; import org.dromara.common.sse.core.SseEmitterManager;
import org.dromara.common.sse.dto.SseMessageDto; import org.dromara.common.sse.dto.SseMessageDTO;
/** /**
* SSE工具类 * SSE工具类
@@ -53,13 +53,13 @@ public class SseMessageUtils {
/** /**
* 发布SSE订阅消息 * 发布SSE订阅消息
* *
* @param sseMessageDto 要发布的SSE消息对象 * @param sseMessageDTO 要发布的SSE消息对象
*/ */
public static void publishMessage(SseMessageDto sseMessageDto) { public static void publishMessage(SseMessageDTO sseMessageDTO) {
if (!isEnable()) { if (!isEnable()) {
return; return;
} }
MANAGER.publishMessage(sseMessageDto); MANAGER.publishMessage(sseMessageDTO);
} }
/** /**

View File

@@ -7,12 +7,12 @@ import java.io.Serializable;
import java.util.List; import java.util.List;
/** /**
* 消息的dto * 消息的DTO
* *
* @author zendwang * @author zendwang
*/ */
@Data @Data
public class WebSocketMessageDto implements Serializable { public class WebSocketMessageDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -3,7 +3,7 @@ package org.dromara.common.websocket.handler;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.websocket.dto.WebSocketMessageDto; import org.dromara.common.websocket.dto.WebSocketMessageDTO;
import org.dromara.common.websocket.holder.WebSocketSessionHolder; import org.dromara.common.websocket.holder.WebSocketSessionHolder;
import org.dromara.common.websocket.utils.WebSocketUtils; import org.dromara.common.websocket.utils.WebSocketUtils;
import org.springframework.web.socket.*; import org.springframework.web.socket.*;
@@ -51,10 +51,10 @@ public class PlusWebSocketHandler extends AbstractWebSocketHandler {
LoginUser loginUser = (LoginUser) session.getAttributes().get(LOGIN_USER_KEY); LoginUser loginUser = (LoginUser) session.getAttributes().get(LOGIN_USER_KEY);
// 创建WebSocket消息DTO对象 // 创建WebSocket消息DTO对象
WebSocketMessageDto webSocketMessageDto = new WebSocketMessageDto(); WebSocketMessageDTO messageDTO = new WebSocketMessageDTO();
webSocketMessageDto.setSessionKeys(List.of(loginUser.getUserId())); messageDTO.setSessionKeys(List.of(loginUser.getUserId()));
webSocketMessageDto.setMessage(message.getPayload()); messageDTO.setMessage(message.getPayload());
WebSocketUtils.publishMessage(webSocketMessageDto); WebSocketUtils.publishMessage(messageDTO);
} }
/** /**

View File

@@ -5,7 +5,7 @@ import lombok.AccessLevel;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.common.redis.utils.RedisUtils; import org.dromara.common.redis.utils.RedisUtils;
import org.dromara.common.websocket.dto.WebSocketMessageDto; import org.dromara.common.websocket.dto.WebSocketMessageDTO;
import org.dromara.common.websocket.holder.WebSocketSessionHolder; import org.dromara.common.websocket.holder.WebSocketSessionHolder;
import org.springframework.web.socket.PongMessage; import org.springframework.web.socket.PongMessage;
import org.springframework.web.socket.TextMessage; import org.springframework.web.socket.TextMessage;
@@ -44,8 +44,8 @@ public class WebSocketUtils {
* *
* @param consumer 处理WebSocket消息的消费者函数 * @param consumer 处理WebSocket消息的消费者函数
*/ */
public static void subscribeMessage(Consumer<WebSocketMessageDto> consumer) { public static void subscribeMessage(Consumer<WebSocketMessageDTO> consumer) {
RedisUtils.subscribe(WEB_SOCKET_TOPIC, WebSocketMessageDto.class, consumer); RedisUtils.subscribe(WEB_SOCKET_TOPIC, WebSocketMessageDTO.class, consumer);
} }
/** /**
@@ -53,7 +53,7 @@ public class WebSocketUtils {
* *
* @param webSocketMessage 要发布的WebSocket消息对象 * @param webSocketMessage 要发布的WebSocket消息对象
*/ */
public static void publishMessage(WebSocketMessageDto webSocketMessage) { public static void publishMessage(WebSocketMessageDTO webSocketMessage) {
List<Long> unsentSessionKeys = new ArrayList<>(); List<Long> unsentSessionKeys = new ArrayList<>();
// 当前服务内session,直接发送消息 // 当前服务内session,直接发送消息
for (Long sessionKey : webSocketMessage.getSessionKeys()) { for (Long sessionKey : webSocketMessage.getSessionKeys()) {
@@ -65,7 +65,7 @@ public class WebSocketUtils {
} }
// 不在当前服务内session,发布订阅消息 // 不在当前服务内session,发布订阅消息
if (CollUtil.isNotEmpty(unsentSessionKeys)) { if (CollUtil.isNotEmpty(unsentSessionKeys)) {
WebSocketMessageDto broadcastMessage = new WebSocketMessageDto(); WebSocketMessageDTO broadcastMessage = new WebSocketMessageDTO();
broadcastMessage.setMessage(webSocketMessage.getMessage()); broadcastMessage.setMessage(webSocketMessage.getMessage());
broadcastMessage.setSessionKeys(unsentSessionKeys); broadcastMessage.setSessionKeys(unsentSessionKeys);
RedisUtils.publish(WEB_SOCKET_TOPIC, broadcastMessage, consumer -> { RedisUtils.publish(WEB_SOCKET_TOPIC, broadcastMessage, consumer -> {
@@ -81,7 +81,7 @@ public class WebSocketUtils {
* @param message 要发布的消息内容 * @param message 要发布的消息内容
*/ */
public static void publishAll(String message) { public static void publishAll(String message) {
WebSocketMessageDto broadcastMessage = new WebSocketMessageDto(); WebSocketMessageDTO broadcastMessage = new WebSocketMessageDTO();
broadcastMessage.setMessage(message); broadcastMessage.setMessage(message);
RedisUtils.publish(WEB_SOCKET_TOPIC, broadcastMessage, consumer -> { RedisUtils.publish(WEB_SOCKET_TOPIC, broadcastMessage, consumer -> {
log.info("WebSocket发送主题订阅消息topic:{} message:{}", WEB_SOCKET_TOPIC, message); log.info("WebSocket发送主题订阅消息topic:{} message:{}", WEB_SOCKET_TOPIC, message);

View File

@@ -1,7 +1,7 @@
package org.dromara.demo.controller; package org.dromara.demo.controller;
import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.R;
import org.dromara.common.websocket.dto.WebSocketMessageDto; import org.dromara.common.websocket.dto.WebSocketMessageDTO;
import org.dromara.common.websocket.utils.WebSocketUtils; import org.dromara.common.websocket.utils.WebSocketUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -26,7 +26,7 @@ public class WebSocketController {
* @param dto 发送内容 * @param dto 发送内容
*/ */
@GetMapping("/send") @GetMapping("/send")
public R<Void> send(WebSocketMessageDto dto) throws InterruptedException { public R<Void> send(WebSocketMessageDTO dto) throws InterruptedException {
WebSocketUtils.publishMessage(dto); WebSocketUtils.publishMessage(dto);
return R.ok("操作成功"); return R.ok("操作成功");
} }

View File

@@ -5,7 +5,7 @@ import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
@Data @Data
public class BillDto { public class BillDTO {
/** /**
* 账单ID * 账单ID

View File

@@ -7,7 +7,7 @@ import com.aizuda.snailjob.client.job.core.dto.JobArgs;
import com.aizuda.snailjob.common.log.SnailJobLog; import com.aizuda.snailjob.common.log.SnailJobLog;
import com.aizuda.snailjob.model.dto.ExecuteResult; import com.aizuda.snailjob.model.dto.ExecuteResult;
import org.dromara.common.json.utils.JsonUtils; import org.dromara.common.json.utils.JsonUtils;
import org.dromara.job.entity.BillDto; import org.dromara.job.entity.BillDTO;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.math.BigDecimal; import java.math.BigDecimal;
@@ -23,20 +23,20 @@ import java.math.BigDecimal;
public class AlipayBillTask { public class AlipayBillTask {
public ExecuteResult jobExecute(JobArgs jobArgs) throws InterruptedException { public ExecuteResult jobExecute(JobArgs jobArgs) throws InterruptedException {
BillDto billDto = new BillDto(); BillDTO billDTO = new BillDTO();
billDto.setBillId(23456789L); billDTO.setBillId(23456789L);
billDto.setBillChannel("alipay"); billDTO.setBillChannel("alipay");
// 设置清算日期 // 设置清算日期
String settlementDate = (String) jobArgs.getWfContext().get("settlementDate"); String settlementDate = (String) jobArgs.getWfContext().get("settlementDate");
if (StrUtil.equals(settlementDate, "sysdate")) { if (StrUtil.equals(settlementDate, "sysdate")) {
settlementDate = DateUtil.today(); settlementDate = DateUtil.today();
} }
billDto.setBillDate(settlementDate); billDTO.setBillDate(settlementDate);
billDto.setBillAmount(new BigDecimal("2345.67")); billDTO.setBillAmount(new BigDecimal("2345.67"));
// 把billDto对象放入上下文进行传递 // 把billDTO对象放入上下文进行传递
jobArgs.appendContext("alipay", JsonUtils.toJsonString(billDto)); jobArgs.appendContext("alipay", JsonUtils.toJsonString(billDTO));
SnailJobLog.REMOTE.info("上下文: {}", jobArgs.getWfContext()); SnailJobLog.REMOTE.info("上下文: {}", jobArgs.getWfContext());
return ExecuteResult.success(billDto); return ExecuteResult.success(billDTO);
} }
} }

View File

@@ -6,7 +6,7 @@ import com.aizuda.snailjob.client.job.core.dto.JobArgs;
import com.aizuda.snailjob.common.log.SnailJobLog; import com.aizuda.snailjob.common.log.SnailJobLog;
import com.aizuda.snailjob.model.dto.ExecuteResult; import com.aizuda.snailjob.model.dto.ExecuteResult;
import org.dromara.common.json.utils.JsonUtils; import org.dromara.common.json.utils.JsonUtils;
import org.dromara.job.entity.BillDto; import org.dromara.job.entity.BillDTO;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.math.BigDecimal; import java.math.BigDecimal;
@@ -26,15 +26,15 @@ public class SummaryBillTask {
BigDecimal wechatAmount = BigDecimal.valueOf(0); BigDecimal wechatAmount = BigDecimal.valueOf(0);
String wechat = (String) jobArgs.getWfContext("wechat"); String wechat = (String) jobArgs.getWfContext("wechat");
if (StrUtil.isNotBlank(wechat)) { if (StrUtil.isNotBlank(wechat)) {
BillDto wechatBillDto = JsonUtils.parseObject(wechat, BillDto.class); BillDTO wechatBillDTO = JsonUtils.parseObject(wechat, BillDTO.class);
wechatAmount = wechatBillDto.getBillAmount(); wechatAmount = wechatBillDTO.getBillAmount();
} }
// 获得支付宝账单 // 获得支付宝账单
BigDecimal alipayAmount = BigDecimal.valueOf(0); BigDecimal alipayAmount = BigDecimal.valueOf(0);
String alipay = (String) jobArgs.getWfContext("alipay"); String alipay = (String) jobArgs.getWfContext("alipay");
if (StrUtil.isNotBlank(alipay)) { if (StrUtil.isNotBlank(alipay)) {
BillDto alipayBillDto = JsonUtils.parseObject(alipay, BillDto.class); BillDTO alipayBillDTO = JsonUtils.parseObject(alipay, BillDTO.class);
alipayAmount = alipayBillDto.getBillAmount(); alipayAmount = alipayBillDTO.getBillAmount();
} }
// 汇总账单 // 汇总账单
BigDecimal totalAmount = wechatAmount.add(alipayAmount); BigDecimal totalAmount = wechatAmount.add(alipayAmount);

View File

@@ -7,7 +7,7 @@ import com.aizuda.snailjob.client.job.core.dto.JobArgs;
import com.aizuda.snailjob.common.log.SnailJobLog; import com.aizuda.snailjob.common.log.SnailJobLog;
import com.aizuda.snailjob.model.dto.ExecuteResult; import com.aizuda.snailjob.model.dto.ExecuteResult;
import org.dromara.common.json.utils.JsonUtils; import org.dromara.common.json.utils.JsonUtils;
import org.dromara.job.entity.BillDto; import org.dromara.job.entity.BillDTO;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.math.BigDecimal; import java.math.BigDecimal;
@@ -23,21 +23,21 @@ import java.math.BigDecimal;
public class WechatBillTask { public class WechatBillTask {
public ExecuteResult jobExecute(JobArgs jobArgs) throws InterruptedException { public ExecuteResult jobExecute(JobArgs jobArgs) throws InterruptedException {
BillDto billDto = new BillDto(); BillDTO billDTO = new BillDTO();
billDto.setBillId(123456789L); billDTO.setBillId(123456789L);
billDto.setBillChannel("wechat"); billDTO.setBillChannel("wechat");
// 从上下文中获得清算日期并设置,如果上下文中清算日期 // 从上下文中获得清算日期并设置,如果上下文中清算日期
// 是sysdate设置为当前日期否则取管理页面设置的值 // 是sysdate设置为当前日期否则取管理页面设置的值
String settlementDate = (String) jobArgs.getWfContext().get("settlementDate"); String settlementDate = (String) jobArgs.getWfContext().get("settlementDate");
if (StrUtil.equals(settlementDate, "sysdate")) { if (StrUtil.equals(settlementDate, "sysdate")) {
settlementDate = DateUtil.today(); settlementDate = DateUtil.today();
} }
billDto.setBillDate(settlementDate); billDTO.setBillDate(settlementDate);
billDto.setBillAmount(new BigDecimal("1234.56")); billDTO.setBillAmount(new BigDecimal("1234.56"));
// 把billDto对象放入上下文进行传递 // 把billDTO对象放入上下文进行传递
jobArgs.appendContext("wechat", JsonUtils.toJsonString(billDto)); jobArgs.appendContext("wechat", JsonUtils.toJsonString(billDTO));
SnailJobLog.REMOTE.info("上下文: {}", jobArgs.getWfContext()); SnailJobLog.REMOTE.info("上下文: {}", jobArgs.getWfContext());
return ExecuteResult.success(billDto); return ExecuteResult.success(billDTO);
} }
} }

View File

@@ -10,7 +10,7 @@ import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mail.utils.MailUtils; import org.dromara.common.mail.utils.MailUtils;
import org.dromara.common.sse.dto.SseMessageDto; import org.dromara.common.sse.dto.SseMessageDTO;
import org.dromara.common.sse.utils.SseMessageUtils; import org.dromara.common.sse.utils.SseMessageUtils;
import org.dromara.warm.flow.core.FlowEngine; import org.dromara.warm.flow.core.FlowEngine;
import org.dromara.warm.flow.core.entity.Node; import org.dromara.warm.flow.core.entity.Node;
@@ -92,7 +92,7 @@ public class FlwCommonServiceImpl implements IFlwCommonService {
try { try {
switch (messageTypeEnum) { switch (messageTypeEnum) {
case SYSTEM_MESSAGE -> { case SYSTEM_MESSAGE -> {
SseMessageDto dto = new SseMessageDto(); SseMessageDTO dto = new SseMessageDTO();
dto.setUserIds(userIds); dto.setUserIds(userIds);
dto.setMessage(message); dto.setMessage(message);
SseMessageUtils.publishMessage(dto); SseMessageUtils.publishMessage(dto);