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

📄 treedaoimpl.java

📁 jsf在线考试系统的实例
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
package com.jlobo.data.impl;

import java.util.List;

import org.apache.myfaces.custom.tree2.TreeNode;
import org.apache.myfaces.custom.tree2.TreeNodeBase;
import org.apache.myfaces.custom.tree2.TreeNodeChecked;

import com.jlobo.common.ContextHelper;
import com.jlobo.data.DaoSupport;
import com.jlobo.data.ITreeDao;
import com.jlobo.hibernate.HibernateSessionFactory;
import com.jlobo.identity.Membership;
import com.jlobo.identity.Permissions;
import com.jlobo.identity.User;
import com.jlobo.web.beans.Department;
import com.jlobo.web.beans.DepartmentTree;
import com.jlobo.web.beans.Examination;

public class TreeDaoImpl extends DaoSupport implements ITreeDao {

	public TreeNode getModule() {
		Long uid = ContextHelper.getUser().getId();
		return getModule(uid);
	}

	public TreeNode getModule(Long uid) {
		String hql = " Select T.* \r\n"
				+ "   From ( select G.*,level as Level_ \r\n"
				+ "            from (select id_, class_,parent_,name_,localname_,sort_,status_,type_ \r\n"
				+ "        	           from jot_id_group \r\n"
				+ "                   where id_ != parent_ \r\n"
				+ "                  ) G \r\n"
				+ "            start with parent_= -1 \r\n"
				+ "            connect by prior id_=parent_) T, \r\n"
				+ "        jot_id_permissions P \r\n"
				+ "   where t.id_ = p.name_ and p.entity_ = " + uid +" \r\n" +
				  "         and p.action_ = '1'" +
				  "    order by level_,sort_";

		if (this.session == null) {
			this.setSession(HibernateSessionFactory.getSession());
		}
		this.session.clear();
		TreeNode treeData = new TreeNodeBase("category", "系统功能", "YYYY0001",
				false);
		List lt = this.session.createSQLQuery(hql).addEntity(
				DepartmentTree.class).list();

		DepartmentTree[] department = new DepartmentTree[lt.size()];
		String type = null;
		if (lt.size() > 0) {
			int root = 0;
			int[] position = new int[lt.size()];
			position[0] = 0;
			TreeNode[] tree = new TreeNode[lt.size()];
			for (int i = 0; i < lt.size(); i++) {
				department[i] = (DepartmentTree) lt.get(i);

				// tree[i] = new TreeNodeBase(
				// ((department[i].getLevel() == 1) ? "category"
				// : "module"), department[i].getLocalName(),
				// department[i].getType() + "", false);
				if (department[i].getLevel() == 1) {
					tree[i] = new TreeNodeBase("category", department[i]
							.getLocalName(), department[i].getType() + "",
							false);
				} else if (department[i].get_class().equals("S")) {
					tree[i] = new TreeNodeBase("locate", department[i]
							.getLocalName(), department[i].getType() + "",
							false);
				} else {
					tree[i] = new TreeNodeBase("module", department[i]
							.getLocalName(), department[i].getType() + "",
							false);
				}
				if (i > 0) {
					if (department[i].getLevel().equals(
							department[0].getLevel())) {
						root++;
						position[root] = i;
					}
				}
			}

			if (root > 0) {
				for (int i = 0; i < department.length; i++) {
					for (int j = 0; j < department.length; j++) {
						if (department[j].getParent().equals(
								department[i].getId())) {
							tree[i].getChildren().add(tree[j]);
						}
					}
				}

				for (int i = 0; i < root + 1; i++) {
					treeData.getChildren().add(tree[position[i]]);
				}
				
			} else {

				tree[0] = new TreeNodeBase("category", department[0]
						.getLocalName(), department[0].getType() + "", false);

				for (int i = 0; i < department.length; i++) {
					for (int j = i + 1; j < department.length; j++) {
						if (department[j].getParent().equals(
								department[i].getId())) {
							tree[i].getChildren().add(tree[j]);
						}
					}
				}
				treeData.getChildren().add(tree[0]);
				
			}

		}
		return treeData;
	}

