Package org.osforce.connect.service.system.impl

Source Code of org.osforce.connect.service.system.impl.ProjectServiceImpl

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

import java.util.Date;

import org.apache.commons.lang.math.NumberUtils;
import org.osforce.connect.dao.system.ProjectCategoryDao;
import org.osforce.connect.dao.system.ProjectDao;
import org.osforce.connect.dao.system.UserDao;
import org.osforce.connect.entity.system.Project;
import org.osforce.connect.entity.system.ProjectCategory;
import org.osforce.connect.entity.system.User;
import org.osforce.connect.service.system.ProjectService;
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 Jan 30, 2011 - 12:43:42 PM
*  <a href="http://www.opensourceforce.org">开源力量</a>
*/
@Service
@Transactional
public class ProjectServiceImpl implements ProjectService {

  private UserDao userDao;
  private ProjectDao projectDao;
  private ProjectCategoryDao categoryDao;
 
  public ProjectServiceImpl() {
  }
 
  @Autowired
  public void setUserDao(UserDao userDao) {
    this.userDao = userDao;
  }
 
  @Autowired
  public void setProjectDao(ProjectDao projectDao) {
    this.projectDao = projectDao;
  }

  @Autowired
  public void setCategoryDao(ProjectCategoryDao categoryDao) {
    this.categoryDao = categoryDao;
  }
 
  public Project getProject(Long projectId) {
    return projectDao.get(projectId);
  }

  public void createProject(Project project) {
    updateProject(project);
  }

  public void updateProject(Project project) {
    if(project.getCategoryId()!=null) {
      ProjectCategory category = categoryDao.get(project.getCategoryId());
      project.setCategory(category);
    }
    if(project.getSubCategoryId1()!=null) {
      ProjectCategory subCategory1 = categoryDao
          .get(project.getSubCategoryId1());
      project.setSubCategory1(subCategory1);
    }
    if(project.getSubCategoryId2()!=null) {
      ProjectCategory subCategory2 = categoryDao
          .get(project.getSubCategoryId2());
      project.setSubCategory2(subCategory2);
    }
    if(project.getSubCategoryId3()!=null) {
      ProjectCategory subCategory3 = categoryDao
          .get(project.getSubCategoryId3());
      project.setSubCategory3(subCategory3);
    }
    if(project.getEnteredId()!=null) {
      User enteredBy = userDao.get(project.getEnteredId()) ;
      project.setEnteredBy(enteredBy);
    }
    if(project.getModifiedId()!=null) {
      User modifiedBy = userDao.get(project.getModifiedId());
      project.setModifiedBy(modifiedBy);
    }
    Date now = new Date();
    project.setModified(now);
    // validate uniqueId
    validateUniqueId(project);
    //
    if(project.getId()==null) {
      project.setEntered(now);
      projectDao.save(project);
    } else {
      projectDao.update(project);
    }
  }

  private void validateUniqueId(Project project) {
    String uniqueId = project.getUniqueId();
    Project persisted = projectDao.findProject(uniqueId);
    if(persisted!=null && (project.getId()==null ||
        NumberUtils.compare(project.getId(), persisted.getId())==0)) {
      Long count = projectDao.countProjects();
      uniqueId += "-" + ++count;
    }
    project.setUniqueId(uniqueId);
  }

  public void deleteProject(Long projectId) {
    projectDao.delete(projectId);
  }

  public Page<Project> getProjectPage(Page<Project> page) {
    return projectDao.findProjectPage(page, null);
  }

  public Project getProject(String uniqueId) {
    return projectDao.findProject(uniqueId);
  }
 
  public Page<Project> getProjectPage(Page<Project> page, Long categoryId) {
    return projectDao.findProjectPage(page, categoryId);
  }
 
}
TOP

Related Classes of org.osforce.connect.service.system.impl.ProjectServiceImpl

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.