Commit 7fee3c235b29209f4891f673f2f30d2f0e8cef68

Authored by 陈杰
1 parent b91baa10
Exists in master

redis

Showing 43 changed files with 1268 additions and 522 deletions   Show diff stats
@@ -15,6 +15,11 @@ @@ -15,6 +15,11 @@
15 15
16 <dependencies> 16 <dependencies>
17 <dependency> 17 <dependency>
  18 + <groupId>redis.clients</groupId>
  19 + <artifactId>jedis</artifactId>
  20 + <version>2.9.0</version>
  21 + </dependency>
  22 + <dependency>
18 <groupId>org.apache.httpcomponents</groupId> 23 <groupId>org.apache.httpcomponents</groupId>
19 <artifactId>httpclient</artifactId> 24 <artifactId>httpclient</artifactId>
20 <version>4.3</version> 25 <version>4.3</version>
src/main/java/com/jevon/controller/LearnController.java
@@ -5,6 +5,7 @@ import com.jevon.enums.DimensionalEnums; @@ -5,6 +5,7 @@ import com.jevon.enums.DimensionalEnums;
5 import com.jevon.model.*; 5 import com.jevon.model.*;
6 import com.jevon.service.*; 6 import com.jevon.service.*;
7 import com.jevon.utils.HttpClientUtils; 7 import com.jevon.utils.HttpClientUtils;
  8 +import com.jevon.utils.RedisUtils;
