|
@@ -1,24 +1,22 @@
|
|
|
package com.dc.datachange.core.exchange;
|
|
|
|
|
|
import Messenger.Message;
|
|
|
-import com.dc.datachange.core.entity.message.*;
|
|
|
+import com.dc.datachange.core.entity.message.ReceivedMessage;
|
|
|
import com.dc.datachange.core.entity.message.receivedMessage.ErrorMessage;
|
|
|
import com.dc.datachange.core.exchange.strategy.MessageStrategy;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
+import static com.dc.datachange.utils.MessageUtils.printMessage;
|
|
|
@Component
|
|
|
@Slf4j
|
|
|
public class InvokeExecutor {
|
|
|
private final Map<String, MessageStrategy> strategyMap=new HashMap<>();
|
|
|
- @Value("${dds.config.enablePrint}")
|
|
|
- private Boolean enablePrint;
|
|
|
|
|
|
@Autowired
|
|
|
public InvokeExecutor(List<MessageStrategy> strategies){
|
|
@@ -28,9 +26,6 @@ public class InvokeExecutor {
|
|
|
}
|
|
|
|
|
|
public ReceivedMessage getSpecMsg(Message message) {
|
|
|
- if(enablePrint){
|
|
|
- printMessage(message);
|
|
|
- }
|
|
|
MessageStrategy strategy=strategyMap.get(message.subject);
|
|
|
if(strategy!=null){
|
|
|
return strategy.generate(message);
|
|
@@ -41,8 +36,14 @@ public class InvokeExecutor {
|
|
|
public void invoke(ReceivedMessage message) {
|
|
|
try {
|
|
|
MessageStrategy strategy=strategyMap.get(message.getMsgType());
|
|
|
- if(strategy.validate(message)){
|
|
|
- strategy.invoke(message);
|
|
|
+ if(strategy !=null){
|
|
|
+ if(strategy.validate(message)){
|
|
|
+ strategy.invoke(message);
|
|
|
+ }else {
|
|
|
+ log.error("校验不通过,消息内容:{}",printMessage(message.getDDSMessage()));
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ log.error("未知消息,无法处理。消息内容:{}",message);
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
log.error(e.getMessage());
|
|
@@ -50,14 +51,4 @@ public class InvokeExecutor {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- public void printMessage(Message message){
|
|
|
- System.out.println("==============================================");
|
|
|
- System.out.println("Message: subject = " + message.subject);
|
|
|
- System.out.println(" subject_id = "
|
|
|
- + message.subject_id);
|
|
|
- System.out.println(" from = " + message.from);
|
|
|
- System.out.println(" count = " + message.count);
|
|
|
- System.out.println(" text = " + message.text);
|
|
|
- System.out.println("==============================================");
|
|
|
- }
|
|
|
}
|