package com.xmzs.midjourney.controller; import com.xmzs.midjourney.domain.DiscordAccount; import com.xmzs.midjourney.loadbalancer.DiscordInstance; import com.xmzs.midjourney.loadbalancer.DiscordLoadBalancer; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @Api(tags = "账号查询") @RestController @RequestMapping("/mj/account") @RequiredArgsConstructor public class AccountController { private final DiscordLoadBalancer loadBalancer; @ApiOperation(value = "指定ID获取账号") @GetMapping("/{id}/fetch") public DiscordAccount fetch(@ApiParam(value = "账号ID") @PathVariable String id) { DiscordInstance instance = this.loadBalancer.getDiscordInstance(id); return instance == null ? null : instance.account(); } @ApiOperation(value = "查询所有账号") @GetMapping("/list") public List list() { return this.loadBalancer.getAllInstances().stream().map(DiscordInstance::account).toList(); } }