2026-07-06 11:46:58 +08:00

31 lines
1.0 KiB
Go

package repository
import (
"hyapp-admin-server/internal/model"
)
// ListMoneyScopeOperators 返回所有配置过财务/数据范围的后台用户及其范围;
// 社交 BI 的"运营人员"就是这批人,不再依赖固定 team_id 约定。
func (s *Store) ListMoneyScopeOperators() ([]model.User, map[uint][]model.UserMoneyScope, error) {
var scopes []model.UserMoneyScope
if err := s.db.Order("user_id ASC, app_code ASC, region_id ASC").Find(&scopes).Error; err != nil {
return nil, nil, err
}
scopesByUser := map[uint][]model.UserMoneyScope{}
userIDs := make([]uint, 0, len(scopes))
for _, scope := range scopes {
if _, ok := scopesByUser[scope.UserID]; !ok {
userIDs = append(userIDs, scope.UserID)
}
scopesByUser[scope.UserID] = append(scopesByUser[scope.UserID], scope)
}
if len(userIDs) == 0 {
return []model.User{}, scopesByUser, nil
}
var users []model.User
if err := s.db.Where("id IN ?", userIDs).Order("id ASC").Find(&users).Error; err != nil {
return nil, nil, err
}
return users, scopesByUser, nil
}