This commit is contained in:
Mrx
2026-06-07 21:49:12 +08:00
11 changed files with 319 additions and 29 deletions

View File

@@ -21,6 +21,7 @@ type UserSubordinateLink struct {
ParentUserID string `gorm:"type:varchar(36);not null;index:idx_parent,priority:1" json:"parent_user_id" comment:"主账号用户ID"`
ChildUserID string `gorm:"type:varchar(36);not null;uniqueIndex" json:"child_user_id" comment:"子账号用户ID(唯一)"`
InvitationID *string `gorm:"type:varchar(36);index" json:"invitation_id,omitempty" comment:"关联的邀请ID"`
Remark string `gorm:"type:varchar(255)" json:"remark" comment:"主账号备注"`
Status LinkStatus `gorm:"type:varchar(20);not null;default:active" json:"status" comment:"状态"`
CreatedAt time.Time `gorm:"autoCreateTime" json:"created_at"`

View File

@@ -0,0 +1,8 @@
package repositories
// SubordinateListFilter 下属列表筛选
type SubordinateListFilter struct {
Remark string
Phone string
CompanyName string
}

View File

@@ -21,7 +21,8 @@ type SubordinateRepository interface {
CreateLink(ctx context.Context, link *entities.UserSubordinateLink) error
FindLinkByChildUserID(ctx context.Context, childUserID string) (*entities.UserSubordinateLink, error)
FindLinkByParentAndChild(ctx context.Context, parentUserID, childUserID string) (*entities.UserSubordinateLink, error)
ListChildrenByParent(ctx context.Context, parentUserID string, limit, offset int) ([]*entities.UserSubordinateLink, int64, error)
ListChildrenByParent(ctx context.Context, parentUserID string, filter SubordinateListFilter, limit, offset int) ([]*entities.UserSubordinateLink, int64, error)
ListQuotaAccountsByUserIDs(ctx context.Context, userIDs []string) ([]*entities.UserProductQuotaAccount, error)
UpdateLink(ctx context.Context, link *entities.UserSubordinateLink) error
// 是否存在子账号关系(任意子账号)
IsUserSubordinate(ctx context.Context, userID string) (bool, error)