Package net.naijatek.myalumni.modules.common.persistence.hibernate

Source Code of net.naijatek.myalumni.modules.common.persistence.hibernate.MemberHibernateDao

/*
* ====================================================================
* Copyright (C) 1997-2008 by Naijatek.com
*
* All copyright notices regarding MyAlumni MUST remain
* intact in the scripts and in the outputted HTML.
* The "powered by" text/logo with a link back to
* http://www.naijatek.com in
* the footer of the pages MUST remain visible when the pages
* are viewed on the internet or intranet.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*
* Support can be obtained from support forums at:
* http://www.naijatek.com/myalumni/forum
*
* Correspondence and Marketing Questions can be sent to:
* info at naijatek com
*
* <p>Title: MyAlumni </p>
* <p>Description: This system helps keep alive the line of communications between alumni/alumnus</p>
* <p>Copyright: Copyright (c) 1997-2008</p>
* <p>Company: Naijatek Solutions (http://www.naijatek.com)</p>
* @author Folashade Adeyosoye (shardayyy@naijatek.com)
* @version 1.0
*/
package net.naijatek.myalumni.modules.common.persistence.hibernate;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;

import org.apache.commons.lang.StringUtils;


import net.naijatek.myalumni.framework.exceptions.MyAlumniException;
import net.naijatek.myalumni.framework.struts.MyAlumniBaseException;
import net.naijatek.myalumni.modules.common.domain.LoginHistoryVO;
import net.naijatek.myalumni.modules.common.domain.MemberVO;
import net.naijatek.myalumni.modules.common.domain.XlatDetailVO;
import net.naijatek.myalumni.modules.common.persistence.BaseHibernateDao;
import net.naijatek.myalumni.modules.common.persistence.iface.MemberDao;
import net.naijatek.myalumni.util.BaseConstants;


public class MemberHibernateDao extends BaseHibernateDao implements MemberDao {


  //*********************************************************************************************
  //****************************  END OF HELPERS *******************************************************
  //*********************************************************************************************

 
  public void save(MemberVO o) {
    add(o);
  }
 
  public void saveAll(List<MemberVO> members){
    batchAdd(members);
  }

  public void hardDeleteObject(String id) throws MyAlumniException {
    try{
      hardDelete(load(MemberVO.class, id));
    } catch(Exception e){
      throw new MyAlumniException("Could not delete Black List because " + e.getMessage());
    }
  }

  public void softDeleteObject(String id, String lastModifiedBy) throws MyAlumniException {
    try{
      MemberVO o = (MemberVO) getHibernateTemplate().get(MemberVO.class, id);
      o.setMemberStatus(BaseConstants.ACCOUNT_DELETED);     
      softDelete(o, lastModifiedBy);
    } catch(Exception e){
      throw new MyAlumniException("Could not delete member because " + e.getMessage());
    }
  }
 
  @SuppressWarnings("unchecked")
  public List<MemberVO> findAll() {
    return getHibernateTemplate().find("from MemberVO");
  }
      
  @SuppressWarnings("unchecked")
    public List<MemberVO> findAllByStatus(String memberStatus) {
     return getHibernateTemplate().findByNamedQueryAndNamedParam("members.bystatus", "memberStatus", memberStatus);
  }
       
  public MemberVO findById(String id) {
    return (MemberVO) get(MemberVO.class, id);
  }

  public void mergeObject(MemberVO o) {
     update(o);
  }
 
  @SuppressWarnings("unchecked")
    private MemberVO findMemberByUserName(String memberUserName) {
    return (MemberVO) getSession().getNamedQuery("members.byusername")
        .setParameter("memberUserName", memberUserName)
        .uniqueResult();
  }
      
 
 
  //*********************************************************************************************
  //****************************  END OF HELPERS *******************************************************
  //*********************************************************************************************

 
  public void activateMemberByUserName(String memberUserName, String lastModifiedBy) {
    MemberVO o = findMemberByUserName(memberUserName);
   
    o.setMemberStatus(BaseConstants.ACCOUNT_ACTIVE);
    o.setLastModifiedBy(lastModifiedBy);
    update(o);
  }

  @SuppressWarnings("unchecked")
  public List<MemberVO> adminGetAllMembers(int offset, int rowsToReturn) {
    return getHibernateTemplate().find("from MemberVO");
  }

  @SuppressWarnings("unchecked")
  public List<MemberVO> adminGetOneMembers(String memberUserName) {
    MemberVO o =  findMemberByUserName(memberUserName);
    List<MemberVO> lst = new ArrayList<MemberVO>();
    lst.add(o);
    return lst;
  }

