package user import ( "context" "leafdev.top/Ecosystem/recommender/internal/entity" ) func (s *Service) GetOrCreateExternalUser(c context.Context, externalUserId string, applicationEntity *entity.Application) (*entity.ExternalUser, error) { //Where(s.dao.UserTagScore.ExternalUserId.Eq(externalUserEntity.Id.Uint())). count, err := s.dao.WithContext(c).ExternalUser. Where(s.dao.ExternalUser.ApplicationId.Eq(applicationEntity.Id.Uint())). Where(s.dao.ExternalUser.ExternalId.Eq(externalUserId)).Count() if err != nil { return nil, err } if count > 0 { eu, err := s.dao.WithContext(c).ExternalUser. Where(s.dao.ExternalUser.ApplicationId.Eq(applicationEntity.Id.Uint())). Where(s.dao.ExternalUser.ExternalId.Eq(externalUserId)).First() if err != nil { return nil, err } return eu, nil } eu := &entity.ExternalUser{ ApplicationId: applicationEntity.Id, ExternalId: externalUserId, } err = s.dao.WithContext(c).ExternalUser.Create(eu) return eu, err }