Package org.osforce.connect.service.team.impl

Source Code of org.osforce.connect.service.team.impl.MemberServiceImpl

package org.osforce.connect.service.team.impl;

import java.util.List;

import org.apache.commons.lang.math.NumberUtils;
import org.osforce.connect.dao.system.ProjectDao;
import org.osforce.connect.dao.system.RoleDao;
import org.osforce.connect.dao.system.UserDao;
import org.osforce.connect.dao.team.MemberDao;
import org.osforce.connect.entity.system.Project;
import org.osforce.connect.entity.system.Role;
import org.osforce.connect.entity.system.User;
import org.osforce.connect.entity.team.TeamMember;
import org.osforce.connect.service.team.MemberService;
import org.osforce.spring4me.dao.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
*
* @author gavin
* @since 1.0.0
* @create Feb 12, 2011 - 8:43:19 AM
*  <a href="http://www.opensourceforce.org">开源力量</a>
*/
@Service
@Transactional
public class MemberServiceImpl implements MemberService {

  private UserDao userDao;
  private RoleDao roleDao;
  private ProjectDao projectDao;
  private MemberDao memberDao;

  public MemberServiceImpl() {
  }

  @Autowired
  public void setUserDao(UserDao userDao) {
    this.userDao = userDao;
  }

  @Autowired
  public void setRoleDao(RoleDao roleDao) {
    this.roleDao = roleDao;
  }

  @Autowired
  public void setProjectDao(ProjectDao projectDao) {
    this.projectDao = projectDao;
  }

  @Autowired
  public void setMemberDao(MemberDao memberDao) {
    this.memberDao = memberDao;
  }

  public TeamMember getMember(Long memberId) {
    return memberDao.get(memberId);
  }
 
  public TeamMember getMember(Project project, User user) {
    return memberDao.findMember(project.getId(), user.getId(), null);
  }

  public TeamMember getMember(Project project, User user, Boolean enabled) {
    return memberDao.findMember(project.getId(), user.getId(), enabled);
  }

  public void createMember(TeamMember member) {
    updateMember(member);
  }

  public void updateMember(TeamMember member) {
    if(member.getUserId()!=null) {
      User user = userDao.get(member.getUserId());
      member.setUser(user);
    }
    if(member.getRoleId()!=null) {
      Role role = roleDao.get(member.getRoleId());
      member.setRole(role);
    }
    if(member.getProjectId()!=null) {
      Project project = projectDao.get(member.getProjectId());
      member.setProject(project);
    }
    if(member.getId()==null) {
      memberDao.save(member);
    } else {
      memberDao.update(member);
    }
  }

  public void deleteMember(Long memberId) {
    memberDao.delete(memberId);
  }

  public Page<TeamMember> getMemberPage(Page<TeamMember> page, Project project) {
    return memberDao.findMemberPage(page, project.getId());
  }

  public List<TeamMember> getMemberList(Project project, User user,
      String status, Boolean reverse) {
    return memberDao.findMemberList(project.getId(), user.getId(), status, reverse);
  }

  public void requestMember(TeamMember member) {
    createMember(member);
  }

  public void approveMember(Long memberId) {
    TeamMember member = memberDao.get(memberId);
    member.setStatus(null);
    member.setEnabled(true);
    memberDao.update(member);
    // if project is user project
    if(NumberUtils.compare(member.getProject().getId(),
        member.getProject().getEnteredBy().getProject().getId())==0) {
      TeamMember otherSide = memberDao.findMember(
          member.getUser().getProjectId(), member.getProject().getEnteredId(), null);
      if(otherSide==null) {
        otherSide = new TeamMember();
      }
      otherSide.setStatus(null);
      otherSide.setEnabled(true);
      otherSide.setProjectId(member.getUser().getProjectId());
      otherSide.setUserId(member.getProject().getEnteredId());
      otherSide.setRoleId(member.getRoleId());
      memberDao.save(otherSide);
    }
  }
}
TOP

Related Classes of org.osforce.connect.service.team.impl.MemberServiceImpl

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.