Package com.jeecms.cms.manager.main.impl

Source Code of com.jeecms.cms.manager.main.impl.CmsUserMngImpl

package com.jeecms.cms.manager.main.impl;

import java.io.UnsupportedEncodingException;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
import java.util.Set;

import javax.mail.MessagingException;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.jeecms.cms.dao.main.CmsUserDao;

import com.jeecms.cms.entity.main.Channel;
import com.jeecms.cms.entity.main.CmsGroup;
import com.jeecms.cms.entity.main.CmsSite;
import com.jeecms.cms.entity.main.CmsUser;
import com.jeecms.cms.entity.main.CmsUserExt;
import com.jeecms.cms.manager.main.ChannelMng;
import com.jeecms.cms.manager.main.CmsGroupMng;
import com.jeecms.cms.manager.main.CmsRoleMng;
import com.jeecms.cms.manager.main.CmsSiteMng;
import com.jeecms.cms.manager.main.CmsUserExtMng;
import com.jeecms.cms.manager.main.CmsUserMng;
import com.jeecms.cms.manager.main.CmsUserSiteMng;
import com.jeecms.cms.manager.main.ContentMng;
import com.jeecms.common.email.EmailSender;
import com.jeecms.common.email.MessageTemplate;
import com.jeecms.common.hibernate3.Updater;
import com.jeecms.common.page.Pagination;
import com.jeecms.core.entity.UnifiedUser;
import com.jeecms.core.manager.UnifiedUserMng;

@Service
@Transactional
public class CmsUserMngImpl implements CmsUserMng {
  @Transactional(readOnly = true)
  public Pagination getPage(String username, String email, Integer siteId,
      Integer groupId, Boolean disabled, Boolean admin, Integer rank,
      int pageNo, int pageSize) {
    Pagination page = dao.getPage(username, email, siteId, groupId,
        disabled, admin, rank, pageNo, pageSize);
    return page;
  }
 
  @Transactional(readOnly = true)
  public List getList(String username, String email, Integer siteId,
      Integer groupId, Boolean disabled, Boolean admin, Integer rank) {
    List list = dao.getList(username, email, siteId, groupId,
        disabled, admin, rank);
    return list;
  }

  @Transactional(readOnly = true)
  public List<CmsUser> getAdminList(Integer siteId, Boolean allChannel,
      Boolean disabled, Integer rank) {
    return dao.getAdminList(siteId, allChannel, disabled, rank);
  }

  @Transactional(readOnly = true)
  public CmsUser findById(Integer id) {
    CmsUser entity = dao.findById(id);
    return entity;
  }

  @Transactional(readOnly = true)
  public CmsUser findByUsername(String username) {
    CmsUser entity = dao.findByUsername(username);
    return entity;
  }

  public CmsUser registerMember(String username, String email,
      String password, String ip, Integer groupId, CmsUserExt userExt){
    UnifiedUser unifiedUser = unifiedUserMng.save(username, email,
        password, ip);
    CmsUser user = new CmsUser();
    user.forMember(unifiedUser);

    CmsGroup group = null;
    if (groupId != null) {
      group = cmsGroupMng.findById(groupId);
    } else {
      group = cmsGroupMng.getRegDef();
    }
    if (group == null) {
      throw new RuntimeException(
          "register default member group not found!");
    }
    user.setGroup(group);
    user.init();
    dao.save(user);
    cmsUserExtMng.save(userExt, user);
    return user;
  }

 
  public CmsUser registerMember(String username, String email,
      String password, String ip, Integer groupId, CmsUserExt userExt,
      Boolean activation, EmailSender sender, MessageTemplate msgTpl)throws UnsupportedEncodingException, MessagingException{
    UnifiedUser unifiedUser = unifiedUserMng.save(username, email,
        password, ip, activation, sender, msgTpl);
    CmsUser user = new CmsUser();
    user.forMember(unifiedUser);

    CmsGroup group = null;
    if (groupId != null) {
      group = cmsGroupMng.findById(groupId);
    } else {
      group = cmsGroupMng.getRegDef();
    }
    if (group == null) {
      throw new RuntimeException(
          "register default member group not found!");
    }
    user.setGroup(group);
    user.init();
    dao.save(user);
    cmsUserExtMng.save(userExt, user);
    return user;
  }

