Skip to content

Commit

Permalink
list group released apps support search (TencentBlueKing#2754)
Browse files Browse the repository at this point in the history
  • Loading branch information
AlkaidChan committed Nov 17, 2023
1 parent f53e7f6 commit 60d7aca
Show file tree
Hide file tree
Showing 9 changed files with 181 additions and 142 deletions.
13 changes: 7 additions & 6 deletions bcs-services/bcs-bscp/cmd/config-server/service/group.go
Original file line number Diff line number Diff line change
Expand Up @@ -271,13 +271,14 @@ func (s *Service) ListGroupReleasedApps(ctx context.Context, req *pbcs.ListGroup
return nil, err
}

lReq := &pbds.ListGroupRleasesdAppsReq{
BizId: req.BizId,
GroupId: req.GroupId,
Start: req.Start,
Limit: req.Limit,
lReq := &pbds.ListGroupReleasedAppsReq{
BizId: req.BizId,
GroupId: req.GroupId,
SearchKey: req.SearchKey,
Start: req.Start,
Limit: req.Limit,
}
lResp, err := s.client.DS.ListGroupRleasesdApps(grpcKit.RpcCtx(), lReq)
lResp, err := s.client.DS.ListGroupReleasedApps(grpcKit.RpcCtx(), lReq)
if err != nil {
logs.Errorf("list group released apps failed, err: %v, rid: %s", err, grpcKit.Rid)
return nil, err
Expand Down
23 changes: 12 additions & 11 deletions bcs-services/bcs-bscp/cmd/data-service/service/group.go
Original file line number Diff line number Diff line change
Expand Up @@ -403,25 +403,26 @@ func (s *Service) DeleteGroup(ctx context.Context, req *pbds.DeleteGroupReq) (*p
return new(pbbase.EmptyResp), nil
}

// ListGroupRleasesdApps list group's published apps and their release.
func (s *Service) ListGroupRleasesdApps(ctx context.Context, req *pbds.ListGroupRleasesdAppsReq) (
*pbds.ListGroupRleasesdAppsResp, error) {
// ListGroupReleasedApps list group's published apps and their release.
func (s *Service) ListGroupReleasedApps(ctx context.Context, req *pbds.ListGroupReleasedAppsReq) (
*pbds.ListGroupReleasedAppsResp, error) {
kt := kit.FromGrpcContext(ctx)

resp, err := s.dao.Group().ListGroupRleasesdApps(kt, &types.ListGroupRleasesdAppsOption{
BizID: req.BizId,
GroupID: req.GroupId,
Start: req.Start,
Limit: req.Limit,
resp, err := s.dao.Group().ListGroupReleasedApps(kt, &types.ListGroupReleasedAppsOption{
BizID: req.BizId,
GroupID: req.GroupId,
SearchKey: req.SearchKey,
Start: req.Start,
Limit: req.Limit,
})
if err != nil {
logs.Errorf("list groups published apps failed, err: %v, rid: %s", err, kt.Rid)
return nil, err
}

data := make([]*pbds.ListGroupRleasesdAppsResp_ListGroupReleasedAppsData, len(resp.Details))
data := make([]*pbds.ListGroupReleasedAppsResp_ListGroupReleasedAppsData, len(resp.Details))
for idx, detail := range resp.Details {
data[idx] = &pbds.ListGroupRleasesdAppsResp_ListGroupReleasedAppsData{
data[idx] = &pbds.ListGroupReleasedAppsResp_ListGroupReleasedAppsData{
AppId: detail.AppID,
AppName: detail.AppName,
ReleaseId: detail.ReleaseID,
Expand All @@ -430,7 +431,7 @@ func (s *Service) ListGroupRleasesdApps(ctx context.Context, req *pbds.ListGroup
}
}

return &pbds.ListGroupRleasesdAppsResp{
return &pbds.ListGroupReleasedAppsResp{
Count: resp.Count,
Details: data,
}, nil
Expand Down
40 changes: 27 additions & 13 deletions bcs-services/bcs-bscp/pkg/dal/dao/group.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ type Group interface {
DeleteWithTx(kit *kit.Kit, tx *gen.QueryTx, group *table.Group) error
// ListAppGroups list all the groups of the app.
ListAppGroups(kit *kit.Kit, bizID, appID uint32) ([]*table.Group, error)
// ListGroupRleasesdApps list all the released apps of the group.
ListGroupRleasesdApps(kit *kit.Kit, opts *types.ListGroupRleasesdAppsOption) (
*types.ListGroupRleasesdAppsDetails, error)
// ListGroupReleasedApps list all the released apps of the group.
ListGroupReleasedApps(kit *kit.Kit, opts *types.ListGroupReleasedAppsOption) (
*types.ListGroupReleasedAppsDetails, error)
}

var _ Group = new(groupDao)
Expand Down Expand Up @@ -198,9 +198,9 @@ func (dao *groupDao) ListAppGroups(kit *kit.Kit, bizID, appID uint32) ([]*table.
Find()
}

// ListGroupRleasesdApps list group released apps and their latest release info.
func (dao *groupDao) ListGroupRleasesdApps(kit *kit.Kit, opts *types.ListGroupRleasesdAppsOption) (
*types.ListGroupRleasesdAppsDetails, error) {
// ListGroupReleasedApps list group released apps and their latest release info.
func (dao *groupDao) ListGroupReleasedApps(kit *kit.Kit, opts *types.ListGroupReleasedAppsOption) (
*types.ListGroupReleasedAppsDetails, error) {
if opts == nil {
return nil, errf.New(errf.InvalidParameter, "list group released apps options null")
}
Expand All @@ -209,22 +209,36 @@ func (dao *groupDao) ListGroupRleasesdApps(kit *kit.Kit, opts *types.ListGroupRl
}

a := dao.genQ.App
aq := a.WithContext(kit.Ctx)
r := dao.genQ.Release
g := dao.genQ.ReleasedGroup

list := make([]*types.ListGroupRleasesdAppsData, 0)
list := make([]*types.ListGroupReleasedAppsData, 0)

count, err := a.WithContext(kit.Ctx).
Select(a.ID.As("app_id"), a.Name.As("app_name"), r.ID.As("release_id"), r.Name.As("release_name"), g.Edited).
Join(r, a.ID.EqCol(r.AppID)).Join(g, r.ID.EqCol(g.ReleaseID), a.ID.EqCol(g.AppID)).
Where(g.GroupID.Eq(opts.GroupID), a.BizID.Eq(opts.BizID), r.BizID.Eq(opts.BizID), g.BizID.Eq(opts.BizID)).
ScanByPage(&list, int(opts.Start), int(opts.Limit))
var count int64
var err error

if opts.SearchKey == "" {
count, err = a.WithContext(kit.Ctx).
Select(a.ID.As("app_id"), a.Name.As("app_name"), r.ID.As("release_id"), r.Name.As("release_name"), g.Edited).
Join(r, a.ID.EqCol(r.AppID)).Join(g, r.ID.EqCol(g.ReleaseID), a.ID.EqCol(g.AppID)).
Where(g.GroupID.Eq(opts.GroupID), a.BizID.Eq(opts.BizID), r.BizID.Eq(opts.BizID), g.BizID.Eq(opts.BizID)).
ScanByPage(&list, int(opts.Start), int(opts.Limit))
} else {
searcyKey := fmt.Sprintf("%%%s%%", opts.SearchKey)
count, err = a.WithContext(kit.Ctx).
Select(a.ID.As("app_id"), a.Name.As("app_name"), r.ID.As("release_id"), r.Name.As("release_name"), g.Edited).
Join(r, a.ID.EqCol(r.AppID)).Join(g, r.ID.EqCol(g.ReleaseID), a.ID.EqCol(g.AppID)).
Where(g.GroupID.Eq(opts.GroupID), a.BizID.Eq(opts.BizID), r.BizID.Eq(opts.BizID), g.BizID.Eq(opts.BizID)).
Where(aq.Where(a.Name.Like(searcyKey)).Or(r.Name.Like(searcyKey))).
ScanByPage(&list, int(opts.Start), int(opts.Limit))
}

if err != nil {
return nil, err
}

return &types.ListGroupRleasesdAppsDetails{
return &types.ListGroupReleasedAppsDetails{
Count: uint32(count),
Details: list,
}, nil
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -2060,10 +2060,11 @@ message ListAppGroupsResp {
}

message ListGroupReleasedAppsReq {
uint32 biz_id = 1;
uint32 group_id = 2;
uint32 start = 3;
uint32 limit = 4;
uint32 biz_id = 1;
uint32 group_id = 2;
string search_key = 3;
uint32 start = 4;
uint32 limit = 5;
}

message ListGroupReleasedAppsResp {
Expand Down
Loading

0 comments on commit 60d7aca

Please sign in to comment.