package service import ( "context" "icloudapp.cn/tools/service/dependency" "icloudapp.cn/tools/service/entity" "icloudapp.cn/tools/service/model" ) type Group struct { ctx context.Context dependency.IGroupRes query *model.MGroup } func NewGroup(ctx context.Context) *Group { group := &Group{ctx: ctx} group.query = model.Group return group } // Info 查询单个group信息 func (g *Group) Info(groupId int64) (*entity.Group, error) { query := model.Group group, err := query.WithContext(g.ctx).ReadDB().Where(query.GroupID.Eq(groupId)).First() if err != nil { return nil, err } return group, nil } // Infos 批量查询 group 信息 func (g *Group) Infos(groupsID ...int64) (map[int64]*entity.Group, error) { groups := make(map[int64]*entity.Group, len(groupsID)) groupsInfo, err := g.query.WithContext(g.ctx).ReadDB().Where(g.query.GroupID.In(groupsID...)).Find() if err != nil { return groups, err } for _, val := range groupsInfo { groups[val.GroupID] = val } for _, groupID := range groupsID { if _, ok := groups[groupID]; !ok { groups[groupID] = nil } } return groups, nil }