Files
TrangleAgent/Backend/internal/logic/containment/containment.go

116 lines
2.6 KiB
Go
Raw Normal View History

2026-01-18 18:20:40 +08:00
package containment
import (
"context"
"github.com/gogf/gf/v2/frame/g"
2026-01-18 19:07:41 +08:00
v1 "TrangleAgent/api/containment/v1"
"TrangleAgent/internal/model/response"
"TrangleAgent/internal/service"
2026-01-18 18:20:40 +08:00
)
type sContainment struct{}
func New() *sContainment {
return &sContainment{}
}
func init() {
service.RegisterContainment(New())
}
func (s *sContainment) ContainmentRepoList(ctx context.Context, req *v1.ContainmentRepoListReq) (res *v1.ContainmentRepoListRes, err error) {
m := g.Model("containment_repo")
if req.AgentName != "" {
m.Where("agent_name", req.AgentName)
}
if req.AnomalyName != "" {
m.Where("anomaly_name", req.AnomalyName)
}
if req.RepoName != "" {
m.Where("repo_name", req.RepoName)
}
// 创建返回结果
res = &v1.ContainmentRepoListRes{
PageResult: response.PageResult{
Page: req.Page,
PageSize: req.PageSize,
},
}
// 查询总数
res.Total, err = m.Count()
if err != nil {
return nil, err
}
// 分页查询
m = m.Page(req.Page, req.PageSize)
// 查询数据列表
err = m.Scan(&res.List)
if err != nil {
return nil, err
}
return res, nil
}
func (s *sContainment) ContainmentRepoView(ctx context.Context, req *v1.ContainmentRepoViewReq) (res *v1.ContainmentRepoViewRes, err error) {
// 创建返回结果
res = &v1.ContainmentRepoViewRes{}
// 从数据库获取指定ID的数据
err = g.Model("containment_repo").Where("id", req.Id).Scan(&res.ContainmentRepoInfo)
if err != nil {
return nil, err
}
return res, nil
}
func (s *sContainment) ContainmentRepoUpdate(ctx context.Context, req *v1.ContainmentRepoUpdateReq) (res *v1.ContainmentRepoUpdateRes, err error) {
// 创建返回结果
res = &v1.ContainmentRepoUpdateRes{}
// 准备数据
data := g.Map{
"terminal_id": req.TerminalId,
"anomaly_name": req.AnomalyName,
"agent_name": req.AgentName,
"repo_name": req.RepoName,
}
// 根据ID判断是更新还是新增
if req.Id > 0 {
// 更新操作
_, err = g.Model("containment_repo").Data(data).Where("id", req.Id).Update()
res.Id = req.Id
} else {
// 新增操作
result, err := g.Model("containment_repo").Data(data).Insert()
if err != nil {
return nil, err
}
// 获取插入记录的ID
id, err := result.LastInsertId()
if err != nil {
return nil, err
}
res.Id = uint64(id)
}
return res, err
}
func (s *sContainment) ContainmentRepoDelete(ctx context.Context, req *v1.ContainmentRepoDeleteReq) (res *v1.ContainmentRepoDeleteRes, err error) {
// 创建返回结果
res = &v1.ContainmentRepoDeleteRes{}
// 删除指定ID的记录
_, err = g.Model("containment_repo").Where("id", req.Id).Delete()
if err != nil {
return nil, err
}
return res, nil
}