8 import com.jevon.vo.BaseVo; 9 import com.jevon.vo.BaseVo;
9 import com.jevon.vo.excel.ExamExcelVo; 10 import com.jevon.vo.excel.ExamExcelVo;
10 import com.jevon.vo.excel.ScoreExcelVo; 11 import com.jevon.vo.excel.ScoreExcelVo;
@@ -18,10 +19,8 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook; @@ -18,10 +19,8 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook;
18 import org.apache.poi.ss.usermodel.*; 19 import org.apache.poi.ss.usermodel.*;
19 import org.apache.poi.xssf.usermodel.XSSFWorkbook; 20 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
20 import org.springframework.beans.factory.annotation.Autowired; 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 import java.io.File; 25 import java.io.File;
27 import java.io.InputStream; 26 import java.io.InputStream;
@@ -61,6 +60,9 @@ public class LearnController { @@ -61,6 +60,9 @@ public class LearnController {
61 @Autowired 60 @Autowired
62 ChapterService chapterService; 61 ChapterService chapterService;
63 62
  63 + @Autowired
  64 + KnowledgeService knowledgeService;
  65 +
64 @ApiOperation("获取列表") 66 @ApiOperation("获取列表")
65 @RequestMapping(value = "getList", method = RequestMethod.POST) 67 @RequestMapping(value = "getList", method = RequestMethod.POST)
66 public List<Analyse> getList(){ 68 public List<Analyse> getList(){
@@ -111,6 +113,7 @@ public class LearnController { @@ -111,6 +113,7 @@ public class LearnController {
111 baseVo.setMessage("已经导入"); 113 baseVo.setMessage("已经导入");
112 baseVo.setSuccess(false); 114 baseVo.setSuccess(false);
113 }else { 115 }else {
  116 + RedisUtils.flushAll();
114 analysisExcel(initAnalyseReqVo); 117 analysisExcel(initAnalyseReqVo);
115 } 118 }
116 return baseVo; 119 return baseVo;
@@ -149,25 +152,27 @@ public class LearnController { @@ -149,25 +152,27 @@ public class LearnController {
149 //获取表头 152 //获取表头
150 } else { 153 } else {
151 ExamExcelVo examExcelVo = new ExamExcelVo(sheetRow); 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 analyseDetailService.insertBatch(analyseDetails); 178 analyseDetailService.insertBatch(analyseDetails);
@@ -175,7 +180,7 @@ public class LearnController { @@ -175,7 +180,7 @@ public class LearnController {
175 analyse.setMaxScore(new Double(maxScore)); 180 analyse.setMaxScore(new Double(maxScore));
176 analyseService.update(analyse); 181 analyseService.update(analyse);
177 }catch (Exception e){ 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,4 +378,50 @@ public class LearnController {
373 public List<String> getSchoolName(int analyseId){ 378 public List<String> getSchoolName(int analyseId){
374 return studentService.selectSchoolNameByAnalyse(analyseId); 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,11 +4,13 @@ import com.jevon.enums.DifficultEnums;
4 import com.jevon.enums.DimensionalEnums; 4 import com.jevon.enums.DimensionalEnums;
5 import com.jevon.model.*; 5 import com.jevon.model.*;
6 import com.jevon.service.*; 6 import com.jevon.service.*;
  7 +import com.jevon.utils.RedisUtils;
7 import com.jevon.vo.rep.SuggestRepVo; 8 import com.jevon.vo.rep.SuggestRepVo;
8 import com.jevon.vo.req.GetLearnReqVo; 9 import com.jevon.vo.req.GetLearnReqVo;
9 import com.jevon.vo.school.*; 10 import com.jevon.vo.school.*;
10 import io.swagger.annotations.Api; 11 import io.swagger.annotations.Api;
11 import io.swagger.annotations.ApiOperation; 12 import io.swagger.annotations.ApiOperation;
  13 +import org.apache.poi.ss.formula.functions.T;
12 import org.springframework.beans.factory.annotation.Autowired; 14 import org.springframework.beans.factory.annotation.Autowired;
13 import org.springframework.web.bind.annotation.RequestBody; 15 import org.springframework.web.bind.annotation.RequestBody;
14 import org.springframework.web.bind.annotation.RequestMapping; 16 import org.springframework.web.bind.annotation.RequestMapping;
@@ -54,41 +56,49 @@ public class LearnStatController { @@ -54,41 +56,49 @@ public class LearnStatController {
54 @Autowired 56 @Autowired
55 ChapterService chapterService; 57 ChapterService chapterService;
56 58
  59 + @Autowired
  60 + KnowledgeService knowledgeService ;
  61 +
57 @ApiOperation("getForm1_1") 62 @ApiOperation("getForm1_1")
58 @RequestMapping(value = "getForm1_1", method = RequestMethod.POST) 63 @RequestMapping(value = "getForm1_1", method = RequestMethod.POST)
59 public Form7RepVO getForm1_1(@RequestBody GetLearnReqVo getLearnReqVo){ 64 public Form7RepVO getForm1_1(@RequestBody GetLearnReqVo getLearnReqVo){
60 Form7RepVO form7RepVO = new Form7RepVO(); 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 return form7RepVO; 102 return form7RepVO;
93 } 103 }
94 104
@@ -96,44 +106,49 @@ public class LearnStatController { @@ -96,44 +106,49 @@ public class LearnStatController {
96 @RequestMapping(value = "getForm2_1_1", method = RequestMethod.POST) 106 @RequestMapping(value = "getForm2_1_1", method = RequestMethod.POST)
97 public Form1RepVO getForm2_1_1(@RequestBody GetLearnReqVo getLearnReqVo){ 107 public Form1RepVO getForm2_1_1(@RequestBody GetLearnReqVo getLearnReqVo){
98 Form1RepVO form1RepVo = new Form1RepVO(); 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 return form1RepVo; 152 return form1RepVo;
138 } 153 }
139 154
@@ -141,63 +156,68 @@ public class LearnStatController { @@ -141,63 +156,68 @@ public class LearnStatController {
141 @RequestMapping(value = "getForm2_1_2", method = RequestMethod.POST) 156 @RequestMapping(value = "getForm2_1_2", method = RequestMethod.POST)
142 public Form2RepVO getForm2_1_2(@RequestBody GetLearnReqVo getLearnReqVo){ 157 public Form2RepVO getForm2_1_2(@RequestBody GetLearnReqVo getLearnReqVo){
143 Form2RepVO repVO = new Form2RepVO(); 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 return repVO; 221 return repVO;
202 } 222 }
203 223
@@ -205,43 +225,48 @@ public class LearnStatController { @@ -205,43 +225,48 @@ public class LearnStatController {
205 @RequestMapping(value = "getForm2_1_3_2", method = RequestMethod.POST) 225 @RequestMapping(value = "getForm2_1_3_2", method = RequestMethod.POST)
206 public Form2RepVO getForm2_1_3_2(@RequestBody GetLearnReqVo getLearnReqVo){ 226 public Form2RepVO getForm2_1_3_2(@RequestBody GetLearnReqVo getLearnReqVo){
207 Form2RepVO repVO = new Form2RepVO(); 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 return repVO; 270 return repVO;
246 } 271 }
247 272
@@ -285,71 +310,76 @@ public class LearnStatController { @@ -285,71 +310,76 @@ public class LearnStatController {
285 @RequestMapping(value = "getForm2_2_1", method = RequestMethod.POST) 310 @RequestMapping(value = "getForm2_2_1", method = RequestMethod.POST)
286 public Form3RepVO getForm2_2_1(@RequestBody GetLearnReqVo getLearnReqVo){ 311 public Form3RepVO getForm2_2_1(@RequestBody GetLearnReqVo getLearnReqVo){
287 Form3RepVO repVO = new Form3RepVO(); 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 return repVO ; 383 return repVO ;
354 } 384 }
355 385
@@ -357,47 +387,52 @@ public class LearnStatController { @@ -357,47 +387,52 @@ public class LearnStatController {
357 @RequestMapping(value = "getForm2_2_2", method = RequestMethod.POST) 387 @RequestMapping(value = "getForm2_2_2", method = RequestMethod.POST)
358 public Form4RepVO getForm2_2_2(@RequestBody GetLearnReqVo getLearnReqVo){ 388 public Form4RepVO getForm2_2_2(@RequestBody GetLearnReqVo getLearnReqVo){
359 Form4RepVO repVO = new Form4RepVO(); 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 return repVO; 436 return repVO;
402 } 437 }
403 438
@@ -405,91 +440,96 @@ public class LearnStatController { @@ -405,91 +440,96 @@ public class LearnStatController {
405 @RequestMapping(value = "getForm2_2_3", method = RequestMethod.POST) 440 @RequestMapping(value = "getForm2_2_3", method = RequestMethod.POST)
406 public Form5RepVO getForm2_2_3(@RequestBody GetLearnReqVo getLearnReqVo){ 441 public Form5RepVO getForm2_2_3(@RequestBody GetLearnReqVo getLearnReqVo){
407 Form5RepVO repVO = new Form5RepVO(); 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 return repVO; 533 return repVO;
494 } 534 }
495 535
@@ -497,65 +537,142 @@ public class LearnStatController { @@ -497,65 +537,142 @@ public class LearnStatController {
497 @RequestMapping(value = "getForm2_2_4", method = RequestMethod.POST) 537 @RequestMapping(value = "getForm2_2_4", method = RequestMethod.POST)
498 public Form8RepVO getForm2_2_4(@RequestBody GetLearnReqVo getLearnReqVo){ 538 public Form8RepVO getForm2_2_4(@RequestBody GetLearnReqVo getLearnReqVo){
499 Form8RepVO repVO = new Form8RepVO(); 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 return repVO; 579 return repVO;
535 } 580 }
536 581
537 @ApiOperation("getForm3_1") 582 @ApiOperation("getForm3_1")
538 @RequestMapping(value = "getForm3_1", method = RequestMethod.POST) 583 @RequestMapping(value = "getForm3_1", method = RequestMethod.POST)
539 public Form6RepVO getForm3_1(@RequestBody GetLearnReqVo getLearnReqVo){ 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 @ApiOperation("getForm3_2") 639 @ApiOperation("getForm3_2")
544 @RequestMapping(value = "getForm3_2", method = RequestMethod.POST) 640 @RequestMapping(value = "getForm3_2", method = RequestMethod.POST)
545 public Form6RepVO getForm3_2(@RequestBody GetLearnReqVo getLearnReqVo){ 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 @ApiOperation("getForm3_3") 652 @ApiOperation("getForm3_3")
550 @RequestMapping(value = "getForm3_3", method = RequestMethod.POST) 653 @RequestMapping(value = "getForm3_3", method = RequestMethod.POST)
551 public Form6RepVO getForm3_3(@RequestBody GetLearnReqVo getLearnReqVo){ 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 @ApiOperation("getForm3_4") 665 @ApiOperation("getForm3_4")
556 @RequestMapping(value = "getForm3_4", method = RequestMethod.POST) 666 @RequestMapping(value = "getForm3_4", method = RequestMethod.POST)
557 public Form6RepVO getForm3_4(@RequestBody GetLearnReqVo getLearnReqVo){ 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 private Form6RepVO initDimensional(GetLearnReqVo getLearnReqVo , int dimensionalType){ 678 private Form6RepVO initDimensional(GetLearnReqVo getLearnReqVo , int dimensionalType){
@@ -716,97 +833,104 @@ public class LearnStatController { @@ -716,97 +833,104 @@ public class LearnStatController {
716 @ApiOperation("获取教学改进建议") 833 @ApiOperation("获取教学改进建议")
717 @RequestMapping(value = "getSuggest", method = RequestMethod.POST) 834 @RequestMapping(value = "getSuggest", method = RequestMethod.POST)
718 public String getSuggest(@RequestBody GetLearnReqVo getLearnReqVo){ 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 }else { 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 private List<String> getErrorRate(int analyseId , String schoolName , int studentSize){ 936 private List<String> getErrorRate(int analyseId , String schoolName , int studentSize){
@@ -826,9 +950,9 @@ public class LearnStatController { @@ -826,9 +950,9 @@ public class LearnStatController {
826 950
827 private String initSuggest(SuggestRepVo suggestRepVo){ 951 private String initSuggest(SuggestRepVo suggestRepVo){
828 StringBuffer stringBuffer = new StringBuffer(); 952 StringBuffer stringBuffer = new StringBuffer();
829 - stringBuffer.append("本次检测总体情况").append(suggestRepVo.getAssess()).append(",难度系数是") 953 + stringBuffer.append("本次检测总体情况").append(suggestRepVo.getAssess()).append(",难度系数是0")
830 .append(suggestRepVo.getDifficultyDegree()).append(",优秀率是").append(suggestRepVo.getExcellentRate()).append("%。") 954 .append(suggestRepVo.getDifficultyDegree()).append(",优秀率是").append(suggestRepVo.getExcellentRate()).append("%。")
831 - .append("对有关知识,总体掌握情况比较好。从考试结果分析,各知识点掌握程度较好,唯"); 955 + .append("对有关知识,总体掌握情况比较好。\n从考试结果分析,各知识点掌握程度较好,唯");
832 for (int i = 0; i < suggestRepVo.getMidKnowledgeList().size(); i++) { 956 for (int i = 0; i < suggestRepVo.getMidKnowledgeList().size(); i++) {
833 if(i == suggestRepVo.getMidKnowledgeList().size() - 1 ){ 957 if(i == suggestRepVo.getMidKnowledgeList().size() - 1 ){
834 stringBuffer.append(suggestRepVo.getMidKnowledgeList().get(i)); 958 stringBuffer.append(suggestRepVo.getMidKnowledgeList().get(i));
@@ -844,7 +968,7 @@ public class LearnStatController { @@ -844,7 +968,7 @@ public class LearnStatController {
844 stringBuffer.append(suggestRepVo.getLessKnowledgeList().get(i)).append("、"); 968 stringBuffer.append(suggestRepVo.getLessKnowledgeList().get(i)).append("、");
845 } 969 }
846 } 970 }
847 - stringBuffer.append("几个知识点学生的理解有些问题。探究技能方面:"); 971 + stringBuffer.append("几个知识点学生的理解有些问题。\n探究技能方面:");
848 for (int i = 0; i < suggestRepVo.getHighSkillList().size(); i++) { 972 for (int i = 0; i < suggestRepVo.getHighSkillList().size(); i++) {
849 if(i == suggestRepVo.getHighSkillList().size() - 1 ){ 973 if(i == suggestRepVo.getHighSkillList().size() - 1 ){
850 stringBuffer.append(suggestRepVo.getHighSkillList().get(i)); 974 stringBuffer.append(suggestRepVo.getHighSkillList().get(i));
@@ -868,7 +992,7 @@ public class LearnStatController { @@ -868,7 +992,7 @@ public class LearnStatController {
868 stringBuffer.append(suggestRepVo.getLessSkillList().get(i)).append("、"); 992 stringBuffer.append(suggestRepVo.getLessSkillList().get(i)).append("、");
869 } 993 }
870 } 994 }
871 - stringBuffer.append("学生掌握有些问题。学习能力上:"); 995 + stringBuffer.append("学生掌握有些问题。\n学习能力上:");
872 for (int i = 0; i < suggestRepVo.getHighAbilityList().size(); i++) { 996 for (int i = 0; i < suggestRepVo.getHighAbilityList().size(); i++) {
873 if(i == suggestRepVo.getHighAbilityList().size() - 1 ){ 997 if(i == suggestRepVo.getHighAbilityList().size() - 1 ){
874 stringBuffer.append(suggestRepVo.getHighAbilityList().get(i)); 998 stringBuffer.append(suggestRepVo.getHighAbilityList().get(i));
@@ -900,7 +1024,7 @@ public class LearnStatController { @@ -900,7 +1024,7 @@ public class LearnStatController {
900 stringBuffer.append(suggestRepVo.getErrorList().get(i)).append("、"); 1024 stringBuffer.append(suggestRepVo.getErrorList().get(i)).append("、");
901 } 1025 }
902 } 1026 }
903 - stringBuffer.append("错误率大于15%\n后续复习巩固可以从抓好基础、提高能力和注重应用上下功夫。提升"); 1027 + stringBuffer.append("错误率大于15%\n后续复习巩固可以从抓好基础、提高能力和注重应用上下功夫。提升");
904 for (int i = 0; i < suggestRepVo.getLessKnowledgeList().size(); i++) { 1028 for (int i = 0; i < suggestRepVo.getLessKnowledgeList().size(); i++) {
905 if(i == suggestRepVo.getLessKnowledgeList().size() - 1 ){ 1029 if(i == suggestRepVo.getLessKnowledgeList().size() - 1 ){
906 stringBuffer.append(suggestRepVo.getLessKnowledgeList().get(i)); 1030 stringBuffer.append(suggestRepVo.getLessKnowledgeList().get(i));
src/main/java/com/jevon/mapper/KnowledgeMapper.java 0 → 100644
@@ -0,0 +1,19 @@ @@ -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 package com.jevon.model; 1 package com.jevon.model;
2 2
  3 +import java.io.Serializable;
3 import java.util.Date; 4 import java.util.Date;
4 5
5 /** 6 /**
@@ -7,7 +8,7 @@ import java.util.Date; @@ -7,7 +8,7 @@ import java.util.Date;
7 * @version 1.0 8 * @version 1.0
8 * @date 2019/10/18 0018 10:55 9 * @date 2019/10/18 0018 10:55
9 */ 10 */
10 -public class Analyse { 11 +public class Analyse implements Serializable {
11 12
12 private int id ; 13 private int id ;
13 private String examName ; 14 private String examName ;
src/main/java/com/jevon/model/AnalyseDetail.java
1 package com.jevon.model; 1 package com.jevon.model;
2 2
  3 +import java.io.Serializable;
3 import java.util.Date; 4 import java.util.Date;
4 5
5 /** 6 /**
@@ -7,7 +8,7 @@ import java.util.Date; @@ -7,7 +8,7 @@ import java.util.Date;
7 * @version 1.0 8 * @version 1.0
8 * @date 2019/10/18 0018 8:38 9 * @date 2019/10/18 0018 8:38
9 */ 10 */
10 -public class AnalyseDetail { 11 +public class AnalyseDetail implements Serializable {
11 12
12 private int id ; 13 private int id ;
13 private int analyseId ; 14 private int analyseId ;
src/main/java/com/jevon/model/AnalyseDimensional.java
1 package com.jevon.model; 1 package com.jevon.model;
2 2
  3 +import java.io.Serializable;
3 import java.util.Date; 4 import java.util.Date;
4 5
5 /** 6 /**
@@ -7,7 +8,7 @@ import java.util.Date; @@ -7,7 +8,7 @@ import java.util.Date;
7 * @version 1.0 8 * @version 1.0
8 * @date 2019/10/18 0018 8:42 9 * @date 2019/10/18 0018 8:42
9 */ 10 */
10 -public class AnalyseDimensional { 11 +public class AnalyseDimensional implements Serializable {
11 12
12 private int id ; 13 private int id ;
13 private int analyseId ; 14 private int analyseId ;
src/main/java/com/jevon/model/Chapter.java
1 package com.jevon.model; 1 package com.jevon.model;
2 2
  3 +import java.io.Serializable;
  4 +
3 /** 5 /**
4 * @author chen 6 * @author chen
5 * @version 1.0 7 * @version 1.0
6 * @date 2019/10/24 0024 9:03 8 * @date 2019/10/24 0024 9:03
7 */ 9 */
8 -public class Chapter { 10 +public class Chapter implements Serializable {
9 11
10 private int id ; 12 private int id ;
11 private int analyseId ; 13 private int analyseId ;
src/main/java/com/jevon/model/ClassCourse.java
1 package com.jevon.model; 1 package com.jevon.model;
2 2
  3 +import java.io.Serializable;
3 import java.util.Date; 4 import java.util.Date;
4 5
5 -public class ClassCourse { 6 +public class ClassCourse implements Serializable {
6 private Integer courseId; 7 private Integer courseId;
7 8
8 private Integer schoolId; 9 private Integer schoolId;
src/main/java/com/jevon/model/ClassModel.java
1 package com.jevon.model; 1 package com.jevon.model;
2 2
3 -public class ClassModel { 3 +import java.io.Serializable;
  4 +
  5 +public class ClassModel implements Serializable {
4 private Integer classId; 6 private Integer classId;
5 7
6 private Integer schoolId; 8 private Integer schoolId;
src/main/java/com/jevon/model/Course.java
1 package com.jevon.model; 1 package com.jevon.model;
2 2
  3 +import java.io.Serializable;
  4 +
3 /** 5 /**
4 * @author chen 6 * @author chen
5 * @version 1.0 7 * @version 1.0
6 * @date 2019/10/9 0009 9:39 8 * @date 2019/10/9 0009 9:39
7 */ 9 */
8 -public class Course { 10 +public class Course implements Serializable {
9 11
10 private int id ; 12 private int id ;
11 private int schoolId ; 13 private int schoolId ;
src/main/java/com/jevon/model/Dimensional.java
1 package com.jevon.model; 1 package com.jevon.model;
2 2
  3 +import java.io.Serializable;
3 import java.util.Date; 4 import java.util.Date;
4 5
5 /** 6 /**
@@ -7,7 +8,7 @@ import java.util.Date; @@ -7,7 +8,7 @@ import java.util.Date;
7 * @version 1.0 8 * @version 1.0
8 * @date 2019/10/18 0018 8:37 9 * @date 2019/10/18 0018 8:37
9 */ 10 */
10 -public class Dimensional { 11 +public class Dimensional implements Serializable {
11 12
12 private int id ; 13 private int id ;
13 private int dimensionalType ; 14 private int dimensionalType ;
src/main/java/com/jevon/model/JoinClass.java
1 package com.jevon.model; 1 package com.jevon.model;
2 2
  3 +import java.io.Serializable;
  4 +
3 /** 5 /**
4 * @author chen 6 * @author chen
5 * @version 1.0 7 * @version 1.0
6 * @date 2019/10/10 0010 8:27 8 * @date 2019/10/10 0010 8:27
7 */ 9 */
8 -public class JoinClass { 10 +public class JoinClass implements Serializable {
9 11
10 private int id ; 12 private int id ;
11 private int schoolId ; 13 private int schoolId ;
src/main/java/com/jevon/model/Knowledge.java 0 → 100644
@@ -0,0 +1,67 @@ @@ -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
1 package com.jevon.model; 1 package com.jevon.model;
2 2
  3 +import java.io.Serializable;
  4 +
3 /** 5 /**
4 * @author chen 6 * @author chen
5 * @version 1.0 7 * @version 1.0
6 * @date 2019/10/22 0022 8:59 8 * @date 2019/10/22 0022 8:59
7 */ 9 */
8 -public class League { 10 +public class League implements Serializable {
9 11
10 private int id ; 12 private int id ;
11 private int analyseId ; 13 private int analyseId ;
src/main/java/com/jevon/model/Schedule.java
1 package com.jevon.model; 1 package com.jevon.model;
2 2
  3 +import java.io.Serializable;
3 import java.util.Date; 4 import java.util.Date;
4 5
5 /** 6 /**
@@ -7,7 +8,7 @@ import java.util.Date; @@ -7,7 +8,7 @@ import java.util.Date;
7 * @version 1.0 8 * @version 1.0
8 * @date 2019/10/10 0010 11:17 9 * @date 2019/10/10 0010 11:17
9 */ 10 */
10 -public class Schedule { 11 +public class Schedule implements Serializable {
11 private int id ; 12 private int id ;
12 private String scheduleName ; 13 private String scheduleName ;
13 private int schoolId ; 14 private int schoolId ;
src/main/java/com/jevon/model/Student.java
@@ -2,6 +2,7 @@ package com.jevon.model; @@ -2,6 +2,7 @@ package com.jevon.model;
2 2
3 import com.jevon.vo.excel.ScoreExcelVo; 3 import com.jevon.vo.excel.ScoreExcelVo;
4 4
  5 +import java.io.Serializable;
5 import java.util.Date; 6 import java.util.Date;
6 import java.util.List; 7 import java.util.List;
7 8
@@ -10,7 +11,7 @@ import java.util.List; @@ -10,7 +11,7 @@ import java.util.List;
10 * @version 1.0 11 * @version 1.0
11 * @date 2019/10/18 0018 13:38 12 * @date 2019/10/18 0018 13:38
12 */ 13 */
13 -public class Student { 14 +public class Student implements Serializable {
14 15
15 private int id ; 16 private int id ;
16 private int openId; 17 private int openId;
src/main/java/com/jevon/model/StudentDetail.java
@@ -2,6 +2,7 @@ package com.jevon.model; @@ -2,6 +2,7 @@ package com.jevon.model;
2 2
3 import com.jevon.vo.excel.ScoreExcelVo; 3 import com.jevon.vo.excel.ScoreExcelVo;
4 4
  5 +import java.io.Serializable;
5 import java.util.Date; 6 import java.util.Date;
6 import java.util.List; 7 import java.util.List;
7 8
@@ -10,7 +11,7 @@ import java.util.List; @@ -10,7 +11,7 @@ import java.util.List;
10 * @version 1.0 11 * @version 1.0
11 * @date 2019/10/18 0018 13:38 12 * @date 2019/10/18 0018 13:38
12 */ 13 */
13 -public class StudentDetail { 14 +public class StudentDetail implements Serializable {
14 15
15 private long id ; 16 private long id ;
16 private int openId; 17 private int openId;
src/main/java/com/jevon/model/Teacher.java
1 package com.jevon.model; 1 package com.jevon.model;
2 2
  3 +import java.io.Serializable;
  4 +
3 /** 5 /**
4 * @author chen 6 * @author chen
5 * @version 1.0 7 * @version 1.0
6 * @date 2019/10/9 0009 13:53 8 * @date 2019/10/9 0009 13:53
7 */ 9 */
8 -public class Teacher { 10 +public class Teacher implements Serializable {
9 11
10 private int id ; 12 private int id ;
11 private int schoolId ; 13 private int schoolId ;
src/main/java/com/jevon/model/TeacherClass.java
1 package com.jevon.model; 1 package com.jevon.model;
2 2
  3 +import java.io.Serializable;
3 import java.util.Date; 4 import java.util.Date;
4 5
5 -public class TeacherClass { 6 +public class TeacherClass implements Serializable {
6 private Integer tClassId; 7 private Integer tClassId;
7 8
8 private Integer teacherId; 9 private Integer teacherId;
src/main/java/com/jevon/model/TeacherCourse.java
1 package com.jevon.model; 1 package com.jevon.model;
2 2
  3 +import java.io.Serializable;
3 import java.util.Date; 4 import java.util.Date;
4 5
5 -public class TeacherCourse { 6 +public class TeacherCourse implements Serializable {
6 private Integer tClassId; 7 private Integer tClassId;
7 8
8 private Integer schoolId; 9 private Integer schoolId;
src/main/java/com/jevon/service/KnowledgeService.java 0 → 100644
@@ -0,0 +1,19 @@ @@ -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 @@ @@ -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 +}
src/main/java/com/jevon/utils/RedisUtils.java 0 → 100644
@@ -0,0 +1,227 @@ @@ -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 +}
src/main/java/com/jevon/utils/SerializeUtil.java 0 → 100644
@@ -0,0 +1,44 @@ @@ -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
1 package com.jevon.vo; 1 package com.jevon.vo;
2 2
3 -public class BaseVo { 3 +import java.io.Serializable;
  4 +
  5 +public class BaseVo implements Serializable {
4 6
5 private boolean success; 7 private boolean success;
6 private String message ; 8 private String message ;
src/main/java/com/jevon/vo/school/Form1.java
@@ -3,13 +3,15 @@ package com.jevon.vo.school; @@ -3,13 +3,15 @@ package com.jevon.vo.school;
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
5 5
  6 +import java.io.Serializable;
  7 +
6 /** 8 /**
7 * @author chen 9 * @author chen
8 * @version 1.0 10 * @version 1.0
9 * @date 2019/10/18 0018 15:37 11 * @date 2019/10/18 0018 15:37
10 */ 12 */
11 @ApiModel 13 @ApiModel
12 -public class Form1 { 14 +public class Form1 implements Serializable {
13 15
14 @ApiModelProperty(value="等级") 16 @ApiModelProperty(value="等级")
15 private String level ; 17 private String level ;
src/main/java/com/jevon/vo/school/Form1RepVO.java
1 package com.jevon.vo.school; 1 package com.jevon.vo.school;
2 2
  3 +import com.jevon.vo.BaseVo;
3 import io.swagger.annotations.ApiModel; 4 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 5 import io.swagger.annotations.ApiModelProperty;
5 6
  7 +import java.io.Serializable;
6 import java.util.List; 8 import java.util.List;
7 import java.util.Map; 9 import java.util.Map;
8 10
@@ -12,7 +14,7 @@ import java.util.Map; @@ -12,7 +14,7 @@ import java.util.Map;
12 * @date 2019/10/18 0018 15:46 14 * @date 2019/10/18 0018 15:46
13 */ 15 */
14 @ApiModel 16 @ApiModel
15 -public class Form1RepVO { 17 +public class Form1RepVO extends BaseVo {
16 18
17 @ApiModelProperty(value="分数段区间") 19 @ApiModelProperty(value="分数段区间")
18 private Map<String ,String> map ; 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,13 +3,15 @@ package com.jevon.vo.school;
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
5 5
  6 +import java.io.Serializable;
  7 +
6 /** 8 /**
7 * @author chen 9 * @author chen
8 * @version 1.0 10 * @version 1.0
9 * @date 2019/10/18 0018 16:10 11 * @date 2019/10/18 0018 16:10
10 */ 12 */
11 @ApiModel 13 @ApiModel
12 -public class Form2 { 14 +public class Form2 implements Serializable {
13 15
14 @ApiModelProperty(value="名称") 16 @ApiModelProperty(value="名称")
15 private String name ; 17 private String name ;
src/main/java/com/jevon/vo/school/Form3.java
@@ -3,13 +3,15 @@ package com.jevon.vo.school; @@ -3,13 +3,15 @@ package com.jevon.vo.school;
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
5 5
  6 +import java.io.Serializable;
  7 +
6 /** 8 /**
7 * @author chen 9 * @author chen
8 * @version 1.0 10 * @version 1.0
9 * @date 2019/10/21 0021 9:03 11 * @date 2019/10/21 0021 9:03
10 */ 12 */
11 @ApiModel 13 @ApiModel
12 -public class Form3 { 14 +public class Form3 implements Serializable {
13 15
14 @ApiModelProperty(value="名称") 16 @ApiModelProperty(value="名称")
15 private String name ; 17 private String name ;
src/main/java/com/jevon/vo/school/Form4.java
@@ -3,13 +3,15 @@ package com.jevon.vo.school; @@ -3,13 +3,15 @@ package com.jevon.vo.school;
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
5 5
  6 +import java.io.Serializable;
  7 +
6 /** 8 /**
7 * @author chen 9 * @author chen
8 * @version 1.0 10 * @version 1.0
9 * @date 2019/10/21 0021 9:51 11 * @date 2019/10/21 0021 9:51
10 */ 12 */
11 @ApiModel 13 @ApiModel
12 -public class Form4 { 14 +public class Form4 implements Serializable {
13 15
14 @ApiModelProperty(value="名称") 16 @ApiModelProperty(value="名称")
15 private String name ; 17 private String name ;
src/main/java/com/jevon/vo/school/Form5.java
@@ -3,13 +3,15 @@ package com.jevon.vo.school; @@ -3,13 +3,15 @@ package com.jevon.vo.school;
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
5 5
  6 +import java.io.Serializable;
  7 +
6 /** 8 /**
7 * @author chen 9 * @author chen
8 * @version 1.0 10 * @version 1.0
9 * @date 2019/10/21 0021 9:59 11 * @date 2019/10/21 0021 9:59
10 */ 12 */
11 @ApiModel 13 @ApiModel
12 -public class Form5 { 14 +public class Form5 implements Serializable {
13 @ApiModelProperty(value="题号") 15 @ApiModelProperty(value="题号")
14 private String examNumber ; 16 private String examNumber ;
15 @ApiModelProperty(value="难度") 17 @ApiModelProperty(value="难度")
src/main/java/com/jevon/vo/school/Form6.java
@@ -3,13 +3,15 @@ package com.jevon.vo.school; @@ -3,13 +3,15 @@ package com.jevon.vo.school;
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
5 5
  6 +import java.io.Serializable;
  7 +
6 /** 8 /**
7 * @author chen 9 * @author chen
8 * @version 1.0 10 * @version 1.0
9 * @date 2019/10/21 0021 11:25 11 * @date 2019/10/21 0021 11:25
10 */ 12 */
11 @ApiModel 13 @ApiModel
12 -public class Form6 { 14 +public class Form6 implements Serializable {
13 @ApiModelProperty(value="维度名称") 15 @ApiModelProperty(value="维度名称")
14 private String dimensional ; 16 private String dimensional ;
15 @ApiModelProperty(value="分值") 17 @ApiModelProperty(value="分值")
src/main/java/com/jevon/vo/school/Form7.java
@@ -3,13 +3,15 @@ package com.jevon.vo.school; @@ -3,13 +3,15 @@ package com.jevon.vo.school;
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
5 5
  6 +import java.io.Serializable;
  7 +
6 /** 8 /**
7 * @author chen 9 * @author chen
8 * @version 1.0 10 * @version 1.0
9 * @date 2019/10/21 0021 14:58 11 * @date 2019/10/21 0021 14:58
10 */ 12 */
11 @ApiModel 13 @ApiModel
12 -public class Form7 { 14 +public class Form7 implements Serializable {
13 15
14 @ApiModelProperty(value = "名称") 16 @ApiModelProperty(value = "名称")
15 private String name ; 17 private String name ;
src/main/java/com/jevon/vo/school/Form7RepVO.java
1 package com.jevon.vo.school; 1 package com.jevon.vo.school;
2 2
3 import com.jevon.model.Chapter; 3 import com.jevon.model.Chapter;
  4 +import com.jevon.vo.BaseVo;
4 import io.swagger.annotations.ApiModel; 5 import io.swagger.annotations.ApiModel;
5 import io.swagger.annotations.ApiModelProperty; 6 import io.swagger.annotations.ApiModelProperty;
6 7
@@ -12,7 +13,7 @@ import java.util.List; @@ -12,7 +13,7 @@ import java.util.List;
12 * @date 2019/10/24 0024 9:20 13 * @date 2019/10/24 0024 9:20
13 */ 14 */
14 @ApiModel 15 @ApiModel
15 -public class Form7RepVO { 16 +public class Form7RepVO extends BaseVo {
16 17
17 @ApiModelProperty(value = "举例七年级上册") 18 @ApiModelProperty(value = "举例七年级上册")
18 private String examScope ; 19 private String examScope ;
src/main/java/com/jevon/vo/school/Form8.java
@@ -3,13 +3,15 @@ package com.jevon.vo.school; @@ -3,13 +3,15 @@ package com.jevon.vo.school;
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
5 5
  6 +import java.io.Serializable;
  7 +
6 /** 8 /**
7 * @author chen 9 * @author chen
8 * @version 1.0 10 * @version 1.0
9 * @date 2019/10/21 0021 15:14 11 * @date 2019/10/21 0021 15:14
10 */ 12 */
11 @ApiModel 13 @ApiModel
12 -public class Form8 { 14 +public class Form8 implements Serializable {
13 15
14 @ApiModelProperty(value="题目难度") 16 @ApiModelProperty(value="题目难度")
15 private String difficultName ; 17 private String difficultName ;
src/main/java/com/jevon/vo/school/Table1.java
@@ -3,13 +3,15 @@ package com.jevon.vo.school; @@ -3,13 +3,15 @@ package com.jevon.vo.school;
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
5 5
  6 +import java.io.Serializable;
  7 +
6 /** 8 /**
7 * @author chen 9 * @author chen
8 * @version 1.0 10 * @version 1.0
9 * @date 2019/10/21 0021 8:34 11 * @date 2019/10/21 0021 8:34
10 */ 12 */
11 @ApiModel 13 @ApiModel
12 -public class Table1 { 14 +public class Table1 implements Serializable {
13 @ApiModelProperty(value="分数段") 15 @ApiModelProperty(value="分数段")
14 private String score ; 16 private String score ;
15 @ApiModelProperty(value="人数") 17 @ApiModelProperty(value="人数")
src/main/java/com/jevon/vo/school/Table2.java 0 → 100644
@@ -0,0 +1,55 @@ @@ -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 +}
src/main/java/com/jevon/vo/school/Table2RepVO.java 0 → 100644
@@ -0,0 +1,23 @@ @@ -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,7 +8,7 @@ spring:
8 url: jdbc:sqlserver://60.190.202.57:14333;database=SmartPaike 8 url: jdbc:sqlserver://60.190.202.57:14333;database=SmartPaike
9 # username: szjxtuser 9 # username: szjxtuser
10 # password: RQminVCJota3H1u8bBYH 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 driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver 12 driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
13 filters: stat 13 filters: stat
14 maxActive: 20 14 maxActive: 20
@@ -41,7 +41,5 @@ Logger: @@ -41,7 +41,5 @@ Logger:
41 com.jevon.mapper: info 41 com.jevon.mapper: info
42 42
43 remoting: 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/conf.properties 0 → 100644
@@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
  1 +#redis
  2 +redis.host=121.40.109.21
  3 +redis.port=6379
  4 +redis.password=123456
0 \ No newline at end of file 5 \ No newline at end of file
src/main/resources/logback.xml
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 5
6     <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> 6     <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
7 <!--    <property name="LOG_HOME" value="/opt/web/log/" />--> 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     <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> 11     <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
src/main/resources/mapping/KnowledgeMapper.xml 0 → 100644
@@ -0,0 +1,29 @@ @@ -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 \ No newline at end of file 30 \ No newline at end of file