	public TreeNode getDepartment(Long did) {
		String hql = "select G.*,level as Level_ \r\n"
				+ "	from (select id_, class_,parent_,name_,localname_,sort_,status_,type_ \r\n"
				+ "			from jot_id_group \r\n"
				+ "			   where id_ != parent_ \r\n" + "		  ) G \r\n"
				+ "  start with parent_= -3 \r\n"
				+ " connect by prior id_=parent_";
		if (this.session == null) {
			this.setSession(HibernateSessionFactory.getSession());
		}
		TreeNode treeData = new TreeNodeBase("DepartmentOffice", "部门人员管理",
				"2001", false);
		List lt = this.session.createSQLQuery(hql).addEntity(
				DepartmentTree.class).list();

		DepartmentTree[] department = new DepartmentTree[lt.size()];

		if (lt.size() > 0) {
			int root = 0;
			int[] position = new int[lt.size()];
			position[0] = 0;
			TreeNode[] tree = new TreeNode[lt.size()];
			for (int i = 0; i < lt.size(); i++) {
				department[i] = (DepartmentTree) lt.get(i);
				tree[i] = new TreeNodeBase("DepartmentLocate", department[i]
						.getLocalName(), department[i].getId() + "", false);
				if (i > 0) {
					if (department[i].getLevel().equals(
							department[0].getLevel())) {
						root++;
						position[root] = i;
					}
				}
			}

			if (root > 0) {
				for (int i = 0; i < department.length; i++) {
					for (int j = 0; j < department.length; j++) {
						if (department[j].getParent().equals(
								department[i].getId())) {
							tree[i].getChildren().add(tree[j]);
						}
					}
				}

				for (int i = 0; i < root + 1; i++) {
					treeData.getChildren().add(tree[position[i]]);
				}
				return treeData;
			} else {

				tree[0] = new TreeNodeBase("DepartmentLocate", department[0]
						.getLocalName(), department[0].getId() + "", false);

				for (int i = 0; i < department.length; i++) {
					for (int j = i + 1; j < department.length; j++) {
						if (department[j].getParent().equals(
								department[i].getId())) {
							tree[i].getChildren().add(tree[j]);
						}
					}
				}
				return tree[0];
			}

		}
		return null;
	}

	public TreeNode getDictionary() {
		String hql = "select G.*,level as Level_ \r\n"
				+ "	from (select id_, class_,parent_,name_,localname_,sort_,status_,type_ \r\n"
				+ "			from jot_id_group \r\n"
				+ "			   where id_ != parent_ \r\n" + "		  ) G \r\n"
				+ "  start with parent_= -2 \r\n"
				+ " connect by prior id_=parent_";
		if (this.session == null) {
			this.setSession(HibernateSessionFactory.getSession());
		}
		TreeNode treeData = new TreeNodeBase("Office", "字典管理", "-2", false);
		List lt = this.session.createSQLQuery(hql).addEntity(
				DepartmentTree.class).list();

		DepartmentTree[] department = new DepartmentTree[lt.size()];

		if (lt.size() > 0) {
			int root = 0;
			int[] position = new int[lt.size()];
			position[0] = 0;
			TreeNode[] tree = new TreeNode[lt.size()];
			for (int i = 0; i < lt.size(); i++) {
				department[i] = (DepartmentTree) lt.get(i);
				tree[i] = new TreeNodeBase("Locate", department[i]
						.getLocalName(), department[i].getId() + "", false);
				if (i > 0) {
					if (department[i].getLevel().equals(
							department[0].getLevel())) {
						root++;
						position[root] = i;
					}
				}
			}

			if (root > 0) {
				for (int i = 0; i < department.length; i++) {
					for (int j = 0; j < department.length; j++) {
						if (department[j].getParent().equals(
								department[i].getId())) {
							tree[i].getChildren().add(tree[j]);
						}
					}
				}

				for (int i = 0; i < root + 1; i++) {
					treeData.getChildren().add(tree[position[i]]);
				}
				return treeData;
			} else {

				tree[0] = new TreeNodeBase("Locate", department[0]
						.getLocalName(), department[0].getId() + "", false);

				for (int i = 0; i < department.length; i++) {
					for (int j = i + 1; j < department.length; j++) {
						if (department[j].getParent().equals(
								department[i].getId())) {
							tree[i].getChildren().add(tree[j]);
						}
					}
				}
				return tree[0];
			}

		}
		return null;
	}

