mirror of
https://github.com/Sagit-chu/flvx.git
synced 2026-09-30 08:16:37 +08:00
feat: add update-order APIs for tunnel and node
This commit is contained in:
@@ -24,13 +24,15 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashMap;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
@@ -68,12 +70,40 @@ public class NodeServiceImpl extends ServiceImpl<NodeMapper, Node> implements No
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@Override
|
||||
public R getAllNodes() {
|
||||
List<Node> nodeList = this.list(new QueryWrapper<Node>().orderByDesc("status"));
|
||||
nodeList.forEach(node -> node.setSecret(null));
|
||||
return R.ok(nodeList);
|
||||
}
|
||||
@Override
|
||||
public R getAllNodes() {
|
||||
List<Node> nodeList = this.list(new QueryWrapper<Node>().orderByAsc("inx").orderByAsc("id"));
|
||||
nodeList.forEach(node -> node.setSecret(null));
|
||||
return R.ok(nodeList);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public R updateNodeOrder(Map<String, Object> params) {
|
||||
if (!params.containsKey("nodes")) {
|
||||
return R.err("缺少nodes参数");
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Map<String, Object>> nodesList = (List<Map<String, Object>>) params.get("nodes");
|
||||
if (nodesList == null || nodesList.isEmpty()) {
|
||||
return R.err("nodes参数不能为空");
|
||||
}
|
||||
|
||||
List<Node> nodesToUpdate = new ArrayList<>();
|
||||
for (Map<String, Object> nodeData : nodesList) {
|
||||
Long id = Long.valueOf(nodeData.get("id").toString());
|
||||
Integer inx = Integer.valueOf(nodeData.get("inx").toString());
|
||||
|
||||
Node node = new Node();
|
||||
node.setId(id);
|
||||
node.setInx(inx);
|
||||
nodesToUpdate.add(node);
|
||||
}
|
||||
|
||||
this.updateBatchById(nodesToUpdate);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@Override
|
||||
public R updateNode(NodeUpdateDto nodeUpdateDto) {
|
||||
@@ -347,8 +377,8 @@ public class NodeServiceImpl extends ServiceImpl<NodeMapper, Node> implements No
|
||||
ViteConfig viteConfig = viteConfigService.getOne(new QueryWrapper<ViteConfig>().eq("name", "ip"));
|
||||
if (viteConfig == null) return R.err("请先前往网站配置中设置ip");
|
||||
StringBuilder command = new StringBuilder();
|
||||
command.append("curl -L https://github.com/bqlpfy/flux-panel/releases/download/2.0.7-beta/install.sh")
|
||||
.append(" -o ./install.sh && chmod +x ./install.sh && ");
|
||||
command.append("curl -L https://github.com/Sagit-chu/flux-panel/releases/latest/download/install.sh")
|
||||
.append(" -o ./install.sh && chmod +x ./install.sh && ");
|
||||
String processedServerAddr = GostUtil.processServerAddress(viteConfig.getValue());
|
||||
command.append("./install.sh")
|
||||
.append(" -a ").append(processedServerAddr) // 服务器地址
|
||||
|
||||
@@ -18,6 +18,7 @@ import lombok.Data;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
@@ -252,7 +253,7 @@ public class TunnelServiceImpl extends ServiceImpl<TunnelMapper, Tunnel> impleme
|
||||
|
||||
@Override
|
||||
public R getAllTunnels() {
|
||||
List<Tunnel> tunnelList = this.list();
|
||||
List<Tunnel> tunnelList = this.list(new QueryWrapper<Tunnel>().orderByAsc("inx").orderByAsc("id"));
|
||||
|
||||
// 查询所有隧道的ChainTunnel信息
|
||||
List<Long> tunnelIds = tunnelList.stream()
|
||||
@@ -317,6 +318,34 @@ public class TunnelServiceImpl extends ServiceImpl<TunnelMapper, Tunnel> impleme
|
||||
return R.ok(detailDtoList);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public R updateTunnelOrder(Map<String, Object> params) {
|
||||
if (!params.containsKey("tunnels")) {
|
||||
return R.err("缺少tunnels参数");
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Map<String, Object>> tunnelsList = (List<Map<String, Object>>) params.get("tunnels");
|
||||
if (tunnelsList == null || tunnelsList.isEmpty()) {
|
||||
return R.err("tunnels参数不能为空");
|
||||
}
|
||||
|
||||
List<Tunnel> tunnelsToUpdate = new ArrayList<>();
|
||||
for (Map<String, Object> tunnelData : tunnelsList) {
|
||||
Long id = Long.valueOf(tunnelData.get("id").toString());
|
||||
Integer inx = Integer.valueOf(tunnelData.get("inx").toString());
|
||||
|
||||
Tunnel tunnel = new Tunnel();
|
||||
tunnel.setId(id);
|
||||
tunnel.setInx(inx);
|
||||
tunnelsToUpdate.add(tunnel);
|
||||
}
|
||||
|
||||
this.updateBatchById(tunnelsToUpdate);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public R updateTunnel(TunnelUpdateDto tunnelUpdateDto) {
|
||||
|
||||
Reference in New Issue
Block a user