forked from JointCloud/pcm-coordinator
90 lines
2.3 KiB
Go
90 lines
2.3 KiB
Go
package adapters
|
|
|
|
import (
|
|
"context"
|
|
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/utils"
|
|
|
|
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/svc"
|
|
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/types"
|
|
|
|
"github.com/zeromicro/go-zero/core/logx"
|
|
)
|
|
|
|
type GetAdapterRelationLogic struct {
|
|
logx.Logger
|
|
ctx context.Context
|
|
svcCtx *svc.ServiceContext
|
|
}
|
|
|
|
func NewGetAdapterRelationLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetAdapterRelationLogic {
|
|
return &GetAdapterRelationLogic{
|
|
Logger: logx.WithContext(ctx),
|
|
ctx: ctx,
|
|
svcCtx: svcCtx,
|
|
}
|
|
}
|
|
|
|
func (l *GetAdapterRelationLogic) GetAdapterRelation(req *types.AdapterRelationQueryReq) (resp *types.PageResult, err error) {
|
|
resp = &types.PageResult{}
|
|
var list []types.AdapterInfo
|
|
db := l.svcCtx.DbEngin.Model(&types.AdapterInfo{}).Table("t_adapter")
|
|
|
|
if req.Name != "" {
|
|
db = db.Where("name LIKE ?", "%"+req.Name+"%")
|
|
}
|
|
if req.Nickname != "" {
|
|
db = db.Where("nickname LIKE ?", "%"+req.Nickname+"%")
|
|
}
|
|
if req.Type != "" {
|
|
db = db.Where("type = ?", req.Type)
|
|
}
|
|
if req.Version != "" {
|
|
db = db.Where("version = ?", req.Version)
|
|
}
|
|
|
|
err = db.Where("deleted_at is null").Order("create_time desc").Find(&list).Error
|
|
|
|
if err != nil {
|
|
return resp, err
|
|
}
|
|
|
|
rlist := make([]*types.ClusterRelationInfo, 0)
|
|
for _, v := range list {
|
|
cr := &types.ClusterRelationInfo{}
|
|
utils.Convert(&v, &cr)
|
|
clusters := make([]*types.ClusterInfo, 0)
|
|
l.svcCtx.DbEngin.Raw("select * from t_cluster where `deleted_at` IS NULL and adapter_id = ? ORDER BY create_time Desc", v.Id).Scan(&clusters)
|
|
for _, c := range clusters {
|
|
cr = &types.ClusterRelationInfo{}
|
|
utils.Convert(&v, &cr)
|
|
cr.CId = c.Id
|
|
cr.CAdapterId = string(c.AdapterId)
|
|
cr.CName = c.Name
|
|
cr.CNickname = c.Nickname
|
|
cr.CDescription = c.Description
|
|
cr.CServer = c.Server
|
|
cr.CMonitorServer = c.MonitorServer
|
|
cr.CUsername = c.Username
|
|
cr.CPassword = c.Password
|
|
cr.CToken = c.Token
|
|
cr.CAk = c.Ak
|
|
cr.CSk = c.Sk
|
|
cr.CRegion = c.Region
|
|
cr.CProjectId = c.ProjectId
|
|
cr.CVersion = c.Version
|
|
cr.CLabel = c.Label
|
|
cr.COwnerId = c.OwnerId
|
|
cr.CAuthType = c.AuthType
|
|
cr.CRegionDict = c.RegionDict
|
|
cr.CProducerDict = c.ProducerDict
|
|
cr.CCreateTime = c.CreateTime
|
|
rlist = append(rlist, cr)
|
|
}
|
|
if len(clusters) == 0 {
|
|
rlist = append(rlist, cr)
|
|
}
|
|
}
|
|
resp.List = rlist
|
|
return resp, nil
|
|
}
|