📄 businessdaoimpl.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 + -