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

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

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

import java.util.Date;
import java.util.List;
import java.util.UUID;

import org.apache.commons.lang.StringUtils;
import org.osforce.connect.dao.profile.ProfileDao;
import org.osforce.connect.dao.system.ProjectDao;
import org.osforce.connect.dao.system.ProjectFeatureDao;
import org.osforce.connect.dao.system.UserDao;
import org.osforce.connect.entity.profile.Profile;
import org.osforce.connect.entity.system.Project;
import org.osforce.connect.entity.system.ProjectFeature;
import org.osforce.connect.entity.system.User;
import org.osforce.connect.service.system.UserService;
import org.osforce.spring4me.dao.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;

/**
*
* @author gavin
* @since 1.0.0
* @create Jan 29, 2011 - 11:15:39 AM
*  <a href="http://www.opensourceforce.org">开源力量</a>
*/
@Service
@Transactional
public class UserServiceImpl implements UserService {

  private UserDao userDao;
  private ProfileDao profileDao;
  private ProjectDao projectDao;
  private ProjectFeatureDao projectFeatureDao;
 
  public UserServiceImpl() {
  }
 
  @Autowired
  public void setUserDao(UserDao userDao) {
    this.userDao = userDao;
  }
 
  @Autowired
  public void setProfileDao(ProfileDao profileDao) {
    this.profileDao = profileDao;
  }
 
  @Autowired
  public void setProjectDao(ProjectDao projectDao) {
    this.projectDao = projectDao;
  }
 
  @Autowired
  public void setProjectFeatureDao(ProjectFeatureDao projectFeatureDao) {
    this.projectFeatureDao = projectFeatureDao;
  }
 
  public User getUser(Long userId) {
    return userDao.get(userId);
  }
 
  public User loginUser(String username, String password) {
    User user = userDao.findUser(username);
    if(user!=null && StringUtils.equals(password, user.getPassword())) {
      //user.setLastLogin(new Date());
      //userDao.update(user);
      return user;
    }
    return  null;
  }
 
  public void createUser(User user) {
    updateUser(user);
  }

  public void updateUser(User user) {
    if(user.getId()==null) {
      userDao.save(user);
    } else {
      userDao.update(user);
    }
  }

  public void deleteUser(Long userId) {
    userDao.delete(userId);
  }
 
  public User getUser(String username) {
    return userDao.findUser(username);
  }
 
  public Page<User> getUserPage(Page<User> page) {
    return userDao.findUserPage(page, (Long)null);
  }
 
  public Page<User> getUserPage(Page<User> page, Long siteId) {
    return userDao.findUserPage(page, siteId);
  }
 
  public Page<User> getUserPage(Page<User> page, String startWith) {
    return userDao.findUserPage(page, startWith);
  }
 
  public void registerUser(User user, Project project) {
    Assert.notNull(user, "Parameter user can not be null!");
    Assert.notNull(project, "Parameter project can not be null!");
    // create user
    Date now = new Date();
    user.setEmail(user.getUsername());
    user.setEntered(now);
    user.setLastLogin(now);
    user.setEnabled(true);
    user.setToken(UUID.randomUUID().toString());
    userDao.save(user);
    // create project
    String uniqueId = cleanEmail(user.getEmail());
    project.setTitle(user.getNickname());
    project.setUniqueId(uniqueId);
    project.setModified(now);
    project.setModifiedBy(user);
    project.setEntered(now);
    project.setEnteredBy(user);
    project.setEnabled(true);
    projectDao.save(project);
    // create project feature
    List<ProjectFeature> features = project.getFeatures();
    for(ProjectFeature feature : features) {
      feature.setProject(project);
      projectFeatureDao.save(feature);
    }
    // create project profile
    Profile profile = new Profile();
    profile.setTitle(project.getTitle());
    profile.setProject(project);
    profile.setEnteredBy(user);
    profile.setModifiedBy(user);
    profile.setEntered(now);
    profile.setModified(now);
    profileDao.save(profile);
    // update user project
    user.setProject(project);
    userDao.update(user);
  }
 
  protected String cleanEmail(String email) {
    email = StringUtils.lowerCase(email);
    String uniqueId = StringUtils.substringBefore(email, "@");
    StringBuffer buffer = new StringBuffer();
    for(char c : uniqueId.toCharArray()) {
      if((c>='0' && c<='9') || (c>='a' && c<='z') || c=='_' || c=='-') {
        buffer.append(c);
      } else {
        buffer.append('-');
      }
    }
    return buffer.toString();
  }
}
TOP

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

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.