spark-server/internal/module/group/model/find.go
2026-09-23 17:11:56 +08:00

28 lines
705 B
Go

package model
import (
"context"
"spark-server/internal/module/group/entity"
"spark-server/internal/pkg/errs"
)
// FindByOwnerAndName returns the active group owned by ownerID with the given name.
func (m *Repo) FindByOwnerAndName(ctx context.Context, ownerID int64, name string) (*entity.Group, error) {
if ownerID <= 0 || name == "" {
return nil, errs.ErrInvalidArgument
}
db, err := m.session(ctx)
if err != nil {
return nil, err
}
var row Group
err = db.Table("`t_groups`").
Where("owner_id = ? AND name = ? AND status = ?", ownerID, name, entity.StatusActive).
Order("id ASC").Limit(1).Take(&row).Error
if err != nil {
return nil, mapDBErr(err)
}
return row.entity(), nil
}