  @SuppressWarnings("unchecked")
  public List<MemberVO> adminGetMembersByStatus(int offset, int rowsToReturn, String status) {
    return findAllByStatus(status);
  }


  public void createMember(MemberVO member) throws MyAlumniBaseException {
   
   
        // set dropdown menus
        if(!StringUtils.isBlank(member.getTitleId()))
          member.setTitle(new XlatDetailVO(member.getTitleId()));
        else
          member.setTitle(new XlatDetailVO());
       
        if (!StringUtils.isBlank(member.getDormitoryId()))
          member.setDormitory(new XlatDetailVO(member.getDormitoryId()));
        else
          member.setDormitory(new XlatDetailVO());
         
        if (!StringUtils.isBlank(member.getCareerId()))
          member.setCareer(new XlatDetailVO(member.getCareerId()));
        else
            member.setCareer(new XlatDetailVO());
       
        if (!StringUtils.isBlank(member.getCountryId()))
          member.setCountry(new XlatDetailVO(member.getCountryId()));
        else
          member.setCountry(new XlatDetailVO());
  

        add(member);
   
  }

  public void deactivateMemberByUserName(String memberUserName, String lastModifiedBy) {
    MemberVO o = findMemberByUserName(memberUserName);
   
    if (o != null){
      o.setMemberStatus(BaseConstants.ACCOUNT_DEACTIVATED);
      o.setLastModifiedBy(lastModifiedBy);
      update(o);
    }
  }

  public void deleteMemberByUserName(String memberUserName) {
    MemberVO o = findMemberByUserName(memberUserName);
   
    if (o != null){
      hardDelete(o);
    }

  }

  public List<MemberVO> getAllMembers() {
    return findAll();
  }

  public List<MemberVO> getAllStatistics() {
    return findAll();
  }

  @SuppressWarnings("unchecked")
  public List<MemberVO> getBirthdayListOfTheMonth(String month) {
        Calendar now = new GregorianCalendar();
        int today = now.get(java.util.Calendar.DATE);
    return  getSession().getNamedQuery("member.bday.bymonth.list")
        .setParameter("month", month)
        .setParameter("today", String.valueOf(today))
        .list();
  }
 
  @SuppressWarnings("unchecked")
  public List<MemberVO> getTodayBirthdayMembers(String month, String day){
    return  getSession().getNamedQuery("member.bday.bymonth.byday")
        .setParameter("month", month)
        .setParameter("day", day)
        .list();   
  }

  @SuppressWarnings("unchecked")
  public List<MemberVO> getLatestMembers(int rowsToReturn) {
    return  getSession().createQuery("select from MemberVO e where e.memberStatus = :memberStatus order by e.creationDate desc")
    .setParameter("memberStatus", BaseConstants.ACCOUNT_ACTIVE)
    .setMaxResults(rowsToReturn)
    .list();
   
  }

  public String getMemberEmailByMemberId(String memberId){
    MemberVO o = findById(memberId);
    String email = "";
    if (o != null){
      email = o.getEmail();
    }
    return email;   
  }
 
  public String getMemberPasswordByUserName(String memberUserName) {
    MemberVO o = findMemberByUserName(memberUserName);
    String pswd = "";
    if (o != null){
      pswd = o.getMemberPassword();
    }
    return pswd;
  }

  public MemberVO getMemberProfileByUserName(String memberUserName) {
    return findMemberByUserName(memberUserName);
  }
 

  public String getMemberStatusByUserName(String memberUserName) {
    MemberVO o = findMemberByUserName(memberUserName);
    String memberStatus = "";
    if (o != null){
      memberStatus = o.getMemberStatus();
    }
    return memberStatus;
  }

  @SuppressWarnings("unchecked")
  public List<MemberVO> getMembersToAdminister() {
    return getHibernateTemplate().findByNamedQuery("members.toadminister");
  }
 
