diff --git a/internal/db/models/api_node_dao.go b/internal/db/models/api_node_dao.go index d8b06945..b7cf1a45 100644 --- a/internal/db/models/api_node_dao.go +++ b/internal/db/models/api_node_dao.go @@ -58,15 +58,22 @@ func (this *APINodeDAO) EnableAPINode(tx *dbs.Tx, id int64) error { } // DisableAPINode 禁用条目 -func (this *APINodeDAO) DisableAPINode(tx *dbs.Tx, id int64) error { +func (this *APINodeDAO) DisableAPINode(tx *dbs.Tx, nodeId int64) error { _, err := this.Query(tx). - Pk(id). + Pk(nodeId). Set("state", APINodeStateDisabled). Update() if err != nil { return err } - return this.NotifyUpdate(tx, id) + + err = this.NotifyUpdate(tx, nodeId) + if err != nil { + return err + } + + // 删除运行日志 + return SharedNodeLogDAO.DeleteNodeLogs(tx, nodeconfigs.NodeRoleAPI, nodeId) } // FindEnabledAPINode 查找启用中的条目 diff --git a/internal/db/models/db_node_dao.go b/internal/db/models/db_node_dao.go index 72c89bbc..00e0ac8a 100644 --- a/internal/db/models/db_node_dao.go +++ b/internal/db/models/db_node_dao.go @@ -4,6 +4,7 @@ import ( "encoding/base64" "github.com/TeaOSLab/EdgeAPI/internal/encrypt" "github.com/TeaOSLab/EdgeAPI/internal/errors" + "github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs" _ "github.com/go-sql-driver/mysql" "github.com/iwind/TeaGo/Tea" "github.com/iwind/TeaGo/dbs" @@ -49,12 +50,17 @@ func (this *DBNodeDAO) EnableDBNode(tx *dbs.Tx, id int64) error { } // DisableDBNode 禁用条目 -func (this *DBNodeDAO) DisableDBNode(tx *dbs.Tx, id int64) error { +func (this *DBNodeDAO) DisableDBNode(tx *dbs.Tx, nodeId int64) error { _, err := this.Query(tx). - Pk(id). + Pk(nodeId). Set("state", DBNodeStateDisabled). Update() - return err + if err != nil { + return err + } + + // 删除运行日志 + return SharedNodeLogDAO.DeleteNodeLogs(tx, nodeconfigs.NodeRoleDatabase, nodeId) } // FindEnabledDBNode 查找启用中的条目 diff --git a/internal/db/models/monitor_node_dao.go b/internal/db/models/monitor_node_dao.go index 2ef2cb26..4d42ef65 100644 --- a/internal/db/models/monitor_node_dao.go +++ b/internal/db/models/monitor_node_dao.go @@ -47,12 +47,17 @@ func (this *MonitorNodeDAO) EnableMonitorNode(tx *dbs.Tx, id int64) error { } // DisableMonitorNode 禁用条目 -func (this *MonitorNodeDAO) DisableMonitorNode(tx *dbs.Tx, id int64) error { +func (this *MonitorNodeDAO) DisableMonitorNode(tx *dbs.Tx, nodeId int64) error { _, err := this.Query(tx). - Pk(id). + Pk(nodeId). Set("state", MonitorNodeStateDisabled). Update() - return err + if err != nil { + return err + } + + // 删除运行日志 + return SharedNodeLogDAO.DeleteNodeLogs(tx, nodeconfigs.NodeRoleMonitor, nodeId) } // FindEnabledMonitorNode 查找启用中的条目 diff --git a/internal/db/models/node_dao.go b/internal/db/models/node_dao.go index 31475541..8ee8d0ae 100644 --- a/internal/db/models/node_dao.go +++ b/internal/db/models/node_dao.go @@ -100,7 +100,8 @@ func (this *NodeDAO) DisableNode(tx *dbs.Tx, nodeId int64) (err error) { return err } - return nil + // 删除运行日志 + return SharedNodeLogDAO.DeleteNodeLogs(tx, nodeconfigs.NodeRoleNode, nodeId) } // FindEnabledNode 查找启用中的条目 diff --git a/internal/db/models/node_log_dao.go b/internal/db/models/node_log_dao.go index 4351b823..21f5e322 100644 --- a/internal/db/models/node_log_dao.go +++ b/internal/db/models/node_log_dao.go @@ -360,3 +360,12 @@ func (this *NodeLogDAO) UpdateAllNodeLogsRead(tx *dbs.Tx) error { Set("isRead", true). UpdateQuickly() } + +// DeleteNodeLogs 删除某个节点上的日志 +func (this *NodeLogDAO) DeleteNodeLogs(tx *dbs.Tx, role nodeconfigs.NodeRole, nodeId int64) error { + _, err := this.Query(tx). + Attr("nodeId", nodeId). + Attr("role", role). + Delete() + return err +} diff --git a/internal/db/models/ns_node_dao.go b/internal/db/models/ns_node_dao.go index 56bee800..36aa4ed4 100644 --- a/internal/db/models/ns_node_dao.go +++ b/internal/db/models/ns_node_dao.go @@ -52,16 +52,23 @@ func (this *NSNodeDAO) EnableNSNode(tx *dbs.Tx, id int64) error { } // DisableNSNode 禁用条目 -func (this *NSNodeDAO) DisableNSNode(tx *dbs.Tx, id int64) error { +func (this *NSNodeDAO) DisableNSNode(tx *dbs.Tx, nodeId int64) error { _, err := this.Query(tx). - Pk(id). + Pk(nodeId). Set("state", NSNodeStateDisabled). Update() if err != nil { return err } - return this.NotifyUpdate(tx, id) + + err = this.NotifyUpdate(tx, nodeId) + if err != nil { + return err + } + + // 删除运行日志 + return SharedNodeLogDAO.DeleteNodeLogs(tx, nodeconfigs.NodeRoleDNS, nodeId) } // FindEnabledNSNode 查找启用中的条目 diff --git a/internal/db/models/report_node_dao.go b/internal/db/models/report_node_dao.go index 189011f8..5be18c31 100644 --- a/internal/db/models/report_node_dao.go +++ b/internal/db/models/report_node_dao.go @@ -50,12 +50,17 @@ func (this *ReportNodeDAO) EnableReportNode(tx *dbs.Tx, id int64) error { } // DisableReportNode 禁用条目 -func (this *ReportNodeDAO) DisableReportNode(tx *dbs.Tx, id int64) error { +func (this *ReportNodeDAO) DisableReportNode(tx *dbs.Tx, nodeId int64) error { _, err := this.Query(tx). - Pk(id). + Pk(nodeId). Set("state", ReportNodeStateDisabled). Update() - return err + if err != nil { + return err + } + + // 删除运行日志 + return SharedNodeLogDAO.DeleteNodeLogs(tx, nodeconfigs.NodeRoleReport, nodeId) } // FindEnabledReportNode 查找启用中的条目 diff --git a/internal/db/models/user_node_dao.go b/internal/db/models/user_node_dao.go index b6ab9868..cbb4a493 100644 --- a/internal/db/models/user_node_dao.go +++ b/internal/db/models/user_node_dao.go @@ -51,12 +51,17 @@ func (this *UserNodeDAO) EnableUserNode(tx *dbs.Tx, id uint32) error { } // DisableUserNode 禁用条目 -func (this *UserNodeDAO) DisableUserNode(tx *dbs.Tx, id int64) error { +func (this *UserNodeDAO) DisableUserNode(tx *dbs.Tx, nodeId int64) error { _, err := this.Query(tx). - Pk(id). + Pk(nodeId). Set("state", UserNodeStateDisabled). Update() - return err + if err != nil { + return err + } + + // 删除运行日志 + return SharedNodeLogDAO.DeleteNodeLogs(tx, nodeconfigs.NodeRoleUser, nodeId) } // FindEnabledUserNode 查找启用中的条目