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