  public boolean isAccountActivatedByMemberId(String memberId) {
    MemberVO o = findById(memberId);
    boolean activated = false;
   
    if (o != null && !o.getMemberStatus().equals(BaseConstants.ACCOUNT_UNAPPROVED)){
      activated = true;
    }
    return activated;
 

  @SuppressWarnings("unchecked")
  public boolean isMemberAvailableByEmail(String email, String exceptmemberId) {
   
    int count =  getSession().getNamedQuery("member.doesemailalreadyexist")
        .setParameter("email", email)
        .setParameter("memberId", exceptmemberId)
        .list().size();
   
    if (count > 0)
      return true;
    else
      return false;
  }

  @SuppressWarnings("unchecked")
  public boolean isEmailRegisteredAlready(String email) {
   
    int count =  getSession().getNamedQuery("members.byemail")
        .setParameter("email", email)
        .list().size();
   
    if (count > 0)
      return true;
    else
      return false;
  }

 
  public boolean isMemberAvailableByUserName(String memberUserName) {
    MemberVO o = findMemberByUserName(memberUserName);
   
    if (o == null)
      return false;
    else
      return true;
  }

 
  public boolean lockMemberAccount(String memberUserName, String lastModifiedBy) {
    MemberVO o = findMemberByUserName(memberUserName);
    boolean status = false;
    if (o != null){
      o.setMemberStatus(BaseConstants.ACCOUNT_LOCKED);
      o.setLastModifiedBy(lastModifiedBy);
      update(o);
      status = true;
    }
    return status;
  }
 
  public boolean unLockMemberAccount(String memberUserName, String lastModifiedBy){
    MemberVO o = findMemberByUserName(memberUserName);
    boolean status = false;
    if (o != null){
      o.setMemberStatus(BaseConstants.ACCOUNT_ACTIVE);
      o.setLastModifiedBy(lastModifiedBy);
      update(o);
      status = true;
    }
    return status;
  }

 
  public void lockMemberByUserName(String memberUserName, String lastModifiedBy) {
    MemberVO o = findMemberByUserName(memberUserName);
   
    if (o != null){
      o.setMemberStatus(BaseConstants.ACCOUNT_LOCKED);
      o.setLastModifiedBy(lastModifiedBy);
      update(o);
    }
  }

  /**
   *
   */
  @SuppressWarnings("unchecked")
  public List<MemberVO> searchAvatar(int offset, int rowsToReturn, String isAdmin) {

    StringBuffer query = new StringBuffer();
    List<MemberVO> result = new ArrayList<MemberVO>();
   
    // start query
    query.append("from MemberVO e where e.avatar != ''");

    if (!isAdmin.equals(BaseConstants.BOOLEAN_YES)){
      query.append("and e.memberStatus =  '" + BaseConstants.ACCOUNT_ACTIVE + "' ");
    }
   
    result = getSession().createQuery(query.toString()).list();
    return result;
  }


  /**
   *
   */
  @SuppressWarnings("unchecked")
  public List<MemberVO> searchFirstName(String firstName,
      String partialNameSearch, int offset, int rowsToReturn, String isAdmin) {

    String partialNameSearchFlag ;
    StringBuffer query = new StringBuffer();
    List<MemberVO> result = new ArrayList<MemberVO>();
   
    if (partialNameSearch.equals(BaseConstants.BOOLEAN_YES)){
      partialNameSearchFlag = " like ";
    }
    else{
      partialNameSearchFlag = " = ";
    }
   
    // start query
    query.append("from MemberVO e where ");
    query.append("upper(e.firstName)").append(partialNameSearchFlag).append("upper('%");
    query.append(firstName);
    query.append("%') " );

    if (!isAdmin.equals(BaseConstants.BOOLEAN_YES)){
      query.append("and e.memberStatus =  '" + BaseConstants.ACCOUNT_ACTIVE + "' ");
    }
   
    result = getSession().createQuery(query.toString()).list();
    return result;
   
  }

  /**
   *
   */
  @SuppressWarnings("unchecked")
  public List<MemberVO> searchFullSearchOnMembers(String firstName,
      String lastName, String dormitory, String gender, String yearIn,
      String yearOut, String marriageName, String nickName,
      String maidenName, String partialNameSearch, int offset,
      int rowsToReturn, String isAdmin) {
   
      List<MemberVO> result = new ArrayList<MemberVO>();
      StringBuffer query = new StringBuffer();
      String partialNameSearchFlag ;
      boolean firstCategory = false;
     
     
      if (partialNameSearch.equals(BaseConstants.BOOLEAN_YES)){
        partialNameSearchFlag = " like ";
      }
      else{
        partialNameSearchFlag = " = ";
      }
     
      // start query
      query.append("select from MemberVO e where ");
     
      if (firstName != null && firstName.length() > 0){
        query.append("upper(e.firstName)").append(partialNameSearchFlag).append("upper('%");
        query.append(firstName);
        query.append("%') " );
        firstCategory = true;
      }
     
      if (lastName != null && lastName.length() > 0){
        query.append(verifyFirstCategory(firstCategory) + " upper(e.lastName)").append(partialNameSearchFlag).append("upper('%");
        query.append(lastName);
        query.append("%') " );
        firstCategory = true;
      }
     
      if (dormitory != null && dormitory.length() > 0){
        query.append(verifyFirstCategory(firstCategory) + " e.dormitory = '" + dormitory + "' ");
        firstCategory = true;
      }
     
      if (gender != null && gender.length() > 0){
        query.append(verifyFirstCategory(firstCategory) + " e.gender =  '" + gender + "' ");
        firstCategory = true;
      }
     
      if (yearIn != null && yearIn.length() > 0){
        query.append(verifyFirstCategory(firstCategory) + " e.yearIn =  '" + yearIn + "' ");
        firstCategory = true;
      }
     
      if (yearOut != null && yearOut.length() > 0){
        query.append(verifyFirstCategory(firstCategory) + " e.yearOut =  '" + yearOut + "' ");
        firstCategory = true;
      }

     
      if (marriageName != null && marriageName.length() > 0){
        query.append(verifyFirstCategory(firstCategory) + " upper(e.lastName)").append(partialNameSearchFlag).append("upper('%");
        query.append(marriageName);
        query.append("%') " );
        firstCategory = true;
      }
     
      if (maidenName != null && maidenName.length() > 0){
        query.append(verifyFirstCategory(firstCategory) + " upper(e.maidenName)").append(partialNameSearchFlag).append("upper('%");
        query.append(maidenName);
        query.append("%') " );
        firstCategory = true;
      }
     
      if (nickName != null && nickName.length() > 0){
        query.append(verifyFirstCategory(firstCategory) + " upper(e.nickName)").append(partialNameSearchFlag).append("upper('%");
        query.append(nickName);
        query.append("%') " );
        firstCategory = true;
      }
     
      if (!isAdmin.equals(BaseConstants.BOOLEAN_YES)){
        query.append(verifyFirstCategory(firstCategory) + " e.memberStatus =  '" + BaseConstants.ACCOUNT_ACTIVE + "' ");
      }

      result = getSession().createQuery(query.toString()).list();
      return result;
  }

  private String verifyFirstCategory(boolean firstCategory){
    if (firstCategory)
      return " and ";
    else
      return "";
  }
 
 
  /**
   *
   */
  @SuppressWarnings("unchecked")
  public List<MemberVO> searchGender(String gender, int offset,
      int rowsToReturn, String isAdmin) {

    StringBuffer query = new StringBuffer();
    List<MemberVO> result = new ArrayList<MemberVO>();
   
    // start query
    query.append("from MemberVO e where e.gender = '" + gender + "' ");

    if (!isAdmin.equals(BaseConstants.BOOLEAN_YES)){
      query.append("and e.memberStatus =  '" + BaseConstants.ACCOUNT_ACTIVE + "' ");
    }
   
    result = getSession().createQuery(query.toString()).list();
    return result;
  }

  /**
   *
   */
  @SuppressWarnings("unchecked")
  public List<MemberVO> searchDomitory(String domitory, int offset,
      int rowsToReturn, String isAdmin) {

    StringBuffer query = new StringBuffer();
    List<MemberVO> result = new ArrayList<MemberVO>();

   
    // start query
    query.append("from MemberVO e where e.dormitoryId = '" + domitory + "' ");

    if (!isAdmin.equals(BaseConstants.BOOLEAN_YES)){
      query.append("and e.memberStatus =  '" + BaseConstants.ACCOUNT_ACTIVE + "' ");
    }
   
    result = getSession().createQuery(query.toString()).list();
    return result;

  }

 
  /**
   *
   */
  @SuppressWarnings("unchecked")
  public List<MemberVO> searchLastName(String lastName,
      String partialNameSearch, int offset, int rowsToReturn, String isAdmin) {

    String partialNameSearchFlag ;
    StringBuffer query = new StringBuffer();
    List<MemberVO> result = new ArrayList<MemberVO>();
   
    if (partialNameSearch.equals(BaseConstants.BOOLEAN_YES)){
      partialNameSearchFlag = " like ";
    }
    else{
      partialNameSearchFlag = " = ";
    }
   
    // start query
    query.append("from MemberVO e where ");
    query.append("upper(e.lastName)").append(partialNameSearchFlag).append("upper('%");
    query.append(lastName);
    query.append("%') " );

    if (!isAdmin.equals(BaseConstants.BOOLEAN_YES)){
      query.append("and e.memberStatus =  '" + BaseConstants.ACCOUNT_ACTIVE + "' ");
    }
   
    result = getSession().createQuery(query.toString()).list();
    return result;
  }

 
  /**
   *
   */
  @SuppressWarnings("unchecked")
  public List<MemberVO> searchMaidenName(String maidenName,
      String partialNameSearch, int offset, int rowsToReturn, String isAdmin) {

    String partialNameSearchFlag ;
    StringBuffer query = new StringBuffer();
    List<MemberVO> result = new ArrayList<MemberVO>();
   
    if (partialNameSearch.equals(BaseConstants.BOOLEAN_YES)){
      partialNameSearchFlag = " like ";
    }
    else{
      partialNameSearchFlag = " = ";
    }
   
    // start query
    query.append("from MemberVO e where ");
    query.append("upper(e.maidenName)").append(partialNameSearchFlag).append("upper('%");
    query.append(maidenName);
    query.append("%') " );

    if (!isAdmin.equals(BaseConstants.BOOLEAN_YES)){
      query.append("and e.memberStatus =  '" + BaseConstants.ACCOUNT_ACTIVE + "' ");
    }
   
    result = getSession().createQuery(query.toString()).list();
    return result;
  }

 
  /**
   *
   */
  @SuppressWarnings("unchecked")
  public List<MemberVO> searchNickName(String nickname,
      String partialNameSearch, int offset, int rowsToReturn, String isAdmin) {

    String partialNameSearchFlag ;
    StringBuffer query = new StringBuffer();
    List<MemberVO> result = new ArrayList<MemberVO>();
   
    if (partialNameSearch.equals(BaseConstants.BOOLEAN_YES)){
      partialNameSearchFlag = " like ";
    }
    else{
      partialNameSearchFlag = " = ";
    }
   
    // start query
    query.append("from MemberVO e where ");
    query.append("upper(e.nickName)").append(partialNameSearchFlag).append("upper('%");
    query.append(nickname);
    query.append("%') " );

    if (!isAdmin.equals(BaseConstants.BOOLEAN_YES)){
      query.append("and e.memberStatus =  '" + BaseConstants.ACCOUNT_ACTIVE + "' ");
    }
   
    result = getSession().createQuery(query.toString()).list();
    return result;
  }

 
  /**
   *
   */
  @SuppressWarnings("unchecked")
  public List<MemberVO> searchUserNamePartial(String memberUserName,
      String partialNameSearch, int offset, int rowsToReturn, String isAdmin) {


    String partialNameSearchFlag ;
    StringBuffer query = new StringBuffer();
    List<MemberVO> result = new ArrayList<MemberVO>();
   
    if (partialNameSearch.equals(BaseConstants.BOOLEAN_YES)){
      partialNameSearchFlag = " like ";
    }
    else{
      partialNameSearchFlag = " = ";
    }
   
    // start query
    query.append("from MemberVO e where ");
    query.append("upper(e.memberUserName)").append(partialNameSearchFlag).append("upper('%");
    query.append(memberUserName);
    query.append("%') " );

    if (!isAdmin.equals(BaseConstants.BOOLEAN_YES)){
      query.append("and e.memberStatus =  '" + BaseConstants.ACCOUNT_ACTIVE + "' ");
    }
   
    result = getSession().createQuery(query.toString()).list();
    return result;
  }

 
  @SuppressWarnings("unchecked")
  public List<MemberVO> searchEmail(String email,
      String partialNameSearch, int offset, int rowsToReturn, String isAdmin) {


    String partialNameSearchFlag ;
    StringBuffer query = new StringBuffer();
    List<MemberVO> result = new ArrayList<MemberVO>();
   
    if (partialNameSearch.equals(BaseConstants.BOOLEAN_YES)){
      partialNameSearchFlag = " like ";
    }
    else{
      partialNameSearchFlag = " = ";
    }
   
    // start query
    query.append("from MemberVO e where ");
    query.append("upper(e.email)").append(partialNameSearchFlag).append("upper('%");
    query.append(email);
    query.append("%') " );

    if (!isAdmin.equals(BaseConstants.BOOLEAN_YES)){
      query.append("and e.memberStatus =  '" + BaseConstants.ACCOUNT_ACTIVE + "' ");
    }
   
    result = getSession().createQuery(query.toString()).list();
    return result;
  }
 
  /**
   *
   */
  @SuppressWarnings("unchecked")
  public List<MemberVO> searchYearIn(String yearIn, int offset,
      int rowsToReturn, String isAdmin) {

    StringBuffer query = new StringBuffer();
    List<MemberVO> result = new ArrayList<MemberVO>();
   
    // start query
    query.append("from MemberVO e where e.yearIn = '" + yearIn + "' ");

    if (!isAdmin.equals(BaseConstants.BOOLEAN_YES)){
      query.append("and e.memberStatus =  '" + BaseConstants.ACCOUNT_ACTIVE + "' ");
    }
   
    result = getSession().createQuery(query.toString()).list();
    return result;
  }

 
  /**
   *
   */
  @SuppressWarnings("unchecked")
  public List<MemberVO> searchYearOut(String yearOut, int offset,
      int rowsToReturn, String isAdmin) {


    StringBuffer query = new StringBuffer();
    List<MemberVO> result = new ArrayList<MemberVO>();
   
    // start query
    query.append("from MemberVO e where e.yearOut = '" + yearOut + "' ");

    if (!isAdmin.equals(BaseConstants.BOOLEAN_YES)){
      query.append("and e.memberStatus =  '" + BaseConstants.ACCOUNT_ACTIVE + "' ");
    }
   
    result = getSession().createQuery(query.toString()).list();
    return result;
  }

 
  /**
   *
   */
  @SuppressWarnings("unchecked")
  public void updateMemberAvatar(String avatar, String memberUserName, String lastModifiedBy) {
   
    MemberVO o = findMemberByUserName(memberUserName);

    if (o != null){
      o.setAvatar(avatar);
      o.setLastModifiedBy(lastModifiedBy);
      update(o);
    }
  }
 
  @SuppressWarnings("unchecked")
  public void deleteMemberAvatar(String avatar, String memberUserName, String lastModifiedBy){
    MemberVO o = findMemberByUserName(memberUserName);
   
    if (o != null && o.getAvatar().equalsIgnoreCase(avatar)){
      o.setAvatar("");
      o.setLastModifiedBy(lastModifiedBy);
      update(o);
    }
  }

  public void updateMemberEmail(String email, String memberUserName, String lastModifiedBy) {
   
    MemberVO o = findMemberByUserName(memberUserName);

    if (o != null){
      o.setEmail(email);
      o.setLastModifiedBy(lastModifiedBy);
      update(o);
    }

  }

  public void updateMemberPassword(String memberUserName, String memberPassword, String lastModifiedBy) {
   
    MemberVO o = findMemberByUserName(memberUserName);

    if (o != null){
      o.setMemberPassword(memberPassword);
      o.setLastModifiedBy(lastModifiedBy);
      update(o);
    }

  }

  public void updateMemberProfile(MemberVO o, String lastModifiedBy) {
   
    MemberVO _o = findMemberByUserName(o.getMemberUserName());
    _o.updateMember(o);
   
    if (_o != null){
      _o.setLastModifiedBy(lastModifiedBy);
      update(_o);
    }

  }

  public void updateMemberSignature(String signature, String memberUserName, String lastModifiedBy) {

    MemberVO o = findMemberByUserName(memberUserName);

    if (o != null){
      o.setSignature(signature);
      o.setLastModifiedBy(lastModifiedBy);
      update(o);
    }

  }

  public void updateMemberUserName(String memberTempUserName,
      String memberUserName, String memberEmail, String memberPassword, String lastModifiedBy) {

    MemberVO o = findMemberByUserName(memberTempUserName);

    if (o != null){
      o.setMemberUserName(memberUserName);
      o.setMemberPassword(memberPassword);
      o.setEmail(memberEmail);
      o.setLastModifiedBy(lastModifiedBy);
      update(o);
    }

  }

  //************************************************
  // Admin User Section
  //************************************************
    @SuppressWarnings("unchecked")
    public List<LoginHistoryVO> getAccessTrailsByUserName(String memebrId){ 
      return getHibernateTemplate().findByNamedQueryAndNamedParam("accesslog.byusername", "memberUsername", getMember(memebrId).getMemberUserName());
    }
   
    @SuppressWarnings("unchecked")
    public List<LoginHistoryVO> getAllAccessTrails(){
      return getHibernateTemplate().find("from LoginHistoryVO lh order by lh.requestTime desc");
    }

    public MemberVO getMember(String memebrId) {
      return (MemberVO) getHibernateTemplate().get(MemberVO.class, memebrId);
    }

    public void addUser(MemberVO user) {
      user.setCreationDate(new Date());
      add(user);
    }

    public void updateUser(MemberVO user) {
      MemberVO _user = (MemberVO) get(MemberVO.class, user.getMemberId());
      _user.updateUser(user);
      update(_user);
    }

    public void deleteUser(String memberId) throws MyAlumniException {
       
        try {
           MemberVO memberVO = getMember(memberId);
           hardDelete(memberVO);
        } catch (Exception e) {
            throw new MyAlumniException("Unable to delete user because " + e.getMessage());
        }
    }
   
    public void resetPassword(String userId, String password, String lastModifiedBy) {
       
      MemberVO user = getMember(userId);
      user.setMemberPassword(password);
      user.setPromptChange(BaseConstants.BOOLEAN_YES);
        user.setLastModifiedDate(new Date());
    user.setLastModification(BaseConstants.UPDATED);
    user.setLastModifiedBy(lastModifiedBy);     
      getHibernateTemplate().update(user);

    }
  
   
    @SuppressWarnings("unchecked")
    public List<MemberVO> getRoleUsers(String isAdmin){
      return getHibernateTemplate().findByNamedQueryAndNamedParam("member.byrole", "isAdmin", isAdmin);
    }
   
   
  @SuppressWarnings("unchecked")
  public void updateRoleUsers(String isAdmin, String[] memberIds, String lastModifiedBy) {
   
    MemberVO user;
       
    for (String id : memberIds){
      user = (MemberVO) getHibernateTemplate().get(MemberVO.class, id);
     
      if(user != null){     
        user.setIsAdmin(isAdmin);
        user.setLastModification(BaseConstants.UPDATED);
        user.setLastModifiedDate(new Date());
        user.setLastModifiedBy(lastModifiedBy);
        getHibernateTemplate().update(user);
      }
    }
    getHibernateTemplate().flush();
  }
 
  @SuppressWarnings("unchecked")
  public List<MemberVO> getUserNameStartingWith(String alpha, String isAdmin){

    StringBuffer query = new StringBuffer();
    List<MemberVO> result = new ArrayList<MemberVO>();

    // start query
    query.append("from MemberVO e where upper(e.memberUserName) like upper('");
    query.append(alpha);
    query.append("%') " );
    if (isAdmin.equals(BaseConstants.BOOLEAN_NO)){
      query.append("and e.memberStatus =  '" + BaseConstants.ACCOUNT_ACTIVE + "' ");
    }
    query.append(" order by e.memberUserName");
       
    result =  getSession().createQuery(query.toString()).list();
    return result;    
    }
   
 
 
  @SuppressWarnings("unchecked")
  public List<MemberVO> getEmailStartingWith(String alpha, String isAdmin){

    StringBuffer query = new StringBuffer();
    List<MemberVO> result = new ArrayList<MemberVO>();

    // start query
    query.append("from MemberVO e where upper(e.email) like upper('");
    query.append(alpha);
    query.append("%') " );
    if (isAdmin.equals(BaseConstants.BOOLEAN_NO)){
      query.append("and e.memberStatus =  '" + BaseConstants.ACCOUNT_ACTIVE + "'");
    }
    query.append(" order by e.email");
       
    result =  getSession().createQuery(query.toString()).list();
    return result;    
    }
 
 
    //******************************************
    // IPHONE MEMBER SERVICE
    //******************************************
  @SuppressWarnings("unchecked")
    public List<MemberVO> getLastNameStartingWith(String alpha, String isAdmin){

    StringBuffer query = new StringBuffer();
    List<MemberVO> result = new ArrayList<MemberVO>();

    // start query
    query.append("from MemberVO e where upper(e.lastName) like upper('");
    query.append(alpha);
    query.append("%') " );
    if (isAdmin.equals(BaseConstants.BOOLEAN_NO)){
      query.append("and e.memberStatus =  '" + BaseConstants.ACCOUNT_ACTIVE + "' ");
    }
    query.append(" order by e.lastName");
       
    result =  getSession().createQuery(query.toString()).list();
    return result;    
    }
 
  @SuppressWarnings("unchecked")
    public List<MemberVO> getFirstNameStartingWith(String alpha, String isAdmin){

    StringBuffer query = new StringBuffer();
    List<MemberVO> result = new ArrayList<MemberVO>();

    // start query
    query.append("from MemberVO e where upper(e.firstName) like upper('");
    query.append(alpha);
    query.append("%') " );
    if (isAdmin.equals(BaseConstants.BOOLEAN_NO)){
      query.append("and e.memberStatus =  '" + BaseConstants.ACCOUNT_ACTIVE + "' ");
    }
    query.append(" order by e.firstName");
       
    result =  getSession().createQuery(query.toString()).list();
    return result;    
     
    }
   
  @SuppressWarnings("unchecked")
  public List<MemberVO> getGenderBy(String alpha, String isAdmin){
    StringBuffer query = new StringBuffer();
    List<MemberVO> result = new ArrayList<MemberVO>();

    // start query
    query.append("from MemberVO e where upper(e.gender) like upper('");
    query.append(alpha);
    query.append("') " );
    if (isAdmin.equals(BaseConstants.BOOLEAN_NO)){
      query.append("and e.memberStatus =  '" + BaseConstants.ACCOUNT_ACTIVE + "' ");
    }
    query.append(" order by e.firstName");
       
    result =  getSession().createQuery(query.toString()).list();
    return result;  
  }
 
  @SuppressWarnings("unchecked")
  public List<MemberVO> getMembersInDorm(String dormitoryId, String isAdmin){
    StringBuffer query = new StringBuffer();
    List<MemberVO> result = new ArrayList<MemberVO>();

    // start query
    query.append("from MemberVO e where e.dormitory = '");
    query.append(dormitoryId);
    query.append("' " );
    if (isAdmin.equals(BaseConstants.BOOLEAN_NO)){
      query.append("and e.memberStatus =  '" + BaseConstants.ACCOUNT_ACTIVE + "' ");
    }
    query.append(" order by e.firstName");
       
    result =  getSession().createQuery(query.toString()).list();
    return result;
  }
 
  @SuppressWarnings("unchecked")
    public List<XlatDetailVO> getAllActiveDormitory(){
     
      StringBuffer query = new StringBuffer();
      List<XlatDetailVO> result = new ArrayList<XlatDetailVO>();
    query.append("from XlatDetailVO x where XLATGROUP_ID = 'DOM' ");
    query.append("and x.status =  '" + BaseConstants.ACTIVE + "' ");     

    result =  getSession().createQuery(query.toString()).list();
    return result;       
    }
     
 
 
  @SuppressWarnings("unchecked")
  public List<String> genericAjaxSearch(String searchWord, String searchCriteria){
    List<String> result = new ArrayList<String>();
   
    StringBuffer strBuffer = new StringBuffer();
   
    if (searchCriteria.equals(BaseConstants.FIRST_NAME)){
      strBuffer.append("select distinct l.firstName from MemberVO l where lower(l.firstName) like lower('%").append(searchWord).append("%')");
    }
    else if (searchCriteria.equals(BaseConstants.LAST_NAME)){
      strBuffer.append("select distinct l.lastName from MemberVO l where lower(l.lastName) like lower('%").append(searchWord).append("%')");
    }
    else if (searchCriteria.equals(BaseConstants.MAIDEN_NAME)){
      strBuffer.append("select distinct l.maidenName from MemberVO l where lower(l.maidenName) like lower('%").append(searchWord).append("%')");
    }
    else if (searchCriteria.equals(BaseConstants.NICK_NAME)){
      strBuffer.append("select distinct l.nickName from MemberVO l where lower(l.nickName) like lower('%").append(searchWord).append("%')");
    }
    else if (searchCriteria.equals(BaseConstants.FULL_NAME)){
      //strBuffer.append(" select l.nickname as name from MemberVO l where lower(l.nickName) like lower('%").append(searchWord).append("%')");
      strBuffer.append(" select distinct l.firstname as name from MemberVO l where lower(l.firstname) like lower('%").append(searchWord).append("%')");
      strBuffer.append(" UNION select distinct l.lastname as name from MemberVO l where lower(l.lastName) like lower('%").append(searchWord).append("%')");
      strBuffer.append(" UNION select distinct l.maidenname as name from MemberVO l where lower(l.maidenName) like lower('%").append(searchWord).append("%')");     
    }      
   
    result = getSession().createQuery(strBuffer.toString()).setMaxResults(20).list();           
    return result;
  }
 
 
  @SuppressWarnings("unchecked")
  public List<MemberVO> genericAjaxSearchObjects(String searchWord, String searchCriteria){
    List<MemberVO> result = new ArrayList<MemberVO>();
   
    StringBuffer strBuffer = new StringBuffer();
   
    if (searchCriteria.equals(BaseConstants.FIRST_NAME)){
      strBuffer.append("from MemberVO l where lower(l.firstName) like lower('%").append(searchWord).append("%')");
    }
    else if (searchCriteria.equals(BaseConstants.LAST_NAME)){
      strBuffer.append("from MemberVO l where lower(l.lastName) like lower('%").append(searchWord).append("%')");
    }
    else if (searchCriteria.equals(BaseConstants.MAIDEN_NAME)){
      strBuffer.append("from MemberVO l where lower(l.maidenName) like lower('%").append(searchWord).append("%')");
    }
    else if (searchCriteria.equals(BaseConstants.NICK_NAME)){
      strBuffer.append("from MemberVO l where lower(l.nickName) like lower('%").append(searchWord).append("%')");
    }
    else if (searchCriteria.equals(BaseConstants.FULL_NAME)){
      //strBuffer.append(" from MemberVO l where lower(l.nickName) like lower('%").append(searchWord).append("%')");
      strBuffer.append(" from MemberVO l where lower(l.firstName) like lower('%").append(searchWord).append("%')");
      strBuffer.append(" OR lower(l.lastName) like lower('%").append(searchWord).append("%')");
      strBuffer.append(" OR lower(l.maidenName) like lower('%").append(searchWord).append("%')");     
    }      
   
    result = getSession().createQuery(strBuffer.toString()).setMaxResults(20).list();           
   
    return result;
 
 
}
TOP

Related Classes of net.naijatek.myalumni.modules.common.persistence.hibernate.MemberHibernateDao

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.