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

📄 businessdaoimpl.java

📁 jsf在线考试系统的实例
💻 JAVA
字号:
package com.jlobo.data.impl;

import java.util.List;

import javax.faces.model.SelectItem;

import org.hibernate.Transaction;

import com.jlobo.data.DaoSupport;
import com.jlobo.data.IBusinessDao;
import com.jlobo.identity.Group;
import com.jlobo.identity.Permissions;
import com.jlobo.identity.User;
import com.jlobo.web.beans.Answer;
import com.jlobo.web.beans.Examination;
import com.jlobo.web.beans.Paper;
import com.jlobo.web.beans.Question;

public class BusinessDaoImpl extends DaoSupport implements IBusinessDao {

	public boolean deleteQuestion(Question question) {
		this.session.delete(question);
		return true;
	}

	public boolean updateQuestion(Question question) {
		this.session.saveOrUpdate(question);
		return true;
	}
	
	public boolean deleteAnswer(Answer answer) {
		this.session.delete(answer);
		return true;
	}

	public boolean updateAnswer(Answer answer) {
		this.session.saveOrUpdate(answer);
		return true;
	}
	
	public Answer getAnswer(Long aid) {
		return (Answer)this.session.get(Answer.class, aid);
	}

	public List getAnswers(Question question) {
		String hql = "FROM Answer WHERE question.id = "+question.getId();
		List lt = this.session.createQuery(hql).list();
		return lt;
	}

	public Question getQuestion(Long qid) {
		return (Question)this.session.get(Question.class, qid);
	}

	public List getQuestions(Long tid) {
		String hql = "select * \r\n" + "  from jot_question \r\n"
				+ " where type_ in( select id_ \r\n"
				+ "                   from jot_id_group \r\n"
				+ "                  start with parent_= " + tid + " \r\n"
				+ "                  connect by prior id_=parent_ \r\n"
				+ "                  union  \r\n"
				+ "	                 select id_ \r\n"
				+ "	                   from jot_id_group \r\n"
				+ "	                  where id_ = " + tid + ")";
		Transaction tx = this.session.beginTransaction();
		tx.begin();
		List lt = this.session.createSQLQuery(hql).addEntity(Question.class)
				.list();
		tx.commit();
		this.session.close();
		return lt;
	}

	public SelectItem[] getSubjects(User user, Long mid) {
		String hql = "FROM Permissions WHERE entity = " + user.getId()
				+ " AND name = " + mid;
		List lt = this.session.createQuery(hql).list();
		if (lt.size() > 0) {
			Permissions permissions = (Permissions) lt.get(0);
			String type[] = permissions.getType().split(";");
			String subject = "";
			if (type[0].substring(0, 1).equals("S")) {
				subject = type[0].substring(2, type[0].length());
			} else {
				subject = type[1].substring(2, type[1].length());
			}

			hql = " select * \r\n" + "   from jot_id_group \r\n"
					+ "  where id_ in (" + subject + ")";

			lt = this.session.createSQLQuery(hql).addEntity(Group.class).list();
			SelectItem[] subjects = new SelectItem[lt.size()];
			for (int i = 0; i < lt.size(); i++) {
				Group group = (Group) lt.get(i);
				SelectItem item = new SelectItem(group.getId() + "", group
						.getLocalName());
				subjects[i] = item;
			}
			return subjects;
		}
		return null;
	}

	public SelectItem[] getTypes(User user,Long mid) {
		String hql = "FROM Permissions WHERE entity = " + user.getId()
				+ " AND name = " + mid;
		List lt = this.session.createQuery(hql).list();
		if (lt.size() > 0) {
			Permissions permissions = (Permissions) lt.get(0);
			String type[] = permissions.getType().split(";");
			String subject = "";
			if (type[0].substring(0, 1) == "T") {
				subject = type[0].substring(2, type[0].length());
			} else {
				subject = type[1].substring(2, type[1].length());
			}

			hql = " select * \r\n" + "   from jot_id_group \r\n"
					+ "  where id_ in (" + subject + ")";

			lt = this.session.createSQLQuery(hql).addEntity(Group.class).list();
			SelectItem[] subjects = new SelectItem[lt.size()];
			for (int i = 0; i < lt.size(); i++) {
				Group group = (Group) lt.get(i);
				SelectItem item = new SelectItem(group.getId() + "", group
						.getLocalName());
				subjects[i] = item;
			}
			return subjects;
		}
		return null;
	}

	

	public boolean deletePaper(Paper paper) {
		// TODO Auto-generated method stub
		return false;
	}

	public Paper getPaper(Long pid) {
		return (Paper)this.session.get(Paper.class, pid);
	}

