Administrator
2026-09-22 8f3d68cfbd98254f92d5c83be9ee52764936377f
src/main/java/com/xcong/excoin/modules/gateApi/GateCommandConsumer.java
@@ -5,6 +5,7 @@
import com.xcong.excoin.modules.station.model.GateCommand;
import com.xcong.excoin.modules.station.model.GateStatsEvent;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
@@ -15,6 +16,7 @@
 * JAR 侧 — 消费 Station 下发的启停指令
 */
@Slf4j
@ConditionalOnProperty(name = "app.gate.enabled", havingValue = "true", matchIfMissing = true)
@Component
public class GateCommandConsumer {
@@ -80,11 +82,15 @@
            }
        } catch (Exception e) {
            success = false;
            newState = "ERROR";
            message = e.getMessage();
            log.error("[Gate] 指令执行失败", e);
        }
        // 指令异常/未知类型时 newState 可能为空,统一回退为当前真实状态,避免污染 Station 侧实例状态
        if (newState == null || newState.isEmpty()) {
            newState = strategy.getState().name();
        }
        // 发送 ACK 到 Station
        CmdAckMsg ack = CmdAckMsg.builder()
                .commandId(cmd.getCommandId())