  public void updateLoginInfo(Integer userId, String ip) {
    Date now = new Timestamp(System.currentTimeMillis());
    CmsUser user = findById(userId);
    if (user != null) {
      user.setLoginCount(user.getLoginCount() + 1);
      user.setLastLoginIp(ip);
      user.setLastLoginTime(now);
    }
  }

  public void updateUploadSize(Integer userId, Integer size) {
    CmsUser user = findById(userId);
    user.setUploadTotal(user.getUploadTotal() + size);
    if (user.getUploadDate() != null) {
      if (CmsUser.isToday(user.getUploadDate())) {
        size += user.getUploadSize();
      }
    }
    user.setUploadDate(new java.sql.Date(System.currentTimeMillis()));
    user.setUploadSize(size);
  }

  public boolean isPasswordValid(Integer id, String password) {
    return unifiedUserMng.isPasswordValid(id, password);
  }

  public void updatePwdEmail(Integer id, String password, String email) {
    CmsUser user = findById(id);
    if (!StringUtils.isBlank(email)) {
      user.setEmail(email);
    } else {
      user.setEmail(null);
    }
    unifiedUserMng.update(id, password, email);
  }

  public CmsUser saveAdmin(String username, String email, String password,
      String ip, boolean viewOnly, boolean selfAdmin, int rank,
      Integer groupId, Integer[] roleIds, Integer[] channelIds,
      Integer[] siteIds, Byte[] steps, Boolean[] allChannels,
      CmsUserExt userExt) {
    UnifiedUser unifiedUser = unifiedUserMng.save(username, email,
        password, ip);
    CmsUser user = new CmsUser();
    user.forAdmin(unifiedUser, viewOnly, selfAdmin, rank);
    CmsGroup group = null;
    if (groupId != null) {
      group = cmsGroupMng.findById(groupId);
    } else {
      group = cmsGroupMng.getRegDef();
    }
    if (group == null) {
      throw new RuntimeException(
          "register default member group not setted!");
    }
    user.setGroup(group);
    user.init();
    dao.save(user);
    cmsUserExtMng.save(userExt, user);
    if (roleIds != null) {
      for (Integer rid : roleIds) {
        user.addToRoles(cmsRoleMng.findById(rid));
      }
    }
    if (channelIds != null) {
      Channel channel;
      for (Integer cid : channelIds) {
        channel = channelMng.findById(cid);
        channel.addToUsers(user);
      }
    }
    if (siteIds != null) {
      CmsSite site;
      for (int i = 0, len = siteIds.length; i < len; i++) {
        site = cmsSiteMng.findById(siteIds[i]);
        cmsUserSiteMng.save(site, user, steps[i], allChannels[i]);
      }
    }
    return user;
  }

  public void addSiteToUser(CmsUser user, CmsSite site, Byte checkStep) {
    cmsUserSiteMng.save(site, user, checkStep, true);
  }

  public CmsUser updateAdmin(CmsUser bean, CmsUserExt ext, String password,
      Integer groupId, Integer[] roleIds, Integer[] channelIds,
      Integer siteId, Byte step, Boolean allChannel) {
    CmsUser user = updateAdmin(bean, ext, password, groupId, roleIds,
        channelIds);
    // 更新所属站点
    cmsUserSiteMng.updateByUser(user, siteId, step, allChannel);
    return user;
  }

  public CmsUser updateAdmin(CmsUser bean, CmsUserExt ext, String password,
      Integer groupId, Integer[] roleIds, Integer[] channelIds,
      Integer[] siteIds, Byte[] steps, Boolean[] allChannels) {
    CmsUser user = updateAdmin(bean, ext, password, groupId, roleIds,
        channelIds);
    // 更新所属站点
    cmsUserSiteMng.updateByUser(user, siteIds, steps, allChannels);
    return user;
  }