	public List getPapers(Long sid) {
		String hql = "   Select distinct * \r\n"+
					 "	   from ( \r\n"+
					 "	         select * \r\n"+ 
					 "	           from jot_paper \r\n"+
					 "	          where subject_ in ( \r\n"+
					 "	                select id_ \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_= "+sid+" \r\n"+
					 "	                    connect by prior id_=parent_ \r\n"+
					 "	        ) \r\n"+
					 "	        union \r\n"+
					 "	          select * \r\n"+
					 "	            from jot_paper \r\n"+
					 "	           where subject_ = "+ sid+"   \r\n"+
					 "	) ";
		List lt = this.session.createSQLQuery(hql).addEntity(Paper.class).list();
		return lt;
	}

	public boolean updatePaper(Paper paper) {
		// TODO Auto-generated method stub
		return false;
	}
	
	//阅卷
	public List getSelectPapers() {
		String hql = "select * from jot_examination";
		List lt = this.session.createSQLQuery(hql).addEntity(Examination.class).list();
		System.out.print("试卷列表完成");
		return lt;
	}

	public boolean updateQuestionUser(String userPermissions) {
		String[] userSubjectAndType = userPermissions.split("\\$");
		if(userSubjectAndType.length<1){
			return false;
		}
		Transaction tx = this.session.beginTransaction();
		tx.begin();
		Long userId = null;
		String hql = "select G.* \r\n"+
					 "  from (select id_, class_,parent_,name_,localname_,type_,describe_,remark_,sort_,status_ \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_";
		List ml = this.session.createSQLQuery(hql).addEntity(Group.class).list();
		Group group = null;
		hql = "FROM Permissions WHERE entity = ? AND name = 11";
		List lt = null;
		Permissions permissions = null;
		
		for(int i=0;i<userSubjectAndType.length;i++){
			userId = Long.parseLong(userSubjectAndType[i].substring(1,userSubjectAndType[i].indexOf("/")));
			//User user = (User)this.session.get(User.class, userId);
			
			lt = this.session.createQuery(hql).setParameter(0, userId+"").list();
			if(lt.size()>0){
				permissions = (Permissions)lt.get(0);
				permissions.setType(userSubjectAndType[i].substring(userSubjectAndType[i].indexOf("/")+1,userSubjectAndType[i].length()));
				this.session.update(permissions);
			} else {
				for(int j = 0;j<ml.size();j++){
					group = (Group)ml.get(j);
					permissions = new Permissions();
					permissions.set_class("U");
					permissions.setEntity(userId+"");
					permissions.setName(group.getId()+"");
					if(group.getId() == 11L){
						permissions.setType(userSubjectAndType[i].substring(userSubjectAndType[i].indexOf("/")+1,userSubjectAndType[i].length()));
						permissions.setAction("1");
					} else if((group.getId() == 10L) ||(group.getId() == 1L)){
						permissions.setAction("1");
					} else {
						permissions.setAction("0");
					}
					this.session.save(permissions);
				}
			}
			
		}
		tx.commit();
		this.session.close();
		return true;
	}

	public String getQuestionUserPermissions(Long mid) {
		String hql = "  Select * \r\n"+
					 "	  FROM jot_id_user \r\n"+
					 "	 WHERE id_ in(select distinct entity_ \r\n"+
					 "	                From jot_id_permissions \r\n"+
					 "	             ) and id_ in (select user_ \r\n"+
					 "	                             from jot_id_membership \r\n"+
					 "	                            where user_ is not null and group_ is not null)";
					 
		List lt = this.session.createSQLQuery(hql).addEntity(User.class).list();
		User user = new User();
		Permissions permissions = new Permissions();
		List pl = null;
		String retStr = "";
		for (int i = 0; i < lt.size(); i++) {
			user = (User) lt.get(i);
			String pHql = "FROM Permissions WHERE entity = " + user.getId()
					+ " AND name = " + mid;
			pl = this.session.createQuery(pHql).list();
			if (pl.size() > 0) {
				permissions = (Permissions) pl.get(0);
				if (permissions.getType() != null) {
					retStr = retStr +"#"+ user.getId() + "/"
							+ permissions.getType() + "$";
				} else {
					retStr = retStr + "#"+user.getId() + "/S|;T|;$";
				}
			} else {
				retStr = retStr + "#"+user.getId() + "/S|;T|;$";
			}
		}
		if(retStr.length()>0){
			retStr = retStr.substring(0,retStr.length()-1);
		}
		return retStr;
	}

