Package com.sparc.knappsack.components.dao

Source Code of com.sparc.knappsack.components.dao.UserDetailsDaoImpl

package com.sparc.knappsack.components.dao;

import com.mysema.query.types.path.StringPath;
import com.sparc.knappsack.components.entities.Organization;
import com.sparc.knappsack.components.entities.QUser;
import com.sparc.knappsack.components.entities.User;
import org.springframework.stereotype.Repository;
import org.springframework.util.StringUtils;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

@Repository("userDetailsDao")
public class UserDetailsDaoImpl extends BaseDao implements UserDetailsDao {
    QUser userDetails = QUser.user;

    public void add(User user) {
        getEntityManager().persist(user);
    }

    public List<User> getAll() {
        return query().from(userDetails).distinct().list(userDetails);
    }

    public User get(Long id) {
        return getEntityManager().find(User.class, id);
    }

    public List<User> get(List<Long> ids) {
        if(ids == null || ids.isEmpty()) {
            return new ArrayList<User>();
        }
        return query().from(userDetails).where(userDetails.id.in(ids)).list(userDetails);
    }

    public void delete(User user) {
        getEntityManager().remove(getEntityManager().merge(user));
    }

    public User findByOpenIdIdentifier(String openIdIdentifier) {
        StringPath stringPath = new StringPath("openId");
        return query().from(userDetails).where(userDetails.openIdIdentifiers.contains(openIdIdentifier)).uniqueResult(userDetails);
    }

    public User findByEmail(String email) {
        return query().from(userDetails).where(userDetails.email.equalsIgnoreCase(email)).uniqueResult(userDetails);
    }
   
    public User findByUserName(String userName) {
        return query().from(userDetails).where(userDetails.username.equalsIgnoreCase(userName)).uniqueResult(userDetails);
    }

    @Override
    public List<User> getBatch(List<Long> ids) {
        return query().from(userDetails).where(userDetails.id.in(ids)).distinct().list(userDetails);
    }

    @Override
    public List<User> getBatchForEmails(List<String> emails) {
        Set<String> formattedEmails = new HashSet<String>();
        for (String email : emails) {
            formattedEmails.add(StringUtils.trimAllWhitespace(email.toLowerCase()));
        }
        return cacheableQuery().from(userDetails).where(userDetails.email.in(formattedEmails)).distinct().list(userDetails);
    }

    public void update(User user) {
        getEntityManager().merge(user);
    }

    public long countAll() {
        return query().from(userDetails).count();
    }

    public List<User> getUsersByActiveOrganization(Organization org) {
        return cacheableQuery().from(userDetails).where(userDetails.activeOrganization.eq(org)).list(userDetails);
    }
   
}
TOP

Related Classes of com.sparc.knappsack.components.dao.UserDetailsDaoImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.