mirror of
https://github.com/Sagit-chu/flvx.git
synced 2026-10-07 18:26:37 +08:00
fix: 节点更新时serverIpV4/V6/域名字段无法正确清空的问题
使用LambdaUpdateWrapper替代updateById以确保null值能正确更新到数据库 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -15,6 +15,7 @@ import com.admin.service.*;
|
|||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -142,10 +143,26 @@ public class NodeServiceImpl extends ServiceImpl<NodeMapper, Node> implements No
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Node updateNode = buildUpdateNode(nodeUpdateDto);
|
Node updateNode = buildUpdateNode(nodeUpdateDto);
|
||||||
this.updateById(updateNode);
|
// Use LambdaUpdateWrapper to explicitly set nullable fields (serverIpV4/V6)
|
||||||
return R.ok();
|
// because updateById() skips null fields by default
|
||||||
}
|
LambdaUpdateWrapper<Node> wrapper = new LambdaUpdateWrapper<>();
|
||||||
|
wrapper.eq(Node::getId, updateNode.getId())
|
||||||
|
.set(Node::getName, updateNode.getName())
|
||||||
|
.set(Node::getServerIp, updateNode.getServerIp())
|
||||||
|
.set(Node::getServerIpV4, updateNode.getServerIpV4())
|
||||||
|
.set(Node::getServerIpV6, updateNode.getServerIpV6())
|
||||||
|
.set(Node::getPort, updateNode.getPort())
|
||||||
|
.set(Node::getHttp, updateNode.getHttp())
|
||||||
|
.set(Node::getTls, updateNode.getTls())
|
||||||
|
.set(Node::getSocks, updateNode.getSocks())
|
||||||
|
.set(Node::getInterfaceName, updateNode.getInterfaceName())
|
||||||
|
.set(Node::getTcpListenAddr, updateNode.getTcpListenAddr())
|
||||||
|
.set(Node::getUdpListenAddr, updateNode.getUdpListenAddr())
|
||||||
|
.set(Node::getUpdatedTime, updateNode.getUpdatedTime());
|
||||||
|
this.update(wrapper);
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public R deleteNode(Long id) {
|
public R deleteNode(Long id) {
|
||||||
|
|||||||
Reference in New Issue
Block a user