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

📄 functionmngimpl.java

📁 JEECMS是JavaEE版网站管理系统(Java Enterprise Edition Content Manage System)的简称。 基于java技术开发
💻 JAVA
字号:
package com.jeecms.core.manager.impl;

import java.io.Serializable;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

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.core.JeeCoreManagerImpl;
import com.jeecms.core.dao.FunctionDao;
import com.jeecms.core.entity.Function;
import com.jeecms.core.manager.FunctionMng;
import com.ponyjava.common.hibernate3.Updater;

@Service
@Transactional
public class FunctionMngImpl extends JeeCoreManagerImpl<Function> implements
		FunctionMng {

	public List<Function> getFunctions(Long adminId) {
		return getFunctionDao().getFunctions(adminId);
	}

	public Set<String> getFunctionItems(Long adminId) {
		List<Function> funcList = getFunctions(adminId);
		Set<String> funcItemSet = new HashSet<String>();
		String f = null;
		String fs = null;
		String[] fa = null;
		for (Function function : funcList) {
			f = function.getUrl();
			if (!StringUtils.isBlank(f)) {
				funcItemSet.add(f);
			}
			fs = function.getFuncs();
			if (!StringUtils.isBlank(fs)) {
				fa = fs.split(Function.FUNC_SPLIT);
				for (String fas : fa) {
					funcItemSet.add(fas);
				}
			}
		}
		return funcItemSet;
	}

	public List<Function> getRoots() {
		return getFunctionDao().getRoots();
	}

	public List<Function> getChild(Long pid) {
		return getFunctionDao().getChild(pid);
	}

	@Override
	public Object updateByUpdater(Updater updater) {
		Function bean = (Function) updater.getBean();
		Function f = findById(bean.getId());
		Function pf = f.getParent();
		Function pbean = bean.getParent();
		// pbean!=null代表需要更新父节点。父节点不能等于自身。
		if (pbean != null && !f.getId().equals(pbean.getId())) {
			// pf!=null原父节点存在,处理原父节点的child
			if (pf != null && !pf.getId().equals(pbean.getId())) {
				pf.getChild().remove(f);
			}
			// pbean.getId()!=null新父节点存在,处理新父节点child
			if (pbean.getId() != null && !pbean.getId().equals(pf.getId())) {
				Function np = findById(pbean.getId());
				np.addTochild(f);
			}
		}
		Function func = (Function) super.updateByUpdater(updater);
		return func;
	}

	@Override
	public Function save(Function func) {
		Function p = func.getParent();
		if (p != null) {
			Long pid = p.getId();
			// 如果父节点ID为null则将父节点对象设置为null,以免hibernate发生错误。并直接保存对象。
			if (pid == null) {
				func.setParent(null);
				super.save(func);
			} else {
				func.setParent(p);
				findById(pid).addTochild(func);
			}
		}
		return func;
	}

	@Override
	public Function findById(Serializable id) {
		Function func = super.findById(id);
		return func;
	}

	@Override
	public Function deleteById(Serializable id) {
		Function entity = findById(id);
		Function parent = entity.getParent();
		super.delete(entity);
		if (parent != null) {
			parent.getChild().remove(entity);
		}
		return entity;
	}

	@Autowired
	public void setFunctionDao(FunctionDao dao) {
		super.setDao(dao);
	}

	protected FunctionDao getFunctionDao() {
		return (FunctionDao) super.getDao();
	}

}

⌨️ 快捷键说明

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