⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 organizationserviceimpl.java

📁 采用tapestry的简单OA系统
💻 JAVA
字号:
package com.ejsun.entapps.service.impl.organization;

import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.ejsun.entapps.domain.organization.Group;
import com.ejsun.entapps.domain.organization.GroupType;
import com.ejsun.entapps.domain.organization.MemberShip;
import com.ejsun.entapps.domain.organization.MemberShipType;
import com.ejsun.entapps.domain.organization.User;
import com.ejsun.entapps.service.GenericServiceException;
import com.ejsun.entapps.service.impl.AbstractService;
import com.ejsun.entapps.service.organization.OrganizationService;
import com.ejsun.entapps.util.GenericUtil;

/**
 * @author	Quake Wang
 * @since	2004-4-29
 * @version $Revision: 1.1 $
 * 
 **/
public class OrganizationServiceImpl extends AbstractService implements OrganizationService {
    private final static Log log = LogFactory.getLog(OrganizationServiceImpl.class);
	private static Long rootGroupId = null;
	 
    public void createUser(User user) {
        pm.create(user);
    }

    public void updateUser(User user) {
        pm.update(user);
    }

    public void deleteUser(User user) {
        pm.delete(user);
    }

    public User loadUserById(long id) {
        return (User) qm.loadById(User.class, id);
    }

    public User login(String loginId, String password) {
        User user = findUserByLoginId(loginId);  
        if (user == null)
            throw new GenericServiceException("loginId.error");
        if (!password.equals(user.getPassword()))
            throw new GenericServiceException("password.error");
        return user;
    }

    public User findUserByLoginId(String loginId) {
        return (User) qm.loadByNamedQuery("findUserByLoginId", loginId);
    }

    public void createGroup(Group group) {
        pm.create(group);
    }

    public void updateGroup(Group group) {
        pm.update(group);
    }

    public void deleteGroup(Group group) {
        pm.delete(group);
    }

    public void addChild(Group parent, Group child) {
        parent.addChild(child);
        pm.create(child);
    }

    public Group loadGroupById(long id) {
        return (Group) qm.loadById(Group.class, id);
    }

    public Group findRootGroup() {
    	if(rootGroupId == null) {
			try {
				rootGroupId = new Long(GenericUtil.loadConfProperties().getProperty(GenericUtil.ROOT_GROUP_ID));
			} catch (Exception e) {
				log.error(e);
				throw new GenericServiceException("root.group.not.found");
			}
    	}
    	return loadGroupById(rootGroupId.longValue());
    }

    public User[] findGroupMembers(Group group) {
        List users = qm.findByNamedQuery("findGroupMembers", group);
        return (User[]) users.toArray(new User[users.size()]);
    }

    public User findGroupAdmin(Group group) {
        MemberShip ms = findMemberShipByAdminedGroup(group);
        if (ms != null)
            return ms.getUser();
        else
            return null;
    }

    private MemberShip findMemberShipByAdminedGroup(Group group) {
        return (MemberShip) qm.loadByNamedQuery("findMemberShipByAdminedGroup", group);
    }

    public Group findGroupByMember(User user) {
        MemberShip ms = findMemberShipByGroupMember(user);
        if (ms != null)
            return ms.getGroup();
        else
            return null;
    }

    private MemberShip findMemberShipByGroupMember(User user) {
        return (MemberShip) qm.loadByNamedQuery("findMemberShipByGroupMember", user);
    }

    public void addMemberToGroup(User user, Group group) {
        MemberShip ms = findMemberShipByGroupMember(user);
        if (ms != null) {
            ms.setGroup(group);
            pm.update(ms);
        } else {
            pm.create(new MemberShip(user, group, getMemberShipType(MemberShipType.GROUP_MEMBER)));
        }

    }

    public void assignGroupAdmin(User user, Group group) {
        MemberShip ms = findMemberShipByAdminedGroup(group);
        if (ms != null) {
            ms.setUser(user);
            pm.update(ms);
        } else {
            pm.create(new MemberShip(user, group, getMemberShipType(MemberShipType.GROUP_ADMIN)));
        }
    }

    private MemberShipType getMemberShipType(String typeName) {
        return (MemberShipType) qm.loadByName(MemberShipType.class, typeName);
    }

    /* (non-Javadoc)
     * @see com.ejsun.entapps.service.organization.OrganizationService#getAllGroupTypes()
     */
    public GroupType[] getAllGroupTypes() {
        // TODO Auto-generated method stub
        return null;
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -