Commit 7fee3c235b29209f4891f673f2f30d2f0e8cef68
1 parent
b91baa10
Exists in
master
redis
Showing
43 changed files
with
1268 additions
and
522 deletions
 
Show diff stats
pom.xml
| ... | ... | @@ -15,6 +15,11 @@ | 
| 15 | 15 | |
| 16 | 16 | <dependencies> | 
| 17 | 17 | <dependency> | 
| 18 | + <groupId>redis.clients</groupId> | |
| 19 | + <artifactId>jedis</artifactId> | |
| 20 | + <version>2.9.0</version> | |
| 21 | + </dependency> | |
| 22 | + <dependency> | |
| 18 | 23 | <groupId>org.apache.httpcomponents</groupId> | 
| 19 | 24 | <artifactId>httpclient</artifactId> | 
| 20 | 25 | <version>4.3</version> | ... | ... | 
src/main/java/com/jevon/controller/LearnController.java
| ... | ... | @@ -5,6 +5,7 @@ import com.jevon.enums.DimensionalEnums; | 
| 5 | 5 | import com.jevon.model.*; | 
| 6 | 6 | import com.jevon.service.*; | 
| 7 | 7 | import com.jevon.utils.HttpClientUtils; | 
| 8 | +import com.jevon.utils.RedisUtils; | |
| 8 | 9 | import com.jevon.vo.BaseVo; | 
| 9 | 10 | import com.jevon.vo.excel.ExamExcelVo; | 
| 10 | 11 | import com.jevon.vo.excel.ScoreExcelVo; | 
| ... | ... | @@ -18,10 +19,8 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook; | 
| 18 | 19 | import org.apache.poi.ss.usermodel.*; | 
| 19 | 20 | import org.apache.poi.xssf.usermodel.XSSFWorkbook; | 
| 20 | 21 | import org.springframework.beans.factory.annotation.Autowired; | 
| 21 | -import org.springframework.web.bind.annotation.RequestBody; | |
| 22 | -import org.springframework.web.bind.annotation.RequestMapping; | |
| 23 | -import org.springframework.web.bind.annotation.RequestMethod; | |
| 24 | -import org.springframework.web.bind.annotation.RestController; | |
| 22 | +import org.springframework.web.bind.annotation.*; | |
| 23 | +import org.springframework.web.multipart.MultipartFile; | |
| 25 | 24 | |
| 26 | 25 | import java.io.File; | 
| 27 | 26 | import java.io.InputStream; | 
| ... | ... | @@ -61,6 +60,9 @@ public class LearnController { | 
| 61 | 60 | @Autowired | 
| 62 | 61 | ChapterService chapterService; | 
| 63 | 62 | |
| 63 | + @Autowired | |
| 64 | + KnowledgeService knowledgeService; | |
| 65 | + | |
| 64 | 66 | @ApiOperation("获取列表") | 
| 65 | 67 | @RequestMapping(value = "getList", method = RequestMethod.POST) | 
| 66 | 68 | public List<Analyse> getList(){ | 
| ... | ... | @@ -111,6 +113,7 @@ public class LearnController { | 
| 111 | 113 | baseVo.setMessage("已经导入"); | 
| 112 | 114 | baseVo.setSuccess(false); | 
| 113 | 115 | }else { | 
| 116 | + RedisUtils.flushAll(); | |
| 114 | 117 | analysisExcel(initAnalyseReqVo); | 
| 115 | 118 | } | 
| 116 | 119 | return baseVo; | 
| ... | ... | @@ -149,25 +152,27 @@ public class LearnController { | 
| 149 | 152 | //获取表头 | 
| 150 | 153 | } else { | 
| 151 | 154 | ExamExcelVo examExcelVo = new ExamExcelVo(sheetRow); | 
| 152 | - maxScore = maxScore + new Float(examExcelVo.getScore()); | |
| 153 | - AnalyseDetail analyseDetail = new AnalyseDetail(); | |
| 154 | - String questionNumber = null ; | |
| 155 | - if(StringUtils.isNotBlank(examExcelVo.getQuestionSmallNumber())){ | |
| 156 | - questionNumber = examExcelVo.getQuestionNumber()+"("+examExcelVo.getQuestionSmallNumber()+")"; | |
| 157 | - }else { | |
| 158 | - questionNumber = examExcelVo.getQuestionNumber() ; | |
| 155 | + if(examExcelVo.getScore() != null){ | |
| 156 | + maxScore = maxScore + new Float(examExcelVo.getScore()); | |
| 157 | + AnalyseDetail analyseDetail = new AnalyseDetail(); | |
| 158 | + String questionNumber = null ; | |
| 159 | + if(StringUtils.isNotBlank(examExcelVo.getQuestionSmallNumber())){ | |
| 160 | + questionNumber = examExcelVo.getQuestionNumber()+"("+examExcelVo.getQuestionSmallNumber()+")"; | |
| 161 | + }else { | |
| 162 | + questionNumber = examExcelVo.getQuestionNumber() ; | |
| 163 | + } | |
| 164 | + analyseDetail.setQuestionNumber(questionNumber); | |
| 165 | + analyseDetail.setAnalyseId(analyse.getId()); | |
| 166 | + analyseDetail.setQuestionType(examExcelVo.getQuestionType()); | |
| 167 | + analyseDetail.setDifficult(DifficultEnums.getDifficultType(examExcelVo.getDifficult())); | |
| 168 | + analyseDetail.setScore(new Double(examExcelVo.getScore())); | |
| 169 | + analyseDetail.setCreateTime(date); | |
| 170 | + analyseDetails.add(analyseDetail); | |
| 171 | + initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getKnowledge(),DimensionalEnums.knowledge.getDimensionalType(),analyseDimensionals); | |
| 172 | + initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getAbility(),DimensionalEnums.ability.getDimensionalType(),analyseDimensionals); | |
| 173 | + initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getSkill(),DimensionalEnums.skill.getDimensionalType(),analyseDimensionals); | |
| 174 | + initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getThink(),DimensionalEnums.think.getDimensionalType(),analyseDimensionals); | |
| 159 | 175 | } | 
| 160 | - analyseDetail.setQuestionNumber(questionNumber); | |
| 161 | - analyseDetail.setAnalyseId(analyse.getId()); | |
| 162 | - analyseDetail.setQuestionType(examExcelVo.getQuestionType()); | |
| 163 | - analyseDetail.setDifficult(DifficultEnums.getDifficultType(examExcelVo.getDifficult())); | |
| 164 | - analyseDetail.setScore(new Double(examExcelVo.getScore())); | |
| 165 | - analyseDetail.setCreateTime(date); | |
| 166 | - analyseDetails.add(analyseDetail); | |
| 167 | - initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getKnowledge(),DimensionalEnums.knowledge.getDimensionalType(),analyseDimensionals); | |
| 168 | - initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getAbility(),DimensionalEnums.ability.getDimensionalType(),analyseDimensionals); | |
| 169 | - initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getSkill(),DimensionalEnums.skill.getDimensionalType(),analyseDimensionals); | |
| 170 | - initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getThink(),DimensionalEnums.think.getDimensionalType(),analyseDimensionals); | |
| 171 | 176 | } | 
| 172 | 177 | } | 
| 173 | 178 | analyseDetailService.insertBatch(analyseDetails); | 
| ... | ... | @@ -175,7 +180,7 @@ public class LearnController { | 
| 175 | 180 | analyse.setMaxScore(new Double(maxScore)); | 
| 176 | 181 | analyseService.update(analyse); | 
| 177 | 182 | }catch (Exception e){ | 
| 178 | - System.out.println(e); | |
| 183 | + e.printStackTrace(); | |
| 179 | 184 | } | 
| 180 | 185 | } | 
| 181 | 186 | |
| ... | ... | @@ -373,4 +378,50 @@ public class LearnController { | 
| 373 | 378 | public List<String> getSchoolName(int analyseId){ | 
| 374 | 379 | return studentService.selectSchoolNameByAnalyse(analyseId); | 
| 375 | 380 | } | 
| 381 | + | |
| 382 | + @ApiOperation("导入中考数据") | |
| 383 | + @RequestMapping(value = "initKnowledge", method = RequestMethod.POST) | |
| 384 | + public void initKnowledge(@RequestParam("file") MultipartFile file){ | |
| 385 | + InputStream fis = null; | |
| 386 | + Workbook workBook = null; | |
| 387 | + try { | |
| 388 | + fis = file.getInputStream(); | |
| 389 | + String fileName = file.getOriginalFilename(); | |
| 390 | + if (fileName.endsWith("xls")) { | |
| 391 | + workBook = new HSSFWorkbook(fis); | |
| 392 | + } else { | |
| 393 | + workBook = new XSSFWorkbook(fis); | |
| 394 | + } | |
| 395 | + List<Knowledge> list = new ArrayList<>(); | |
| 396 | + for(int number = 0 ; number < workBook.getNumberOfSheets() ; number++) { | |
| 397 | + Sheet sheet = workBook.getSheetAt(number); | |
| 398 | + Date date = new Date(); | |
| 399 | + int rows = sheet.getPhysicalNumberOfRows(); | |
| 400 | + for (int i = 1; i < rows; i++) { | |
| 401 | + // 获取第i行数据 | |
| 402 | + Row sheetRow = sheet.getRow(i); | |
| 403 | + if(sheetRow != null){ | |
| 404 | + Cell cell1 = sheetRow.getCell(0); | |
| 405 | + Cell cell2 = sheetRow.getCell(1); | |
| 406 | + Cell cell3 = sheetRow.getCell(2); | |
| 407 | + Cell cell4 = sheetRow.getCell(3); | |
| 408 | + if(cell1 != null){ | |
| 409 | + Knowledge knowledge = new Knowledge(); | |
| 410 | + knowledge.setKnowledge(cell1.getStringCellValue()); | |
| 411 | + knowledge.setDetail(cell2.getStringCellValue()); | |
| 412 | + cell3.setCellType(CellType.STRING); | |
| 413 | + cell4.setCellType(CellType.STRING); | |
| 414 | + knowledge.setRate(cell3.getStringCellValue()); | |
| 415 | + knowledge.setAvg(cell4.getStringCellValue()); | |
| 416 | + knowledge.setUpdateTime(date); | |
| 417 | + list.add(knowledge); | |
| 418 | + } | |
| 419 | + } | |
| 420 | + } | |
| 421 | + knowledgeService.insertBatch(list); | |
| 422 | + } | |
| 423 | + }catch (Exception e){ | |
| 424 | + e.printStackTrace(); | |
| 425 | + } | |
| 426 | + } | |
| 376 | 427 | } | ... | ... | 
src/main/java/com/jevon/controller/LearnStatController.java
| ... | ... | @@ -4,11 +4,13 @@ import com.jevon.enums.DifficultEnums; | 
| 4 | 4 | import com.jevon.enums.DimensionalEnums; | 
| 5 | 5 | import com.jevon.model.*; | 
| 6 | 6 | import com.jevon.service.*; | 
| 7 | +import com.jevon.utils.RedisUtils; | |
| 7 | 8 | import com.jevon.vo.rep.SuggestRepVo; | 
| 8 | 9 | import com.jevon.vo.req.GetLearnReqVo; | 
| 9 | 10 | import com.jevon.vo.school.*; | 
| 10 | 11 | import io.swagger.annotations.Api; | 
| 11 | 12 | import io.swagger.annotations.ApiOperation; | 
| 13 | +import org.apache.poi.ss.formula.functions.T; | |
| 12 | 14 | import org.springframework.beans.factory.annotation.Autowired; | 
| 13 | 15 | import org.springframework.web.bind.annotation.RequestBody; | 
| 14 | 16 | import org.springframework.web.bind.annotation.RequestMapping; | 
| ... | ... | @@ -54,41 +56,49 @@ public class LearnStatController { | 
| 54 | 56 | @Autowired | 
| 55 | 57 | ChapterService chapterService; | 
| 56 | 58 | |
| 59 | + @Autowired | |
| 60 | + KnowledgeService knowledgeService ; | |
| 61 | + | |
| 57 | 62 | @ApiOperation("getForm1_1") | 
| 58 | 63 | @RequestMapping(value = "getForm1_1", method = RequestMethod.POST) | 
| 59 | 64 | public Form7RepVO getForm1_1(@RequestBody GetLearnReqVo getLearnReqVo){ | 
| 60 | 65 | Form7RepVO form7RepVO = new Form7RepVO(); | 
| 61 | - Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | |
| 62 | - form7RepVO.setExamTime(analyse.getExamTime()); | |
| 63 | - form7RepVO.setMaxScore(analyse.getMaxScore()); | |
| 64 | - form7RepVO.setExamScope(analyse.getExamScope()); | |
| 65 | - form7RepVO.setCourseName(analyse.getCourseName()); | |
| 66 | - | |
| 67 | - List<Chapter> chapters = chapterService.selectByAnalyse(analyse.getId()); | |
| 68 | - for(Chapter chapter : chapters){ | |
| 69 | - chapter.setPercent(chapter.getChapterScore() / analyse.getMaxScore() * 100); | |
| 70 | - } | |
| 71 | - form7RepVO.setList(chapters); | |
| 72 | - List<Form7> difficultList = new ArrayList<>(); | |
| 73 | - for (DifficultEnums difficultEnums : DifficultEnums.values()){ | |
| 74 | - Form7 form7 = new Form7(); | |
| 75 | - form7.setName(difficultEnums.getDifficultShow()); | |
| 76 | - form7.setPercent(analyseDetailService.selectDifficult(analyse.getId(),difficultEnums.getDifficultType())/analyse.getMaxScore()*100); | |
| 77 | - difficultList.add(form7); | |
| 78 | - } | |
| 79 | - form7RepVO.setDifficultList(difficultList); | |
| 80 | - | |
| 81 | - List<Form7> typeList = new ArrayList<>(); | |
| 82 | - List<String> list = analyseDetailService.selectQuestionType(analyse.getId()); | |
| 83 | - for(String type : list){ | |
| 84 | - Form7 form7 = new Form7(); | |
| 85 | - form7.setName(type); | |
| 86 | - Double score = analyseDetailService.selectSumType(analyse.getId(),type); | |
| 87 | - form7.setScore(score); | |
| 88 | - form7.setPercent(score / analyse.getMaxScore() * 100); | |
| 89 | - typeList.add(form7); | |
| 90 | - } | |
| 91 | - form7RepVO.setTypeList(typeList); | |
| 66 | + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_1_1")){ | |
| 67 | + form7RepVO = (Form7RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_1_1"); | |
| 68 | + }else { | |
| 69 | + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | |
| 70 | + form7RepVO.setExamTime(analyse.getExamTime()); | |
| 71 | + form7RepVO.setMaxScore(analyse.getMaxScore()); | |
| 72 | + form7RepVO.setExamScope(analyse.getExamScope()); | |
| 73 | + form7RepVO.setCourseName(analyse.getCourseName()); | |
| 74 | + | |
| 75 | + List<Chapter> chapters = chapterService.selectByAnalyse(analyse.getId()); | |
| 76 | + for(Chapter chapter : chapters){ | |
| 77 | + chapter.setPercent(chapter.getChapterScore() / analyse.getMaxScore() * 100); | |
| 78 | + } | |
| 79 | + form7RepVO.setList(chapters); | |
| 80 | + List<Form7> difficultList = new ArrayList<>(); | |
| 81 | + for (DifficultEnums difficultEnums : DifficultEnums.values()){ | |
| 82 | + Form7 form7 = new Form7(); | |
| 83 | + form7.setName(difficultEnums.getDifficultShow()); | |
| 84 | + form7.setPercent(analyseDetailService.selectDifficult(analyse.getId(),difficultEnums.getDifficultType())/analyse.getMaxScore()*100); | |
| 85 | + difficultList.add(form7); | |
| 86 | + } | |
| 87 | + form7RepVO.setDifficultList(difficultList); | |
| 88 | + | |
| 89 | + List<Form7> typeList = new ArrayList<>(); | |
| 90 | + List<String> list = analyseDetailService.selectQuestionType(analyse.getId()); | |
| 91 | + for(String type : list){ | |
| 92 | + Form7 form7 = new Form7(); | |
| 93 | + form7.setName(type); | |
| 94 | + Double score = analyseDetailService.selectSumType(analyse.getId(),type); | |
| 95 | + form7.setScore(score); | |
| 96 | + form7.setPercent(score / analyse.getMaxScore() * 100); | |
| 97 | + typeList.add(form7); | |
| 98 | + } | |
| 99 | + form7RepVO.setTypeList(typeList); | |
| 100 | + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_1_1",form7RepVO); | |
| 101 | + } | |
| 92 | 102 | return form7RepVO; | 
| 93 | 103 | } | 
| 94 | 104 | |
| ... | ... | @@ -96,44 +106,49 @@ public class LearnStatController { | 
| 96 | 106 | @RequestMapping(value = "getForm2_1_1", method = RequestMethod.POST) | 
| 97 | 107 | public Form1RepVO getForm2_1_1(@RequestBody GetLearnReqVo getLearnReqVo){ | 
| 98 | 108 | Form1RepVO form1RepVo = new Form1RepVO(); | 
| 99 | - //2.1表 | |
| 100 | - Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | |
| 101 | - //分数段 | |
| 102 | - Double maxScore = analyse.getMaxScore(); | |
| 103 | - Map<String,String> segmentMap = new HashMap<>(); | |
| 104 | - segmentMap.put("A(优秀)",maxScore*0.85 + "~" + maxScore+"分"); | |
| 105 | - segmentMap.put("B(良好)",maxScore*0.7 + "~" + (maxScore*0.85-1f)+"分"); | |
| 106 | - segmentMap.put("C(及格)",maxScore*0.7 + "~" + (maxScore*0.7-1f)+"分"); | |
| 107 | - segmentMap.put("D(不及格)",0 + "~" + (maxScore*0.6-1f)+"分"); | |
| 108 | - form1RepVo.setMap(segmentMap); | |
| 109 | - List<Student> students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName()); | |
| 110 | - double sum = new Double(students.size()); | |
| 111 | - int a = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),maxScore*0.85,maxScore+1f); | |
| 112 | - int b = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),maxScore*0.7,(maxScore*0.85)); | |
| 113 | - int c = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),maxScore*0.6,(maxScore*0.7)); | |
| 114 | - int d = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),maxScore*0,(maxScore*0.6)); | |
| 115 | - List<Form1> form1List = new ArrayList<>(); | |
| 116 | - Form1 formA = new Form1(); | |
| 117 | - formA.setLevel("A"); | |
| 118 | - formA.setNumber(a); | |
| 119 | - formA.setProp(a/sum*100); | |
| 120 | - Form1 formB = new Form1(); | |
| 121 | - formB.setLevel("B"); | |
| 122 | - formB.setNumber(b); | |
| 123 | - formB.setProp(b/sum*100); | |
| 124 | - Form1 formC = new Form1(); | |
| 125 | - formC.setLevel("C"); | |
| 126 | - formC.setNumber(c); | |
| 127 | - formC.setProp(c/sum*100); | |
| 128 | - Form1 formD = new Form1(); | |
| 129 | - formD.setLevel("D"); | |
| 130 | - formD.setNumber(d); | |
| 131 | - formD.setProp(d/sum*100); | |
| 132 | - form1List.add(formA); | |
| 133 | - form1List.add(formB); | |
| 134 | - form1List.add(formC); | |
| 135 | - form1List.add(formD); | |
| 136 | - form1RepVo.setList(form1List); | |
| 109 | + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_1_1")){ | |
| 110 | + form1RepVo = (Form1RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_1_1"); | |
| 111 | + }else { | |
| 112 | + //2.1表 | |
| 113 | + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | |
| 114 | + //分数段 | |
| 115 | + Double maxScore = analyse.getMaxScore(); | |
| 116 | + Map<String,String> segmentMap = new HashMap<>(); | |
| 117 | + segmentMap.put("A(优秀)",maxScore*0.85 + "~" + maxScore+"分"); | |
| 118 | + segmentMap.put("B(良好)",maxScore*0.7 + "~" + (maxScore*0.85-1f)+"分"); | |
| 119 | + segmentMap.put("C(及格)",maxScore*0.7 + "~" + (maxScore*0.7-1f)+"分"); | |
| 120 | + segmentMap.put("D(不及格)",0 + "~" + (maxScore*0.6-1f)+"分"); | |
| 121 | + form1RepVo.setMap(segmentMap); | |
| 122 | + List<Student> students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName()); | |
| 123 | + double sum = new Double(students.size()); | |
| 124 | + int a = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),maxScore*0.85,maxScore+1f); | |
| 125 | + int b = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),maxScore*0.7,(maxScore*0.85)); | |
| 126 | + int c = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),maxScore*0.6,(maxScore*0.7)); | |
| 127 | + int d = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),maxScore*0,(maxScore*0.6)); | |
| 128 | + List<Form1> form1List = new ArrayList<>(); | |
| 129 | + Form1 formA = new Form1(); | |
| 130 | + formA.setLevel("A"); | |
| 131 | + formA.setNumber(a); | |
| 132 | + formA.setProp(a/sum*100); | |
| 133 | + Form1 formB = new Form1(); | |
| 134 | + formB.setLevel("B"); | |
| 135 | + formB.setNumber(b); | |
| 136 | + formB.setProp(b/sum*100); | |
| 137 | + Form1 formC = new Form1(); | |
| 138 | + formC.setLevel("C"); | |
| 139 | + formC.setNumber(c); | |
| 140 | + formC.setProp(c/sum*100); | |
| 141 | + Form1 formD = new Form1(); | |
| 142 | + formD.setLevel("D"); | |
| 143 | + formD.setNumber(d); | |
| 144 | + formD.setProp(d/sum*100); | |
| 145 | + form1List.add(formA); | |
| 146 | + form1List.add(formB); | |
| 147 | + form1List.add(formC); | |
| 148 | + form1List.add(formD); | |
| 149 | + form1RepVo.setList(form1List); | |
| 150 | + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_1_1",form1RepVo); | |
| 151 | + } | |
| 137 | 152 | return form1RepVo; | 
| 138 | 153 | } | 
| 139 | 154 | |
| ... | ... | @@ -141,63 +156,68 @@ public class LearnStatController { | 
| 141 | 156 | @RequestMapping(value = "getForm2_1_2", method = RequestMethod.POST) | 
| 142 | 157 | public Form2RepVO getForm2_1_2(@RequestBody GetLearnReqVo getLearnReqVo){ | 
| 143 | 158 | Form2RepVO repVO = new Form2RepVO(); | 
| 144 | - Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | |
| 145 | - if(analyse == null){ | |
| 146 | - repVO.setSuccess(false); | |
| 147 | - repVO.setMessage("请先创建考试"); | |
| 148 | - return repVO; | |
| 149 | - } | |
| 150 | - List<String> leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); | |
| 151 | - if(leagues == null){ | |
| 152 | - repVO.setSuccess(false); | |
| 153 | - repVO.setMessage("请先设定联盟校"); | |
| 154 | - return repVO; | |
| 155 | - } | |
| 156 | - List<Student> allStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,null); | |
| 157 | - List<Student> leagueStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),leagues,null); | |
| 158 | - List<Student> students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName()); | |
| 159 | - //先算高分段的分数 | |
| 160 | - int highNumber = (int) Math.floor(allStudents.size()*0.27); | |
| 161 | - double highScore = allStudents.get(highNumber).getScore(); | |
| 162 | - int lowNumber = allStudents.size()-highNumber; | |
| 163 | - double lowScore = allStudents.get(lowNumber).getScore(); | |
| 164 | - List<Form2> list = new ArrayList<>(); | |
| 165 | - | |
| 166 | - int highAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,null,highScore,analyse.getMaxScore()+1f); | |
| 167 | - int lowAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,null,0,lowScore); | |
| 168 | - Form2 form2 = new Form2(); | |
| 169 | - form2.setName("区"); | |
| 170 | - form2.setStudentNumber(allStudents.size()); | |
| 171 | - form2.setHighNumber(highAllCount); | |
| 172 | - form2.setLowNumber(lowAllCount); | |
| 173 | - list.add(form2); | |
| 174 | - { | |
| 175 | - int highLeagueCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),leagues,null,highScore,analyse.getMaxScore()+1f); | |
| 176 | - int lowLeagueCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),leagues,null,0,lowScore); | |
| 177 | - Form2 form = new Form2(); | |
| 178 | - form.setName("联盟校"); | |
| 179 | - form.setStudentNumber(leagueStudents.size()); | |
| 180 | - form.setStudentProp(new Double(leagueStudents.size()) / new Double(allStudents.size())); | |
| 181 | - form.setHighNumber(highLeagueCount); | |
| 182 | - form.setLowNumber(lowLeagueCount); | |
| 183 | - form.setHighProp(highLeagueCount/new Double(highAllCount)); | |
| 184 | - form.setLowProp(lowLeagueCount/new Double(lowAllCount)); | |
| 185 | - list.add(form); | |
| 186 | - } | |
| 187 | - { | |
| 188 | - int highCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),highScore,analyse.getMaxScore()+1f); | |
| 189 | - int lowCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),0,lowScore); | |
| 190 | - Form2 form = new Form2(); | |
| 191 | - form.setName(getLearnReqVo.getSchoolName()); | |
| 192 | - form.setStudentNumber(students.size()); | |
| 193 | - form.setStudentProp(new Double(students.size()) / new Double(allStudents.size())); | |
| 194 | - form.setHighNumber(highCount); | |
| 195 | - form.setLowNumber(lowCount); | |
| 196 | - form.setHighProp(highCount/new Double(highAllCount)); | |
| 197 | - form.setLowProp(lowCount/new Double(lowAllCount)); | |
| 198 | - list.add(form); | |
| 159 | + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_1_2")){ | |
| 160 | + repVO = (Form2RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_1_2"); | |
| 161 | + }else { | |
| 162 | + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | |
| 163 | + if(analyse == null){ | |
| 164 | + repVO.setSuccess(false); | |
| 165 | + repVO.setMessage("请先创建考试"); | |
| 166 | + return repVO; | |
| 167 | + } | |
| 168 | + List<String> leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); | |
| 169 | + if(leagues == null){ | |
| 170 | + repVO.setSuccess(false); | |
| 171 | + repVO.setMessage("请先设定联盟校"); | |
| 172 | + return repVO; | |
| 173 | + } | |
| 174 | + List<Student> allStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,null); | |
| 175 | + List<Student> leagueStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),leagues,null); | |
| 176 | + List<Student> students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName()); | |
| 177 | + //先算高分段的分数 | |
| 178 | + int highNumber = (int) Math.floor(allStudents.size()*0.27); | |
| 179 | + double highScore = allStudents.get(highNumber).getScore(); | |
| 180 | + int lowNumber = allStudents.size()-highNumber; | |
| 181 | + double lowScore = allStudents.get(lowNumber).getScore(); | |
| 182 | + List<Form2> list = new ArrayList<>(); | |
| 183 | + | |
| 184 | + int highAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,null,highScore,analyse.getMaxScore()+1f); | |
| 185 | + int lowAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,null,0,lowScore); | |
| 186 | + Form2 form2 = new Form2(); | |
| 187 | + form2.setName("区"); | |
| 188 | + form2.setStudentNumber(allStudents.size()); | |
| 189 | + form2.setHighNumber(highAllCount); | |
| 190 | + form2.setLowNumber(lowAllCount); | |
| 191 | + list.add(form2); | |
| 192 | + { | |
| 193 | + int highLeagueCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),leagues,null,highScore,analyse.getMaxScore()+1f); | |
| 194 | + int lowLeagueCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),leagues,null,0,lowScore); | |
| 195 | + Form2 form = new Form2(); | |
| 196 | + form.setName("联盟校"); | |
| 197 | + form.setStudentNumber(leagueStudents.size()); | |
| 198 | + form.setStudentProp(new Double(leagueStudents.size()) / new Double(allStudents.size())); | |
| 199 | + form.setHighNumber(highLeagueCount); | |
| 200 | + form.setLowNumber(lowLeagueCount); | |
| 201 | + form.setHighProp(highLeagueCount/new Double(highAllCount)); | |
| 202 | + form.setLowProp(lowLeagueCount/new Double(lowAllCount)); | |
| 203 | + list.add(form); | |
| 204 | + } | |
| 205 | + { | |
| 206 | + int highCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),highScore,analyse.getMaxScore()+1f); | |
| 207 | + int lowCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),0,lowScore); | |
| 208 | + Form2 form = new Form2(); | |
| 209 | + form.setName(getLearnReqVo.getSchoolName()); | |
| 210 | + form.setStudentNumber(students.size()); | |
| 211 | + form.setStudentProp(new Double(students.size()) / new Double(allStudents.size())); | |
| 212 | + form.setHighNumber(highCount); | |
| 213 | + form.setLowNumber(lowCount); | |
| 214 | + form.setHighProp(highCount/new Double(highAllCount)); | |
| 215 | + form.setLowProp(lowCount/new Double(lowAllCount)); | |
| 216 | + list.add(form); | |
| 217 | + } | |
| 218 | + repVO.setData(list); | |
| 219 | + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_1_2",repVO); | |
| 199 | 220 | } | 
| 200 | - repVO.setData(list); | |
| 201 | 221 | return repVO; | 
| 202 | 222 | } | 
| 203 | 223 | |
| ... | ... | @@ -205,43 +225,48 @@ public class LearnStatController { | 
| 205 | 225 | @RequestMapping(value = "getForm2_1_3_2", method = RequestMethod.POST) | 
| 206 | 226 | public Form2RepVO getForm2_1_3_2(@RequestBody GetLearnReqVo getLearnReqVo){ | 
| 207 | 227 | Form2RepVO repVO = new Form2RepVO(); | 
| 208 | - Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | |
| 209 | - if(analyse == null){ | |
| 210 | - repVO.setSuccess(false); | |
| 211 | - repVO.setMessage("请先创建考试"); | |
| 212 | - return repVO; | |
| 228 | + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_1_3_2")){ | |
| 229 | + repVO = (Form2RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_1_3_2"); | |
| 230 | + }else { | |
| 231 | + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | |
| 232 | + if(analyse == null){ | |
| 233 | + repVO.setSuccess(false); | |
| 234 | + repVO.setMessage("请先创建考试"); | |
| 235 | + return repVO; | |
| 236 | + } | |
| 237 | + List<Student> allStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName()); | |
| 238 | + //先算高分段的分数 | |
| 239 | + int highNumber = (int) Math.floor(allStudents.size()*0.27); | |
| 240 | + double highScore = allStudents.get(highNumber).getScore(); | |
| 241 | + int lowNumber = allStudents.size()-highNumber; | |
| 242 | + double lowScore = allStudents.get(lowNumber).getScore(); | |
| 243 | + int highAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),highScore,analyse.getMaxScore()+1f); | |
| 244 | + int lowAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),0,lowScore); | |
| 245 | + List<Form2> resultList = new ArrayList<>(); | |
| 246 | + Form2 form = new Form2(); | |
| 247 | + form.setName(getLearnReqVo.getSchoolName()); | |
| 248 | + form.setStudentNumber(allStudents.size()); | |
| 249 | + form.setHighNumber(highAllCount); | |
| 250 | + form.setLowNumber(lowAllCount); | |
| 251 | + resultList.add(form); | |
| 252 | + List<String> classNamList = studentService.selectClassNameBySchool(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName()); | |
| 253 | + for(String className : classNamList){ | |
| 254 | + List<Student> list = studentService.selectByClassName(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className); | |
| 255 | + int highCount = studentService.selectCountBySchoolScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className,highScore,analyse.getMaxScore()+1f); | |
| 256 | + int lowCount = studentService.selectCountBySchoolScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className,0,lowScore); | |
| 257 | + Form2 form2 = new Form2(); | |
| 258 | + form2.setName(className); | |
| 259 | + form2.setStudentNumber(list.size()); | |
| 260 | + form2.setStudentProp(new Double(list.size()) / new Double(allStudents.size())); | |
| 261 | + form2.setHighNumber(highCount); | |
| 262 | + form2.setLowNumber(lowCount); | |
| 263 | + form2.setHighProp(highCount/new Double(highAllCount)); | |
| 264 | + form2.setLowProp(lowCount/new Double(lowAllCount)); | |
| 265 | + resultList.add(form2); | |
| 266 | + } | |
| 267 | + repVO.setData(resultList); | |
| 268 | + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_1_3_2",repVO); | |
| 213 | 269 | } | 
| 214 | - List<Student> allStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName()); | |
| 215 | - //先算高分段的分数 | |
| 216 | - int highNumber = (int) Math.floor(allStudents.size()*0.27); | |
| 217 | - double highScore = allStudents.get(highNumber).getScore(); | |
| 218 | - int lowNumber = allStudents.size()-highNumber; | |
| 219 | - double lowScore = allStudents.get(lowNumber).getScore(); | |
| 220 | - int highAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),highScore,analyse.getMaxScore()+1f); | |
| 221 | - int lowAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),0,lowScore); | |
| 222 | - List<Form2> resultList = new ArrayList<>(); | |
| 223 | - Form2 form = new Form2(); | |
| 224 | - form.setName(getLearnReqVo.getSchoolName()); | |
| 225 | - form.setStudentNumber(allStudents.size()); | |
| 226 | - form.setHighNumber(highAllCount); | |
| 227 | - form.setLowNumber(lowAllCount); | |
| 228 | - resultList.add(form); | |
| 229 | - List<String> classNamList = studentService.selectClassNameBySchool(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName()); | |
| 230 | - for(String className : classNamList){ | |
| 231 | - List<Student> list = studentService.selectByClassName(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className); | |
| 232 | - int highCount = studentService.selectCountBySchoolScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className,highScore,analyse.getMaxScore()+1f); | |
| 233 | - int lowCount = studentService.selectCountBySchoolScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className,0,lowScore); | |
| 234 | - Form2 form2 = new Form2(); | |
| 235 | - form2.setName(className); | |
| 236 | - form2.setStudentNumber(list.size()); | |
| 237 | - form2.setStudentProp(new Double(list.size()) / new Double(allStudents.size())); | |
| 238 | - form2.setHighNumber(highCount); | |
| 239 | - form2.setLowNumber(lowCount); | |
| 240 | - form2.setHighProp(highCount/new Double(highAllCount)); | |
| 241 | - form2.setLowProp(lowCount/new Double(lowAllCount)); | |
| 242 | - resultList.add(form2); | |
| 243 | - } | |
| 244 | - repVO.setData(resultList); | |
| 245 | 270 | return repVO; | 
| 246 | 271 | } | 
| 247 | 272 | |
| ... | ... | @@ -285,71 +310,76 @@ public class LearnStatController { | 
| 285 | 310 | @RequestMapping(value = "getForm2_2_1", method = RequestMethod.POST) | 
| 286 | 311 | public Form3RepVO getForm2_2_1(@RequestBody GetLearnReqVo getLearnReqVo){ | 
| 287 | 312 | Form3RepVO repVO = new Form3RepVO(); | 
| 288 | - Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | |
| 289 | - if(analyse == null){ | |
| 290 | - repVO.setSuccess(false); | |
| 291 | - repVO.setMessage("请先创建考试"); | |
| 292 | - return repVO; | |
| 293 | - } | |
| 294 | - List<String> leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); | |
| 295 | - if(leagues == null){ | |
| 296 | - repVO.setSuccess(false); | |
| 297 | - repVO.setMessage("请先设定联盟校"); | |
| 298 | - return repVO; | |
| 299 | - } | |
| 300 | - List<Form3> list = new ArrayList<>(); | |
| 301 | - List<Student> allStudents = studentService.selectBySchoolName(analyse.getId(),null,null); | |
| 302 | - { | |
| 303 | - Form3 form3 = new Form3(); | |
| 304 | - form3.setName("区"); | |
| 305 | - form3.setMaxScore(studentService.selectMaxScore(analyse.getId(),null,null)); | |
| 306 | - form3.setAverage(studentService.selectAvgScore(analyse.getId(),null,null)); | |
| 307 | - form3.setMinScore(studentService.selectMinScore(analyse.getId(),null,null)); | |
| 308 | - int a = studentService.selectCountByScore(analyse.getId(),null,null,analyse.getMaxScore()*0.85,analyse.getMaxScore()+1); | |
| 309 | - form3.setApercent(a / new Double(allStudents.size()) * 100); | |
| 310 | - int b = studentService.selectCountByScore(analyse.getId(),null,null,analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85); | |
| 311 | - form3.setBpercent(b / new Double(allStudents.size()) * 100); | |
| 312 | - int c = studentService.selectCountByScore(analyse.getId(),null,null,analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7); | |
| 313 | - form3.setCpercent(c / new Double(allStudents.size()) * 100); | |
| 314 | - int d = studentService.selectCountByScore(analyse.getId(),null,null,analyse.getMaxScore()*0,analyse.getMaxScore()*0.6); | |
| 315 | - form3.setDpercent(d / new Double(allStudents.size()) * 100); | |
| 316 | - list.add(form3); | |
| 317 | - } | |
| 318 | - { | |
| 319 | - Form3 form = new Form3(); | |
| 320 | - form.setName("联盟校"); | |
| 321 | - List<Student> students = studentService.selectBySchoolName(analyse.getId(),leagues,null); | |
| 322 | - form.setMaxScore(studentService.selectMaxScore(analyse.getId(),leagues,null)); | |
| 323 | - form.setAverage(studentService.selectAvgScore(analyse.getId(),leagues,null)); | |
| 324 | - form.setMinScore(studentService.selectMinScore(analyse.getId(),leagues,null)); | |
| 325 | - int a1 = studentService.selectCountByScore(analyse.getId(),leagues,null,analyse.getMaxScore()*0.85,analyse.getMaxScore()+1); | |
| 326 | - form.setApercent(a1 / new Double(students.size()) * 100); | |
| 327 | - int b1 = studentService.selectCountByScore(analyse.getId(),leagues,null,analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85); | |
| 328 | - form.setBpercent(b1 / new Double(students.size()) * 100); | |
| 329 | - int c1 = studentService.selectCountByScore(analyse.getId(),leagues,null,analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7); | |
| 330 | - form.setCpercent(c1 / new Double(students.size()) * 100); | |
| 331 | - int d1 = studentService.selectCountByScore(analyse.getId(),leagues,null,analyse.getMaxScore()*0,analyse.getMaxScore()*0.6); | |
| 332 | - form.setDpercent(d1 / new Double(students.size()) * 100); | |
| 333 | - list.add(form); | |
| 334 | - } | |
| 335 | - { | |
| 336 | - Form3 form = new Form3(); | |
| 337 | - form.setName(getLearnReqVo.getSchoolName()); | |
| 338 | - List<Student> students = studentService.selectBySchoolName(analyse.getId(),null,getLearnReqVo.getSchoolName()); | |
| 339 | - form.setMaxScore(studentService.selectMaxScore(analyse.getId(),null,getLearnReqVo.getSchoolName())); | |
| 340 | - form.setAverage(studentService.selectAvgScore(analyse.getId(),null,getLearnReqVo.getSchoolName())); | |
| 341 | - form.setMinScore(studentService.selectMinScore(analyse.getId(),null,getLearnReqVo.getSchoolName())); | |
| 342 | - int a1 = studentService.selectCountByScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.85,analyse.getMaxScore()+1); | |
| 343 | - form.setApercent(a1 / new Double(students.size()) * 100); | |
| 344 | - int b1 = studentService.selectCountByScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85); | |
| 345 | - form.setBpercent(b1 / new Double(students.size()) * 100); | |
| 346 | - int c1 = studentService.selectCountByScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7); | |
| 347 | - form.setCpercent(c1 / new Double(students.size()) * 100); | |
| 348 | - int d1 = studentService.selectCountByScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0,analyse.getMaxScore()*0.6); | |
| 349 | - form.setDpercent(d1 / new Double(students.size()) * 100); | |
| 350 | - list.add(form); | |
| 313 | + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_1")){ | |
| 314 | + repVO = (Form3RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_1"); | |
| 315 | + }else { | |
| 316 | + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | |
| 317 | + if(analyse == null){ | |
| 318 | + repVO.setSuccess(false); | |
| 319 | + repVO.setMessage("请先创建考试"); | |
| 320 | + return repVO; | |
| 321 | + } | |
| 322 | + List<String> leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); | |
| 323 | + if(leagues == null){ | |
| 324 | + repVO.setSuccess(false); | |
| 325 | + repVO.setMessage("请先设定联盟校"); | |
| 326 | + return repVO; | |
| 327 | + } | |
| 328 | + List<Form3> list = new ArrayList<>(); | |
| 329 | + List<Student> allStudents = studentService.selectBySchoolName(analyse.getId(),null,null); | |
| 330 | + { | |
| 331 | + Form3 form3 = new Form3(); | |
| 332 | + form3.setName("区"); | |
| 333 | + form3.setMaxScore(studentService.selectMaxScore(analyse.getId(),null,null)); | |
| 334 | + form3.setAverage(studentService.selectAvgScore(analyse.getId(),null,null)); | |
| 335 | + form3.setMinScore(studentService.selectMinScore(analyse.getId(),null,null)); | |
| 336 | + int a = studentService.selectCountByScore(analyse.getId(),null,null,analyse.getMaxScore()*0.85,analyse.getMaxScore()+1); | |
| 337 | + form3.setApercent(a / new Double(allStudents.size()) * 100); | |
| 338 | + int b = studentService.selectCountByScore(analyse.getId(),null,null,analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85); | |
| 339 | + form3.setBpercent(b / new Double(allStudents.size()) * 100); | |
| 340 | + int c = studentService.selectCountByScore(analyse.getId(),null,null,analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7); | |
| 341 | + form3.setCpercent(c / new Double(allStudents.size()) * 100); | |
| 342 | + int d = studentService.selectCountByScore(analyse.getId(),null,null,analyse.getMaxScore()*0,analyse.getMaxScore()*0.6); | |
| 343 | + form3.setDpercent(d / new Double(allStudents.size()) * 100); | |
| 344 | + list.add(form3); | |
| 345 | + } | |
| 346 | + { | |
| 347 | + Form3 form = new Form3(); | |
| 348 | + form.setName("联盟校"); | |
| 349 | + List<Student> students = studentService.selectBySchoolName(analyse.getId(),leagues,null); | |
| 350 | + form.setMaxScore(studentService.selectMaxScore(analyse.getId(),leagues,null)); | |
| 351 | + form.setAverage(studentService.selectAvgScore(analyse.getId(),leagues,null)); | |
| 352 | + form.setMinScore(studentService.selectMinScore(analyse.getId(),leagues,null)); | |
| 353 | + int a1 = studentService.selectCountByScore(analyse.getId(),leagues,null,analyse.getMaxScore()*0.85,analyse.getMaxScore()+1); | |
| 354 | + form.setApercent(a1 / new Double(students.size()) * 100); | |
| 355 | + int b1 = studentService.selectCountByScore(analyse.getId(),leagues,null,analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85); | |
| 356 | + form.setBpercent(b1 / new Double(students.size()) * 100); | |
| 357 | + int c1 = studentService.selectCountByScore(analyse.getId(),leagues,null,analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7); | |
| 358 | + form.setCpercent(c1 / new Double(students.size()) * 100); | |
| 359 | + int d1 = studentService.selectCountByScore(analyse.getId(),leagues,null,analyse.getMaxScore()*0,analyse.getMaxScore()*0.6); | |
| 360 | + form.setDpercent(d1 / new Double(students.size()) * 100); | |
| 361 | + list.add(form); | |
| 362 | + } | |
| 363 | + { | |
| 364 | + Form3 form = new Form3(); | |
| 365 | + form.setName(getLearnReqVo.getSchoolName()); | |
| 366 | + List<Student> students = studentService.selectBySchoolName(analyse.getId(),null,getLearnReqVo.getSchoolName()); | |
| 367 | + form.setMaxScore(studentService.selectMaxScore(analyse.getId(),null,getLearnReqVo.getSchoolName())); | |
| 368 | + form.setAverage(studentService.selectAvgScore(analyse.getId(),null,getLearnReqVo.getSchoolName())); | |
| 369 | + form.setMinScore(studentService.selectMinScore(analyse.getId(),null,getLearnReqVo.getSchoolName())); | |
| 370 | + int a1 = studentService.selectCountByScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.85,analyse.getMaxScore()+1); | |
| 371 | + form.setApercent(a1 / new Double(students.size()) * 100); | |
| 372 | + int b1 = studentService.selectCountByScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85); | |
| 373 | + form.setBpercent(b1 / new Double(students.size()) * 100); | |
| 374 | + int c1 = studentService.selectCountByScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7); | |
| 375 | + form.setCpercent(c1 / new Double(students.size()) * 100); | |
| 376 | + int d1 = studentService.selectCountByScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0,analyse.getMaxScore()*0.6); | |
| 377 | + form.setDpercent(d1 / new Double(students.size()) * 100); | |
| 378 | + list.add(form); | |
| 379 | + } | |
| 380 | + repVO.setData(list); | |
| 381 | + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_1",repVO); | |
| 351 | 382 | } | 
| 352 | - repVO.setData(list); | |
| 353 | 383 | return repVO ; | 
| 354 | 384 | } | 
| 355 | 385 | |
| ... | ... | @@ -357,47 +387,52 @@ public class LearnStatController { | 
| 357 | 387 | @RequestMapping(value = "getForm2_2_2", method = RequestMethod.POST) | 
| 358 | 388 | public Form4RepVO getForm2_2_2(@RequestBody GetLearnReqVo getLearnReqVo){ | 
| 359 | 389 | Form4RepVO repVO = new Form4RepVO(); | 
| 360 | - Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | |
| 361 | - if(analyse == null){ | |
| 362 | - repVO.setSuccess(false); | |
| 363 | - repVO.setMessage("请先创建考试"); | |
| 364 | - return repVO; | |
| 365 | - } | |
| 366 | - List<String> leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); | |
| 367 | - if(leagues == null){ | |
| 368 | - repVO.setSuccess(false); | |
| 369 | - repVO.setMessage("请先设定联盟校"); | |
| 370 | - return repVO; | |
| 371 | - } | |
| 372 | - List<Form4> list = new ArrayList<>(); | |
| 373 | - { | |
| 374 | - Form4 form4 = new Form4(); | |
| 375 | - form4.setName("区"); | |
| 376 | - form4.setModeNumber(studentService.selectModeNumber(analyse.getId(),null,null)); | |
| 377 | - form4.setMedianNumber(studentService.selectMedian(analyse.getId(),null,null)); | |
| 378 | - form4.setStdev(studentService.selectStdev(analyse.getId(),null,null)); | |
| 379 | - form4.setAvgNumber(studentService.selectAvgScore(analyse.getId(),null,null)); | |
| 380 | - list.add(form4); | |
| 381 | - } | |
| 382 | - { | |
| 383 | - Form4 form = new Form4(); | |
| 384 | - form.setName(getLearnReqVo.getSchoolName()); | |
| 385 | - form.setModeNumber(studentService.selectModeNumber(analyse.getId(),leagues,null)); | |
| 386 | - form.setMedianNumber(studentService.selectMedian(analyse.getId(),leagues,null)); | |
| 387 | - form.setStdev(studentService.selectStdev(analyse.getId(),leagues,null)); | |
| 388 | - form.setAvgNumber(studentService.selectAvgScore(analyse.getId(),leagues,null)); | |
| 389 | - list.add(form); | |
| 390 | - } | |
| 391 | - { | |
| 392 | - Form4 form = new Form4(); | |
| 393 | - form.setName(getLearnReqVo.getSchoolName()); | |
| 394 | - form.setModeNumber(studentService.selectModeNumber(analyse.getId(),null,getLearnReqVo.getSchoolName())); | |
| 395 | - form.setMedianNumber(studentService.selectMedian(analyse.getId(),null,getLearnReqVo.getSchoolName())); | |
| 396 | - form.setStdev(studentService.selectStdev(analyse.getId(),null,getLearnReqVo.getSchoolName())); | |
| 397 | - form.setAvgNumber(studentService.selectAvgScore(analyse.getId(),null,getLearnReqVo.getSchoolName())); | |
| 398 | - list.add(form); | |
| 390 | + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_2")){ | |
| 391 | + repVO = (Form4RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_2"); | |
| 392 | + }else { | |
| 393 | + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | |
| 394 | + if(analyse == null){ | |
| 395 | + repVO.setSuccess(false); | |
| 396 | + repVO.setMessage("请先创建考试"); | |
| 397 | + return repVO; | |
| 398 | + } | |
| 399 | + List<String> leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); | |
| 400 | + if(leagues == null){ | |
| 401 | + repVO.setSuccess(false); | |
| 402 | + repVO.setMessage("请先设定联盟校"); | |
| 403 | + return repVO; | |
| 404 | + } | |
| 405 | + List<Form4> list = new ArrayList<>(); | |
| 406 | + { | |
| 407 | + Form4 form4 = new Form4(); | |
| 408 | + form4.setName("区"); | |
| 409 | + form4.setModeNumber(studentService.selectModeNumber(analyse.getId(),null,null)); | |
| 410 | + form4.setMedianNumber(studentService.selectMedian(analyse.getId(),null,null)); | |
| 411 | + form4.setStdev(studentService.selectStdev(analyse.getId(),null,null)); | |
| 412 | + form4.setAvgNumber(studentService.selectAvgScore(analyse.getId(),null,null)); | |
| 413 | + list.add(form4); | |
| 414 | + } | |
| 415 | + { | |
| 416 | + Form4 form = new Form4(); | |
| 417 | + form.setName(getLearnReqVo.getSchoolName()); | |
| 418 | + form.setModeNumber(studentService.selectModeNumber(analyse.getId(),leagues,null)); | |
| 419 | + form.setMedianNumber(studentService.selectMedian(analyse.getId(),leagues,null)); | |
| 420 | + form.setStdev(studentService.selectStdev(analyse.getId(),leagues,null)); | |
| 421 | + form.setAvgNumber(studentService.selectAvgScore(analyse.getId(),leagues,null)); | |
| 422 | + list.add(form); | |
| 423 | + } | |
| 424 | + { | |
| 425 | + Form4 form = new Form4(); | |
| 426 | + form.setName(getLearnReqVo.getSchoolName()); | |
| 427 | + form.setModeNumber(studentService.selectModeNumber(analyse.getId(),null,getLearnReqVo.getSchoolName())); | |
| 428 | + form.setMedianNumber(studentService.selectMedian(analyse.getId(),null,getLearnReqVo.getSchoolName())); | |
| 429 | + form.setStdev(studentService.selectStdev(analyse.getId(),null,getLearnReqVo.getSchoolName())); | |
| 430 | + form.setAvgNumber(studentService.selectAvgScore(analyse.getId(),null,getLearnReqVo.getSchoolName())); | |
| 431 | + list.add(form); | |
| 432 | + } | |
| 433 | + repVO.setData(list); | |
| 434 | + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_2",repVO); | |
| 399 | 435 | } | 
| 400 | - repVO.setData(list); | |
| 401 | 436 | return repVO; | 
| 402 | 437 | } | 
| 403 | 438 | |
| ... | ... | @@ -405,91 +440,96 @@ public class LearnStatController { | 
| 405 | 440 | @RequestMapping(value = "getForm2_2_3", method = RequestMethod.POST) | 
| 406 | 441 | public Form5RepVO getForm2_2_3(@RequestBody GetLearnReqVo getLearnReqVo){ | 
| 407 | 442 | Form5RepVO repVO = new Form5RepVO(); | 
| 408 | - Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | |
| 409 | - if(analyse == null){ | |
| 410 | - repVO.setSuccess(false); | |
| 411 | - repVO.setMessage("请先创建考试"); | |
| 412 | - return repVO; | |
| 413 | - } | |
| 414 | - List<String> leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); | |
| 415 | - if(leagues == null){ | |
| 416 | - repVO.setSuccess(false); | |
| 417 | - repVO.setMessage("请先设定联盟校"); | |
| 418 | - return repVO; | |
| 419 | - } | |
| 420 | - List<String> allHighStudent = new ArrayList<>(); | |
| 421 | - List<String> allLowStudent = new ArrayList<>(); | |
| 422 | - List<Student> allStudents = studentService.selectBySchoolName(analyse.getId(),null,null); | |
| 423 | - int allNumber = (int) Math.floor(allStudents.size()*0.27) ; | |
| 424 | - { | |
| 425 | - //获取区 高分段,低分段学生编号 | |
| 426 | - for (int i = 0; i < allNumber ; i++) { | |
| 427 | - allHighStudent.add(allStudents.get(i).getStudentNumber()); | |
| 428 | - } | |
| 429 | - for(int i =allStudents.size()-allNumber ; i < allStudents.size() ; i++){ | |
| 430 | - allLowStudent.add(allStudents.get(i).getStudentNumber()); | |
| 443 | + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_3")){ | |
| 444 | + repVO = (Form5RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_3"); | |
| 445 | + }else { | |
| 446 | + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | |
| 447 | + if(analyse == null){ | |
| 448 | + repVO.setSuccess(false); | |
| 449 | + repVO.setMessage("请先创建考试"); | |
| 450 | + return repVO; | |
| 431 | 451 | } | 
| 432 | - } | |
| 433 | - List<String> leagueHighStudent = new ArrayList<>(); | |
| 434 | - List<String> leagueLowStudent = new ArrayList<>(); | |
| 435 | - List<Student> leagueStudents = studentService.selectBySchoolName(analyse.getId(),leagues,null); | |
| 436 | - int leagueNumber = (int) Math.floor(leagueStudents.size()*0.27) ; | |
| 437 | - { | |
| 438 | - //获取联盟校 高分段 低分段 学生编号 | |
| 439 | - for (int i = 0; i < leagueNumber ; i++) { | |
| 440 | - leagueHighStudent.add(leagueStudents.get(i).getStudentNumber()); | |
| 452 | + List<String> leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); | |
| 453 | + if(leagues == null){ | |
| 454 | + repVO.setSuccess(false); | |
| 455 | + repVO.setMessage("请先设定联盟校"); | |
| 456 | + return repVO; | |
| 441 | 457 | } | 
| 442 | - for(int i =leagueStudents.size()-leagueNumber ; i < leagueStudents.size() ; i++){ | |
| 443 | - leagueLowStudent.add(leagueStudents.get(i).getStudentNumber()); | |
| 458 | + List<String> allHighStudent = new ArrayList<>(); | |
| 459 | + List<String> allLowStudent = new ArrayList<>(); | |
| 460 | + List<Student> allStudents = studentService.selectBySchoolName(analyse.getId(),null,null); | |
| 461 | + int allNumber = (int) Math.floor(allStudents.size()*0.27) ; | |
| 462 | + { | |
| 463 | + //获取区 高分段,低分段学生编号 | |
| 464 | + for (int i = 0; i < allNumber ; i++) { | |
| 465 | + allHighStudent.add(allStudents.get(i).getStudentNumber()); | |
| 466 | + } | |
| 467 | + for(int i =allStudents.size()-allNumber ; i < allStudents.size() ; i++){ | |
| 468 | + allLowStudent.add(allStudents.get(i).getStudentNumber()); | |
| 469 | + } | |
| 444 | 470 | } | 
| 445 | - } | |
| 446 | - List<String> highStudent = new ArrayList<>(); | |
| 447 | - List<String> lowStudent = new ArrayList<>(); | |
| 448 | - List<Student> students = studentService.selectBySchoolName(analyse.getId(),null,getLearnReqVo.getSchoolName()); | |
| 449 | - int number = (int) Math.floor(students.size()*0.27) ; | |
| 450 | - { | |
| 451 | - //获取本校高分段 低分段 学生编号 | |
| 452 | - for (int i = 0; i < number ; i++) { | |
| 453 | - highStudent.add(students.get(i).getStudentNumber()); | |
| 471 | + List<String> leagueHighStudent = new ArrayList<>(); | |
| 472 | + List<String> leagueLowStudent = new ArrayList<>(); | |
| 473 | + List<Student> leagueStudents = studentService.selectBySchoolName(analyse.getId(),leagues,null); | |
| 474 | + int leagueNumber = (int) Math.floor(leagueStudents.size()*0.27) ; | |
| 475 | + { | |
| 476 | + //获取联盟校 高分段 低分段 学生编号 | |
| 477 | + for (int i = 0; i < leagueNumber ; i++) { | |
| 478 | + leagueHighStudent.add(leagueStudents.get(i).getStudentNumber()); | |
| 479 | + } | |
| 480 | + for(int i =leagueStudents.size()-leagueNumber ; i < leagueStudents.size() ; i++){ | |
| 481 | + leagueLowStudent.add(leagueStudents.get(i).getStudentNumber()); | |
| 482 | + } | |
| 454 | 483 | } | 
| 455 | - for(int i =students.size()-number ; i < students.size() ; i++){ | |
| 456 | - lowStudent.add(students.get(i).getStudentNumber()); | |
| 484 | + List<String> highStudent = new ArrayList<>(); | |
| 485 | + List<String> lowStudent = new ArrayList<>(); | |
| 486 | + List<Student> students = studentService.selectBySchoolName(analyse.getId(),null,getLearnReqVo.getSchoolName()); | |
| 487 | + int number = (int) Math.floor(students.size()*0.27) ; | |
| 488 | + { | |
| 489 | + //获取本校高分段 低分段 学生编号 | |
| 490 | + for (int i = 0; i < number ; i++) { | |
| 491 | + highStudent.add(students.get(i).getStudentNumber()); | |
| 492 | + } | |
| 493 | + for(int i =students.size()-number ; i < students.size() ; i++){ | |
| 494 | + lowStudent.add(students.get(i).getStudentNumber()); | |
| 495 | + } | |
| 457 | 496 | } | 
| 458 | - } | |
| 459 | 497 | |
| 460 | - List<Form5> list = new ArrayList<>(); | |
| 498 | + List<Form5> list = new ArrayList<>(); | |
| 461 | 499 | |
| 462 | - List<AnalyseDetail> analyseDetails = analyseDetailService.selectByAnalyseId(analyse.getId()); | |
| 463 | - for(AnalyseDetail analyseDetail : analyseDetails){ | |
| 464 | - Form5 from5 = new Form5(); | |
| 465 | - Double allSumScore = studentDetailService.selectSumScore(analyse.getId(),null,null,analyseDetail.getQuestionNumber()); | |
| 466 | - Double leagueSumScore = studentDetailService.selectSumScore(analyse.getId(),leagues,null,analyseDetail.getQuestionNumber()); | |
| 467 | - Double schoolSumScore = studentDetailService.selectSumScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyseDetail.getQuestionNumber()); | |
| 468 | - from5.setExamNumber(analyseDetail.getQuestionNumber()); | |
| 469 | - from5.setScore(analyseDetail.getScore()); | |
| 470 | - from5.setDifficultName(DifficultEnums.getDifficultName(analyseDetail.getDifficult())); | |
| 471 | - from5.setAllRate(allSumScore/new Double(allStudents.size()) / analyseDetail.getScore()); | |
| 472 | - from5.setLeagueRate(leagueSumScore/new Double(leagueStudents.size()) / analyseDetail.getScore()); | |
| 473 | - from5.setSchoolRate(schoolSumScore/new Double(students.size()) / analyseDetail.getScore()); | |
| 500 | + List<AnalyseDetail> analyseDetails = analyseDetailService.selectByAnalyseId(analyse.getId()); | |
| 501 | + for(AnalyseDetail analyseDetail : analyseDetails){ | |
| 502 | + Form5 from5 = new Form5(); | |
| 503 | + Double allSumScore = studentDetailService.selectSumScore(analyse.getId(),null,null,analyseDetail.getQuestionNumber()); | |
| 504 | + Double leagueSumScore = studentDetailService.selectSumScore(analyse.getId(),leagues,null,analyseDetail.getQuestionNumber()); | |
| 505 | + Double schoolSumScore = studentDetailService.selectSumScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyseDetail.getQuestionNumber()); | |
| 506 | + from5.setExamNumber(analyseDetail.getQuestionNumber()); | |
| 507 | + from5.setScore(analyseDetail.getScore()); | |
| 508 | + from5.setDifficultName(DifficultEnums.getDifficultName(analyseDetail.getDifficult())); | |
| 509 | + from5.setAllRate(allSumScore/new Double(allStudents.size()) / analyseDetail.getScore()); | |
| 510 | + from5.setLeagueRate(leagueSumScore/new Double(leagueStudents.size()) / analyseDetail.getScore()); | |
| 511 | + from5.setSchoolRate(schoolSumScore/new Double(students.size()) / analyseDetail.getScore()); | |
| 474 | 512 | |
| 475 | - from5.setAllAvg(allSumScore / new Double(allStudents.size())); | |
| 476 | - from5.setLeagueAvg(leagueSumScore / new Double(leagueStudents.size())); | |
| 477 | - from5.setSchoolAvg(schoolSumScore / new Double(students.size())); | |
| 513 | + from5.setAllAvg(allSumScore / new Double(allStudents.size())); | |
| 514 | + from5.setLeagueAvg(leagueSumScore / new Double(leagueStudents.size())); | |
| 515 | + from5.setSchoolAvg(schoolSumScore / new Double(students.size())); | |
| 478 | 516 | |
| 479 | - int allHigh = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,null ,analyseDetail.getQuestionNumber(),allHighStudent); | |
| 480 | - int allLow = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,null ,analyseDetail.getQuestionNumber(),allLowStudent); | |
| 517 | + int allHigh = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,null ,analyseDetail.getQuestionNumber(),allHighStudent); | |
| 518 | + int allLow = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,null ,analyseDetail.getQuestionNumber(),allLowStudent); | |
| 481 | 519 | |
| 482 | - int leagueHigh = studentDetailService.selectTrueByExamNumber(analyse.getId(),leagues,null ,analyseDetail.getQuestionNumber(),allHighStudent); | |
| 483 | - int leagueLow = studentDetailService.selectTrueByExamNumber(analyse.getId(),leagues,null ,analyseDetail.getQuestionNumber(),allLowStudent); | |
| 520 | + int leagueHigh = studentDetailService.selectTrueByExamNumber(analyse.getId(),leagues,null ,analyseDetail.getQuestionNumber(),allHighStudent); | |
| 521 | + int leagueLow = studentDetailService.selectTrueByExamNumber(analyse.getId(),leagues,null ,analyseDetail.getQuestionNumber(),allLowStudent); | |
| 484 | 522 | |
| 485 | - int high = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,getLearnReqVo.getSchoolName() ,analyseDetail.getQuestionNumber(),highStudent); | |
| 486 | - int low = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,getLearnReqVo.getSchoolName() ,analyseDetail.getQuestionNumber(),lowStudent); | |
| 487 | - from5.setAllDist(new Double(allHigh-allLow)/new Double(allNumber)); | |
| 488 | - from5.setLeagueDist(new Double(leagueHigh-leagueLow)/new Double(leagueNumber)); | |
| 489 | - from5.setSchoolDist(new Double(high-low)/new Double(number)); | |
| 490 | - list.add(from5); | |
| 523 | + int high = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,getLearnReqVo.getSchoolName() ,analyseDetail.getQuestionNumber(),highStudent); | |
| 524 | + int low = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,getLearnReqVo.getSchoolName() ,analyseDetail.getQuestionNumber(),lowStudent); | |
| 525 | + from5.setAllDist(new Double(allHigh-allLow)/new Double(allNumber)); | |
| 526 | + from5.setLeagueDist(new Double(leagueHigh-leagueLow)/new Double(leagueNumber)); | |
| 527 | + from5.setSchoolDist(new Double(high-low)/new Double(number)); | |
| 528 | + list.add(from5); | |
| 529 | + } | |
| 530 | + repVO.setData(list); | |
| 531 | + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_3",repVO); | |
| 491 | 532 | } | 
| 492 | - repVO.setData(list); | |
| 493 | 533 | return repVO; | 
| 494 | 534 | } | 
| 495 | 535 | |
| ... | ... | @@ -497,65 +537,142 @@ public class LearnStatController { | 
| 497 | 537 | @RequestMapping(value = "getForm2_2_4", method = RequestMethod.POST) | 
| 498 | 538 | public Form8RepVO getForm2_2_4(@RequestBody GetLearnReqVo getLearnReqVo){ | 
| 499 | 539 | Form8RepVO repVO = new Form8RepVO(); | 
| 500 | - Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | |
| 501 | - if(analyse == null){ | |
| 502 | - repVO.setSuccess(false); | |
| 503 | - repVO.setMessage("请先创建考试"); | |
| 504 | - return repVO; | |
| 505 | - } | |
| 506 | - List<String> leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); | |
| 507 | - if(leagues == null){ | |
| 508 | - repVO.setSuccess(false); | |
| 509 | - repVO.setMessage("请先设定联盟校"); | |
| 510 | - return repVO; | |
| 511 | - } | |
| 512 | - List<Form8> list = new ArrayList<>(); | |
| 513 | - List<Student> allStudents = studentService.selectBySchoolName(analyse.getId(),null,null); | |
| 514 | - List<Student> leagueStudents = studentService.selectBySchoolName(analyse.getId(),leagues,null); | |
| 515 | - List<Student> students = studentService.selectBySchoolName(analyse.getId(),null,getLearnReqVo.getSchoolName()); | |
| 516 | - for(DifficultEnums enums : DifficultEnums.values()){ | |
| 517 | - Form8 form8 = new Form8(); | |
| 518 | - form8.setDifficultName(enums.getDifficultName()); | |
| 519 | - form8.setScore(analyseDetailService.selectDifficult(analyse.getId(),enums.getDifficultType())); | |
| 520 | - List<AnalyseDetail> analyseDetails = analyseDetailService.selectDifficultDetail(analyse.getId(),enums.getDifficultType()); | |
| 521 | - Double allSumScore = 0d , leagueSumScore = 0d , schoolSumScore = 0d , score = 0d; | |
| 522 | - for(AnalyseDetail analyseDetail : analyseDetails){ | |
| 523 | - allSumScore = allSumScore + studentDetailService.selectSumScore(analyse.getId(),null,null,analyseDetail.getQuestionNumber()); | |
| 524 | - leagueSumScore = leagueSumScore + studentDetailService.selectSumScore(analyse.getId(),leagues,null,analyseDetail.getQuestionNumber()); | |
| 525 | - schoolSumScore = schoolSumScore + studentDetailService.selectSumScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyseDetail.getQuestionNumber()); | |
| 526 | - score = score + analyseDetail.getScore() ; | |
| 540 | + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_4")){ | |
| 541 | + repVO = (Form8RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_4"); | |
| 542 | + }else { | |
| 543 | + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | |
| 544 | + if(analyse == null){ | |
| 545 | + repVO.setSuccess(false); | |
| 546 | + repVO.setMessage("请先创建考试"); | |
| 547 | + return repVO; | |
| 548 | + } | |
| 549 | + List<String> leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); | |
| 550 | + if(leagues == null){ | |
| 551 | + repVO.setSuccess(false); | |
| 552 | + repVO.setMessage("请先设定联盟校"); | |
| 553 | + return repVO; | |
| 527 | 554 | } | 
| 528 | - form8.setAllRate(allSumScore / new Double(allStudents.size()) / score ); | |
| 529 | - form8.setLeagueRate(leagueSumScore / new Double(leagueStudents.size()) / score ); | |
| 530 | - form8.setSchoolRate(schoolSumScore / new Double(students.size()) / score); | |
| 531 | - list.add(form8); | |
| 555 | + List<Form8> list = new ArrayList<>(); | |
| 556 | + List<Student> allStudents = studentService.selectBySchoolName(analyse.getId(),null,null); | |
| 557 | + List<Student> leagueStudents = studentService.selectBySchoolName(analyse.getId(),leagues,null); | |
| 558 | + List<Student> students = studentService.selectBySchoolName(analyse.getId(),null,getLearnReqVo.getSchoolName()); | |
| 559 | + for(DifficultEnums enums : DifficultEnums.values()){ | |
| 560 | + Form8 form8 = new Form8(); | |
| 561 | + form8.setDifficultName(enums.getDifficultName()); | |
| 562 | + form8.setScore(analyseDetailService.selectDifficult(analyse.getId(),enums.getDifficultType())); | |
| 563 | + List<AnalyseDetail> analyseDetails = analyseDetailService.selectDifficultDetail(analyse.getId(),enums.getDifficultType()); | |
| 564 | + Double allSumScore = 0d , leagueSumScore = 0d , schoolSumScore = 0d , score = 0d; | |
| 565 | + for(AnalyseDetail analyseDetail : analyseDetails){ | |
| 566 | + allSumScore = allSumScore + studentDetailService.selectSumScore(analyse.getId(),null,null,analyseDetail.getQuestionNumber()); | |
| 567 | + leagueSumScore = leagueSumScore + studentDetailService.selectSumScore(analyse.getId(),leagues,null,analyseDetail.getQuestionNumber()); | |
| 568 | + schoolSumScore = schoolSumScore + studentDetailService.selectSumScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),analyseDetail.getQuestionNumber()); | |
| 569 | + score = score + analyseDetail.getScore() ; | |
| 570 | + } | |
| 571 | + form8.setAllRate(allSumScore / new Double(allStudents.size()) / score ); | |
| 572 | + form8.setLeagueRate(leagueSumScore / new Double(leagueStudents.size()) / score ); | |
| 573 | + form8.setSchoolRate(schoolSumScore / new Double(students.size()) / score); | |
| 574 | + list.add(form8); | |
| 575 | + } | |
| 576 | + repVO.setData(list); | |
| 577 | + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_2_2_4",repVO); | |
| 532 | 578 | } | 
| 533 | - repVO.setData(list); | |
| 534 | 579 | return repVO; | 
| 535 | 580 | } | 
| 536 | 581 | |
| 537 | 582 | @ApiOperation("getForm3_1") | 
| 538 | 583 | @RequestMapping(value = "getForm3_1", method = RequestMethod.POST) | 
| 539 | 584 | public Form6RepVO getForm3_1(@RequestBody GetLearnReqVo getLearnReqVo){ | 
| 540 | - return initDimensional(getLearnReqVo,DimensionalEnums.knowledge.getDimensionalType()); | |
| 585 | + Form6RepVO form6RepVO = new Form6RepVO(); | |
| 586 | + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_1")){ | |
| 587 | + form6RepVO = (Form6RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_1"); | |
| 588 | + }else { | |
| 589 | + form6RepVO = initDimensional(getLearnReqVo,DimensionalEnums.knowledge.getDimensionalType()) ; | |
| 590 | + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_1",form6RepVO); | |
| 591 | + } | |
| 592 | + return form6RepVO; | |
| 593 | + } | |
| 594 | + | |
| 595 | + @ApiOperation("getForm3_1_1") | |
| 596 | + @RequestMapping(value = "getForm3_1_1", method = RequestMethod.POST) | |
| 597 | + public Table2RepVO getForm3_1_1(@RequestBody GetLearnReqVo getLearnReqVo){ | |
| 598 | + Table2RepVO table2RepVO = new Table2RepVO(); | |
| 599 | + Form6RepVO form6RepVO = new Form6RepVO(); | |
| 600 | + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_1")){ | |
| 601 | + form6RepVO = (Form6RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_1"); | |
| 602 | + }else { | |
| 603 | + form6RepVO = initDimensional(getLearnReqVo,DimensionalEnums.knowledge.getDimensionalType()) ; | |
| 604 | + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_1",form6RepVO); | |
| 605 | + } | |
| 606 | + List<Knowledge> knowledges = knowledgeService.selectAll(); | |
| 607 | + List<Table2> table2List = new ArrayList<>(); | |
| 608 | + for(Knowledge knowledge : knowledges){ | |
| 609 | + Double sumScore = new Double("0"); | |
| 610 | + Double getScore = new Double("0"); | |
| 611 | + String[] detailArray = knowledge.getDetail().split("、"); | |
| 612 | + for(String detail : detailArray){ | |
| 613 | + for(Form6 form6 : form6RepVO.getData()){ | |
| 614 | + if(detail.equals(form6.getDimensional())){ | |
| 615 | + sumScore = sumScore + form6.getScore() ; | |
| 616 | + getScore = getScore + form6.getSchoolRate(); | |
| 617 | + } | |
| 618 | + } | |
| 619 | + } | |
| 620 | + if(sumScore > 0){ | |
| 621 | + Table2 table2 = new Table2(); | |
| 622 | + table2.setKnowledge(knowledge.getKnowledge()); | |
| 623 | + table2.setAvg(knowledge.getAvg()); | |
| 624 | + table2.setRate(knowledge.getRate()); | |
| 625 | + table2.setSchoolRate(getScore / sumScore); | |
| 626 | + table2List.add(table2); | |
| 627 | + } | |
| 628 | + } | |
| 629 | + List<Table2> data = new ArrayList<>(); | |
| 630 | + for(Table2 table2 : table2List){ | |
| 631 | + if(table2.getSchoolRate() < 0.75 && Double.valueOf(table2.getAvg()) >2){ | |
| 632 | + data.add(table2); | |
| 633 | + } | |
| 634 | + } | |
| 635 | + table2RepVO.setData(data); | |
| 636 | + return table2RepVO; | |
| 541 | 637 | } | 
| 542 | 638 | |
| 543 | 639 | @ApiOperation("getForm3_2") | 
| 544 | 640 | @RequestMapping(value = "getForm3_2", method = RequestMethod.POST) | 
| 545 | 641 | public Form6RepVO getForm3_2(@RequestBody GetLearnReqVo getLearnReqVo){ | 
| 546 | - return initDimensional(getLearnReqVo,DimensionalEnums.skill.getDimensionalType()); | |
| 642 | + Form6RepVO form6RepVO = new Form6RepVO(); | |
| 643 | + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_2")){ | |
| 644 | + form6RepVO = (Form6RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_2"); | |
| 645 | + }else { | |
| 646 | + form6RepVO = initDimensional(getLearnReqVo,DimensionalEnums.skill.getDimensionalType()) ; | |
| 647 | + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_2",form6RepVO); | |
| 648 | + } | |
| 649 | + return form6RepVO; | |
| 547 | 650 | } | 
| 548 | 651 | |
| 549 | 652 | @ApiOperation("getForm3_3") | 
| 550 | 653 | @RequestMapping(value = "getForm3_3", method = RequestMethod.POST) | 
| 551 | 654 | public Form6RepVO getForm3_3(@RequestBody GetLearnReqVo getLearnReqVo){ | 
| 552 | - return initDimensional(getLearnReqVo,DimensionalEnums.ability.getDimensionalType()); | |
| 655 | + Form6RepVO form6RepVO = new Form6RepVO(); | |
| 656 | + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_3")){ | |
| 657 | + form6RepVO = (Form6RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_3"); | |
| 658 | + }else { | |
| 659 | + form6RepVO = initDimensional(getLearnReqVo,DimensionalEnums.ability.getDimensionalType()) ; | |
| 660 | + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_3",form6RepVO); | |
| 661 | + } | |
| 662 | + return form6RepVO; | |
| 553 | 663 | } | 
| 554 | 664 | |
| 555 | 665 | @ApiOperation("getForm3_4") | 
| 556 | 666 | @RequestMapping(value = "getForm3_4", method = RequestMethod.POST) | 
| 557 | 667 | public Form6RepVO getForm3_4(@RequestBody GetLearnReqVo getLearnReqVo){ | 
| 558 | - return initDimensional(getLearnReqVo,DimensionalEnums.think.getDimensionalType()); | |
| 668 | + Form6RepVO form6RepVO = new Form6RepVO(); | |
| 669 | + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_4")){ | |
| 670 | + form6RepVO = (Form6RepVO) RedisUtils.getObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_4"); | |
| 671 | + }else { | |
| 672 | + form6RepVO = initDimensional(getLearnReqVo,DimensionalEnums.think.getDimensionalType()) ; | |
| 673 | + RedisUtils.setObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_3_4",form6RepVO); | |
| 674 | + } | |
| 675 | + return form6RepVO; | |
| 559 | 676 | } | 
| 560 | 677 | |
| 561 | 678 | private Form6RepVO initDimensional(GetLearnReqVo getLearnReqVo , int dimensionalType){ | 
| ... | ... | @@ -716,97 +833,104 @@ public class LearnStatController { | 
| 716 | 833 | @ApiOperation("获取教学改进建议") | 
| 717 | 834 | @RequestMapping(value = "getSuggest", method = RequestMethod.POST) | 
| 718 | 835 | public String getSuggest(@RequestBody GetLearnReqVo getLearnReqVo){ | 
| 719 | - SuggestRepVo suggestRepVo = new SuggestRepVo() ; | |
| 720 | - Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | |
| 721 | - Double avg = studentService.selectAvgScore(analyse.getId(),null,getLearnReqVo.getSchoolName()) ; | |
| 722 | - DecimalFormat df = new DecimalFormat("#.00"); | |
| 723 | - //得分率 | |
| 724 | - String avgStr = df.format(avg / analyse.getMaxScore()); | |
| 725 | - | |
| 726 | - List<Student> students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName()); | |
| 727 | - int a = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.85,analyse.getMaxScore()+1f); | |
| 728 | - //优秀率 | |
| 729 | - Double apercent = new Double(a) / new Double(students.size()) * 100 ; | |
| 730 | - String aStr = df.format(apercent); | |
| 731 | - String access = ""; | |
| 732 | - if(avg>=80){ | |
| 733 | - if(apercent >= 20){ | |
| 734 | - access = "良好"; | |
| 836 | + String suggest = null ; | |
| 837 | + if(RedisUtils.existsObject(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_suggest")){ | |
| 838 | + suggest = RedisUtils.getString(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_suggest"); | |
| 839 | + }else { | |
| 840 | + SuggestRepVo suggestRepVo = new SuggestRepVo() ; | |
| 841 | + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | |
| 842 | + Double avg = studentService.selectAvgScore(analyse.getId(),null,getLearnReqVo.getSchoolName()) ; | |
| 843 | + DecimalFormat df = new DecimalFormat("#.00"); | |
| 844 | + //得分率 | |
| 845 | + String avgStr = df.format(avg / analyse.getMaxScore()); | |
| 846 | + | |
| 847 | + List<Student> students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName()); | |
| 848 | + int a = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.85,analyse.getMaxScore()+1f); | |
| 849 | + //优秀率 | |
| 850 | + Double apercent = new Double(a) / new Double(students.size()) * 100 ; | |
| 851 | + String aStr = df.format(apercent); | |
| 852 | + String access = ""; | |
| 853 | + if(avg>=80){ | |
| 854 | + if(apercent >= 20){ | |
| 855 | + access = "良好"; | |
| 856 | + }else { | |
| 857 | + access = "相对可以"; | |
| 858 | + } | |
| 859 | + }else if(avg >= 75){ | |
| 860 | + if(apercent >= 35){ | |
| 861 | + access = "很好"; | |
| 862 | + }else if(apercent >= 20){ | |
| 863 | + access = "良好"; | |
| 864 | + }else { | |
| 865 | + access = "相对可以"; | |
| 866 | + } | |
| 867 | + }else if(avg >= 70){ | |
| 868 | + if(apercent >= 20){ | |
| 869 | + access = "良好"; | |
| 870 | + }else { | |
| 871 | + access = "相对可以"; | |
| 872 | + } | |
| 873 | + } else if (avg >= 60) { | |
| 874 | + if(apercent >= 10){ | |
| 875 | + access = "相对可以"; | |
| 876 | + }else { | |
| 877 | + access = "一般"; | |
| 878 | + } | |
| 735 | 879 | }else { | 
| 736 | - access = "相对可以"; | |
| 880 | + access = "暴露出一些问题,试卷偏难,学生掌握不够理想"; | |
| 737 | 881 | } | 
| 738 | - }else if(avg >= 75){ | |
| 739 | - if(apercent >= 35){ | |
| 740 | - access = "很好"; | |
| 741 | - }else if(apercent >= 20){ | |
| 742 | - access = "良好"; | |
| 743 | - }else { | |
| 744 | - access = "相对可以"; | |
| 882 | + suggestRepVo.setAssess(access); | |
| 883 | + suggestRepVo.setDifficultyDegree(avgStr); | |
| 884 | + suggestRepVo.setExcellentRate(aStr); | |
| 885 | + suggestRepVo.setErrorList(getErrorRate(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),students.size())); | |
| 886 | + Form6RepVO knowledge = initSchoolDimensional(getLearnReqVo,DimensionalEnums.knowledge.getDimensionalType()); | |
| 887 | + List<String> lessKnowledgeList = new ArrayList<>(); //不足50% | |
| 888 | + List<String> midKnowledgeList = new ArrayList<>(); //50-70% | |
| 889 | + for(Form6 form6 :knowledge.getData()){ | |
| 890 | + if(form6.getSchoolRate() < 0.5d){ | |
| 891 | + lessKnowledgeList.add(form6.getDimensional()); | |
| 892 | + }else if(form6.getSchoolRate() < 0.7d){ | |
| 893 | + midKnowledgeList.add(form6.getDimensional()); | |
| 894 | + } | |
| 745 | 895 | } | 
| 746 | - }else if(avg >= 70){ | |
| 747 | - if(apercent >= 20){ | |
| 748 | - access = "良好"; | |
| 749 | - }else { | |
| 750 | - access = "相对可以"; | |
| 896 | + suggestRepVo.setLessKnowledgeList(lessKnowledgeList); | |
| 897 | + suggestRepVo.setMidKnowledgeList(midKnowledgeList); | |
| 898 | + Form6RepVO ability = initSchoolDimensional(getLearnReqVo,DimensionalEnums.ability.getDimensionalType()); | |
| 899 | + List<String> lessAbilityList = new ArrayList<>(); //不足70% | |
| 900 | + List<String> midAbilityList = new ArrayList<>(); //70-80% | |
| 901 | + List<String> highAbilityList = new ArrayList<>(); //大于80% | |
| 902 | + for(Form6 form6 :ability.getData()){ | |
| 903 | + if(form6.getSchoolRate() < 0.7d){ | |
| 904 | + lessAbilityList.add(form6.getDimensional()); | |
| 905 | + }else if(form6.getSchoolRate() < 0.8d){ | |
| 906 | + midAbilityList.add(form6.getDimensional()); | |
| 907 | + }else if(form6.getSchoolRate() >= 0.8d){ | |
| 908 | + highAbilityList.add(form6.getDimensional()); | |
| 909 | + } | |
| 751 | 910 | } | 
| 752 | - } else if (avg >= 60) { | |
| 753 | - if(apercent >= 10){ | |
| 754 | - access = "相对可以"; | |
| 755 | - }else { | |
| 756 | - access = "一般"; | |
| 911 | + suggestRepVo.setLessAbilityList(lessAbilityList); | |
| 912 | + suggestRepVo.setMidAbilityList(midAbilityList); | |
| 913 | + suggestRepVo.setHighAbilityList(highAbilityList); | |
| 914 | + Form6RepVO skill = initSchoolDimensional(getLearnReqVo,DimensionalEnums.skill.getDimensionalType()); | |
| 915 | + List<String> lessSkillList = new ArrayList<>(); //不足70% | |
| 916 | + List<String> midSkillList = new ArrayList<>(); //70-80% | |
| 917 | + List<String> highSkillList = new ArrayList<>(); //大于80% | |
| 918 | + for(Form6 form6 :skill.getData()){ | |
| 919 | + if(form6.getSchoolRate() < 0.7d){ | |
| 920 | + lessSkillList.add(form6.getDimensional()); | |
| 921 | + }else if(form6.getSchoolRate() < 0.8d){ | |
| 922 | + midSkillList.add(form6.getDimensional()); | |
| 923 | + }else if(form6.getSchoolRate() >= 0.8d){ | |
| 924 | + highSkillList.add(form6.getDimensional()); | |
| 925 | + } | |
| 757 | 926 | } | 
| 758 | - }else { | |
| 759 | - access = "暴露出一些问题,试卷偏难,学生掌握不够理想"; | |
| 760 | - } | |
| 761 | - suggestRepVo.setAssess(access); | |
| 762 | - suggestRepVo.setDifficultyDegree(avgStr); | |
| 763 | - suggestRepVo.setExcellentRate(aStr); | |
| 764 | - suggestRepVo.setErrorList(getErrorRate(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),students.size())); | |
| 765 | - Form6RepVO knowledge = initSchoolDimensional(getLearnReqVo,DimensionalEnums.knowledge.getDimensionalType()); | |
| 766 | - List<String> lessKnowledgeList = new ArrayList<>(); //不足50% | |
| 767 | - List<String> midKnowledgeList = new ArrayList<>(); //50-70% | |
| 768 | - for(Form6 form6 :knowledge.getData()){ | |
| 769 | - if(form6.getSchoolRate() < 0.5d){ | |
| 770 | - lessKnowledgeList.add(form6.getDimensional()); | |
| 771 | - }else if(form6.getSchoolRate() < 0.7d){ | |
| 772 | - midKnowledgeList.add(form6.getDimensional()); | |
| 773 | - } | |
| 774 | - } | |
| 775 | - suggestRepVo.setLessKnowledgeList(lessKnowledgeList); | |
| 776 | - suggestRepVo.setMidKnowledgeList(midKnowledgeList); | |
| 777 | - Form6RepVO ability = initSchoolDimensional(getLearnReqVo,DimensionalEnums.ability.getDimensionalType()); | |
| 778 | - List<String> lessAbilityList = new ArrayList<>(); //不足70% | |
| 779 | - List<String> midAbilityList = new ArrayList<>(); //70-80% | |
| 780 | - List<String> highAbilityList = new ArrayList<>(); //大于80% | |
| 781 | - for(Form6 form6 :ability.getData()){ | |
| 782 | - if(form6.getSchoolRate() < 0.7d){ | |
| 783 | - lessAbilityList.add(form6.getDimensional()); | |
| 784 | - }else if(form6.getSchoolRate() < 0.8d){ | |
| 785 | - midAbilityList.add(form6.getDimensional()); | |
| 786 | - }else if(form6.getSchoolRate() >= 0.8d){ | |
| 787 | - highAbilityList.add(form6.getDimensional()); | |
| 788 | - } | |
| 789 | - } | |
| 790 | - suggestRepVo.setLessAbilityList(lessAbilityList); | |
| 791 | - suggestRepVo.setMidAbilityList(midAbilityList); | |
| 792 | - suggestRepVo.setHighAbilityList(highAbilityList); | |
| 793 | - Form6RepVO skill = initSchoolDimensional(getLearnReqVo,DimensionalEnums.skill.getDimensionalType()); | |
| 794 | - List<String> lessSkillList = new ArrayList<>(); //不足70% | |
| 795 | - List<String> midSkillList = new ArrayList<>(); //70-80% | |
| 796 | - List<String> highSkillList = new ArrayList<>(); //大于80% | |
| 797 | - for(Form6 form6 :skill.getData()){ | |
| 798 | - if(form6.getSchoolRate() < 0.7d){ | |
| 799 | - lessSkillList.add(form6.getDimensional()); | |
| 800 | - }else if(form6.getSchoolRate() < 0.8d){ | |
| 801 | - midSkillList.add(form6.getDimensional()); | |
| 802 | - }else if(form6.getSchoolRate() >= 0.8d){ | |
| 803 | - highSkillList.add(form6.getDimensional()); | |
| 804 | - } | |
| 805 | - } | |
| 806 | - suggestRepVo.setLessSkillList(lessSkillList); | |
| 807 | - suggestRepVo.setMidSkillList(midSkillList); | |
| 808 | - suggestRepVo.setHighSkillList(highSkillList); | |
| 809 | - return initSuggest(suggestRepVo); | |
| 927 | + suggestRepVo.setLessSkillList(lessSkillList); | |
| 928 | + suggestRepVo.setMidSkillList(midSkillList); | |
| 929 | + suggestRepVo.setHighSkillList(highSkillList); | |
| 930 | + suggest = initSuggest(suggestRepVo); | |
| 931 | + RedisUtils.setString(getLearnReqVo.getAnalyseId()+"_"+getLearnReqVo.getSchoolName()+"_suggest",suggest); | |
| 932 | + } | |
| 933 | + return suggest; | |
| 810 | 934 | } | 
| 811 | 935 | |
| 812 | 936 | private List<String> getErrorRate(int analyseId , String schoolName , int studentSize){ | 
| ... | ... | @@ -826,9 +950,9 @@ public class LearnStatController { | 
| 826 | 950 | |
| 827 | 951 | private String initSuggest(SuggestRepVo suggestRepVo){ | 
| 828 | 952 | StringBuffer stringBuffer = new StringBuffer(); | 
| 829 | - stringBuffer.append("本次检测总体情况").append(suggestRepVo.getAssess()).append(",难度系数是") | |
| 953 | + stringBuffer.append("本次检测总体情况").append(suggestRepVo.getAssess()).append(",难度系数是0") | |
| 830 | 954 | .append(suggestRepVo.getDifficultyDegree()).append(",优秀率是").append(suggestRepVo.getExcellentRate()).append("%。") | 
| 831 | - .append("对有关知识,总体掌握情况比较好。从考试结果分析,各知识点掌握程度较好,唯"); | |
| 955 | + .append("对有关知识,总体掌握情况比较好。\n从考试结果分析,各知识点掌握程度较好,唯"); | |
| 832 | 956 | for (int i = 0; i < suggestRepVo.getMidKnowledgeList().size(); i++) { | 
| 833 | 957 | if(i == suggestRepVo.getMidKnowledgeList().size() - 1 ){ | 
| 834 | 958 | stringBuffer.append(suggestRepVo.getMidKnowledgeList().get(i)); | 
| ... | ... | @@ -844,7 +968,7 @@ public class LearnStatController { | 
| 844 | 968 | stringBuffer.append(suggestRepVo.getLessKnowledgeList().get(i)).append("、"); | 
| 845 | 969 | } | 
| 846 | 970 | } | 
| 847 | - stringBuffer.append("几个知识点学生的理解有些问题。探究技能方面:"); | |
| 971 | + stringBuffer.append("几个知识点学生的理解有些问题。\n探究技能方面:"); | |
| 848 | 972 | for (int i = 0; i < suggestRepVo.getHighSkillList().size(); i++) { | 
| 849 | 973 | if(i == suggestRepVo.getHighSkillList().size() - 1 ){ | 
| 850 | 974 | stringBuffer.append(suggestRepVo.getHighSkillList().get(i)); | 
| ... | ... | @@ -868,7 +992,7 @@ public class LearnStatController { | 
| 868 | 992 | stringBuffer.append(suggestRepVo.getLessSkillList().get(i)).append("、"); | 
| 869 | 993 | } | 
| 870 | 994 | } | 
| 871 | - stringBuffer.append("学生掌握有些问题。学习能力上:"); | |
| 995 | + stringBuffer.append("学生掌握有些问题。\n学习能力上:"); | |
| 872 | 996 | for (int i = 0; i < suggestRepVo.getHighAbilityList().size(); i++) { | 
| 873 | 997 | if(i == suggestRepVo.getHighAbilityList().size() - 1 ){ | 
| 874 | 998 | stringBuffer.append(suggestRepVo.getHighAbilityList().get(i)); | 
| ... | ... | @@ -900,7 +1024,7 @@ public class LearnStatController { | 
| 900 | 1024 | stringBuffer.append(suggestRepVo.getErrorList().get(i)).append("、"); | 
| 901 | 1025 | } | 
| 902 | 1026 | } | 
| 903 | - stringBuffer.append("错误率大于15%\n后续复习巩固可以从抓好基础、提高能力和注重应用上下功夫。提升"); | |
| 1027 | + stringBuffer.append("错误率大于15%。\n后续复习巩固可以从抓好基础、提高能力和注重应用上下功夫。提升"); | |
| 904 | 1028 | for (int i = 0; i < suggestRepVo.getLessKnowledgeList().size(); i++) { | 
| 905 | 1029 | if(i == suggestRepVo.getLessKnowledgeList().size() - 1 ){ | 
| 906 | 1030 | stringBuffer.append(suggestRepVo.getLessKnowledgeList().get(i)); | ... | ... | 
| ... | ... | @@ -0,0 +1,19 @@ | 
| 1 | +package com.jevon.mapper; | |
| 2 | + | |
| 3 | +import com.jevon.model.Knowledge; | |
| 4 | + | |
| 5 | +import java.util.List; | |
| 6 | + | |
| 7 | +/** | |
| 8 | + * @author chen | |
| 9 | + * @version 1.0 | |
| 10 | + * @date 2019/11/4 0004 11:46 | |
| 11 | + */ | |
| 12 | +public interface KnowledgeMapper { | |
| 13 | + | |
| 14 | + int insertBatch(List<Knowledge> list); | |
| 15 | + | |
| 16 | + Knowledge selectByKnowledge(String knowledge); | |
| 17 | + | |
| 18 | + List<Knowledge> selectAll(); | |
| 19 | +} | ... | ... | 
src/main/java/com/jevon/model/Analyse.java
| 1 | 1 | package com.jevon.model; | 
| 2 | 2 | |
| 3 | +import java.io.Serializable; | |
| 3 | 4 | import java.util.Date; | 
| 4 | 5 | |
| 5 | 6 | /** | 
| ... | ... | @@ -7,7 +8,7 @@ import java.util.Date; | 
| 7 | 8 | * @version 1.0 | 
| 8 | 9 | * @date 2019/10/18 0018 10:55 | 
| 9 | 10 | */ | 
| 10 | -public class Analyse { | |
| 11 | +public class Analyse implements Serializable { | |
| 11 | 12 | |
| 12 | 13 | private int id ; | 
| 13 | 14 | private String examName ; | ... | ... | 
src/main/java/com/jevon/model/AnalyseDetail.java
| 1 | 1 | package com.jevon.model; | 
| 2 | 2 | |
| 3 | +import java.io.Serializable; | |
| 3 | 4 | import java.util.Date; | 
| 4 | 5 | |
| 5 | 6 | /** | 
| ... | ... | @@ -7,7 +8,7 @@ import java.util.Date; | 
| 7 | 8 | * @version 1.0 | 
| 8 | 9 | * @date 2019/10/18 0018 8:38 | 
| 9 | 10 | */ | 
| 10 | -public class AnalyseDetail { | |
| 11 | +public class AnalyseDetail implements Serializable { | |
| 11 | 12 | |
| 12 | 13 | private int id ; | 
| 13 | 14 | private int analyseId ; | ... | ... | 
src/main/java/com/jevon/model/AnalyseDimensional.java
| 1 | 1 | package com.jevon.model; | 
| 2 | 2 | |
| 3 | +import java.io.Serializable; | |
| 3 | 4 | import java.util.Date; | 
| 4 | 5 | |
| 5 | 6 | /** | 
| ... | ... | @@ -7,7 +8,7 @@ import java.util.Date; | 
| 7 | 8 | * @version 1.0 | 
| 8 | 9 | * @date 2019/10/18 0018 8:42 | 
| 9 | 10 | */ | 
| 10 | -public class AnalyseDimensional { | |
| 11 | +public class AnalyseDimensional implements Serializable { | |
| 11 | 12 | |
| 12 | 13 | private int id ; | 
| 13 | 14 | private int analyseId ; | ... | ... | 
src/main/java/com/jevon/model/Chapter.java
src/main/java/com/jevon/model/ClassCourse.java
src/main/java/com/jevon/model/ClassModel.java
src/main/java/com/jevon/model/Course.java
src/main/java/com/jevon/model/Dimensional.java
| 1 | 1 | package com.jevon.model; | 
| 2 | 2 | |
| 3 | +import java.io.Serializable; | |
| 3 | 4 | import java.util.Date; | 
| 4 | 5 | |
| 5 | 6 | /** | 
| ... | ... | @@ -7,7 +8,7 @@ import java.util.Date; | 
| 7 | 8 | * @version 1.0 | 
| 8 | 9 | * @date 2019/10/18 0018 8:37 | 
| 9 | 10 | */ | 
| 10 | -public class Dimensional { | |
| 11 | +public class Dimensional implements Serializable { | |
| 11 | 12 | |
| 12 | 13 | private int id ; | 
| 13 | 14 | private int dimensionalType ; | ... | ... | 
src/main/java/com/jevon/model/JoinClass.java
| 1 | 1 | package com.jevon.model; | 
| 2 | 2 | |
| 3 | +import java.io.Serializable; | |
| 4 | + | |
| 3 | 5 | /** | 
| 4 | 6 | * @author chen | 
| 5 | 7 | * @version 1.0 | 
| 6 | 8 | * @date 2019/10/10 0010 8:27 | 
| 7 | 9 | */ | 
| 8 | -public class JoinClass { | |
| 10 | +public class JoinClass implements Serializable { | |
| 9 | 11 | |
| 10 | 12 | private int id ; | 
| 11 | 13 | private int schoolId ; | ... | ... | 
| ... | ... | @@ -0,0 +1,67 @@ | 
| 1 | +package com.jevon.model; | |
| 2 | + | |
| 3 | +import java.io.Serializable; | |
| 4 | +import java.util.Date; | |
| 5 | + | |
| 6 | +/** | |
| 7 | + * @author chen | |
| 8 | + * @version 1.0 | |
| 9 | + * @date 2019/11/4 0004 11:45 | |
| 10 | + */ | |
| 11 | +public class Knowledge implements Serializable { | |
| 12 | + | |
| 13 | + private int id ; | |
| 14 | + private String knowledge ; | |
| 15 | + private String detail ; | |
| 16 | + private String rate ; | |
| 17 | + private String avg ; | |
| 18 | + private Date updateTime ; | |
| 19 | + | |
| 20 | + public int getId() { | |
| 21 | + return id; | |
| 22 | + } | |
| 23 | + | |
| 24 | + public void setId(int id) { | |
| 25 | + this.id = id; | |
| 26 | + } | |
| 27 | + | |
| 28 | + public String getKnowledge() { | |
| 29 | + return knowledge; | |
| 30 | + } | |
| 31 | + | |
| 32 | + public void setKnowledge(String knowledge) { | |
| 33 | + this.knowledge = knowledge; | |
| 34 | + } | |
| 35 | + | |
| 36 | + public String getRate() { | |
| 37 | + return rate; | |
| 38 | + } | |
| 39 | + | |
| 40 | + public void setRate(String rate) { | |
| 41 | + this.rate = rate; | |
| 42 | + } | |
| 43 | + | |
| 44 | + public String getAvg() { | |
| 45 | + return avg; | |
| 46 | + } | |
| 47 | + | |
| 48 | + public void setAvg(String avg) { | |
| 49 | + this.avg = avg; | |
| 50 | + } | |
| 51 | + | |
| 52 | + public Date getUpdateTime() { | |
| 53 | + return updateTime; | |
| 54 | + } | |
| 55 | + | |
| 56 | + public void setUpdateTime(Date updateTime) { | |
| 57 | + this.updateTime = updateTime; | |
| 58 | + } | |
| 59 | + | |
| 60 | + public String getDetail() { | |
| 61 | + return detail; | |
| 62 | + } | |
| 63 | + | |
| 64 | + public void setDetail(String detail) { | |
| 65 | + this.detail = detail; | |
| 66 | + } | |
| 67 | +} | ... | ... | 
src/main/java/com/jevon/model/League.java
src/main/java/com/jevon/model/Schedule.java
| 1 | 1 | package com.jevon.model; | 
| 2 | 2 | |
| 3 | +import java.io.Serializable; | |
| 3 | 4 | import java.util.Date; | 
| 4 | 5 | |
| 5 | 6 | /** | 
| ... | ... | @@ -7,7 +8,7 @@ import java.util.Date; | 
| 7 | 8 | * @version 1.0 | 
| 8 | 9 | * @date 2019/10/10 0010 11:17 | 
| 9 | 10 | */ | 
| 10 | -public class Schedule { | |
| 11 | +public class Schedule implements Serializable { | |
| 11 | 12 | private int id ; | 
| 12 | 13 | private String scheduleName ; | 
| 13 | 14 | private int schoolId ; | ... | ... | 
src/main/java/com/jevon/model/Student.java
| ... | ... | @@ -2,6 +2,7 @@ package com.jevon.model; | 
| 2 | 2 | |
| 3 | 3 | import com.jevon.vo.excel.ScoreExcelVo; | 
| 4 | 4 | |
| 5 | +import java.io.Serializable; | |
| 5 | 6 | import java.util.Date; | 
| 6 | 7 | import java.util.List; | 
| 7 | 8 | |
| ... | ... | @@ -10,7 +11,7 @@ import java.util.List; | 
| 10 | 11 | * @version 1.0 | 
| 11 | 12 | * @date 2019/10/18 0018 13:38 | 
| 12 | 13 | */ | 
| 13 | -public class Student { | |
| 14 | +public class Student implements Serializable { | |
| 14 | 15 | |
| 15 | 16 | private int id ; | 
| 16 | 17 | private int openId; | ... | ... | 
src/main/java/com/jevon/model/StudentDetail.java
| ... | ... | @@ -2,6 +2,7 @@ package com.jevon.model; | 
| 2 | 2 | |
| 3 | 3 | import com.jevon.vo.excel.ScoreExcelVo; | 
| 4 | 4 | |
| 5 | +import java.io.Serializable; | |
| 5 | 6 | import java.util.Date; | 
| 6 | 7 | import java.util.List; | 
| 7 | 8 | |
| ... | ... | @@ -10,7 +11,7 @@ import java.util.List; | 
| 10 | 11 | * @version 1.0 | 
| 11 | 12 | * @date 2019/10/18 0018 13:38 | 
| 12 | 13 | */ | 
| 13 | -public class StudentDetail { | |
| 14 | +public class StudentDetail implements Serializable { | |
| 14 | 15 | |
| 15 | 16 | private long id ; | 
| 16 | 17 | private int openId; | ... | ... | 
src/main/java/com/jevon/model/Teacher.java
src/main/java/com/jevon/model/TeacherClass.java
src/main/java/com/jevon/model/TeacherCourse.java
| ... | ... | @@ -0,0 +1,19 @@ | 
| 1 | +package com.jevon.service; | |
| 2 | + | |
| 3 | +import com.jevon.model.Knowledge; | |
| 4 | + | |
| 5 | +import java.util.List; | |
| 6 | + | |
| 7 | +/** | |
| 8 | + * @author chen | |
| 9 | + * @version 1.0 | |
| 10 | + * @date 2019/11/4 0004 11:51 | |
| 11 | + */ | |
| 12 | +public interface KnowledgeService { | |
| 13 | + | |
| 14 | + int insertBatch(List<Knowledge> list); | |
| 15 | + | |
| 16 | + Knowledge selectByKnowledge(String knowledge); | |
| 17 | + | |
| 18 | + List<Knowledge> selectAll(); | |
| 19 | +} | ... | ... | 
src/main/java/com/jevon/service/impl/KnowledgeServiceImpl.java
0 → 100644
| ... | ... | @@ -0,0 +1,36 @@ | 
| 1 | +package com.jevon.service.impl; | |
| 2 | + | |
| 3 | +import com.jevon.mapper.KnowledgeMapper; | |
| 4 | +import com.jevon.model.Knowledge; | |
| 5 | +import com.jevon.service.KnowledgeService; | |
| 6 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 7 | +import org.springframework.stereotype.Service; | |
| 8 | + | |
| 9 | +import java.util.List; | |
| 10 | + | |
| 11 | +/** | |
| 12 | + * @author chen | |
| 13 | + * @version 1.0 | |
| 14 | + * @date 2019/11/4 0004 11:52 | |
| 15 | + */ | |
| 16 | +@Service | |
| 17 | +public class KnowledgeServiceImpl implements KnowledgeService { | |
| 18 | + | |
| 19 | + @Autowired | |
| 20 | + KnowledgeMapper knowledgeMapper ; | |
| 21 | + | |
| 22 | + @Override | |
| 23 | + public int insertBatch(List<Knowledge> list) { | |
| 24 | + return knowledgeMapper.insertBatch(list); | |
| 25 | + } | |
| 26 | + | |
| 27 | + @Override | |
| 28 | + public Knowledge selectByKnowledge(String knowledge) { | |
| 29 | + return knowledgeMapper.selectByKnowledge(knowledge); | |
| 30 | + } | |
| 31 | + | |
| 32 | + @Override | |
| 33 | + public List<Knowledge> selectAll() { | |
| 34 | + return knowledgeMapper.selectAll(); | |
| 35 | + } | |
| 36 | +} | ... | ... | 
| ... | ... | @@ -0,0 +1,227 @@ | 
| 1 | +package com.jevon.utils; | |
| 2 | + | |
| 3 | +import org.springframework.beans.factory.annotation.Value; | |
| 4 | +import org.springframework.context.annotation.PropertySource; | |
| 5 | +import org.springframework.stereotype.Component; | |
| 6 | +import redis.clients.jedis.Jedis; | |
| 7 | +import redis.clients.jedis.JedisPool; | |
| 8 | +import redis.clients.jedis.JedisPoolConfig; | |
| 9 | + | |
| 10 | +import javax.annotation.PostConstruct; | |
| 11 | + | |
| 12 | +/** | |
| 13 | + * @author chen | |
| 14 | + * @version 1.0 | |
| 15 | + * @date 2019/11/5 0005 8:51 | |
| 16 | + */ | |
| 17 | +@Component | |
| 18 | +@PropertySource(value = "classpath:conf.properties") | |
| 19 | +public class RedisUtils { | |
| 20 | + | |
| 21 | + | |
| 22 | + @Value("${redis.host}") | |
| 23 | + private String host; | |
| 24 | + @Value("${redis.port}") | |
| 25 | + private int port; | |
| 26 | + @Value("${redis.password}") | |
| 27 | + private String password; | |
| 28 | + | |
| 29 | + @PostConstruct | |
| 30 | + public void getApiToken() { | |
| 31 | + ADDR = this.host ; | |
| 32 | + PORT = this.port ; | |
| 33 | + AUTH = this.password ; | |
| 34 | + } | |
| 35 | + | |
| 36 | + //Redis服务器IP | |
| 37 | + private static String ADDR; | |
| 38 | + | |
| 39 | + //Redis的端口号 | |
| 40 | + private static int PORT; | |
| 41 | + | |
| 42 | + //访问密码 | |
| 43 | + private static String AUTH; | |
| 44 | + | |
| 45 | + //可用连接实例的最大数目,默认值为8; | |
| 46 | + //如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。 | |
| 47 | + private static int MAX_ACTIVE = 1024; | |
| 48 | + | |
| 49 | + //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。 | |
| 50 | + private static int MAX_IDLE = 200; | |
| 51 | + | |
| 52 | + //等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException; | |
| 53 | + private static int MAX_WAIT = 10000; | |
| 54 | + | |
| 55 | + private static int TIMEOUT = 10000; | |
| 56 | + | |
| 57 | + //在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的; | |
| 58 | + private static boolean TEST_ON_BORROW = true; | |
| 59 | + | |
| 60 | + private static JedisPool jedisPool = null; | |
| 61 | + | |
| 62 | + | |
| 63 | + /** | |
| 64 | + * 获取Jedis实例 | |
| 65 | + * @return | |
| 66 | + */ | |
| 67 | + public synchronized static Jedis getJedis() { | |
| 68 | + | |
| 69 | + try { | |
| 70 | + if (jedisPool != null) { | |
| 71 | + Jedis resource = jedisPool.getResource(); | |
| 72 | + return resource; | |
| 73 | + } else { | |
| 74 | + JedisPoolConfig config = new JedisPoolConfig(); | |
| 75 | + config.setMaxTotal(MAX_ACTIVE); | |
| 76 | + config.setMaxIdle(MAX_IDLE); | |
| 77 | + config.setMaxWaitMillis(MAX_WAIT); | |
| 78 | + config.setTestOnBorrow(TEST_ON_BORROW); | |
| 79 | + jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH); | |
| 80 | + Jedis resource = jedisPool.getResource(); | |
| 81 | + return resource; | |
| 82 | + } | |
| 83 | + } catch (Exception e) { | |
| 84 | + e.printStackTrace(); | |
| 85 | + return null; | |
| 86 | + } | |
| 87 | + } | |
| 88 | + | |
| 89 | + public static void main(String[] args) { | |
| 90 | + RedisUtils.setString("test","test"); | |
| 91 | + } | |
| 92 | + /** | |
| 93 | + * 释放jedis资源 | |
| 94 | + * @param jedis | |
| 95 | + */ | |
| 96 | + public static void returnResource(final Jedis jedis) { | |
| 97 | + if (jedis != null) { | |
| 98 | + jedisPool.returnResource(jedis); | |
| 99 | + } | |
| 100 | + } | |
| 101 | + | |
| 102 | + public static void setString(String key ,String value){ | |
| 103 | + Jedis jedis = null; | |
| 104 | + try { | |
| 105 | + jedis = getJedis(); | |
| 106 | + jedis.set(key,value); | |
| 107 | + } catch (Exception e) { | |
| 108 | + System.out.println("setString设置redis键值异常:key=" + key + " value=" + value + " cause:" + e.getMessage()); | |
| 109 | + } finally { | |
| 110 | + if(jedis != null) | |
| 111 | + { | |
| 112 | + jedis.close(); | |
| 113 | + } | |
| 114 | + } | |
| 115 | + } | |
| 116 | + | |
| 117 | + public static void setObject(String key,Object object) { | |
| 118 | + Jedis jedis = null; | |
| 119 | + try { | |
| 120 | + jedis = getJedis(); | |
| 121 | + byte[] keyb = key.getBytes(); | |
| 122 | + byte[] vaueb = SerializeUtil.serialize(object); | |
| 123 | + jedis.set(key.getBytes(), SerializeUtil.serialize(object)); | |
| 124 | + } catch (Exception e) { | |
| 125 | + e.printStackTrace(); | |
| 126 | + System.out.println("setString设置redis键值异常:key=" + key + " value=" + object + " cause:" + e.getMessage()); | |
| 127 | + } finally { | |
| 128 | + if(jedis != null) | |
| 129 | + { | |
| 130 | + jedis.close(); | |
| 131 | + } | |
| 132 | + } | |
| 133 | + } | |
| 134 | + | |
| 135 | + public static void setString(String key ,String value , int expireTime){ | |
| 136 | + String result = "OK"; | |
| 137 | + Jedis jedis = null; | |
| 138 | + try { | |
| 139 | + jedis = getJedis(); | |
| 140 | + jedis.set(key,value); | |
| 141 | + if(result.equals("OK")) { | |
| 142 | + jedis.expire(key.getBytes(), expireTime); | |
| 143 | + } | |
| 144 | + } catch (Exception e) { | |
| 145 | + System.out.println("setString设置redis键值异常:key=" + key + " value=" + value + " cause:" + e.getMessage()); | |
| 146 | + } finally { | |
| 147 | + if(jedis != null) | |
| 148 | + { | |
| 149 | + jedis.close(); | |
| 150 | + } | |
| 151 | + } | |
| 152 | + } | |
| 153 | + | |
| 154 | + public static String getString(String key) { | |
| 155 | + Jedis jedis = null; | |
| 156 | + try { | |
| 157 | + jedis = getJedis(); | |
| 158 | + String value = jedis.get(key); | |
| 159 | + return value; | |
| 160 | + } catch (Exception e) { | |
| 161 | + System.out.println("getString获取redis键值异常:key=" + key + " cause:" + e.getMessage()); | |
| 162 | + } finally { | |
| 163 | + jedis.close(); | |
| 164 | + } | |
| 165 | + return null; | |
| 166 | + } | |
| 167 | + | |
| 168 | + public static Object getObject(String key) { | |
| 169 | + Jedis jedis = null; | |
| 170 | + try { | |
| 171 | + jedis = getJedis(); | |
| 172 | + byte[] value = jedis.get(key.getBytes()); | |
| 173 | + return SerializeUtil. unserialize(value); | |
| 174 | + } catch (Exception e) { | |
| 175 | + System.out.println("getString获取redis键值异常:key=" + key + " cause:" + e.getMessage()); | |
| 176 | + } finally { | |
| 177 | + jedis.close(); | |
| 178 | + } | |
| 179 | + return null; | |
| 180 | + } | |
| 181 | + | |
| 182 | + | |
| 183 | + /** | |
| 184 | + * 删除key | |
| 185 | + */ | |
| 186 | + public static Long delkeyObject(String key) { | |
| 187 | + Jedis jedis = null; | |
| 188 | + try { | |
| 189 | + jedis = getJedis(); | |
| 190 | + return jedis.del(key.getBytes()); | |
| 191 | + }catch(Exception e) { | |
| 192 | + e.printStackTrace(); | |
| 193 | + return null; | |
| 194 | + }finally{ | |
| 195 | + if(jedis != null) | |
| 196 | + { | |
| 197 | + jedis.close(); | |
| 198 | + } | |
| 199 | + } | |
| 200 | + } | |
| 201 | + | |
| 202 | + public static Boolean existsObject(String key) { | |
| 203 | + Jedis jedis = null; | |
| 204 | + try { | |
| 205 | + jedis = getJedis(); | |
| 206 | + return jedis.exists(key); | |
| 207 | + }catch(Exception e) { | |
| 208 | + e.printStackTrace(); | |
| 209 | + return false; | |
| 210 | + }finally{ | |
| 211 | + if(jedis != null) | |
| 212 | + { | |
| 213 | + jedis.close(); | |
| 214 | + } | |
| 215 | + } | |
| 216 | + } | |
| 217 | + | |
| 218 | + public static void flushAll() { | |
| 219 | + Jedis jedis = null; | |
| 220 | + try { | |
| 221 | + jedis = getJedis(); | |
| 222 | + jedis.flushAll(); | |
| 223 | + } catch (Exception e) { | |
| 224 | + System.out.println("Cache清空失败:" + e); | |
| 225 | + } | |
| 226 | + } | |
| 227 | +} | ... | ... | 
| ... | ... | @@ -0,0 +1,44 @@ | 
| 1 | +package com.jevon.utils; | |
| 2 | + | |
| 3 | +import java.io.ByteArrayInputStream; | |
| 4 | +import java.io.ByteArrayOutputStream; | |
| 5 | +import java.io.ObjectInputStream; | |
| 6 | +import java.io.ObjectOutputStream; | |
| 7 | + | |
| 8 | +/** | |
| 9 | + * @author chen | |
| 10 | + * @version 1.0 | |
| 11 | + * @date 2019/11/5 0005 9:06 | |
| 12 | + */ | |
| 13 | +public class SerializeUtil { | |
| 14 | + | |
| 15 | + // 序列化 | |
| 16 | + public static byte[] serialize(Object object) { | |
| 17 | + ObjectOutputStream oos; | |
| 18 | + oos = null; | |
| 19 | + ByteArrayOutputStream baos = null; | |
| 20 | + try { | |
| 21 | + baos = new ByteArrayOutputStream(); | |
| 22 | + oos = new ObjectOutputStream(baos); | |
| 23 | + oos.writeObject(object); | |
| 24 | + byte[] bytes = baos.toByteArray(); | |
| 25 | + return bytes; | |
| 26 | + } catch (Exception e) { | |
| 27 | + e.printStackTrace(); | |
| 28 | + } | |
| 29 | + return null; | |
| 30 | + } | |
| 31 | + | |
| 32 | + // 反序列化 | |
| 33 | + public static Object unserialize( byte[] bytes) { | |
| 34 | + ByteArrayInputStream bais = null; | |
| 35 | + try { | |
| 36 | + bais = new ByteArrayInputStream(bytes); | |
| 37 | + ObjectInputStream ois = new ObjectInputStream(bais); | |
| 38 | + return ois.readObject(); | |
| 39 | + } catch (Exception e) { | |
| 40 | + | |
| 41 | + } | |
| 42 | + return null; | |
| 43 | + } | |
| 44 | +} | ... | ... | 
src/main/java/com/jevon/vo/BaseVo.java
src/main/java/com/jevon/vo/school/Form1.java
| ... | ... | @@ -3,13 +3,15 @@ package com.jevon.vo.school; | 
| 3 | 3 | import io.swagger.annotations.ApiModel; | 
| 4 | 4 | import io.swagger.annotations.ApiModelProperty; | 
| 5 | 5 | |
| 6 | +import java.io.Serializable; | |
| 7 | + | |
| 6 | 8 | /** | 
| 7 | 9 | * @author chen | 
| 8 | 10 | * @version 1.0 | 
| 9 | 11 | * @date 2019/10/18 0018 15:37 | 
| 10 | 12 | */ | 
| 11 | 13 | @ApiModel | 
| 12 | -public class Form1 { | |
| 14 | +public class Form1 implements Serializable { | |
| 13 | 15 | |
| 14 | 16 | @ApiModelProperty(value="等级") | 
| 15 | 17 | private String level ; | ... | ... | 
src/main/java/com/jevon/vo/school/Form1RepVO.java
| 1 | 1 | package com.jevon.vo.school; | 
| 2 | 2 | |
| 3 | +import com.jevon.vo.BaseVo; | |
| 3 | 4 | import io.swagger.annotations.ApiModel; | 
| 4 | 5 | import io.swagger.annotations.ApiModelProperty; | 
| 5 | 6 | |
| 7 | +import java.io.Serializable; | |
| 6 | 8 | import java.util.List; | 
| 7 | 9 | import java.util.Map; | 
| 8 | 10 | |
| ... | ... | @@ -12,7 +14,7 @@ import java.util.Map; | 
| 12 | 14 | * @date 2019/10/18 0018 15:46 | 
| 13 | 15 | */ | 
| 14 | 16 | @ApiModel | 
| 15 | -public class Form1RepVO { | |
| 17 | +public class Form1RepVO extends BaseVo { | |
| 16 | 18 | |
| 17 | 19 | @ApiModelProperty(value="分数段区间") | 
| 18 | 20 | private Map<String ,String> map ; | ... | ... | 
src/main/java/com/jevon/vo/school/Form2.java
| ... | ... | @@ -3,13 +3,15 @@ package com.jevon.vo.school; | 
| 3 | 3 | import io.swagger.annotations.ApiModel; | 
| 4 | 4 | import io.swagger.annotations.ApiModelProperty; | 
| 5 | 5 | |
| 6 | +import java.io.Serializable; | |
| 7 | + | |
| 6 | 8 | /** | 
| 7 | 9 | * @author chen | 
| 8 | 10 | * @version 1.0 | 
| 9 | 11 | * @date 2019/10/18 0018 16:10 | 
| 10 | 12 | */ | 
| 11 | 13 | @ApiModel | 
| 12 | -public class Form2 { | |
| 14 | +public class Form2 implements Serializable { | |
| 13 | 15 | |
| 14 | 16 | @ApiModelProperty(value="名称") | 
| 15 | 17 | private String name ; | ... | ... | 
src/main/java/com/jevon/vo/school/Form3.java
| ... | ... | @@ -3,13 +3,15 @@ package com.jevon.vo.school; | 
| 3 | 3 | import io.swagger.annotations.ApiModel; | 
| 4 | 4 | import io.swagger.annotations.ApiModelProperty; | 
| 5 | 5 | |
| 6 | +import java.io.Serializable; | |
| 7 | + | |
| 6 | 8 | /** | 
| 7 | 9 | * @author chen | 
| 8 | 10 | * @version 1.0 | 
| 9 | 11 | * @date 2019/10/21 0021 9:03 | 
| 10 | 12 | */ | 
| 11 | 13 | @ApiModel | 
| 12 | -public class Form3 { | |
| 14 | +public class Form3 implements Serializable { | |
| 13 | 15 | |
| 14 | 16 | @ApiModelProperty(value="名称") | 
| 15 | 17 | private String name ; | ... | ... | 
src/main/java/com/jevon/vo/school/Form4.java
| ... | ... | @@ -3,13 +3,15 @@ package com.jevon.vo.school; | 
| 3 | 3 | import io.swagger.annotations.ApiModel; | 
| 4 | 4 | import io.swagger.annotations.ApiModelProperty; | 
| 5 | 5 | |
| 6 | +import java.io.Serializable; | |
| 7 | + | |
| 6 | 8 | /** | 
| 7 | 9 | * @author chen | 
| 8 | 10 | * @version 1.0 | 
| 9 | 11 | * @date 2019/10/21 0021 9:51 | 
| 10 | 12 | */ | 
| 11 | 13 | @ApiModel | 
| 12 | -public class Form4 { | |
| 14 | +public class Form4 implements Serializable { | |
| 13 | 15 | |
| 14 | 16 | @ApiModelProperty(value="名称") | 
| 15 | 17 | private String name ; | ... | ... | 
src/main/java/com/jevon/vo/school/Form5.java
| ... | ... | @@ -3,13 +3,15 @@ package com.jevon.vo.school; | 
| 3 | 3 | import io.swagger.annotations.ApiModel; | 
| 4 | 4 | import io.swagger.annotations.ApiModelProperty; | 
| 5 | 5 | |
| 6 | +import java.io.Serializable; | |
| 7 | + | |
| 6 | 8 | /** | 
| 7 | 9 | * @author chen | 
| 8 | 10 | * @version 1.0 | 
| 9 | 11 | * @date 2019/10/21 0021 9:59 | 
| 10 | 12 | */ | 
| 11 | 13 | @ApiModel | 
| 12 | -public class Form5 { | |
| 14 | +public class Form5 implements Serializable { | |
| 13 | 15 | @ApiModelProperty(value="题号") | 
| 14 | 16 | private String examNumber ; | 
| 15 | 17 | @ApiModelProperty(value="难度") | ... | ... | 
src/main/java/com/jevon/vo/school/Form6.java
| ... | ... | @@ -3,13 +3,15 @@ package com.jevon.vo.school; | 
| 3 | 3 | import io.swagger.annotations.ApiModel; | 
| 4 | 4 | import io.swagger.annotations.ApiModelProperty; | 
| 5 | 5 | |
| 6 | +import java.io.Serializable; | |
| 7 | + | |
| 6 | 8 | /** | 
| 7 | 9 | * @author chen | 
| 8 | 10 | * @version 1.0 | 
| 9 | 11 | * @date 2019/10/21 0021 11:25 | 
| 10 | 12 | */ | 
| 11 | 13 | @ApiModel | 
| 12 | -public class Form6 { | |
| 14 | +public class Form6 implements Serializable { | |
| 13 | 15 | @ApiModelProperty(value="维度名称") | 
| 14 | 16 | private String dimensional ; | 
| 15 | 17 | @ApiModelProperty(value="分值") | ... | ... | 
src/main/java/com/jevon/vo/school/Form7.java
| ... | ... | @@ -3,13 +3,15 @@ package com.jevon.vo.school; | 
| 3 | 3 | import io.swagger.annotations.ApiModel; | 
| 4 | 4 | import io.swagger.annotations.ApiModelProperty; | 
| 5 | 5 | |
| 6 | +import java.io.Serializable; | |
| 7 | + | |
| 6 | 8 | /** | 
| 7 | 9 | * @author chen | 
| 8 | 10 | * @version 1.0 | 
| 9 | 11 | * @date 2019/10/21 0021 14:58 | 
| 10 | 12 | */ | 
| 11 | 13 | @ApiModel | 
| 12 | -public class Form7 { | |
| 14 | +public class Form7 implements Serializable { | |
| 13 | 15 | |
| 14 | 16 | @ApiModelProperty(value = "名称") | 
| 15 | 17 | private String name ; | ... | ... | 
src/main/java/com/jevon/vo/school/Form7RepVO.java
| 1 | 1 | package com.jevon.vo.school; | 
| 2 | 2 | |
| 3 | 3 | import com.jevon.model.Chapter; | 
| 4 | +import com.jevon.vo.BaseVo; | |
| 4 | 5 | import io.swagger.annotations.ApiModel; | 
| 5 | 6 | import io.swagger.annotations.ApiModelProperty; | 
| 6 | 7 | |
| ... | ... | @@ -12,7 +13,7 @@ import java.util.List; | 
| 12 | 13 | * @date 2019/10/24 0024 9:20 | 
| 13 | 14 | */ | 
| 14 | 15 | @ApiModel | 
| 15 | -public class Form7RepVO { | |
| 16 | +public class Form7RepVO extends BaseVo { | |
| 16 | 17 | |
| 17 | 18 | @ApiModelProperty(value = "举例七年级上册") | 
| 18 | 19 | private String examScope ; | ... | ... | 
src/main/java/com/jevon/vo/school/Form8.java
| ... | ... | @@ -3,13 +3,15 @@ package com.jevon.vo.school; | 
| 3 | 3 | import io.swagger.annotations.ApiModel; | 
| 4 | 4 | import io.swagger.annotations.ApiModelProperty; | 
| 5 | 5 | |
| 6 | +import java.io.Serializable; | |
| 7 | + | |
| 6 | 8 | /** | 
| 7 | 9 | * @author chen | 
| 8 | 10 | * @version 1.0 | 
| 9 | 11 | * @date 2019/10/21 0021 15:14 | 
| 10 | 12 | */ | 
| 11 | 13 | @ApiModel | 
| 12 | -public class Form8 { | |
| 14 | +public class Form8 implements Serializable { | |
| 13 | 15 | |
| 14 | 16 | @ApiModelProperty(value="题目难度") | 
| 15 | 17 | private String difficultName ; | ... | ... | 
src/main/java/com/jevon/vo/school/Table1.java
| ... | ... | @@ -3,13 +3,15 @@ package com.jevon.vo.school; | 
| 3 | 3 | import io.swagger.annotations.ApiModel; | 
| 4 | 4 | import io.swagger.annotations.ApiModelProperty; | 
| 5 | 5 | |
| 6 | +import java.io.Serializable; | |
| 7 | + | |
| 6 | 8 | /** | 
| 7 | 9 | * @author chen | 
| 8 | 10 | * @version 1.0 | 
| 9 | 11 | * @date 2019/10/21 0021 8:34 | 
| 10 | 12 | */ | 
| 11 | 13 | @ApiModel | 
| 12 | -public class Table1 { | |
| 14 | +public class Table1 implements Serializable { | |
| 13 | 15 | @ApiModelProperty(value="分数段") | 
| 14 | 16 | private String score ; | 
| 15 | 17 | @ApiModelProperty(value="人数") | ... | ... | 
| ... | ... | @@ -0,0 +1,55 @@ | 
| 1 | +package com.jevon.vo.school; | |
| 2 | + | |
| 3 | +import io.swagger.annotations.ApiModel; | |
| 4 | +import io.swagger.annotations.ApiModelProperty; | |
| 5 | + | |
| 6 | +import java.io.Serializable; | |
| 7 | + | |
| 8 | +/** | |
| 9 | + * @author chen | |
| 10 | + * @version 1.0 | |
| 11 | + * @date 2019/11/5 0005 8:27 | |
| 12 | + */ | |
| 13 | +@ApiModel | |
| 14 | +public class Table2 implements Serializable { | |
| 15 | + @ApiModelProperty(value = "知识点") | |
| 16 | + private String knowledge ; | |
| 17 | + @ApiModelProperty(value = "得分率") | |
| 18 | + private Double schoolRate ; | |
| 19 | + @ApiModelProperty(value = "考频") | |
| 20 | + private String rate ; | |
| 21 | + @ApiModelProperty(value = "平均分") | |
| 22 | + private String avg ; | |
| 23 | + | |
| 24 | + public String getKnowledge() { | |
| 25 | + return knowledge; | |
| 26 | + } | |
| 27 | + | |
| 28 | + public void setKnowledge(String knowledge) { | |
| 29 | + this.knowledge = knowledge; | |
| 30 | + } | |
| 31 | + | |
| 32 | + public Double getSchoolRate() { | |
| 33 | + return schoolRate; | |
| 34 | + } | |
| 35 | + | |
| 36 | + public void setSchoolRate(Double schoolRate) { | |
| 37 | + this.schoolRate = schoolRate; | |
| 38 | + } | |
| 39 | + | |
| 40 | + public String getRate() { | |
| 41 | + return rate; | |
| 42 | + } | |
| 43 | + | |
| 44 | + public void setRate(String rate) { | |
| 45 | + this.rate = rate; | |
| 46 | + } | |
| 47 | + | |
| 48 | + public String getAvg() { | |
| 49 | + return avg; | |
| 50 | + } | |
| 51 | + | |
| 52 | + public void setAvg(String avg) { | |
| 53 | + this.avg = avg; | |
| 54 | + } | |
| 55 | +} | ... | ... | 
| ... | ... | @@ -0,0 +1,23 @@ | 
| 1 | +package com.jevon.vo.school; | |
| 2 | + | |
| 3 | +import com.jevon.vo.BaseVo; | |
| 4 | + | |
| 5 | +import java.util.List; | |
| 6 | + | |
| 7 | +/** | |
| 8 | + * @author chen | |
| 9 | + * @version 1.0 | |
| 10 | + * @date 2019/11/5 0005 8:39 | |
| 11 | + */ | |
| 12 | +public class Table2RepVO extends BaseVo { | |
| 13 | + | |
| 14 | + private List<Table2> data ; | |
| 15 | + | |
| 16 | + public List<Table2> getData() { | |
| 17 | + return data; | |
| 18 | + } | |
| 19 | + | |
| 20 | + public void setData(List<Table2> data) { | |
| 21 | + this.data = data; | |
| 22 | + } | |
| 23 | +} | ... | ... | 
src/main/resources/application.yml
| ... | ... | @@ -8,7 +8,7 @@ spring: | 
| 8 | 8 | url: jdbc:sqlserver://60.190.202.57:14333;database=SmartPaike | 
| 9 | 9 | # username: szjxtuser | 
| 10 | 10 | # password: RQminVCJota3H1u8bBYH | 
| 11 | -# url: jdbc:sqlserver://116.62.155.137:33419;database=SmartCampus_java | |
| 11 | +# url: jdbc:sqlserver://116.62.241.27:33419;database=SmartCampus_java | |
| 12 | 12 | driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver | 
| 13 | 13 | filters: stat | 
| 14 | 14 | maxActive: 20 | 
| ... | ... | @@ -41,7 +41,5 @@ Logger: | 
| 41 | 41 | com.jevon.mapper: info | 
| 42 | 42 | |
| 43 | 43 | remoting: | 
| 44 | - url: http://60.190.202.57:1000 | |
| 45 | - prefixFile: F://wwwroot//smartcampus | |
| 46 | -# url: http://campus.myjxt.com | |
| 47 | -# prefixFile: E://wwwhtdocs//SmartCampus | |
| 44 | +# url: http://60.190.202.57:1000 | |
| 45 | + url: http://campus.myjxt.com | ... | ... | 
src/main/resources/logback.xml
| ... | ... | @@ -5,7 +5,7 @@ | 
| 5 | 5 | |
| 6 | 6 | <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> | 
| 7 | 7 | <!-- <property name="LOG_HOME" value="/opt/web/log/" />--> | 
| 8 | - <property name="LOG_HOME" value="E://smartCampus_java//log"/> | |
| 8 | + <property name="LOG_HOME" value="D://smartCampus_java//log"/> | |
| 9 | 9 | |
| 10 | 10 | <!-- 控制台输出 --> | 
| 11 | 11 | <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> | ... | ... | 
| ... | ... | @@ -0,0 +1,29 @@ | 
| 1 | +<?xml version="1.0" encoding="UTF-8" ?> | |
| 2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > | |
| 3 | +<mapper namespace="com.jevon.mapper.KnowledgeMapper" > | |
| 4 | + <resultMap id="BaseResultMap" type="com.jevon.model.Knowledge" > | |
| 5 | + <id column="id" property="id" jdbcType="INTEGER" /> | |
| 6 | + <result column="knowledge" property="knowledge" jdbcType="VARCHAR" /> | |
| 7 | + <result column="detail" property="detail" jdbcType="VARCHAR" /> | |
| 8 | + <result column="rate" property="rate" jdbcType="VARCHAR" /> | |
| 9 | + <result column="knowledge_avg" property="avg" jdbcType="VARCHAR" /> | |
| 10 | + <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" /> | |
| 11 | + </resultMap> | |
| 12 | + | |
| 13 | + <insert id="insertBatch" parameterType="java.util.List"> | |
| 14 | + insert into sz_learn_knowledge (knowledge,detail, rate,knowledge_avg,update_time) | |
| 15 | + values | |
| 16 | + <foreach collection="list" item="emp" separator=","> | |
| 17 | + (#{emp.knowledge},#{emp.detail},#{emp.rate},#{emp.avg},#{emp.updateTime}) | |
| 18 | + </foreach> | |
| 19 | + </insert> | |
| 20 | + | |
| 21 | + <select id="selectByKnowledge" parameterType="java.lang.String" resultMap="BaseResultMap"> | |
| 22 | + select * from sz_learn_knowledge where knowledge = #{knowledge} | |
| 23 | + </select> | |
| 24 | + | |
| 25 | + <select id="selectAll" resultMap="BaseResultMap"> | |
| 26 | + select * from sz_learn_knowledge | |
| 27 | + </select> | |
| 28 | + | |
| 29 | +</mapper> | |
| 0 | 30 | \ No newline at end of file | ... | ... |