  private CmsUser updateAdmin(CmsUser bean, CmsUserExt ext, String password,
      Integer groupId, Integer[] roleIds, Integer[] channelIds) {
    Updater<CmsUser> updater = new Updater<CmsUser>(bean);
    updater.include("email");
    CmsUser user = dao.updateByUpdater(updater);
    user.setGroup(cmsGroupMng.findById(groupId));
    cmsUserExtMng.update(ext, user);
    // 更新角色
    user.getRoles().clear();
    if (roleIds != null) {
      for (Integer rid : roleIds) {
        user.addToRoles(cmsRoleMng.findById(rid));
      }
    }
    // 更新栏目权限
    Set<Channel> channels = user.getChannels();
    // 清除
    for (Channel channel : channels) {
      channel.getUsers().remove(user);
    }
    user.getChannels().clear();
    // 添加
    if (channelIds != null) {
      Channel channel;
      for (Integer cid : channelIds) {
        channel = channelMng.findById(cid);
        channel.addToUsers(user);
      }
    }
    unifiedUserMng.update(bean.getId(), password, bean.getEmail());
    return user;
  }

  public CmsUser updateMember(Integer id, String email, String password,
      Boolean isDisabled, CmsUserExt ext, Integer groupId) {
    CmsUser entity = findById(id);
    if (!StringUtils.isBlank(email)) {
      entity.setEmail(email);
    }
    if (isDisabled != null) {
      entity.setDisabled(isDisabled);
    }
    if (groupId != null) {
      entity.setGroup(cmsGroupMng.findById(groupId));
    }
    cmsUserExtMng.update(ext, entity);
    unifiedUserMng.update(id, password, email);
    return entity;
  }
 
  public CmsUser updateUserConllection(CmsUser user,Integer cid,Integer operate){
    Updater<CmsUser> updater = new Updater<CmsUser>(user);
    user = dao.updateByUpdater(updater);
    if (operate.equals(1)) {
      user.addToCollection(contentMng.findById(cid));
    }// 取消收藏
    else if (operate.equals(0)) {
      user.delFromCollection(contentMng.findById(cid));
    }
    return user;
  }

  public CmsUser deleteById(Integer id) {
    unifiedUserMng.deleteById(id);
    CmsUser bean = dao.deleteById(id);
    //删除收藏信息
    bean.clearCollection();
    return bean;
  }

  public CmsUser[] deleteByIds(Integer[] ids) {
    CmsUser[] beans = new CmsUser[ids.length];
    for (int i = 0, len = ids.length; i < len; i++) {
      beans[i] = deleteById(ids[i]);
    }
    return beans;
  }

  public boolean usernameNotExist(String username) {
    return dao.countByUsername(username) <= 0;
  }
 
  public boolean usernameNotExistInMember(String username){
    return dao.countMemberByUsername(username)<= 0;
  }

  public boolean emailNotExist(String email) {
    return dao.countByEmail(email) <= 0;
  }

  private CmsUserSiteMng cmsUserSiteMng;
  private CmsSiteMng cmsSiteMng;
  private ChannelMng channelMng;
  private CmsRoleMng cmsRoleMng;
  private CmsGroupMng cmsGroupMng;
  private UnifiedUserMng unifiedUserMng;
  private CmsUserExtMng cmsUserExtMng;
  private CmsUserDao dao;
  @Autowired
  private ContentMng contentMng;

  @Autowired
  public void setCmsUserSiteMng(CmsUserSiteMng cmsUserSiteMng) {
    this.cmsUserSiteMng = cmsUserSiteMng;
  }

  @Autowired
  public void setCmsSiteMng(CmsSiteMng cmsSiteMng) {
    this.cmsSiteMng = cmsSiteMng;
  }

  @Autowired
  public void setChannelMng(ChannelMng channelMng) {
    this.channelMng = channelMng;
  }

  @Autowired
  public void setCmsRoleMng(CmsRoleMng cmsRoleMng) {
    this.cmsRoleMng = cmsRoleMng;
  }

  @Autowired
  public void setUnifiedUserMng(UnifiedUserMng unifiedUserMng) {
    this.unifiedUserMng = unifiedUserMng;
  }

  @Autowired
  public void setCmsUserExtMng(CmsUserExtMng cmsUserExtMng) {
    this.cmsUserExtMng = cmsUserExtMng;
  }

  @Autowired
  public void setCmsGroupMng(CmsGroupMng cmsGroupMng) {
    this.cmsGroupMng = cmsGroupMng;
  }

  @Autowired
  public void setDao(CmsUserDao dao) {
    this.dao = dao;
  }

}
TOP

Related Classes of com.jeecms.cms.manager.main.impl.CmsUserMngImpl

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.