	//保存阅卷人权限
	public boolean updateReadPaper(String userPermissions) {
		String[] userSubjectAndType = userPermissions.split("\\$");
		if(userSubjectAndType.length<1){
			return false;
		}
		Transaction tx = this.session.beginTransaction();
		tx.begin();
		Long userId = null;
		String hql = "select G.* \r\n"+
					 "  from (select id_, class_,parent_,name_,localname_,type_,describe_,remark_,sort_,status_ \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_";
		List ml = this.session.createSQLQuery(hql).addEntity(Group.class).list();
		Group group = null;
		hql = "FROM Permissions WHERE entity = ? AND name = 41";
		List lt = null;
		Permissions permissions = null;
		
		for(int i=0;i<userSubjectAndType.length;i++){
			userId = Long.parseLong(userSubjectAndType[i].substring(1,userSubjectAndType[i].indexOf("/")));
			//User user = (User)this.session.get(User.class, userId);
			
			lt = this.session.createQuery(hql).setParameter(0, userId+"").list();
			if(lt.size()>0){
				permissions = (Permissions)lt.get(0);
				permissions.setType(userSubjectAndType[i].substring(userSubjectAndType[i].indexOf("/")+1,userSubjectAndType[i].length()));
				this.session.update(permissions);
			} else {
				for(int j = 0;j<ml.size();j++){
					group = (Group)ml.get(j);
					permissions = new Permissions();
					permissions.set_class("U");
					permissions.setEntity(userId+"");
					permissions.setName(group.getId()+"");
					if(group.getId() == 41L){
						permissions.setType(userSubjectAndType[i].substring(userSubjectAndType[i].indexOf("/")+1,userSubjectAndType[i].length()));
						permissions.setAction("1");
					} else if(group.getId() == 40L){
						permissions.setAction("4");
					} else {
						permissions.setAction("0");
					}
					this.session.save(permissions);
				}
			}
			
		}
		tx.commit();
		this.session.close();
		return true;
	}
	//保存出卷人的权限
	public boolean updatePaperUser(String userPermissions) {
		String[] userSubjectAndType = userPermissions.split("\\$");
		if(userSubjectAndType.length<1){
			return false;
		}
		Transaction tx = this.session.beginTransaction();
		tx.begin();
		Long userId = null;
		String hql = "select G.* \r\n"+
					 "  from (select id_, class_,parent_,name_,localname_,type_,describe_,remark_,sort_,status_ \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_";
		List ml = this.session.createSQLQuery(hql).addEntity(Group.class).list();
		Group group = null;
		hql = "FROM Permissions WHERE entity = ? AND name = 22";
		List lt = null;
		Permissions permissions = null;
		
		for(int i=0;i<userSubjectAndType.length;i++){
			userId = Long.parseLong(userSubjectAndType[i].substring(1,userSubjectAndType[i].indexOf("/")));
			//User user = (User)this.session.get(User.class, userId);
			
			lt = this.session.createQuery(hql).setParameter(0, userId+"").list();
			if(lt.size()>0){
				permissions = (Permissions)lt.get(0);
				permissions.setType(userSubjectAndType[i].substring(userSubjectAndType[i].indexOf("/")+1,userSubjectAndType[i].length()));
				this.session.update(permissions);
			} else {
				for(int j = 0;j<ml.size();j++){
					group = (Group)ml.get(j);
					permissions = new Permissions();
					permissions.set_class("U");
					permissions.setEntity(userId+"");
					permissions.setName(group.getId()+"");
					if(group.getId() == 11L){
						permissions.setType(userSubjectAndType[i].substring(userSubjectAndType[i].indexOf("/")+1,userSubjectAndType[i].length()));
						permissions.setAction("1");
					} else if(group.getId() == 10L){
						permissions.setAction("1");
					} else {
						permissions.setAction("0");
					}
					this.session.save(permissions);
				}
			}
			
		}
		tx.commit();
		this.session.close();
		return true;
	}

	public boolean deletePaperQuestion(Paper paper) {
		// TODO Auto-generated method stub
		return false;
	}

	public List getPaperQuestions(Long pid) {
		String hql = "";
			
		return null;
	}

	public boolean updatePaperQuestion(Paper paper) {
		// TODO Auto-generated method stub
		return false;
	}

	public List getExaminationPapers(Long eid) {
		// TODO Auto-generated method stub
		return null;
	}

	public String getExaminationPeopleList(Long eid) {
		// TODO Auto-generated method stub
		return null;
	}

	public List getExaminationPeoples(Long eid) {
		// TODO Auto-generated method stub
		return null;
	}

	public List getExaminations() {
		String hql = "FROM Examination";
		List lt = this.session.createQuery(hql).list();
		return lt;
	}

	public boolean updateExaminationPeople(String peopleList) {
		// TODO Auto-generated method stub
		return false;
	}

	public boolean updatePaper() {
		// TODO Auto-generated method stub
		return false;
	}

}

⌨️ 快捷键说明

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