From 57e5a8385de2d5ff2e43c72535b472e42d65ba91 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 14 Aug 2026 11:13:44 +0800
Subject: [PATCH] feat(stations): 添加实例别名功能支持

---
 src/main/java/com/xcong/excoin/modules/station/service/impl/StationServiceImpl.java |   31 +++++++++++++++++++++++++++++++
 1 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/station/service/impl/StationServiceImpl.java b/src/main/java/com/xcong/excoin/modules/station/service/impl/StationServiceImpl.java
index 86a8b68..8bc76bd 100644
--- a/src/main/java/com/xcong/excoin/modules/station/service/impl/StationServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/station/service/impl/StationServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xcong.excoin.modules.station.dao.StrategyEventLogDao;
 import com.xcong.excoin.modules.station.dao.StrategyStatusDao;
@@ -66,6 +67,36 @@
         cmdProducer.sendCommand(apiKeyMd5, "UPDATE_CONFIG", JSON.toJSONString(params));
     }
 
+    // ==================== 别名 ====================
+
+    @Override
+    public void saveAlias(String apiKeyMd5, String alias) {
+        String cleaned = alias == null ? "" : alias.trim();
+        String value = cleaned.isEmpty() ? null : cleaned;
+
+        StrategyStatus existing = strategyStatusDao.selectByApiKeyMd5(apiKeyMd5);
+        if (existing != null) {
+            // 用 UpdateWrapper 显式 set,支持把别名更新为 null(清除)
+            LambdaUpdateWrapper<StrategyStatus> wrapper = new LambdaUpdateWrapper<>();
+            wrapper.eq(StrategyStatus::getApiKeyMd5, apiKeyMd5)
+                   .set(StrategyStatus::getAliasName, value);
+            strategyStatusDao.update(null, wrapper);
+        } else if (value != null) {
+            // 实例尚无状态记录(未启动过),仅创建一条只含别名的记录
+            StrategyStatus status = new StrategyStatus();
+            status.setApiKeyMd5(apiKeyMd5);
+            status.setAliasName(value);
+            status.setCreateTime(new Date());
+            strategyStatusDao.insert(status);
+        }
+    }
+
+    @Override
+    public String getAlias(String apiKeyMd5) {
+        StrategyStatus status = strategyStatusDao.selectByApiKeyMd5(apiKeyMd5);
+        return status == null ? null : status.getAliasName();
+    }
+
     // ==================== 事件落库 ====================
 
     @Override

--
Gitblit v1.9.1