	public TreeNodeChecked getDepartmentAndUserTree(User user,
			String permissionsModule) {
		String hql = "FROM Permissions WHERE entity = " + user.getId();
		List lt = this.session.createQuery(hql).list();
		List ltu = null;
		Membership ms;
		User userp;
		String[] permission = {};
		if (lt.size() > 0) {
			Permissions permissions = (Permissions) lt.get(0);
			if (permissions.getType() != null)
				permission = permissions.getType().split(",");
		}

		boolean hasPermissions = false;
		hql = "FROM Department WHERE id = 2003";
		String hqlj, hqlk, hqlm, hqln, hqlp, hqlq, phql;
		List lta = this.session.createQuery(hql).list();
		TreeNodeChecked treeData = new TreeNodeChecked("DepartmentOffice",
				"部门人员管理", "2001", false, false);
		for (int i = 0; i < lta.size(); i++) {
			Department depti = (Department) lta.get(i);

			treeData = new TreeNodeChecked("DepartmentOffice", depti.getName(),
					depti.getId() + "", false, false);
			phql = "FROM Membership WHERE group.id = " + depti.getId();
			ltu = this.session.createQuery(phql).list();

			for (int s = 0; s < ltu.size(); s++) {
				ms = (Membership) ltu.get(s);
				userp = ms.getUser();

				TreeNodeChecked userB = new TreeNodeChecked("DepartmentLocate",
						userp.getLocalName(), userp.getId() + "", false, false);

				treeData.getChildren().add(userB);
			}
			hqlj = "FROM Department WHERE parent.id = " + depti.getId();
			List ltj = this.session.createQuery(hqlj).list();
			for (int j = 0; j < ltj.size(); j++) {
				Department deptj = (Department) ltj.get(j);

				TreeNodeChecked nodej = new TreeNodeChecked("DepartmentLocate",
						deptj.getName(), deptj.getId() + "", hasPermissions,
						false);
				phql = "FROM Membership WHERE group.id = " + deptj.getId();
				ltu = this.session.createQuery(phql).list();

				for (int s = 0; s < ltu.size(); s++) {
					ms = (Membership) ltu.get(s);
					userp = ms.getUser();

					TreeNodeChecked userB = new TreeNodeChecked(
							"DepartmentLocate", userp.getLocalName(), userp
									.getId()
									+ "", hasPermissions, true);
					nodej.getChildren().add(userB);
				}
				hqlm = "FROM Department WHERE parent.id = " + deptj.getId();
				List ltm = this.session.createQuery(hqlm).list();
				for (int m = 0; m < ltm.size(); m++) {
					Department deptm = (Department) ltm.get(m);

					TreeNodeChecked nodem = new TreeNodeChecked(
							"DepartmentLocate", deptm.getName(), deptm.getId()
									+ "", false, false);
					phql = "FROM Membership WHERE group.id = " + deptm.getId();
					ltu = this.session.createQuery(phql).list();

					for (int s = 0; s < ltu.size(); s++) {
						ms = (Membership) ltu.get(s);
						userp = ms.getUser();

						TreeNodeChecked userB = new TreeNodeChecked(
								"DepartmentLocate", userp.getLocalName(), userp
										.getId()
										+ "", false, false);
						nodem.getChildren().add(userB);
					}
					hqln = "FROM Department WHERE parent.id = " + deptm.getId();
					List ltn = this.session.createQuery(hqln).list();
					for (int n = 0; n < ltn.size(); n++) {
						Department deptn = (Department) ltn.get(n);

						TreeNodeChecked noden = new TreeNodeChecked(
								"DepartmentLocate", deptn.getName(), deptn
										.getId()
										+ "", false, false);
						phql = "FROM Membership WHERE group.id = "
								+ deptn.getId();
						ltu = this.session.createQuery(phql).list();

						for (int s = 0; s < ltu.size(); s++) {
							ms = (Membership) ltu.get(s);
							userp = ms.getUser();

							TreeNodeChecked userB = new TreeNodeChecked(
									"DepartmentLocate", userp.getLocalName(),
									userp.getId() + "", false, false);
							noden.getChildren().add(userB);
						}
						hqlk = "FROM Department WHERE parent.id = "
								+ deptn.getId();

⌨️ 快捷键说明

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