package com.syzton.sunread.model.exam; import java.util.HashMap; import java.util.Map; import javax.persistence.Entity; import com.syzton.sunread.model.common.AbstractEntity; import com.syzton.sunread.model.exam.CapacityQuestion.CapacityQuestionType; @Entity public class CapacityExamHistory extends AbstractEntity { private int firstPass; private int firstFail; private int secondPass; private int secondFail; private int thirdPass; private int thirdFail; private int fourthPass; private int fourthFail; private int fifthPass; private int fifthFail; private int sixthPass; private int sixthFail; private int seventhPass; private int seventhFail; private int eightthPass; private int eightthFail; private Long studentId; private Long examId; private boolean isPass; public int getEightthPass() { return eightthPass; } public void setEightthPass(int eightthPass) { this.eightthPass = eightthPass; } public int getEightthFail() { return eightthFail; } public void setEightthFail(int eightthFail) { this.eightthFail = eightthFail; } public Long getExamId() { return examId; } public void setExamId(Long examId) { this.examId = examId; } public boolean isPass() { return isPass; } public void setPass(boolean isPass) { this.isPass = isPass; } public int getFirstPass() { return firstPass; } public void setFirstPass(int firstPass) { this.firstPass = firstPass; } public int getFirstFail() { return firstFail; } public void setFirstFail(int firstFail) { this.firstFail = firstFail; } public int getSecondPass() { return secondPass; } public void setSecondPass(int secondPass) { this.secondPass = secondPass; } public int getSecondFail() { return secondFail; } public void setSecondFail(int secondFail) { this.secondFail = secondFail; } public int getThirdPass() { return thirdPass; } public void setThirdPass(int thirdPass) { this.thirdPass = thirdPass; } public int getThirdFail() { return thirdFail; } public void setThirdFail(int thirdFail) { this.thirdFail = thirdFail; } public int getFourthPass() { return fourthPass; } public void setFourthPass(int fourthPass) { this.fourthPass = fourthPass; } public int getFourthFail() { return fourthFail; } public void setFourthFail(int fourthFail) { this.fourthFail = fourthFail; } public int getFifthPass() { return fifthPass; } public void setFifthPass(int fifthPass) { this.fifthPass = fifthPass; } public int getFifthFail() { return fifthFail; } public void setFifthFail(int fifthFail) { this.fifthFail = fifthFail; } public int getSixthPass() { return sixthPass; } public void setSixthPass(int sixthPass) { this.sixthPass = sixthPass; } public int getSixthFail() { return sixthFail; } public void setSixthFail(int sixthFail) { this.sixthFail = sixthFail; } public int getSeventhPass() { return seventhPass; } public void setSeventhPass(int seventhPass) { this.seventhPass = seventhPass; } public int getSeventhFail() { return seventhFail; } public void setSeventhFail(int seventhFail) { this.seventhFail = seventhFail; } public Long getStudentId() { return studentId; } public void setStudentId(Long studentId) { this.studentId = studentId; } public Map<CapacityQuestionType,Integer> getEveryTypePassRate(){ Map<CapacityQuestionType,Integer> map = new HashMap<CapacityQuestionType,Integer>(); for(CapacityQuestionType type:CapacityQuestionType.values()){ map.put(type, getPassRateByType(type)); } return map; } public Map<CapacityQuestionType,Integer> getEveryTypePassCount(){ Map<CapacityQuestionType,Integer> map = new HashMap<CapacityQuestionType,Integer>(); for(CapacityQuestionType type:CapacityQuestionType.values()){ map.put(type, getPassRateByType(type)); } return map; } public Map<CapacityQuestionType,Integer> getEveryTypeTotalCount(){ Map<CapacityQuestionType,Integer> map = new HashMap<CapacityQuestionType,Integer>(); for(CapacityQuestionType type:CapacityQuestionType.values()){ map.put(type, getPassRateByType(type)); } return map; } public int getPassRateByType(CapacityQuestionType type){ int count = 0; if(type.equals(CapacityQuestionType.FIRST)){ count = firstFail+firstPass; if(count>0){ return firstPass*100/count; } return 0; }else if(type.equals(CapacityQuestionType.SECOND)){ count = secondFail+secondPass; if(count>0){ return secondPass*100/count; } return 0; }else if(type.equals(CapacityQuestionType.THIRD)){ count = thirdFail+thirdPass; if(count>0){ return thirdPass*100/count; } return 0; }else if(type.equals(CapacityQuestionType.FOURTH)){ count = fourthFail+fourthPass; if(count>0){ return fourthPass*100/count; } return 0; }else if(type.equals(CapacityQuestionType.FIFTH)){ count = fifthFail+fifthPass; if(count>0){ return fifthPass*100/count; } return 0; }else if(type.equals(CapacityQuestionType.SIXTH)){ count = sixthFail+sixthPass; if(count>0){ return sixthPass*100/count; } return 0; }else if(type.equals(CapacityQuestionType.SEVENTH)){ count = seventhFail+seventhPass; if(count>0){ return seventhPass*100/count; } return 0; }else if(type.equals(CapacityQuestionType.EIGHTTH)){ count = eightthFail+eightthPass; if(count>0){ return eightthPass*100/count; } return 0; }else if(type.equals(CapacityQuestionType.SECOND)){ count = secondFail+secondPass; if(count>0){ return secondPass*100/count; } return 0; }else{ return 0; } } public int getPassCountByType(CapacityQuestionType type){ if(type.equals(CapacityQuestionType.FIRST)){ return firstPass; }else if(type.equals(CapacityQuestionType.SECOND)){ return secondPass; }else if(type.equals(CapacityQuestionType.THIRD)){ return thirdPass; }else if(type.equals(CapacityQuestionType.FOURTH)){ return fourthPass; }else if(type.equals(CapacityQuestionType.FIFTH)){ return fifthPass; }else if(type.equals(CapacityQuestionType.SIXTH)){ return sixthPass; }else if(type.equals(CapacityQuestionType.SEVENTH)){ return seventhPass; }else if(type.equals(CapacityQuestionType.EIGHTTH)){ return eightthPass; }else{ return 0; } } public int getCountByType(CapacityQuestionType type){ if(type.equals(CapacityQuestionType.FIRST)){ return firstPass+firstFail; }else if(type.equals(CapacityQuestionType.SECOND)){ return secondPass+secondFail; }else if(type.equals(CapacityQuestionType.THIRD)){ return thirdPass+thirdFail; }else if(type.equals(CapacityQuestionType.FOURTH)){ return fourthPass+fourthFail; }else if(type.equals(CapacityQuestionType.FIFTH)){ return fifthPass+fifthFail; }else if(type.equals(CapacityQuestionType.SIXTH)){ return sixthPass+sixthFail; }else if(type.equals(CapacityQuestionType.SEVENTH)){ return seventhPass+seventhFail; }else if(type.equals(CapacityQuestionType.EIGHTTH)){ return eightthPass+eightthFail; }else{ return 0; } } }