package com.xcong.excoin.modules.station.controller;
|
|
import com.xcong.excoin.common.response.Result;
|
import com.xcong.excoin.modules.station.registry.InstanceRegistry;
|
import com.xcong.excoin.modules.station.service.StationService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
|
/**
|
* Station 管理接口 — 实例列表 / 启停 / 状态 / 事件查询
|
*/
|
@Slf4j
|
@Api(value = "Gate 策略管理", tags = "Gate 策略管理")
|
@RestController
|
@RequestMapping("/api/gate/station")
|
public class StationController {
|
|
@Resource
|
private InstanceRegistry instanceRegistry;
|
|
@Resource
|
private StationService stationService;
|
|
@ApiOperation("获取所有在线 JAR 实例")
|
@GetMapping("/list")
|
public Result list() {
|
return Result.ok(instanceRegistry.list());
|
}
|
|
@ApiOperation("获取单个实例状态")
|
@GetMapping("/status")
|
public Result status(@RequestParam String apiKeyMd5) {
|
return Result.ok(instanceRegistry.get(apiKeyMd5));
|
}
|
|
@ApiOperation("启动指定 apiKeyMd5 的策略")
|
@PostMapping("/start")
|
public Result start(@RequestParam String apiKeyMd5) {
|
stationService.startByMd5(apiKeyMd5);
|
return Result.ok("指令已发送");
|
}
|
|
@ApiOperation("停止指定 apiKeyMd5 的策略")
|
@PostMapping("/stop")
|
public Result stop(@RequestParam String apiKeyMd5) {
|
stationService.stopByMd5(apiKeyMd5);
|
return Result.ok("指令已发送");
|
}
|
|
@ApiOperation("查询策略事件日志")
|
@GetMapping("/events")
|
public Result events(@RequestParam String apiKeyMd5) {
|
return Result.ok(stationService.getEvents(apiKeyMd5));
|
}
|
|
@ApiOperation("查询策略实时状态")
|
@GetMapping("/strategy-status")
|
public Result strategyStatus(@RequestParam String apiKeyMd5) {
|
return Result.ok(stationService.getStrategyStatus(apiKeyMd5));
|
}
|
|
@ApiOperation("更新策略参数(仅持久化,需手动启动生效)")
|
@PostMapping("/config")
|
public Result updateConfig(@RequestParam String apiKeyMd5, @RequestBody java.util.Map<String, Object> params) {
|
stationService.updateConfig(apiKeyMd5, params);
|
return Result.ok("参数已保存,请手动点击「启动」使新配置生效");
|
}
|
}
|