From 7fee3c235b29209f4891f673f2f30d2f0e8cef68 Mon Sep 17 00:00:00 2001 From: 陈杰 <504987307@qq.com> Date: Tue, 5 Nov 2019 10:35:01 +0800 Subject: [PATCH] redis --- pom.xml | 5 +++++ src/main/java/com/jevon/controller/LearnController.java | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------- src/main/java/com/jevon/controller/LearnStatController.java | 1054 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/main/java/com/jevon/mapper/KnowledgeMapper.java | 19 +++++++++++++++++++ src/main/java/com/jevon/model/Analyse.java | 3 ++- src/main/java/com/jevon/model/AnalyseDetail.java | 3 ++- src/main/java/com/jevon/model/AnalyseDimensional.java | 3 ++- src/main/java/com/jevon/model/Chapter.java | 4 +++- src/main/java/com/jevon/model/ClassCourse.java | 3 ++- src/main/java/com/jevon/model/ClassModel.java | 4 +++- src/main/java/com/jevon/model/Course.java | 4 +++- src/main/java/com/jevon/model/Dimensional.java | 3 ++- src/main/java/com/jevon/model/JoinClass.java | 4 +++- src/main/java/com/jevon/model/Knowledge.java | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/model/League.java | 4 +++- src/main/java/com/jevon/model/Schedule.java | 3 ++- src/main/java/com/jevon/model/Student.java | 3 ++- src/main/java/com/jevon/model/StudentDetail.java | 3 ++- src/main/java/com/jevon/model/Teacher.java | 4 +++- src/main/java/com/jevon/model/TeacherClass.java | 3 ++- src/main/java/com/jevon/model/TeacherCourse.java | 3 ++- src/main/java/com/jevon/service/KnowledgeService.java | 19 +++++++++++++++++++ src/main/java/com/jevon/service/impl/KnowledgeServiceImpl.java | 36 ++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/utils/RedisUtils.java | 227 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/utils/SerializeUtil.java | 44 ++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/vo/BaseVo.java | 4 +++- src/main/java/com/jevon/vo/school/Form1.java | 4 +++- src/main/java/com/jevon/vo/school/Form1RepVO.java | 4 +++- src/main/java/com/jevon/vo/school/Form2.java | 4 +++- src/main/java/com/jevon/vo/school/Form3.java | 4 +++- src/main/java/com/jevon/vo/school/Form4.java | 4 +++- src/main/java/com/jevon/vo/school/Form5.java | 4 +++- src/main/java/com/jevon/vo/school/Form6.java | 4 +++- src/main/java/com/jevon/vo/school/Form7.java | 4 +++- src/main/java/com/jevon/vo/school/Form7RepVO.java | 3 ++- src/main/java/com/jevon/vo/school/Form8.java | 4 +++- src/main/java/com/jevon/vo/school/Table1.java | 4 +++- src/main/java/com/jevon/vo/school/Table2.java | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/vo/school/Table2RepVO.java | 23 +++++++++++++++++++++++ src/main/resources/application.yml | 8 +++----- src/main/resources/conf.properties | 4 ++++ src/main/resources/logback.xml | 2 +- src/main/resources/mapping/KnowledgeMapper.xml | 29 +++++++++++++++++++++++++++++ 43 files changed, 1268 insertions(+), 522 deletions(-) create mode 100644 src/main/java/com/jevon/mapper/KnowledgeMapper.java create mode 100644 src/main/java/com/jevon/model/Knowledge.java create mode 100644 src/main/java/com/jevon/service/KnowledgeService.java create mode 100644 src/main/java/com/jevon/service/impl/KnowledgeServiceImpl.java create mode 100644 src/main/java/com/jevon/utils/RedisUtils.java create mode 100644 src/main/java/com/jevon/utils/SerializeUtil.java create mode 100644 src/main/java/com/jevon/vo/school/Table2.java create mode 100644 src/main/java/com/jevon/vo/school/Table2RepVO.java create mode 100644 src/main/resources/conf.properties create mode 100644 src/main/resources/mapping/KnowledgeMapper.xml diff --git a/pom.xml b/pom.xml index 401fb22..067f3a6 100644 --- a/pom.xml +++ b/pom.xml @@ -15,6 +15,11 @@ + redis.clients + jedis + 2.9.0 + + org.apache.httpcomponents httpclient 4.3 diff --git a/src/main/java/com/jevon/controller/LearnController.java b/src/main/java/com/jevon/controller/LearnController.java index 28267c9..cfc769d 100644 --- a/src/main/java/com/jevon/controller/LearnController.java +++ b/src/main/java/com/jevon/controller/LearnController.java @@ -5,6 +5,7 @@ import com.jevon.enums.DimensionalEnums; import com.jevon.model.*; import com.jevon.service.*; import com.jevon.utils.HttpClientUtils; +import com.jevon.utils.RedisUtils; import com.jevon.vo.BaseVo; import com.jevon.vo.excel.ExamExcelVo; import com.jevon.vo.excel.ScoreExcelVo; @@ -18,10 +19,8 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.InputStream; @@ -61,6 +60,9 @@ public class LearnController { @Autowired ChapterService chapterService; + @Autowired + KnowledgeService knowledgeService; + @ApiOperation("获取列表") @RequestMapping(value = "getList", method = RequestMethod.POST) public List getList(){ @@ -111,6 +113,7 @@ public class LearnController { baseVo.setMessage("已经导入"); baseVo.setSuccess(false); }else { + RedisUtils.flushAll(); analysisExcel(initAnalyseReqVo); } return baseVo; @@ -149,25 +152,27 @@ public class LearnController { //获取表头 } else { ExamExcelVo examExcelVo = new ExamExcelVo(sheetRow); - maxScore = maxScore + new Float(examExcelVo.getScore()); - AnalyseDetail analyseDetail = new AnalyseDetail(); - String questionNumber = null ; - if(StringUtils.isNotBlank(examExcelVo.getQuestionSmallNumber())){ - questionNumber = examExcelVo.getQuestionNumber()+"("+examExcelVo.getQuestionSmallNumber()+")"; - }else { - questionNumber = examExcelVo.getQuestionNumber() ; + if(examExcelVo.getScore() != null){ + maxScore = maxScore + new Float(examExcelVo.getScore()); + AnalyseDetail analyseDetail = new AnalyseDetail(); + String questionNumber = null ; + if(StringUtils.isNotBlank(examExcelVo.getQuestionSmallNumber())){ + questionNumber = examExcelVo.getQuestionNumber()+"("+examExcelVo.getQuestionSmallNumber()+")"; + }else { + questionNumber = examExcelVo.getQuestionNumber() ; + } + analyseDetail.setQuestionNumber(questionNumber); + analyseDetail.setAnalyseId(analyse.getId()); + analyseDetail.setQuestionType(examExcelVo.getQuestionType()); + analyseDetail.setDifficult(DifficultEnums.getDifficultType(examExcelVo.getDifficult())); + analyseDetail.setScore(new Double(examExcelVo.getScore())); + analyseDetail.setCreateTime(date); + analyseDetails.add(analyseDetail); + initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getKnowledge(),DimensionalEnums.knowledge.getDimensionalType(),analyseDimensionals); + initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getAbility(),DimensionalEnums.ability.getDimensionalType(),analyseDimensionals); + initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getSkill(),DimensionalEnums.skill.getDimensionalType(),analyseDimensionals); + initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getThink(),DimensionalEnums.think.getDimensionalType(),analyseDimensionals); } - analyseDetail.setQuestionNumber(questionNumber); - analyseDetail.setAnalyseId(analyse.getId()); - analyseDetail.setQuestionType(examExcelVo.getQuestionType()); - analyseDetail.setDifficult(DifficultEnums.getDifficultType(examExcelVo.getDifficult())); - analyseDetail.setScore(new Double(examExcelVo.getScore())); - analyseDetail.setCreateTime(date); - analyseDetails.add(analyseDetail); - initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getKnowledge(),DimensionalEnums.knowledge.getDimensionalType(),analyseDimensionals); - initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getAbility(),DimensionalEnums.ability.getDimensionalType(),analyseDimensionals); - initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getSkill(),DimensionalEnums.skill.getDimensionalType(),analyseDimensionals); - initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getThink(),DimensionalEnums.think.getDimensionalType(),analyseDimensionals); } } analyseDetailService.insertBatch(analyseDetails); @@ -175,7 +180,7 @@ public class LearnController { analyse.setMaxScore(new Double(maxScore)); analyseService.update(analyse); }catch (Exception e){ - System.out.println(e); + e.printStackTrace(); } } @@ -373,4 +378,50 @@ public class LearnController { public List getSchoolName(int analyseId){ return studentService.selectSchoolNameByAnalyse(analyseId); } + + @ApiOperation("导入中考数据") + @RequestMapping(value = "initKnowledge", method = RequestMethod.POST) + public void initKnowledge(@RequestParam("file") MultipartFile file){ + InputStream fis = null; + Workbook workBook = null; + try { + fis = file.getInputStream(); + String fileName = file.getOriginalFilename(); + if (fileName.endsWith("xls")) { + workBook = new HSSFWorkbook(fis); + } else { + workBook = new XSSFWorkbook(fis); + } + List list = new ArrayList<>(); + for(int number = 0 ; number < workBook.getNumberOfSheets() ; number++) { + Sheet sheet = workBook.getSheetAt(number); + Date date = new Date(); + int rows = sheet.getPhysicalNumberOfRows(); + for (int i = 1; i < rows; i++) { + // 获取第i行数据 + Row sheetRow = sheet.getRow(i); + if(sheetRow != null){ + Cell cell1 = sheetRow.getCell(0); + Cell cell2 = sheetRow.getCell(1); + Cell cell3 = sheetRow.getCell(2); + Cell cell4 = sheetRow.getCell(3); + if(cell1 != null){ + Knowledge knowledge = new Knowledge(); + knowledge.setKnowledge(cell1.getStringCellValue()); + knowledge.setDetail(cell2.getStringCellValue()); + cell3.setCellType(CellType.STRING); + cell4.setCellType(CellType.STRING); + knowledge.setRate(cell3.getStringCellValue()); + knowledge.setAvg(cell4.getStringCellValue()); + knowledge.setUpdateTime(date); + list.add(knowledge); + } + } + } + knowledgeService.insertBatch(list); + } + }catch (Exception e){ + e.printStackTrace(); + } + } } diff --git a/src/main/java/com/jevon/controller/LearnStatController.java b/src/main/java/com/jevon/controller/LearnStatController.java index ae0560b..76e0545 100644 --- a/src/main/java/com/jevon/controller/LearnStatController.java +++ b/src/main/java/com/jevon/controller/LearnStatController.java @@ -4,11 +4,13 @@ import com.jevon.enums.DifficultEnums; import com.jevon.enums.DimensionalEnums; import com.jevon.model.*; import com.jevon.service.*; +import com.jevon.utils.RedisUtils; import com.jevon.vo.rep.SuggestRepVo; import com.jevon.vo.req.GetLearnReqVo; import com.jevon.vo.school.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -54,41 +56,49 @@ public class LearnStatController { @Autowired ChapterService chapterService; + @Autowired + KnowledgeService knowledgeService ; + @ApiOperation("getForm1_1") @RequestMapping(value = "getForm1_1", method = RequestMethod.POST) public Form7RepVO getForm1_1(@RequestBody GetLearnReqVo getLearnReqVo){ Form7RepVO form7RepVO = new Form7RepVO(); - Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); - form7RepVO.setExamTime(analyse.getExamTime()); - form7RepVO.setMaxScore(analyse.getMaxScore()); - form7RepVO.setExamScope(analyse.getExamScope()); - form7RepVO.setCourseName(analyse.getCourseName()); - - List chapters = chapterService.selectByAnalyse(analyse.getId()); - for(Chapter chapter : chapters){ - chapter.setPercent(chapter.getChapterScore() / analyse.getMaxScore() * 100); - } - form7RepVO.setList(chapters); - List difficultList = new ArrayList<>(); - for (DifficultEnums difficultEnums : DifficultEnums.values()){ - Form7 form7 = new Form7(); - form7.setName(difficultEnums.getDifficultShow()); - form7.setPercent(analyseDetailService.selectDifficult(analyse.getId(),difficultEnums.getDifficultType())/analyse.getMaxScore()*100); - difficultList.add(form7); - } - form7RepVO.setDifficultList(difficultList); - - List typeList = new ArrayList<>(); - List list = analyseDetailService.selectQuestionType(analyse.getId()); - for(String type : list){ - Form7 form7 = new Form7(); - form7.setName(type); - Double score = analyseDetailService.selectSumType(analyse.getId(),type); - form7.setScore(score); - form7.setPercent(score / analyse.getMaxScore() * 100); - typeList.add(form7); - } - form7RepVO.setTypeList(typeList); + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_1_1")){ + form7RepVO = (Form7RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_1_1"); + }else { + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); + form7RepVO.setExamTime(analyse.getExamTime()); + form7RepVO.setMaxScore(analyse.getMaxScore()); + form7RepVO.setExamScope(analyse.getExamScope()); + form7RepVO.setCourseName(analyse.getCourseName()); + + List chapters = chapterService.selectByAnalyse(analyse.getId()); + for(Chapter chapter : chapters){ + chapter.setPercent(chapter.getChapterScore() / analyse.getMaxScore() * 100); + } + form7RepVO.setList(chapters); + List difficultList = new ArrayList<>(); + for (DifficultEnums difficultEnums : DifficultEnums.values()){ + Form7 form7 = new Form7(); + form7.setName(difficultEnums.getDifficultShow()); + form7.setPercent(analyseDetailService.selectDifficult(analyse.getId(),difficultEnums.getDifficultType())/analyse.getMaxScore()*100); + difficultList.add(form7); + } + form7RepVO.setDifficultList(difficultList); + + List typeList = new ArrayList<>(); + List list = analyseDetailService.selectQuestionType(analyse.getId()); + for(String type : list){ + Form7 form7 = new Form7(); + form7.setName(type); + Double score = analyseDetailService.selectSumType(analyse.getId(),type); + form7.setScore(score); + form7.setPercent(score / analyse.getMaxScore() * 100); + typeList.add(form7); + } + form7RepVO.setTypeList(typeList); + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_1_1",form7RepVO); + } return form7RepVO; } @@ -96,44 +106,49 @@ public class LearnStatController { @RequestMapping(value = "getForm2_1_1", method = RequestMethod.POST) public Form1RepVO getForm2_1_1(@RequestBody GetLearnReqVo getLearnReqVo){ Form1RepVO form1RepVo = new Form1RepVO(); - //2.1表 - Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); - //分数段 - Double maxScore = analyse.getMaxScore(); - Map segmentMap = new HashMap<>(); - segmentMap.put("A(优秀)",maxScore*0.85 + "~" + maxScore+"分"); - segmentMap.put("B(良好)",maxScore*0.7 + "~" + (maxScore*0.85-1f)+"分"); - segmentMap.put("C(及格)",maxScore*0.7 + "~" + (maxScore*0.7-1f)+"分"); - segmentMap.put("D(不及格)",0 + "~" + (maxScore*0.6-1f)+"分"); - form1RepVo.setMap(segmentMap); - List students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName()); - double sum = new Double(students.size()); - int a = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),maxScore*0.85,maxScore+1f); - int b = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),maxScore*0.7,(maxScore*0.85)); - int c = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),maxScore*0.6,(maxScore*0.7)); - int d = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),maxScore*0,(maxScore*0.6)); - List form1List = new ArrayList<>(); - Form1 formA = new Form1(); - formA.setLevel("A"); - formA.setNumber(a); - formA.setProp(a/sum*100); - Form1 formB = new Form1(); - formB.setLevel("B"); - formB.setNumber(b); - formB.setProp(b/sum*100); - Form1 formC = new Form1(); - formC.setLevel("C"); - formC.setNumber(c); - formC.setProp(c/sum*100); - Form1 formD = new Form1(); - formD.setLevel("D"); - formD.setNumber(d); - formD.setProp(d/sum*100); - form1List.add(formA); - form1List.add(formB); - form1List.add(formC); - form1List.add(formD); - form1RepVo.setList(form1List); + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_1_1")){ + form1RepVo = (Form1RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_1_1"); + }else { + //2.1表 + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); + //分数段 + Double maxScore = analyse.getMaxScore(); + Map segmentMap = new HashMap<>(); + segmentMap.put("A(优秀)",maxScore*0.85 + "~" + maxScore+"分"); + segmentMap.put("B(良好)",maxScore*0.7 + "~" + (maxScore*0.85-1f)+"分"); + segmentMap.put("C(及格)",maxScore*0.7 + "~" + (maxScore*0.7-1f)+"分"); + segmentMap.put("D(不及格)",0 + "~" + (maxScore*0.6-1f)+"分"); + form1RepVo.setMap(segmentMap); + List students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName()); + double sum = new Double(students.size()); + int a = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),maxScore*0.85,maxScore+1f); + int b = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),maxScore*0.7,(maxScore*0.85)); + int c = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),maxScore*0.6,(maxScore*0.7)); + int d = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),maxScore*0,(maxScore*0.6)); + List form1List = new ArrayList<>(); + Form1 formA = new Form1(); + formA.setLevel("A"); + formA.setNumber(a); + formA.setProp(a/sum*100); + Form1 formB = new Form1(); + formB.setLevel("B"); + formB.setNumber(b); + formB.setProp(b/sum*100); + Form1 formC = new Form1(); + formC.setLevel("C"); + formC.setNumber(c); + formC.setProp(c/sum*100); + Form1 formD = new Form1(); + formD.setLevel("D"); + formD.setNumber(d); + formD.setProp(d/sum*100); + form1List.add(formA); + form1List.add(formB); + form1List.add(formC); + form1List.add(formD); + form1RepVo.setList(form1List); + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_1_1",form1RepVo); + } return form1RepVo; } @@ -141,63 +156,68 @@ public class LearnStatController { @RequestMapping(value = "getForm2_1_2", method = RequestMethod.POST) public Form2RepVO getForm2_1_2(@RequestBody GetLearnReqVo getLearnReqVo){ Form2RepVO repVO = new Form2RepVO(); - Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); - if(analyse == null){ - repVO.setSuccess(false); - repVO.setMessage("请先创建考试"); - return repVO; - } - List leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); - if(leagues == null){ - repVO.setSuccess(false); - repVO.setMessage("请先设定联盟校"); - return repVO; - } - List allStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,null); - List leagueStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),leagues,null); - List students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName()); - //先算高分段的分数 - int highNumber = (int) Math.floor(allStudents.size()*0.27); - double highScore = allStudents.get(highNumber).getScore(); - int lowNumber = allStudents.size()-highNumber; - double lowScore = allStudents.get(lowNumber).getScore(); - List list = new ArrayList<>(); - - int highAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,null,highScore,analyse.getMaxScore()+1f); - int lowAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,null,0,lowScore); - Form2 form2 = new Form2(); - form2.setName("区"); - form2.setStudentNumber(allStudents.size()); - form2.setHighNumber(highAllCount); - form2.setLowNumber(lowAllCount); - list.add(form2); - { - int highLeagueCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),leagues,null,highScore,analyse.getMaxScore()+1f); - int lowLeagueCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),leagues,null,0,lowScore); - Form2 form = new Form2(); - form.setName("联盟校"); - form.setStudentNumber(leagueStudents.size()); - form.setStudentProp(new Double(leagueStudents.size()) / new Double(allStudents.size())); - form.setHighNumber(highLeagueCount); - form.setLowNumber(lowLeagueCount); - form.setHighProp(highLeagueCount/new Double(highAllCount)); - form.setLowProp(lowLeagueCount/new Double(lowAllCount)); - list.add(form); - } - { - int highCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),highScore,analyse.getMaxScore()+1f); - int lowCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),0,lowScore); - Form2 form = new Form2(); - form.setName(getLearnReqVo.getSchoolName()); - form.setStudentNumber(students.size()); - form.setStudentProp(new Double(students.size()) / new Double(allStudents.size())); - form.setHighNumber(highCount); - form.setLowNumber(lowCount); - form.setHighProp(highCount/new Double(highAllCount)); - form.setLowProp(lowCount/new Double(lowAllCount)); - list.add(form); + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_1_2")){ + repVO = (Form2RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_1_2"); + }else { + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); + if(analyse == null){ + repVO.setSuccess(false); + repVO.setMessage("请先创建考试"); + return repVO; + } + List leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); + if(leagues == null){ + repVO.setSuccess(false); + repVO.setMessage("请先设定联盟校"); + return repVO; + } + List allStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,null); + List leagueStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),leagues,null); + List students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName()); + //先算高分段的分数 + int highNumber = (int) Math.floor(allStudents.size()*0.27); + double highScore = allStudents.get(highNumber).getScore(); + int lowNumber = allStudents.size()-highNumber; + double lowScore = allStudents.get(lowNumber).getScore(); + List list = new ArrayList<>(); + + int highAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,null,highScore,analyse.getMaxScore()+1f); + int lowAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,null,0,lowScore); + Form2 form2 = new Form2(); + form2.setName("区"); + form2.setStudentNumber(allStudents.size()); + form2.setHighNumber(highAllCount); + form2.setLowNumber(lowAllCount); + list.add(form2); + { + int highLeagueCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),leagues,null,highScore,analyse.getMaxScore()+1f); + int lowLeagueCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),leagues,null,0,lowScore); + Form2 form = new Form2(); + form.setName("联盟校"); + form.setStudentNumber(leagueStudents.size()); + form.setStudentProp(new Double(leagueStudents.size()) / new Double(allStudents.size())); + form.setHighNumber(highLeagueCount); + form.setLowNumber(lowLeagueCount); + form.setHighProp(highLeagueCount/new Double(highAllCount)); + form.setLowProp(lowLeagueCount/new Double(lowAllCount)); + list.add(form); + } + { + int highCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),highScore,analyse.getMaxScore()+1f); + int lowCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),0,lowScore); + Form2 form = new Form2(); + form.setName(getLearnReqVo.getSchoolName()); + form.setStudentNumber(students.size()); + form.setStudentProp(new Double(students.size()) / new Double(allStudents.size())); + form.setHighNumber(highCount); + form.setLowNumber(lowCount); + form.setHighProp(highCount/new Double(highAllCount)); + form.setLowProp(lowCount/new Double(lowAllCount)); + list.add(form); + } + repVO.setData(list); + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_1_2",repVO); } - repVO.setData(list); return repVO; } @@ -205,43 +225,48 @@ public class LearnStatController { @RequestMapping(value = "getForm2_1_3_2", method = RequestMethod.POST) public Form2RepVO getForm2_1_3_2(@RequestBody GetLearnReqVo getLearnReqVo){ Form2RepVO repVO = new Form2RepVO(); - Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); - if(analyse == null){ - repVO.setSuccess(false); - repVO.setMessage("请先创建考试"); - return repVO; + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_1_3_2")){ + repVO = (Form2RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_1_3_2"); + }else { + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); + if(analyse == null){ + repVO.setSuccess(false); + repVO.setMessage("请先创建考试"); + return repVO; + } + List allStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName()); + //先算高分段的分数 + int highNumber = (int) Math.floor(allStudents.size()*0.27); + double highScore = allStudents.get(highNumber).getScore(); + int lowNumber = allStudents.size()-highNumber; + double lowScore = allStudents.get(lowNumber).getScore(); + int highAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),highScore,analyse.getMaxScore()+1f); + int lowAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),0,lowScore); + List resultList = new ArrayList<>(); + Form2 form = new Form2(); + form.setName(getLearnReqVo.getSchoolName()); + form.setStudentNumber(allStudents.size()); + form.setHighNumber(highAllCount); + form.setLowNumber(lowAllCount); + resultList.add(form); + List classNamList = studentService.selectClassNameBySchool(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName()); + for(String className : classNamList){ + List list = studentService.selectByClassName(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className); + int highCount = studentService.selectCountBySchoolScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className,highScore,analyse.getMaxScore()+1f); + int lowCount = studentService.selectCountBySchoolScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className,0,lowScore); + Form2 form2 = new Form2(); + form2.setName(className); + form2.setStudentNumber(list.size()); + form2.setStudentProp(new Double(list.size()) / new Double(allStudents.size())); + form2.setHighNumber(highCount); + form2.setLowNumber(lowCount); + form2.setHighProp(highCount/new Double(highAllCount)); + form2.setLowProp(lowCount/new Double(lowAllCount)); + resultList.add(form2); + } + repVO.setData(resultList); + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_1_3_2",repVO); } - List allStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName()); - //先算高分段的分数 - int highNumber = (int) Math.floor(allStudents.size()*0.27); - double highScore = allStudents.get(highNumber).getScore(); - int lowNumber = allStudents.size()-highNumber; - double lowScore = allStudents.get(lowNumber).getScore(); - int highAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),highScore,analyse.getMaxScore()+1f); - int lowAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),0,lowScore); - List resultList = new ArrayList<>(); - Form2 form = new Form2(); - form.setName(getLearnReqVo.getSchoolName()); - form.setStudentNumber(allStudents.size()); - form.setHighNumber(highAllCount); - form.setLowNumber(lowAllCount); - resultList.add(form); - List classNamList = studentService.selectClassNameBySchool(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName()); - for(String className : classNamList){ - List list = studentService.selectByClassName(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className); - int highCount = studentService.selectCountBySchoolScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className,highScore,analyse.getMaxScore()+1f); - int lowCount = studentService.selectCountBySchoolScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className,0,lowScore); - Form2 form2 = new Form2(); - form2.setName(className); - form2.setStudentNumber(list.size()); - form2.setStudentProp(new Double(list.size()) / new Double(allStudents.size())); - form2.setHighNumber(highCount); - form2.setLowNumber(lowCount); - form2.setHighProp(highCount/new Double(highAllCount)); - form2.setLowProp(lowCount/new Double(lowAllCount)); - resultList.add(form2); - } - repVO.setData(resultList); return repVO; } @@ -285,71 +310,76 @@ public class LearnStatController { @RequestMapping(value = "getForm2_2_1", method = RequestMethod.POST) public Form3RepVO getForm2_2_1(@RequestBody GetLearnReqVo getLearnReqVo){ Form3RepVO repVO = new Form3RepVO(); - Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); - if(analyse == null){ - repVO.setSuccess(false); - repVO.setMessage("请先创建考试"); - return repVO; - } - List leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); - if(leagues == null){ - repVO.setSuccess(false); - repVO.setMessage("请先设定联盟校"); - return repVO; - } - List list = new ArrayList<>(); - List allStudents = studentService.selectBySchoolName(analyse.getId(),null,null); - { - Form3 form3 = new Form3(); - form3.setName("区"); - form3.setMaxScore(studentService.selectMaxScore(analyse.getId(),null,null)); - form3.setAverage(studentService.selectAvgScore(analyse.getId(),null,null)); - form3.setMinScore(studentService.selectMinScore(analyse.getId(),null,null)); - int a = studentService.selectCountByScore(analyse.getId(),null,null,analyse.getMaxScore()*0.85,analyse.getMaxScore()+1); - form3.setApercent(a / new Double(allStudents.size()) * 100); - int b = studentService.selectCountByScore(analyse.getId(),null,null,analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85); - form3.setBpercent(b / new Double(allStudents.size()) * 100); - int c = studentService.selectCountByScore(analyse.getId(),null,null,analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7); - form3.setCpercent(c / new Double(allStudents.size()) * 100); - int d = studentService.selectCountByScore(analyse.getId(),null,null,analyse.getMaxScore()*0,analyse.getMaxScore()*0.6); - form3.setDpercent(d / new Double(allStudents.size()) * 100); - list.add(form3); - } - { - Form3 form = new Form3(); - form.setName("联盟校"); - List students = studentService.selectBySchoolName(analyse.getId(),leagues,null); - form.setMaxScore(studentService.selectMaxScore(analyse.getId(),leagues,null)); - form.setAverage(studentService.selectAvgScore(analyse.getId(),leagues,null)); - form.setMinScore(studentService.selectMinScore(analyse.getId(),leagues,null)); - int a1 = studentService.selectCountByScore(analyse.getId(),leagues,null,analyse.getMaxScore()*0.85,analyse.getMaxScore()+1); - form.setApercent(a1 / new Double(students.size()) * 100); - int b1 = studentService.selectCountByScore(analyse.getId(),leagues,null,analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85); - form.setBpercent(b1 / new Double(students.size()) * 100); - int c1 = studentService.selectCountByScore(analyse.getId(),leagues,null,analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7); - form.setCpercent(c1 / new Double(students.size()) * 100); - int d1 = studentService.selectCountByScore(analyse.getId(),leagues,null,analyse.getMaxScore()*0,analyse.getMaxScore()*0.6); - form.setDpercent(d1 / new Double(students.size()) * 100); - list.add(form); - } - { - Form3 form = new Form3(); - form.setName(getLearnReqVo.getSchoolName()); - List students = studentService.selectBySchoolName(analyse.getId(),null,getLearnReqVo.getSchoolName()); - form.setMaxScore(studentService.selectMaxScore(analyse.getId(),null,getLearnReqVo.getSchoolName())); - form.setAverage(studentService.selectAvgScore(analyse.getId(),null,getLearnReqVo.getSchoolName())); - form.setMinScore(studentService.selectMinScore(analyse.getId(),null,getLearnReqVo.getSchoolName())); - int a1 = studentService.selectCountByScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.85,analyse.getMaxScore()+1); - form.setApercent(a1 / new Double(students.size()) * 100); - int b1 = studentService.selectCountByScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85); - form.setBpercent(b1 / new Double(students.size()) * 100); - int c1 = studentService.selectCountByScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7); - form.setCpercent(c1 / new Double(students.size()) * 100); - int d1 = studentService.selectCountByScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0,analyse.getMaxScore()*0.6); - form.setDpercent(d1 / new Double(students.size()) * 100); - list.add(form); + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_1")){ + repVO = (Form3RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_1"); + }else { + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); + if(analyse == null){ + repVO.setSuccess(false); + repVO.setMessage("请先创建考试"); + return repVO; + } + List leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); + if(leagues == null){ + repVO.setSuccess(false); + repVO.setMessage("请先设定联盟校"); + return repVO; + } + List list = new ArrayList<>(); + List allStudents = studentService.selectBySchoolName(analyse.getId(),null,null); + { + Form3 form3 = new Form3(); + form3.setName("区"); + form3.setMaxScore(studentService.selectMaxScore(analyse.getId(),null,null)); + form3.setAverage(studentService.selectAvgScore(analyse.getId(),null,null)); + form3.setMinScore(studentService.selectMinScore(analyse.getId(),null,null)); + int a = studentService.selectCountByScore(analyse.getId(),null,null,analyse.getMaxScore()*0.85,analyse.getMaxScore()+1); + form3.setApercent(a / new Double(allStudents.size()) * 100); + int b = studentService.selectCountByScore(analyse.getId(),null,null,analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85); + form3.setBpercent(b / new Double(allStudents.size()) * 100); + int c = studentService.selectCountByScore(analyse.getId(),null,null,analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7); + form3.setCpercent(c / new Double(allStudents.size()) * 100); + int d = studentService.selectCountByScore(analyse.getId(),null,null,analyse.getMaxScore()*0,analyse.getMaxScore()*0.6); + form3.setDpercent(d / new Double(allStudents.size()) * 100); + list.add(form3); + } + { + Form3 form = new Form3(); + form.setName("联盟校"); + List students = studentService.selectBySchoolName(analyse.getId(),leagues,null); + form.setMaxScore(studentService.selectMaxScore(analyse.getId(),leagues,null)); + form.setAverage(studentService.selectAvgScore(analyse.getId(),leagues,null)); + form.setMinScore(studentService.selectMinScore(analyse.getId(),leagues,null)); + int a1 = studentService.selectCountByScore(analyse.getId(),leagues,null,analyse.getMaxScore()*0.85,analyse.getMaxScore()+1); + form.setApercent(a1 / new Double(students.size()) * 100); + int b1 = studentService.selectCountByScore(analyse.getId(),leagues,null,analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85); + form.setBpercent(b1 / new Double(students.size()) * 100); + int c1 = studentService.selectCountByScore(analyse.getId(),leagues,null,analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7); + form.setCpercent(c1 / new Double(students.size()) * 100); + int d1 = studentService.selectCountByScore(analyse.getId(),leagues,null,analyse.getMaxScore()*0,analyse.getMaxScore()*0.6); + form.setDpercent(d1 / new Double(students.size()) * 100); + list.add(form); + } + { + Form3 form = new Form3(); + form.setName(getLearnReqVo.getSchoolName()); + List students = studentService.selectBySchoolName(analyse.getId(),null,getLearnReqVo.getSchoolName()); + form.setMaxScore(studentService.selectMaxScore(analyse.getId(),null,getLearnReqVo.getSchoolName())); + form.setAverage(studentService.selectAvgScore(analyse.getId(),null,getLearnReqVo.getSchoolName())); + form.setMinScore(studentService.selectMinScore(analyse.getId(),null,getLearnReqVo.getSchoolName())); + int a1 = studentService.selectCountByScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.85,analyse.getMaxScore()+1); + form.setApercent(a1 / new Double(students.size()) * 100); + int b1 = studentService.selectCountByScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85); + form.setBpercent(b1 / new Double(students.size()) * 100); + int c1 = studentService.selectCountByScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7); + form.setCpercent(c1 / new Double(students.size()) * 100); + int d1 = studentService.selectCountByScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0,analyse.getMaxScore()*0.6); + form.setDpercent(d1 / new Double(students.size()) * 100); + list.add(form); + } + repVO.setData(list); + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_1",repVO); } - repVO.setData(list); return repVO ; } @@ -357,47 +387,52 @@ public class LearnStatController { @RequestMapping(value = "getForm2_2_2", method = RequestMethod.POST) public Form4RepVO getForm2_2_2(@RequestBody GetLearnReqVo getLearnReqVo){ Form4RepVO repVO = new Form4RepVO(); - Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); - if(analyse == null){ - repVO.setSuccess(false); - repVO.setMessage("请先创建考试"); - return repVO; - } - List leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); - if(leagues == null){ - repVO.setSuccess(false); - repVO.setMessage("请先设定联盟校"); - return repVO; - } - List list = new ArrayList<>(); - { - Form4 form4 = new Form4(); - form4.setName("区"); - form4.setModeNumber(studentService.selectModeNumber(analyse.getId(),null,null)); - form4.setMedianNumber(studentService.selectMedian(analyse.getId(),null,null)); - form4.setStdev(studentService.selectStdev(analyse.getId(),null,null)); - form4.setAvgNumber(studentService.selectAvgScore(analyse.getId(),null,null)); - list.add(form4); - } - { - Form4 form = new Form4(); - form.setName(getLearnReqVo.getSchoolName()); - form.setModeNumber(studentService.selectModeNumber(analyse.getId(),leagues,null)); - form.setMedianNumber(studentService.selectMedian(analyse.getId(),leagues,null)); - form.setStdev(studentService.selectStdev(analyse.getId(),leagues,null)); - form.setAvgNumber(studentService.selectAvgScore(analyse.getId(),leagues,null)); - list.add(form); - } - { - Form4 form = new Form4(); - form.setName(getLearnReqVo.getSchoolName()); - form.setModeNumber(studentService.selectModeNumber(analyse.getId(),null,getLearnReqVo.getSchoolName())); - form.setMedianNumber(studentService.selectMedian(analyse.getId(),null,getLearnReqVo.getSchoolName())); - form.setStdev(studentService.selectStdev(analyse.getId(),null,getLearnReqVo.getSchoolName())); - form.setAvgNumber(studentService.selectAvgScore(analyse.getId(),null,getLearnReqVo.getSchoolName())); - list.add(form); + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_2")){ + repVO = (Form4RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_2"); + }else { + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); + if(analyse == null){ + repVO.setSuccess(false); + repVO.setMessage("请先创建考试"); + return repVO; + } + List leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); + if(leagues == null){ + repVO.setSuccess(false); + repVO.setMessage("请先设定联盟校"); + return repVO; + } + List list = new ArrayList<>(); + { + Form4 form4 = new Form4(); + form4.setName("区"); + form4.setModeNumber(studentService.selectModeNumber(analyse.getId(),null,null)); + form4.setMedianNumber(studentService.selectMedian(analyse.getId(),null,null)); + form4.setStdev(studentService.selectStdev(analyse.getId(),null,null)); + form4.setAvgNumber(studentService.selectAvgScore(analyse.getId(),null,null)); + list.add(form4); + } + { + Form4 form = new Form4(); + form.setName(getLearnReqVo.getSchoolName()); + form.setModeNumber(studentService.selectModeNumber(analyse.getId(),leagues,null)); + form.setMedianNumber(studentService.selectMedian(analyse.getId(),leagues,null)); + form.setStdev(studentService.selectStdev(analyse.getId(),leagues,null)); + form.setAvgNumber(studentService.selectAvgScore(analyse.getId(),leagues,null)); + list.add(form); + } + { + Form4 form = new Form4(); + form.setName(getLearnReqVo.getSchoolName()); + form.setModeNumber(studentService.selectModeNumber(analyse.getId(),null,getLearnReqVo.getSchoolName())); + form.setMedianNumber(studentService.selectMedian(analyse.getId(),null,getLearnReqVo.getSchoolName())); + form.setStdev(studentService.selectStdev(analyse.getId(),null,getLearnReqVo.getSchoolName())); + form.setAvgNumber(studentService.selectAvgScore(analyse.getId(),null,getLearnReqVo.getSchoolName())); + list.add(form); + } + repVO.setData(list); + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_2",repVO); } - repVO.setData(list); return repVO; } @@ -405,91 +440,96 @@ public class LearnStatController { @RequestMapping(value = "getForm2_2_3", method = RequestMethod.POST) public Form5RepVO getForm2_2_3(@RequestBody GetLearnReqVo getLearnReqVo){ Form5RepVO repVO = new Form5RepVO(); - Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); - if(analyse == null){ - repVO.setSuccess(false); - repVO.setMessage("请先创建考试"); - return repVO; - } - List leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); - if(leagues == null){ - repVO.setSuccess(false); - repVO.setMessage("请先设定联盟校"); - return repVO; - } - List allHighStudent = new ArrayList<>(); - List allLowStudent = new ArrayList<>(); - List allStudents = studentService.selectBySchoolName(analyse.getId(),null,null); - int allNumber = (int) Math.floor(allStudents.size()*0.27) ; - { - //获取区 高分段,低分段学生编号 - for (int i = 0; i < allNumber ; i++) { - allHighStudent.add(allStudents.get(i).getStudentNumber()); - } - for(int i =allStudents.size()-allNumber ; i < allStudents.size() ; i++){ - allLowStudent.add(allStudents.get(i).getStudentNumber()); + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_3")){ + repVO = (Form5RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_3"); + }else { + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); + if(analyse == null){ + repVO.setSuccess(false); + repVO.setMessage("请先创建考试"); + return repVO; } - } - List leagueHighStudent = new ArrayList<>(); - List leagueLowStudent = new ArrayList<>(); - List leagueStudents = studentService.selectBySchoolName(analyse.getId(),leagues,null); - int leagueNumber = (int) Math.floor(leagueStudents.size()*0.27) ; - { - //获取联盟校 高分段 低分段 学生编号 - for (int i = 0; i < leagueNumber ; i++) { - leagueHighStudent.add(leagueStudents.get(i).getStudentNumber()); + List leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); + if(leagues == null){ + repVO.setSuccess(false); + repVO.setMessage("请先设定联盟校"); + return repVO; } - for(int i =leagueStudents.size()-leagueNumber ; i < leagueStudents.size() ; i++){ - leagueLowStudent.add(leagueStudents.get(i).getStudentNumber()); + List allHighStudent = new ArrayList<>(); + List allLowStudent = new ArrayList<>(); + List allStudents = studentService.selectBySchoolName(analyse.getId(),null,null); + int allNumber = (int) Math.floor(allStudents.size()*0.27) ; + { + //获取区 高分段,低分段学生编号 + for (int i = 0; i < allNumber ; i++) { + allHighStudent.add(allStudents.get(i).getStudentNumber()); + } + for(int i =allStudents.size()-allNumber ; i < allStudents.size() ; i++){ + allLowStudent.add(allStudents.get(i).getStudentNumber()); + } } - } - List highStudent = new ArrayList<>(); - List lowStudent = new ArrayList<>(); - List students = studentService.selectBySchoolName(analyse.getId(),null,getLearnReqVo.getSchoolName()); - int number = (int) Math.floor(students.size()*0.27) ; - { - //获取本校高分段 低分段 学生编号 - for (int i = 0; i < number ; i++) { - highStudent.add(students.get(i).getStudentNumber()); + List leagueHighStudent = new ArrayList<>(); + List leagueLowStudent = new ArrayList<>(); + List leagueStudents = studentService.selectBySchoolName(analyse.getId(),leagues,null); + int leagueNumber = (int) Math.floor(leagueStudents.size()*0.27) ; + { + //获取联盟校 高分段 低分段 学生编号 + for (int i = 0; i < leagueNumber ; i++) { + leagueHighStudent.add(leagueStudents.get(i).getStudentNumber()); + } + for(int i =leagueStudents.size()-leagueNumber ; i < leagueStudents.size() ; i++){ + leagueLowStudent.add(leagueStudents.get(i).getStudentNumber()); + } } - for(int i =students.size()-number ; i < students.size() ; i++){ - lowStudent.add(students.get(i).getStudentNumber()); + List highStudent = new ArrayList<>(); + List lowStudent = new ArrayList<>(); + List students = studentService.selectBySchoolName(analyse.getId(),null,getLearnReqVo.getSchoolName()); + int number = (int) Math.floor(students.size()*0.27) ; + { + //获取本校高分段 低分段 学生编号 + for (int i = 0; i < number ; i++) { + highStudent.add(students.get(i).getStudentNumber()); + } + for(int i =students.size()-number ; i < students.size() ; i++){ + lowStudent.add(students.get(i).getStudentNumber()); + } } - } - List list = new ArrayList<>(); + List list = new ArrayList<>(); - List analyseDetails = analyseDetailService.selectByAnalyseId(analyse.getId()); - for(AnalyseDetail analyseDetail : analyseDetails){ - Form5 from5 = new Form5(); - Double allSumScore = studentDetailService.selectSumScore(analyse.getId(),null,null,analyseDetail.getQuestionNumber()); - Double leagueSumScore = studentDetailService.selectSumScore(analyse.getId(),leagues,null,analyseDetail.getQuestionNumber()); - Double schoolSumScore = studentDetailService.selectSumScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyseDetail.getQuestionNumber()); - from5.setExamNumber(analyseDetail.getQuestionNumber()); - from5.setScore(analyseDetail.getScore()); - from5.setDifficultName(DifficultEnums.getDifficultName(analyseDetail.getDifficult())); - from5.setAllRate(allSumScore/new Double(allStudents.size()) / analyseDetail.getScore()); - from5.setLeagueRate(leagueSumScore/new Double(leagueStudents.size()) / analyseDetail.getScore()); - from5.setSchoolRate(schoolSumScore/new Double(students.size()) / analyseDetail.getScore()); + List analyseDetails = analyseDetailService.selectByAnalyseId(analyse.getId()); + for(AnalyseDetail analyseDetail : analyseDetails){ + Form5 from5 = new Form5(); + Double allSumScore = studentDetailService.selectSumScore(analyse.getId(),null,null,analyseDetail.getQuestionNumber()); + Double leagueSumScore = studentDetailService.selectSumScore(analyse.getId(),leagues,null,analyseDetail.getQuestionNumber()); + Double schoolSumScore = studentDetailService.selectSumScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyseDetail.getQuestionNumber()); + from5.setExamNumber(analyseDetail.getQuestionNumber()); + from5.setScore(analyseDetail.getScore()); + from5.setDifficultName(DifficultEnums.getDifficultName(analyseDetail.getDifficult())); + from5.setAllRate(allSumScore/new Double(allStudents.size()) / analyseDetail.getScore()); + from5.setLeagueRate(leagueSumScore/new Double(leagueStudents.size()) / analyseDetail.getScore()); + from5.setSchoolRate(schoolSumScore/new Double(students.size()) / analyseDetail.getScore()); - from5.setAllAvg(allSumScore / new Double(allStudents.size())); - from5.setLeagueAvg(leagueSumScore / new Double(leagueStudents.size())); - from5.setSchoolAvg(schoolSumScore / new Double(students.size())); + from5.setAllAvg(allSumScore / new Double(allStudents.size())); + from5.setLeagueAvg(leagueSumScore / new Double(leagueStudents.size())); + from5.setSchoolAvg(schoolSumScore / new Double(students.size())); - int allHigh = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,null ,analyseDetail.getQuestionNumber(),allHighStudent); - int allLow = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,null ,analyseDetail.getQuestionNumber(),allLowStudent); + int allHigh = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,null ,analyseDetail.getQuestionNumber(),allHighStudent); + int allLow = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,null ,analyseDetail.getQuestionNumber(),allLowStudent); - int leagueHigh = studentDetailService.selectTrueByExamNumber(analyse.getId(),leagues,null ,analyseDetail.getQuestionNumber(),allHighStudent); - int leagueLow = studentDetailService.selectTrueByExamNumber(analyse.getId(),leagues,null ,analyseDetail.getQuestionNumber(),allLowStudent); + int leagueHigh = studentDetailService.selectTrueByExamNumber(analyse.getId(),leagues,null ,analyseDetail.getQuestionNumber(),allHighStudent); + int leagueLow = studentDetailService.selectTrueByExamNumber(analyse.getId(),leagues,null ,analyseDetail.getQuestionNumber(),allLowStudent); - int high = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,getLearnReqVo.getSchoolName() ,analyseDetail.getQuestionNumber(),highStudent); - int low = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,getLearnReqVo.getSchoolName() ,analyseDetail.getQuestionNumber(),lowStudent); - from5.setAllDist(new Double(allHigh-allLow)/new Double(allNumber)); - from5.setLeagueDist(new Double(leagueHigh-leagueLow)/new Double(leagueNumber)); - from5.setSchoolDist(new Double(high-low)/new Double(number)); - list.add(from5); + int high = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,getLearnReqVo.getSchoolName() ,analyseDetail.getQuestionNumber(),highStudent); + int low = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,getLearnReqVo.getSchoolName() ,analyseDetail.getQuestionNumber(),lowStudent); + from5.setAllDist(new Double(allHigh-allLow)/new Double(allNumber)); + from5.setLeagueDist(new Double(leagueHigh-leagueLow)/new Double(leagueNumber)); + from5.setSchoolDist(new Double(high-low)/new Double(number)); + list.add(from5); + } + repVO.setData(list); + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_3",repVO); } - repVO.setData(list); return repVO; } @@ -497,65 +537,142 @@ public class LearnStatController { @RequestMapping(value = "getForm2_2_4", method = RequestMethod.POST) public Form8RepVO getForm2_2_4(@RequestBody GetLearnReqVo getLearnReqVo){ Form8RepVO repVO = new Form8RepVO(); - Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); - if(analyse == null){ - repVO.setSuccess(false); - repVO.setMessage("请先创建考试"); - return repVO; - } - List leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); - if(leagues == null){ - repVO.setSuccess(false); - repVO.setMessage("请先设定联盟校"); - return repVO; - } - List list = new ArrayList<>(); - List allStudents = studentService.selectBySchoolName(analyse.getId(),null,null); - List leagueStudents = studentService.selectBySchoolName(analyse.getId(),leagues,null); - List students = studentService.selectBySchoolName(analyse.getId(),null,getLearnReqVo.getSchoolName()); - for(DifficultEnums enums : DifficultEnums.values()){ - Form8 form8 = new Form8(); - form8.setDifficultName(enums.getDifficultName()); - form8.setScore(analyseDetailService.selectDifficult(analyse.getId(),enums.getDifficultType())); - List analyseDetails = analyseDetailService.selectDifficultDetail(analyse.getId(),enums.getDifficultType()); - Double allSumScore = 0d , leagueSumScore = 0d , schoolSumScore = 0d , score = 0d; - for(AnalyseDetail analyseDetail : analyseDetails){ - allSumScore = allSumScore + studentDetailService.selectSumScore(analyse.getId(),null,null,analyseDetail.getQuestionNumber()); - leagueSumScore = leagueSumScore + studentDetailService.selectSumScore(analyse.getId(),leagues,null,analyseDetail.getQuestionNumber()); - schoolSumScore = schoolSumScore + studentDetailService.selectSumScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyseDetail.getQuestionNumber()); - score = score + analyseDetail.getScore() ; + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_4")){ + repVO = (Form8RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_4"); + }else { + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); + if(analyse == null){ + repVO.setSuccess(false); + repVO.setMessage("请先创建考试"); + return repVO; + } + List leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); + if(leagues == null){ + repVO.setSuccess(false); + repVO.setMessage("请先设定联盟校"); + return repVO; } - form8.setAllRate(allSumScore / new Double(allStudents.size()) / score ); - form8.setLeagueRate(leagueSumScore / new Double(leagueStudents.size()) / score ); - form8.setSchoolRate(schoolSumScore / new Double(students.size()) / score); - list.add(form8); + List list = new ArrayList<>(); + List allStudents = studentService.selectBySchoolName(analyse.getId(),null,null); + List leagueStudents = studentService.selectBySchoolName(analyse.getId(),leagues,null); + List students = studentService.selectBySchoolName(analyse.getId(),null,getLearnReqVo.getSchoolName()); + for(DifficultEnums enums : DifficultEnums.values()){ + Form8 form8 = new Form8(); + form8.setDifficultName(enums.getDifficultName()); + form8.setScore(analyseDetailService.selectDifficult(analyse.getId(),enums.getDifficultType())); + List analyseDetails = analyseDetailService.selectDifficultDetail(analyse.getId(),enums.getDifficultType()); + Double allSumScore = 0d , leagueSumScore = 0d , schoolSumScore = 0d , score = 0d; + for(AnalyseDetail analyseDetail : analyseDetails){ + allSumScore = allSumScore + studentDetailService.selectSumScore(analyse.getId(),null,null,analyseDetail.getQuestionNumber()); + leagueSumScore = leagueSumScore + studentDetailService.selectSumScore(analyse.getId(),leagues,null,analyseDetail.getQuestionNumber()); + schoolSumScore = schoolSumScore + studentDetailService.selectSumScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyseDetail.getQuestionNumber()); + score = score + analyseDetail.getScore() ; + } + form8.setAllRate(allSumScore / new Double(allStudents.size()) / score ); + form8.setLeagueRate(leagueSumScore / new Double(leagueStudents.size()) / score ); + form8.setSchoolRate(schoolSumScore / new Double(students.size()) / score); + list.add(form8); + } + repVO.setData(list); + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_4",repVO); } - repVO.setData(list); return repVO; } @ApiOperation("getForm3_1") @RequestMapping(value = "getForm3_1", method = RequestMethod.POST) public Form6RepVO getForm3_1(@RequestBody GetLearnReqVo getLearnReqVo){ - return initDimensional(getLearnReqVo,DimensionalEnums.knowledge.getDimensionalType()); + Form6RepVO form6RepVO = new Form6RepVO(); + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_1")){ + form6RepVO = (Form6RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_1"); + }else { + form6RepVO = initDimensional(getLearnReqVo,DimensionalEnums.knowledge.getDimensionalType()) ; + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_1",form6RepVO); + } + return form6RepVO; + } + + @ApiOperation("getForm3_1_1") + @RequestMapping(value = "getForm3_1_1", method = RequestMethod.POST) + public Table2RepVO getForm3_1_1(@RequestBody GetLearnReqVo getLearnReqVo){ + Table2RepVO table2RepVO = new Table2RepVO(); + Form6RepVO form6RepVO = new Form6RepVO(); + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_1")){ + form6RepVO = (Form6RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_1"); + }else { + form6RepVO = initDimensional(getLearnReqVo,DimensionalEnums.knowledge.getDimensionalType()) ; + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_1",form6RepVO); + } + List knowledges = knowledgeService.selectAll(); + List table2List = new ArrayList<>(); + for(Knowledge knowledge : knowledges){ + Double sumScore = new Double("0"); + Double getScore = new Double("0"); + String[] detailArray = knowledge.getDetail().split("、"); + for(String detail : detailArray){ + for(Form6 form6 : form6RepVO.getData()){ + if(detail.equals(form6.getDimensional())){ + sumScore = sumScore + form6.getScore() ; + getScore = getScore + form6.getSchoolRate(); + } + } + } + if(sumScore > 0){ + Table2 table2 = new Table2(); + table2.setKnowledge(knowledge.getKnowledge()); + table2.setAvg(knowledge.getAvg()); + table2.setRate(knowledge.getRate()); + table2.setSchoolRate(getScore / sumScore); + table2List.add(table2); + } + } + List data = new ArrayList<>(); + for(Table2 table2 : table2List){ + if(table2.getSchoolRate() < 0.75 && Double.valueOf(table2.getAvg()) >2){ + data.add(table2); + } + } + table2RepVO.setData(data); + return table2RepVO; } @ApiOperation("getForm3_2") @RequestMapping(value = "getForm3_2", method = RequestMethod.POST) public Form6RepVO getForm3_2(@RequestBody GetLearnReqVo getLearnReqVo){ - return initDimensional(getLearnReqVo,DimensionalEnums.skill.getDimensionalType()); + Form6RepVO form6RepVO = new Form6RepVO(); + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_2")){ + form6RepVO = (Form6RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_2"); + }else { + form6RepVO = initDimensional(getLearnReqVo,DimensionalEnums.skill.getDimensionalType()) ; + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_2",form6RepVO); + } + return form6RepVO; } @ApiOperation("getForm3_3") @RequestMapping(value = "getForm3_3", method = RequestMethod.POST) public Form6RepVO getForm3_3(@RequestBody GetLearnReqVo getLearnReqVo){ - return initDimensional(getLearnReqVo,DimensionalEnums.ability.getDimensionalType()); + Form6RepVO form6RepVO = new Form6RepVO(); + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_3")){ + form6RepVO = (Form6RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_3"); + }else { + form6RepVO = initDimensional(getLearnReqVo,DimensionalEnums.ability.getDimensionalType()) ; + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_3",form6RepVO); + } + return form6RepVO; } @ApiOperation("getForm3_4") @RequestMapping(value = "getForm3_4", method = RequestMethod.POST) public Form6RepVO getForm3_4(@RequestBody GetLearnReqVo getLearnReqVo){ - return initDimensional(getLearnReqVo,DimensionalEnums.think.getDimensionalType()); + Form6RepVO form6RepVO = new Form6RepVO(); + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_4")){ + form6RepVO = (Form6RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_4"); + }else { + form6RepVO = initDimensional(getLearnReqVo,DimensionalEnums.think.getDimensionalType()) ; + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_4",form6RepVO); + } + return form6RepVO; } private Form6RepVO initDimensional(GetLearnReqVo getLearnReqVo , int dimensionalType){ @@ -716,97 +833,104 @@ public class LearnStatController { @ApiOperation("获取教学改进建议") @RequestMapping(value = "getSuggest", method = RequestMethod.POST) public String getSuggest(@RequestBody GetLearnReqVo getLearnReqVo){ - SuggestRepVo suggestRepVo = new SuggestRepVo() ; - Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); - Double avg = studentService.selectAvgScore(analyse.getId(),null,getLearnReqVo.getSchoolName()) ; - DecimalFormat df = new DecimalFormat("#.00"); - //得分率 - String avgStr = df.format(avg / analyse.getMaxScore()); - - List students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName()); - int a = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.85,analyse.getMaxScore()+1f); - //优秀率 - Double apercent = new Double(a) / new Double(students.size()) * 100 ; - String aStr = df.format(apercent); - String access = ""; - if(avg>=80){ - if(apercent >= 20){ - access = "良好"; + String suggest = null ; + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_suggest")){ + suggest = RedisUtils.getString(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_suggest"); + }else { + SuggestRepVo suggestRepVo = new SuggestRepVo() ; + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); + Double avg = studentService.selectAvgScore(analyse.getId(),null,getLearnReqVo.getSchoolName()) ; + DecimalFormat df = new DecimalFormat("#.00"); + //得分率 + String avgStr = df.format(avg / analyse.getMaxScore()); + + List students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName()); + int a = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.85,analyse.getMaxScore()+1f); + //优秀率 + Double apercent = new Double(a) / new Double(students.size()) * 100 ; + String aStr = df.format(apercent); + String access = ""; + if(avg>=80){ + if(apercent >= 20){ + access = "良好"; + }else { + access = "相对可以"; + } + }else if(avg >= 75){ + if(apercent >= 35){ + access = "很好"; + }else if(apercent >= 20){ + access = "良好"; + }else { + access = "相对可以"; + } + }else if(avg >= 70){ + if(apercent >= 20){ + access = "良好"; + }else { + access = "相对可以"; + } + } else if (avg >= 60) { + if(apercent >= 10){ + access = "相对可以"; + }else { + access = "一般"; + } }else { - access = "相对可以"; + access = "暴露出一些问题,试卷偏难,学生掌握不够理想"; } - }else if(avg >= 75){ - if(apercent >= 35){ - access = "很好"; - }else if(apercent >= 20){ - access = "良好"; - }else { - access = "相对可以"; + suggestRepVo.setAssess(access); + suggestRepVo.setDifficultyDegree(avgStr); + suggestRepVo.setExcellentRate(aStr); + suggestRepVo.setErrorList(getErrorRate(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),students.size())); + Form6RepVO knowledge = initSchoolDimensional(getLearnReqVo,DimensionalEnums.knowledge.getDimensionalType()); + List lessKnowledgeList = new ArrayList<>(); //不足50% + List midKnowledgeList = new ArrayList<>(); //50-70% + for(Form6 form6 :knowledge.getData()){ + if(form6.getSchoolRate() < 0.5d){ + lessKnowledgeList.add(form6.getDimensional()); + }else if(form6.getSchoolRate() < 0.7d){ + midKnowledgeList.add(form6.getDimensional()); + } } - }else if(avg >= 70){ - if(apercent >= 20){ - access = "良好"; - }else { - access = "相对可以"; + suggestRepVo.setLessKnowledgeList(lessKnowledgeList); + suggestRepVo.setMidKnowledgeList(midKnowledgeList); + Form6RepVO ability = initSchoolDimensional(getLearnReqVo,DimensionalEnums.ability.getDimensionalType()); + List lessAbilityList = new ArrayList<>(); //不足70% + List midAbilityList = new ArrayList<>(); //70-80% + List highAbilityList = new ArrayList<>(); //大于80% + for(Form6 form6 :ability.getData()){ + if(form6.getSchoolRate() < 0.7d){ + lessAbilityList.add(form6.getDimensional()); + }else if(form6.getSchoolRate() < 0.8d){ + midAbilityList.add(form6.getDimensional()); + }else if(form6.getSchoolRate() >= 0.8d){ + highAbilityList.add(form6.getDimensional()); + } } - } else if (avg >= 60) { - if(apercent >= 10){ - access = "相对可以"; - }else { - access = "一般"; + suggestRepVo.setLessAbilityList(lessAbilityList); + suggestRepVo.setMidAbilityList(midAbilityList); + suggestRepVo.setHighAbilityList(highAbilityList); + Form6RepVO skill = initSchoolDimensional(getLearnReqVo,DimensionalEnums.skill.getDimensionalType()); + List lessSkillList = new ArrayList<>(); //不足70% + List midSkillList = new ArrayList<>(); //70-80% + List highSkillList = new ArrayList<>(); //大于80% + for(Form6 form6 :skill.getData()){ + if(form6.getSchoolRate() < 0.7d){ + lessSkillList.add(form6.getDimensional()); + }else if(form6.getSchoolRate() < 0.8d){ + midSkillList.add(form6.getDimensional()); + }else if(form6.getSchoolRate() >= 0.8d){ + highSkillList.add(form6.getDimensional()); + } } - }else { - access = "暴露出一些问题,试卷偏难,学生掌握不够理想"; - } - suggestRepVo.setAssess(access); - suggestRepVo.setDifficultyDegree(avgStr); - suggestRepVo.setExcellentRate(aStr); - suggestRepVo.setErrorList(getErrorRate(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),students.size())); - Form6RepVO knowledge = initSchoolDimensional(getLearnReqVo,DimensionalEnums.knowledge.getDimensionalType()); - List lessKnowledgeList = new ArrayList<>(); //不足50% - List midKnowledgeList = new ArrayList<>(); //50-70% - for(Form6 form6 :knowledge.getData()){ - if(form6.getSchoolRate() < 0.5d){ - lessKnowledgeList.add(form6.getDimensional()); - }else if(form6.getSchoolRate() < 0.7d){ - midKnowledgeList.add(form6.getDimensional()); - } - } - suggestRepVo.setLessKnowledgeList(lessKnowledgeList); - suggestRepVo.setMidKnowledgeList(midKnowledgeList); - Form6RepVO ability = initSchoolDimensional(getLearnReqVo,DimensionalEnums.ability.getDimensionalType()); - List lessAbilityList = new ArrayList<>(); //不足70% - List midAbilityList = new ArrayList<>(); //70-80% - List highAbilityList = new ArrayList<>(); //大于80% - for(Form6 form6 :ability.getData()){ - if(form6.getSchoolRate() < 0.7d){ - lessAbilityList.add(form6.getDimensional()); - }else if(form6.getSchoolRate() < 0.8d){ - midAbilityList.add(form6.getDimensional()); - }else if(form6.getSchoolRate() >= 0.8d){ - highAbilityList.add(form6.getDimensional()); - } - } - suggestRepVo.setLessAbilityList(lessAbilityList); - suggestRepVo.setMidAbilityList(midAbilityList); - suggestRepVo.setHighAbilityList(highAbilityList); - Form6RepVO skill = initSchoolDimensional(getLearnReqVo,DimensionalEnums.skill.getDimensionalType()); - List lessSkillList = new ArrayList<>(); //不足70% - List midSkillList = new ArrayList<>(); //70-80% - List highSkillList = new ArrayList<>(); //大于80% - for(Form6 form6 :skill.getData()){ - if(form6.getSchoolRate() < 0.7d){ - lessSkillList.add(form6.getDimensional()); - }else if(form6.getSchoolRate() < 0.8d){ - midSkillList.add(form6.getDimensional()); - }else if(form6.getSchoolRate() >= 0.8d){ - highSkillList.add(form6.getDimensional()); - } - } - suggestRepVo.setLessSkillList(lessSkillList); - suggestRepVo.setMidSkillList(midSkillList); - suggestRepVo.setHighSkillList(highSkillList); - return initSuggest(suggestRepVo); + suggestRepVo.setLessSkillList(lessSkillList); + suggestRepVo.setMidSkillList(midSkillList); + suggestRepVo.setHighSkillList(highSkillList); + suggest = initSuggest(suggestRepVo); + RedisUtils.setString(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_suggest",suggest); + } + return suggest; } private List getErrorRate(int analyseId , String schoolName , int studentSize){ @@ -826,9 +950,9 @@ public class LearnStatController { private String initSuggest(SuggestRepVo suggestRepVo){ StringBuffer stringBuffer = new StringBuffer(); - stringBuffer.append("本次检测总体情况").append(suggestRepVo.getAssess()).append(",难度系数是") + stringBuffer.append("本次检测总体情况").append(suggestRepVo.getAssess()).append(",难度系数是0") .append(suggestRepVo.getDifficultyDegree()).append(",优秀率是").append(suggestRepVo.getExcellentRate()).append("%。") - .append("对有关知识,总体掌握情况比较好。从考试结果分析,各知识点掌握程度较好,唯"); + .append("对有关知识,总体掌握情况比较好。\n从考试结果分析,各知识点掌握程度较好,唯"); for (int i = 0; i < suggestRepVo.getMidKnowledgeList().size(); i++) { if(i == suggestRepVo.getMidKnowledgeList().size() - 1 ){ stringBuffer.append(suggestRepVo.getMidKnowledgeList().get(i)); @@ -844,7 +968,7 @@ public class LearnStatController { stringBuffer.append(suggestRepVo.getLessKnowledgeList().get(i)).append("、"); } } - stringBuffer.append("几个知识点学生的理解有些问题。探究技能方面:"); + stringBuffer.append("几个知识点学生的理解有些问题。\n探究技能方面:"); for (int i = 0; i < suggestRepVo.getHighSkillList().size(); i++) { if(i == suggestRepVo.getHighSkillList().size() - 1 ){ stringBuffer.append(suggestRepVo.getHighSkillList().get(i)); @@ -868,7 +992,7 @@ public class LearnStatController { stringBuffer.append(suggestRepVo.getLessSkillList().get(i)).append("、"); } } - stringBuffer.append("学生掌握有些问题。学习能力上:"); + stringBuffer.append("学生掌握有些问题。\n学习能力上:"); for (int i = 0; i < suggestRepVo.getHighAbilityList().size(); i++) { if(i == suggestRepVo.getHighAbilityList().size() - 1 ){ stringBuffer.append(suggestRepVo.getHighAbilityList().get(i)); @@ -900,7 +1024,7 @@ public class LearnStatController { stringBuffer.append(suggestRepVo.getErrorList().get(i)).append("、"); } } - stringBuffer.append("错误率大于15%\n后续复习巩固可以从抓好基础、提高能力和注重应用上下功夫。提升"); + stringBuffer.append("错误率大于15%。\n后续复习巩固可以从抓好基础、提高能力和注重应用上下功夫。提升"); for (int i = 0; i < suggestRepVo.getLessKnowledgeList().size(); i++) { if(i == suggestRepVo.getLessKnowledgeList().size() - 1 ){ stringBuffer.append(suggestRepVo.getLessKnowledgeList().get(i)); diff --git a/src/main/java/com/jevon/mapper/KnowledgeMapper.java b/src/main/java/com/jevon/mapper/KnowledgeMapper.java new file mode 100644 index 0000000..2b62534 --- /dev/null +++ b/src/main/java/com/jevon/mapper/KnowledgeMapper.java @@ -0,0 +1,19 @@ +package com.jevon.mapper; + +import com.jevon.model.Knowledge; + +import java.util.List; + +/** + * @author chen + * @version 1.0 + * @date 2019/11/4 0004 11:46 + */ +public interface KnowledgeMapper { + + int insertBatch(List list); + + Knowledge selectByKnowledge(String knowledge); + + List selectAll(); +} diff --git a/src/main/java/com/jevon/model/Analyse.java b/src/main/java/com/jevon/model/Analyse.java index 4c118e7..625053a 100644 --- a/src/main/java/com/jevon/model/Analyse.java +++ b/src/main/java/com/jevon/model/Analyse.java @@ -1,5 +1,6 @@ package com.jevon.model; +import java.io.Serializable; import java.util.Date; /** @@ -7,7 +8,7 @@ import java.util.Date; * @version 1.0 * @date 2019/10/18 0018 10:55 */ -public class Analyse { +public class Analyse implements Serializable { private int id ; private String examName ; diff --git a/src/main/java/com/jevon/model/AnalyseDetail.java b/src/main/java/com/jevon/model/AnalyseDetail.java index 601afea..c597449 100644 --- a/src/main/java/com/jevon/model/AnalyseDetail.java +++ b/src/main/java/com/jevon/model/AnalyseDetail.java @@ -1,5 +1,6 @@ package com.jevon.model; +import java.io.Serializable; import java.util.Date; /** @@ -7,7 +8,7 @@ import java.util.Date; * @version 1.0 * @date 2019/10/18 0018 8:38 */ -public class AnalyseDetail { +public class AnalyseDetail implements Serializable { private int id ; private int analyseId ; diff --git a/src/main/java/com/jevon/model/AnalyseDimensional.java b/src/main/java/com/jevon/model/AnalyseDimensional.java index e17986e..1b380e8 100644 --- a/src/main/java/com/jevon/model/AnalyseDimensional.java +++ b/src/main/java/com/jevon/model/AnalyseDimensional.java @@ -1,5 +1,6 @@ package com.jevon.model; +import java.io.Serializable; import java.util.Date; /** @@ -7,7 +8,7 @@ import java.util.Date; * @version 1.0 * @date 2019/10/18 0018 8:42 */ -public class AnalyseDimensional { +public class AnalyseDimensional implements Serializable { private int id ; private int analyseId ; diff --git a/src/main/java/com/jevon/model/Chapter.java b/src/main/java/com/jevon/model/Chapter.java index 6abad4c..adcbee5 100644 --- a/src/main/java/com/jevon/model/Chapter.java +++ b/src/main/java/com/jevon/model/Chapter.java @@ -1,11 +1,13 @@ package com.jevon.model; +import java.io.Serializable; + /** * @author chen * @version 1.0 * @date 2019/10/24 0024 9:03 */ -public class Chapter { +public class Chapter implements Serializable { private int id ; private int analyseId ; diff --git a/src/main/java/com/jevon/model/ClassCourse.java b/src/main/java/com/jevon/model/ClassCourse.java index 8ab6c2f..9eaf3d6 100644 --- a/src/main/java/com/jevon/model/ClassCourse.java +++ b/src/main/java/com/jevon/model/ClassCourse.java @@ -1,8 +1,9 @@ package com.jevon.model; +import java.io.Serializable; import java.util.Date; -public class ClassCourse { +public class ClassCourse implements Serializable { private Integer courseId; private Integer schoolId; diff --git a/src/main/java/com/jevon/model/ClassModel.java b/src/main/java/com/jevon/model/ClassModel.java index eb097a7..164fda7 100644 --- a/src/main/java/com/jevon/model/ClassModel.java +++ b/src/main/java/com/jevon/model/ClassModel.java @@ -1,6 +1,8 @@ package com.jevon.model; -public class ClassModel { +import java.io.Serializable; + +public class ClassModel implements Serializable { private Integer classId; private Integer schoolId; diff --git a/src/main/java/com/jevon/model/Course.java b/src/main/java/com/jevon/model/Course.java index 18ab272..a7fef8e 100644 --- a/src/main/java/com/jevon/model/Course.java +++ b/src/main/java/com/jevon/model/Course.java @@ -1,11 +1,13 @@ package com.jevon.model; +import java.io.Serializable; + /** * @author chen * @version 1.0 * @date 2019/10/9 0009 9:39 */ -public class Course { +public class Course implements Serializable { private int id ; private int schoolId ; diff --git a/src/main/java/com/jevon/model/Dimensional.java b/src/main/java/com/jevon/model/Dimensional.java index c670bf6..23b9be7 100644 --- a/src/main/java/com/jevon/model/Dimensional.java +++ b/src/main/java/com/jevon/model/Dimensional.java @@ -1,5 +1,6 @@ package com.jevon.model; +import java.io.Serializable; import java.util.Date; /** @@ -7,7 +8,7 @@ import java.util.Date; * @version 1.0 * @date 2019/10/18 0018 8:37 */ -public class Dimensional { +public class Dimensional implements Serializable { private int id ; private int dimensionalType ; diff --git a/src/main/java/com/jevon/model/JoinClass.java b/src/main/java/com/jevon/model/JoinClass.java index d419347..636a10b 100644 --- a/src/main/java/com/jevon/model/JoinClass.java +++ b/src/main/java/com/jevon/model/JoinClass.java @@ -1,11 +1,13 @@ package com.jevon.model; +import java.io.Serializable; + /** * @author chen * @version 1.0 * @date 2019/10/10 0010 8:27 */ -public class JoinClass { +public class JoinClass implements Serializable { private int id ; private int schoolId ; diff --git a/src/main/java/com/jevon/model/Knowledge.java b/src/main/java/com/jevon/model/Knowledge.java new file mode 100644 index 0000000..ab47358 --- /dev/null +++ b/src/main/java/com/jevon/model/Knowledge.java @@ -0,0 +1,67 @@ +package com.jevon.model; + +import java.io.Serializable; +import java.util.Date; + +/** + * @author chen + * @version 1.0 + * @date 2019/11/4 0004 11:45 + */ +public class Knowledge implements Serializable { + + private int id ; + private String knowledge ; + private String detail ; + private String rate ; + private String avg ; + private Date updateTime ; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getKnowledge() { + return knowledge; + } + + public void setKnowledge(String knowledge) { + this.knowledge = knowledge; + } + + public String getRate() { + return rate; + } + + public void setRate(String rate) { + this.rate = rate; + } + + public String getAvg() { + return avg; + } + + public void setAvg(String avg) { + this.avg = avg; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + public String getDetail() { + return detail; + } + + public void setDetail(String detail) { + this.detail = detail; + } +} diff --git a/src/main/java/com/jevon/model/League.java b/src/main/java/com/jevon/model/League.java index 97ffb9d..367d9be 100644 --- a/src/main/java/com/jevon/model/League.java +++ b/src/main/java/com/jevon/model/League.java @@ -1,11 +1,13 @@ package com.jevon.model; +import java.io.Serializable; + /** * @author chen * @version 1.0 * @date 2019/10/22 0022 8:59 */ -public class League { +public class League implements Serializable { private int id ; private int analyseId ; diff --git a/src/main/java/com/jevon/model/Schedule.java b/src/main/java/com/jevon/model/Schedule.java index 9beb1a2..9e316b9 100644 --- a/src/main/java/com/jevon/model/Schedule.java +++ b/src/main/java/com/jevon/model/Schedule.java @@ -1,5 +1,6 @@ package com.jevon.model; +import java.io.Serializable; import java.util.Date; /** @@ -7,7 +8,7 @@ import java.util.Date; * @version 1.0 * @date 2019/10/10 0010 11:17 */ -public class Schedule { +public class Schedule implements Serializable { private int id ; private String scheduleName ; private int schoolId ; diff --git a/src/main/java/com/jevon/model/Student.java b/src/main/java/com/jevon/model/Student.java index 58865d3..e42624d 100644 --- a/src/main/java/com/jevon/model/Student.java +++ b/src/main/java/com/jevon/model/Student.java @@ -2,6 +2,7 @@ package com.jevon.model; import com.jevon.vo.excel.ScoreExcelVo; +import java.io.Serializable; import java.util.Date; import java.util.List; @@ -10,7 +11,7 @@ import java.util.List; * @version 1.0 * @date 2019/10/18 0018 13:38 */ -public class Student { +public class Student implements Serializable { private int id ; private int openId; diff --git a/src/main/java/com/jevon/model/StudentDetail.java b/src/main/java/com/jevon/model/StudentDetail.java index 2b31982..5d1715c 100644 --- a/src/main/java/com/jevon/model/StudentDetail.java +++ b/src/main/java/com/jevon/model/StudentDetail.java @@ -2,6 +2,7 @@ package com.jevon.model; import com.jevon.vo.excel.ScoreExcelVo; +import java.io.Serializable; import java.util.Date; import java.util.List; @@ -10,7 +11,7 @@ import java.util.List; * @version 1.0 * @date 2019/10/18 0018 13:38 */ -public class StudentDetail { +public class StudentDetail implements Serializable { private long id ; private int openId; diff --git a/src/main/java/com/jevon/model/Teacher.java b/src/main/java/com/jevon/model/Teacher.java index 2f19947..7532b06 100644 --- a/src/main/java/com/jevon/model/Teacher.java +++ b/src/main/java/com/jevon/model/Teacher.java @@ -1,11 +1,13 @@ package com.jevon.model; +import java.io.Serializable; + /** * @author chen * @version 1.0 * @date 2019/10/9 0009 13:53 */ -public class Teacher { +public class Teacher implements Serializable { private int id ; private int schoolId ; diff --git a/src/main/java/com/jevon/model/TeacherClass.java b/src/main/java/com/jevon/model/TeacherClass.java index 88e6dec..413a3f8 100644 --- a/src/main/java/com/jevon/model/TeacherClass.java +++ b/src/main/java/com/jevon/model/TeacherClass.java @@ -1,8 +1,9 @@ package com.jevon.model; +import java.io.Serializable; import java.util.Date; -public class TeacherClass { +public class TeacherClass implements Serializable { private Integer tClassId; private Integer teacherId; diff --git a/src/main/java/com/jevon/model/TeacherCourse.java b/src/main/java/com/jevon/model/TeacherCourse.java index f4b51c9..8eee02f 100644 --- a/src/main/java/com/jevon/model/TeacherCourse.java +++ b/src/main/java/com/jevon/model/TeacherCourse.java @@ -1,8 +1,9 @@ package com.jevon.model; +import java.io.Serializable; import java.util.Date; -public class TeacherCourse { +public class TeacherCourse implements Serializable { private Integer tClassId; private Integer schoolId; diff --git a/src/main/java/com/jevon/service/KnowledgeService.java b/src/main/java/com/jevon/service/KnowledgeService.java new file mode 100644 index 0000000..30df08b --- /dev/null +++ b/src/main/java/com/jevon/service/KnowledgeService.java @@ -0,0 +1,19 @@ +package com.jevon.service; + +import com.jevon.model.Knowledge; + +import java.util.List; + +/** + * @author chen + * @version 1.0 + * @date 2019/11/4 0004 11:51 + */ +public interface KnowledgeService { + + int insertBatch(List list); + + Knowledge selectByKnowledge(String knowledge); + + List selectAll(); +} diff --git a/src/main/java/com/jevon/service/impl/KnowledgeServiceImpl.java b/src/main/java/com/jevon/service/impl/KnowledgeServiceImpl.java new file mode 100644 index 0000000..e9e5150 --- /dev/null +++ b/src/main/java/com/jevon/service/impl/KnowledgeServiceImpl.java @@ -0,0 +1,36 @@ +package com.jevon.service.impl; + +import com.jevon.mapper.KnowledgeMapper; +import com.jevon.model.Knowledge; +import com.jevon.service.KnowledgeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author chen + * @version 1.0 + * @date 2019/11/4 0004 11:52 + */ +@Service +public class KnowledgeServiceImpl implements KnowledgeService { + + @Autowired + KnowledgeMapper knowledgeMapper ; + + @Override + public int insertBatch(List list) { + return knowledgeMapper.insertBatch(list); + } + + @Override + public Knowledge selectByKnowledge(String knowledge) { + return knowledgeMapper.selectByKnowledge(knowledge); + } + + @Override + public List selectAll() { + return knowledgeMapper.selectAll(); + } +} diff --git a/src/main/java/com/jevon/utils/RedisUtils.java b/src/main/java/com/jevon/utils/RedisUtils.java new file mode 100644 index 0000000..bc28de8 --- /dev/null +++ b/src/main/java/com/jevon/utils/RedisUtils.java @@ -0,0 +1,227 @@ +package com.jevon.utils; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.PropertySource; +import org.springframework.stereotype.Component; +import redis.clients.jedis.Jedis; +import redis.clients.jedis.JedisPool; +import redis.clients.jedis.JedisPoolConfig; + +import javax.annotation.PostConstruct; + +/** + * @author chen + * @version 1.0 + * @date 2019/11/5 0005 8:51 + */ +@Component +@PropertySource(value = "classpath:conf.properties") +public class RedisUtils { + + + @Value("${redis.host}") + private String host; + @Value("${redis.port}") + private int port; + @Value("${redis.password}") + private String password; + + @PostConstruct + public void getApiToken() { + ADDR = this.host ; + PORT = this.port ; + AUTH = this.password ; + } + + //Redis服务器IP + private static String ADDR; + + //Redis的端口号 + private static int PORT; + + //访问密码 + private static String AUTH; + + //可用连接实例的最大数目,默认值为8; + //如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。 + private static int MAX_ACTIVE = 1024; + + //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。 + private static int MAX_IDLE = 200; + + //等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException; + private static int MAX_WAIT = 10000; + + private static int TIMEOUT = 10000; + + //在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的; + private static boolean TEST_ON_BORROW = true; + + private static JedisPool jedisPool = null; + + + /** + * 获取Jedis实例 + * @return + */ + public synchronized static Jedis getJedis() { + + try { + if (jedisPool != null) { + Jedis resource = jedisPool.getResource(); + return resource; + } else { + JedisPoolConfig config = new JedisPoolConfig(); + config.setMaxTotal(MAX_ACTIVE); + config.setMaxIdle(MAX_IDLE); + config.setMaxWaitMillis(MAX_WAIT); + config.setTestOnBorrow(TEST_ON_BORROW); + jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH); + Jedis resource = jedisPool.getResource(); + return resource; + } + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + public static void main(String[] args) { + RedisUtils.setString("test","test"); + } + /** + * 释放jedis资源 + * @param jedis + */ + public static void returnResource(final Jedis jedis) { + if (jedis != null) { + jedisPool.returnResource(jedis); + } + } + + public static void setString(String key ,String value){ + Jedis jedis = null; + try { + jedis = getJedis(); + jedis.set(key,value); + } catch (Exception e) { + System.out.println("setString设置redis键值异常:key=" + key + " value=" + value + " cause:" + e.getMessage()); + } finally { + if(jedis != null) + { + jedis.close(); + } + } + } + + public static void setObject(String key,Object object) { + Jedis jedis = null; + try { + jedis = getJedis(); + byte[] keyb = key.getBytes(); + byte[] vaueb = SerializeUtil.serialize(object); + jedis.set(key.getBytes(), SerializeUtil.serialize(object)); + } catch (Exception e) { + e.printStackTrace(); + System.out.println("setString设置redis键值异常:key=" + key + " value=" + object + " cause:" + e.getMessage()); + } finally { + if(jedis != null) + { + jedis.close(); + } + } + } + + public static void setString(String key ,String value , int expireTime){ + String result = "OK"; + Jedis jedis = null; + try { + jedis = getJedis(); + jedis.set(key,value); + if(result.equals("OK")) { + jedis.expire(key.getBytes(), expireTime); + } + } catch (Exception e) { + System.out.println("setString设置redis键值异常:key=" + key + " value=" + value + " cause:" + e.getMessage()); + } finally { + if(jedis != null) + { + jedis.close(); + } + } + } + + public static String getString(String key) { + Jedis jedis = null; + try { + jedis = getJedis(); + String value = jedis.get(key); + return value; + } catch (Exception e) { + System.out.println("getString获取redis键值异常:key=" + key + " cause:" + e.getMessage()); + } finally { + jedis.close(); + } + return null; + } + + public static Object getObject(String key) { + Jedis jedis = null; + try { + jedis = getJedis(); + byte[] value = jedis.get(key.getBytes()); + return SerializeUtil. unserialize(value); + } catch (Exception e) { + System.out.println("getString获取redis键值异常:key=" + key + " cause:" + e.getMessage()); + } finally { + jedis.close(); + } + return null; + } + + + /** + * 删除key + */ + public static Long delkeyObject(String key) { + Jedis jedis = null; + try { + jedis = getJedis(); + return jedis.del(key.getBytes()); + }catch(Exception e) { + e.printStackTrace(); + return null; + }finally{ + if(jedis != null) + { + jedis.close(); + } + } + } + + public static Boolean existsObject(String key) { + Jedis jedis = null; + try { + jedis = getJedis(); + return jedis.exists(key); + }catch(Exception e) { + e.printStackTrace(); + return false; + }finally{ + if(jedis != null) + { + jedis.close(); + } + } + } + + public static void flushAll() { + Jedis jedis = null; + try { + jedis = getJedis(); + jedis.flushAll(); + } catch (Exception e) { + System.out.println("Cache清空失败:" + e); + } + } +} diff --git a/src/main/java/com/jevon/utils/SerializeUtil.java b/src/main/java/com/jevon/utils/SerializeUtil.java new file mode 100644 index 0000000..3ccdc31 --- /dev/null +++ b/src/main/java/com/jevon/utils/SerializeUtil.java @@ -0,0 +1,44 @@ +package com.jevon.utils; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; + +/** + * @author chen + * @version 1.0 + * @date 2019/11/5 0005 9:06 + */ +public class SerializeUtil { + + // 序列化 + public static byte[] serialize(Object object) { + ObjectOutputStream oos; + oos = null; + ByteArrayOutputStream baos = null; + try { + baos = new ByteArrayOutputStream(); + oos = new ObjectOutputStream(baos); + oos.writeObject(object); + byte[] bytes = baos.toByteArray(); + return bytes; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + // 反序列化 + public static Object unserialize( byte[] bytes) { + ByteArrayInputStream bais = null; + try { + bais = new ByteArrayInputStream(bytes); + ObjectInputStream ois = new ObjectInputStream(bais); + return ois.readObject(); + } catch (Exception e) { + + } + return null; + } +} diff --git a/src/main/java/com/jevon/vo/BaseVo.java b/src/main/java/com/jevon/vo/BaseVo.java index 45fc855..6561b9d 100644 --- a/src/main/java/com/jevon/vo/BaseVo.java +++ b/src/main/java/com/jevon/vo/BaseVo.java @@ -1,6 +1,8 @@ package com.jevon.vo; -public class BaseVo { +import java.io.Serializable; + +public class BaseVo implements Serializable { private boolean success; private String message ; diff --git a/src/main/java/com/jevon/vo/school/Form1.java b/src/main/java/com/jevon/vo/school/Form1.java index a7faa50..ba9d74e 100644 --- a/src/main/java/com/jevon/vo/school/Form1.java +++ b/src/main/java/com/jevon/vo/school/Form1.java @@ -3,13 +3,15 @@ package com.jevon.vo.school; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; + /** * @author chen * @version 1.0 * @date 2019/10/18 0018 15:37 */ @ApiModel -public class Form1 { +public class Form1 implements Serializable { @ApiModelProperty(value="等级") private String level ; diff --git a/src/main/java/com/jevon/vo/school/Form1RepVO.java b/src/main/java/com/jevon/vo/school/Form1RepVO.java index 3734b1b..21acccc 100644 --- a/src/main/java/com/jevon/vo/school/Form1RepVO.java +++ b/src/main/java/com/jevon/vo/school/Form1RepVO.java @@ -1,8 +1,10 @@ package com.jevon.vo.school; +import com.jevon.vo.BaseVo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; import java.util.List; import java.util.Map; @@ -12,7 +14,7 @@ import java.util.Map; * @date 2019/10/18 0018 15:46 */ @ApiModel -public class Form1RepVO { +public class Form1RepVO extends BaseVo { @ApiModelProperty(value="分数段区间") private Map map ; diff --git a/src/main/java/com/jevon/vo/school/Form2.java b/src/main/java/com/jevon/vo/school/Form2.java index 4b422f3..2561f48 100644 --- a/src/main/java/com/jevon/vo/school/Form2.java +++ b/src/main/java/com/jevon/vo/school/Form2.java @@ -3,13 +3,15 @@ package com.jevon.vo.school; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; + /** * @author chen * @version 1.0 * @date 2019/10/18 0018 16:10 */ @ApiModel -public class Form2 { +public class Form2 implements Serializable { @ApiModelProperty(value="名称") private String name ; diff --git a/src/main/java/com/jevon/vo/school/Form3.java b/src/main/java/com/jevon/vo/school/Form3.java index 459833d..bda4947 100644 --- a/src/main/java/com/jevon/vo/school/Form3.java +++ b/src/main/java/com/jevon/vo/school/Form3.java @@ -3,13 +3,15 @@ package com.jevon.vo.school; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; + /** * @author chen * @version 1.0 * @date 2019/10/21 0021 9:03 */ @ApiModel -public class Form3 { +public class Form3 implements Serializable { @ApiModelProperty(value="名称") private String name ; diff --git a/src/main/java/com/jevon/vo/school/Form4.java b/src/main/java/com/jevon/vo/school/Form4.java index 02aa330..0a776f5 100644 --- a/src/main/java/com/jevon/vo/school/Form4.java +++ b/src/main/java/com/jevon/vo/school/Form4.java @@ -3,13 +3,15 @@ package com.jevon.vo.school; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; + /** * @author chen * @version 1.0 * @date 2019/10/21 0021 9:51 */ @ApiModel -public class Form4 { +public class Form4 implements Serializable { @ApiModelProperty(value="名称") private String name ; diff --git a/src/main/java/com/jevon/vo/school/Form5.java b/src/main/java/com/jevon/vo/school/Form5.java index 211ed6d..cb3f64d 100644 --- a/src/main/java/com/jevon/vo/school/Form5.java +++ b/src/main/java/com/jevon/vo/school/Form5.java @@ -3,13 +3,15 @@ package com.jevon.vo.school; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; + /** * @author chen * @version 1.0 * @date 2019/10/21 0021 9:59 */ @ApiModel -public class Form5 { +public class Form5 implements Serializable { @ApiModelProperty(value="题号") private String examNumber ; @ApiModelProperty(value="难度") diff --git a/src/main/java/com/jevon/vo/school/Form6.java b/src/main/java/com/jevon/vo/school/Form6.java index cec448b..3a76cb9 100644 --- a/src/main/java/com/jevon/vo/school/Form6.java +++ b/src/main/java/com/jevon/vo/school/Form6.java @@ -3,13 +3,15 @@ package com.jevon.vo.school; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; + /** * @author chen * @version 1.0 * @date 2019/10/21 0021 11:25 */ @ApiModel -public class Form6 { +public class Form6 implements Serializable { @ApiModelProperty(value="维度名称") private String dimensional ; @ApiModelProperty(value="分值") diff --git a/src/main/java/com/jevon/vo/school/Form7.java b/src/main/java/com/jevon/vo/school/Form7.java index 596b3f3..1adefcf 100644 --- a/src/main/java/com/jevon/vo/school/Form7.java +++ b/src/main/java/com/jevon/vo/school/Form7.java @@ -3,13 +3,15 @@ package com.jevon.vo.school; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; + /** * @author chen * @version 1.0 * @date 2019/10/21 0021 14:58 */ @ApiModel -public class Form7 { +public class Form7 implements Serializable { @ApiModelProperty(value = "名称") private String name ; diff --git a/src/main/java/com/jevon/vo/school/Form7RepVO.java b/src/main/java/com/jevon/vo/school/Form7RepVO.java index cf7b1bf..57b3ded 100644 --- a/src/main/java/com/jevon/vo/school/Form7RepVO.java +++ b/src/main/java/com/jevon/vo/school/Form7RepVO.java @@ -1,6 +1,7 @@ package com.jevon.vo.school; import com.jevon.model.Chapter; +import com.jevon.vo.BaseVo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -12,7 +13,7 @@ import java.util.List; * @date 2019/10/24 0024 9:20 */ @ApiModel -public class Form7RepVO { +public class Form7RepVO extends BaseVo { @ApiModelProperty(value = "举例七年级上册") private String examScope ; diff --git a/src/main/java/com/jevon/vo/school/Form8.java b/src/main/java/com/jevon/vo/school/Form8.java index 162aafb..7df86eb 100644 --- a/src/main/java/com/jevon/vo/school/Form8.java +++ b/src/main/java/com/jevon/vo/school/Form8.java @@ -3,13 +3,15 @@ package com.jevon.vo.school; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; + /** * @author chen * @version 1.0 * @date 2019/10/21 0021 15:14 */ @ApiModel -public class Form8 { +public class Form8 implements Serializable { @ApiModelProperty(value="题目难度") private String difficultName ; diff --git a/src/main/java/com/jevon/vo/school/Table1.java b/src/main/java/com/jevon/vo/school/Table1.java index b8b3173..739e139 100644 --- a/src/main/java/com/jevon/vo/school/Table1.java +++ b/src/main/java/com/jevon/vo/school/Table1.java @@ -3,13 +3,15 @@ package com.jevon.vo.school; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; + /** * @author chen * @version 1.0 * @date 2019/10/21 0021 8:34 */ @ApiModel -public class Table1 { +public class Table1 implements Serializable { @ApiModelProperty(value="分数段") private String score ; @ApiModelProperty(value="人数") diff --git a/src/main/java/com/jevon/vo/school/Table2.java b/src/main/java/com/jevon/vo/school/Table2.java new file mode 100644 index 0000000..27812cf --- /dev/null +++ b/src/main/java/com/jevon/vo/school/Table2.java @@ -0,0 +1,55 @@ +package com.jevon.vo.school; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +/** + * @author chen + * @version 1.0 + * @date 2019/11/5 0005 8:27 + */ +@ApiModel +public class Table2 implements Serializable { + @ApiModelProperty(value = "知识点") + private String knowledge ; + @ApiModelProperty(value = "得分率") + private Double schoolRate ; + @ApiModelProperty(value = "考频") + private String rate ; + @ApiModelProperty(value = "平均分") + private String avg ; + + public String getKnowledge() { + return knowledge; + } + + public void setKnowledge(String knowledge) { + this.knowledge = knowledge; + } + + public Double getSchoolRate() { + return schoolRate; + } + + public void setSchoolRate(Double schoolRate) { + this.schoolRate = schoolRate; + } + + public String getRate() { + return rate; + } + + public void setRate(String rate) { + this.rate = rate; + } + + public String getAvg() { + return avg; + } + + public void setAvg(String avg) { + this.avg = avg; + } +} diff --git a/src/main/java/com/jevon/vo/school/Table2RepVO.java b/src/main/java/com/jevon/vo/school/Table2RepVO.java new file mode 100644 index 0000000..55a0d60 --- /dev/null +++ b/src/main/java/com/jevon/vo/school/Table2RepVO.java @@ -0,0 +1,23 @@ +package com.jevon.vo.school; + +import com.jevon.vo.BaseVo; + +import java.util.List; + +/** + * @author chen + * @version 1.0 + * @date 2019/11/5 0005 8:39 + */ +public class Table2RepVO extends BaseVo { + + private List data ; + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index cb6bce9..cf9c937 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -8,7 +8,7 @@ spring: url: jdbc:sqlserver://60.190.202.57:14333;database=SmartPaike # username: szjxtuser # password: RQminVCJota3H1u8bBYH -# url: jdbc:sqlserver://116.62.155.137:33419;database=SmartCampus_java +# url: jdbc:sqlserver://116.62.241.27:33419;database=SmartCampus_java driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver filters: stat maxActive: 20 @@ -41,7 +41,5 @@ Logger: com.jevon.mapper: info remoting: - url: http://60.190.202.57:1000 - prefixFile: F://wwwroot//smartcampus -# url: http://campus.myjxt.com -# prefixFile: E://wwwhtdocs//SmartCampus +# url: http://60.190.202.57:1000 + url: http://campus.myjxt.com diff --git a/src/main/resources/conf.properties b/src/main/resources/conf.properties new file mode 100644 index 0000000..de8d9c0 --- /dev/null +++ b/src/main/resources/conf.properties @@ -0,0 +1,4 @@ +#redis +redis.host=121.40.109.21 +redis.port=6379 +redis.password=123456 \ No newline at end of file diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index c82670e..a107865 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -5,7 +5,7 @@     - +         diff --git a/src/main/resources/mapping/KnowledgeMapper.xml b/src/main/resources/mapping/KnowledgeMapper.xml new file mode 100644 index 0000000..51ae424 --- /dev/null +++ b/src/main/resources/mapping/KnowledgeMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + insert into sz_learn_knowledge (knowledge,detail, rate,knowledge_avg,update_time) + values + + (#{emp.knowledge},#{emp.detail},#{emp.rate},#{emp.avg},#{emp.updateTime}) + + + + + + + + \ No newline at end of file -- libgit2 0.21.0