Commit 1a3e7acad0d649d893286fbc123797d095f9e037

Authored by 陈杰
1 parent 74b6b20f
Exists in master

修改联盟校 逻辑

src/main/java/com/jevon/controller/LearnController.java
... ... @@ -204,14 +204,16 @@ public class LearnController {
204 204  
205 205 @ApiOperation("考生成绩导入")
206 206 @RequestMapping(value = "initScore", method = RequestMethod.POST)
207   - public BaseVo initScore(@RequestBody InitAnalyseReqVo initAnalyseReqVo){
  207 + public BaseVo initScore(@RequestBody InitScoreReqVo initScoreReqVo){
208 208 BaseVo baseVo = new BaseVo();
209   - analysisScoreExcel(initAnalyseReqVo);
  209 + String schoolName = analysisScoreExcel(initScoreReqVo);
  210 + leagueService.initLeagueSchool(initScoreReqVo.getLeagueId(),schoolName);
210 211 return baseVo;
211 212 }
212 213  
213   - private void analysisScoreExcel(InitAnalyseReqVo initAnalyseReqVo){
  214 + private String analysisScoreExcel(InitAnalyseReqVo initAnalyseReqVo){
214 215 try{
  216 + String schoolName = "";
215 217 Analyse analyse = analyseService.selectById(initAnalyseReqVo.getAnalyseId());
216 218 List<AnalyseDetail> analyseDetails = analyseDetailService.selectByAnalyseId(analyse.getId());
217 219 Map<String , Double> scoreMap = new HashMap<>();
... ... @@ -281,41 +283,13 @@ public class LearnController {
281 283 }
282 284 studentService.insertBatch(students);
283 285 studentDetailService.insertBatch(studentDetails);
  286 + return students.get(0).getSchoolName();
284 287 }
285 288 }catch (Exception e){
286 289 e.printStackTrace();
287 290 System.out.println(e.toString());
288 291 }
289   - }
290   -
291   - @ApiOperation("获取导入的学校列表")
292   - @RequestMapping(value = "getSchoolName", method = RequestMethod.GET)
293   - public List<String> getSchoolName(int analyseId){
294   - return studentService.selectSchoolNameByAnalyse(analyseId);
295   - }
296   -
297   - @ApiOperation("定义这次考试的联盟校")
298   - @RequestMapping(value = "initLeague", method = RequestMethod.POST)
299   - public BaseVo initLeague(@RequestBody InitLeagueReqVo initLeagueReqVo){
300   - BaseVo baseVo = new BaseVo();
301   - Analyse analyse = analyseService.selectById(initLeagueReqVo.getAnalyseId());
302   - if(analyse == null){
303   - baseVo.setMessage("请先创建考试");
304   - baseVo.setSuccess(false);
305   - return baseVo;
306   - }
307   - List<League> leagues = new ArrayList<>();
308   - for(InitLeague initLeague : initLeagueReqVo.getData()){
309   - for(String schoolName : initLeague.getSchoolNames()){
310   - League league = new League();
311   - league.setAnalyseId(analyse.getId());
312   - league.setLeague(initLeague.getLeague());
313   - league.setSchoolName(schoolName);
314   - leagues.add(league);
315   - }
316   - }
317   - leagueService.insertBatch(leagues);
318   - return baseVo;
  292 + return null ;
319 293 }
320 294  
321 295 @ApiOperation("获取该次考试联盟学校信息")
... ... @@ -347,11 +321,16 @@ public class LearnController {
347 321 return getLeagueRepVo;
348 322 }
349 323  
350   - @ApiOperation("更新联盟校信息")
351   - @RequestMapping(value = "updateLeague", method = RequestMethod.POST)
352   - public BaseVo updateLeague(@RequestBody UpdateLeagueReqVo updateLeagueReqVo){
  324 + @ApiOperation("创建联盟")
  325 + @RequestMapping(value = "createLeague", method = RequestMethod.POST)
  326 + public BaseVo createLeague(@RequestBody CreateLeagueReqVo createLeagueReqVo){
353 327 BaseVo baseVo = new BaseVo();
354   - leagueService.update(updateLeagueReqVo.getId(),updateLeagueReqVo.getLeague());
  328 + League league = new League();
  329 + Analyse analyse = analyseService.selectById(createLeagueReqVo.getAnalyseId());
  330 + league.setAnalyseId(analyse.getId());
  331 + league.setLeague(createLeagueReqVo.getLeague());
  332 + leagueService.insert(league);
  333 + baseVo.setMessage(league.getId() +"");
355 334 return baseVo;
356 335 }
357 336 }
... ...
src/main/java/com/jevon/controller/LearnStatController.java
... ... @@ -130,7 +130,7 @@ public class LearnStatController {
130 130 List<String> leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName());
131 131 if(leagues == null){
132 132 repVO.setSuccess(false);
133   - repVO.setMessage("请先设定");
  133 + repVO.setMessage("请先设定联盟校");
134 134 return repVO;
135 135 }
136 136 List<Student> allStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,null);
... ... @@ -274,7 +274,7 @@ public class LearnStatController {
274 274 List<String> leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName());
275 275 if(leagues == null){
276 276 repVO.setSuccess(false);
277   - repVO.setMessage("请先设定");
  277 + repVO.setMessage("请先设定联盟校");
278 278 return repVO;
279 279 }
280 280 List<Form3> list = new ArrayList<>();
... ... @@ -346,7 +346,7 @@ public class LearnStatController {
346 346 List<String> leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName());
347 347 if(leagues == null){
348 348 repVO.setSuccess(false);
349   - repVO.setMessage("请先设定");
  349 + repVO.setMessage("请先设定联盟校");
350 350 return repVO;
351 351 }
352 352 List<Form4> list = new ArrayList<>();
... ... @@ -394,7 +394,7 @@ public class LearnStatController {
394 394 List<String> leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName());
395 395 if(leagues == null){
396 396 repVO.setSuccess(false);
397   - repVO.setMessage("请先设定");
  397 + repVO.setMessage("请先设定联盟校");
398 398 return repVO;
399 399 }
400 400 List<String> allHighStudent = new ArrayList<>();
... ... @@ -486,7 +486,7 @@ public class LearnStatController {
486 486 List<String> leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName());
487 487 if(leagues == null){
488 488 repVO.setSuccess(false);
489   - repVO.setMessage("请先设定");
  489 + repVO.setMessage("请先设定联盟校");
490 490 return repVO;
491 491 }
492 492 List<Form8> list = new ArrayList<>();
... ... @@ -689,7 +689,7 @@ public class LearnStatController {
689 689  
690 690 @ApiOperation("获取教学改进建议")
691 691 @RequestMapping(value = "getSuggest", method = RequestMethod.POST)
692   - public SuggestRepVo getSuggest(@RequestBody GetLearnReqVo getLearnReqVo){
  692 + public String getSuggest(@RequestBody GetLearnReqVo getLearnReqVo){
693 693 SuggestRepVo suggestRepVo = new SuggestRepVo() ;
694 694 Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId());
695 695 Double avg = studentService.selectAvgScore(analyse.getId(),null,getLearnReqVo.getSchoolName()) ;
... ... @@ -700,7 +700,39 @@ public class LearnStatController {
700 700 List<Student> students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName());
701 701 int a = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.85,analyse.getMaxScore()+1f);
702 702 //优秀率
703   - String aStr = df.format(new Double(a) / new Double(students.size()) * 100);
  703 + Double apercent = new Double(a) / new Double(students.size()) * 100 ;
  704 + String aStr = df.format(apercent);
  705 + String access = "";
  706 + if(avg>=80){
  707 + if(apercent >= 20){
  708 + access = "良好";
  709 + }else {
  710 + access = "相对可以";
  711 + }
  712 + }else if(avg >= 75){
  713 + if(apercent >= 35){
  714 + access = "很好";
  715 + }else if(apercent >= 20){
  716 + access = "良好";
  717 + }else {
  718 + access = "相对可以";
  719 + }
  720 + }else if(avg >= 70){
  721 + if(apercent >= 20){
  722 + access = "良好";
  723 + }else {
  724 + access = "相对可以";
  725 + }
  726 + } else if (avg >= 60) {
  727 + if(apercent >= 10){
  728 + access = "相对可以";
  729 + }else {
  730 + access = "一般";
  731 + }
  732 + }else {
  733 + access = "暴露出一些问题,试卷偏难,学生掌握不够理想";
  734 + }
  735 + suggestRepVo.setAssess(access);
704 736 suggestRepVo.setDifficultyDegree(avgStr);
705 737 suggestRepVo.setExcellentRate(aStr);
706 738 suggestRepVo.setErrorList(getErrorRate(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),students.size()));
... ... @@ -748,10 +780,10 @@ public class LearnStatController {
748 780 suggestRepVo.setLessSkillList(lessSkillList);
749 781 suggestRepVo.setMidSkillList(midSkillList);
750 782 suggestRepVo.setHighSkillList(highSkillList);
751   - return suggestRepVo;
  783 + return initSuggest(suggestRepVo);
752 784 }
753 785  
754   - public List<String> getErrorRate(int analyseId , String schoolName , int studentSize){
  786 + private List<String> getErrorRate(int analyseId , String schoolName , int studentSize){
755 787 List<String> errorList = new ArrayList<>();
756 788 List<AnalyseDetail> analyseDetails = analyseDetailService.selectByAnalyseId(analyseId);
757 789 double errorNumber = Math.ceil(studentSize * 0.15) ;
... ... @@ -765,4 +797,100 @@ public class LearnStatController {
765 797 }
766 798 return errorList;
767 799 }
  800 +
  801 + private String initSuggest(SuggestRepVo suggestRepVo){
  802 + StringBuffer stringBuffer = new StringBuffer();
  803 + stringBuffer.append("本次检测总体情况").append(suggestRepVo.getAssess()).append(",难度系数是")
  804 + .append(suggestRepVo.getDifficultyDegree()).append(",优秀率是").append(suggestRepVo.getExcellentRate()).append("%。")
  805 + .append("对有关知识,总体掌握情况比较好。从考试结果分析,各知识点掌握程度较好,唯");
  806 + for (int i = 0; i < suggestRepVo.getMidKnowledgeList().size(); i++) {
  807 + if(i == suggestRepVo.getMidKnowledgeList().size() - 1 ){
  808 + stringBuffer.append(suggestRepVo.getMidKnowledgeList().get(i));
  809 + }else {
  810 + stringBuffer.append(suggestRepVo.getMidKnowledgeList().get(i)).append("、");
  811 + }
  812 + }
  813 + stringBuffer.append("几个知识点掌握较弱,");
  814 + for (int i = 0; i < suggestRepVo.getLessKnowledgeList().size(); i++) {
  815 + if(i == suggestRepVo.getLessKnowledgeList().size() - 1 ){
  816 + stringBuffer.append(suggestRepVo.getLessKnowledgeList().get(i));
  817 + }else {
  818 + stringBuffer.append(suggestRepVo.getLessKnowledgeList().get(i)).append("、");
  819 + }
  820 + }
  821 + stringBuffer.append("几个知识点学生的理解有些问题。探究技能方面:");
  822 + for (int i = 0; i < suggestRepVo.getHighSkillList().size(); i++) {
  823 + if(i == suggestRepVo.getHighSkillList().size() - 1 ){
  824 + stringBuffer.append(suggestRepVo.getHighSkillList().get(i));
  825 + }else {
  826 + stringBuffer.append(suggestRepVo.getHighSkillList().get(i)).append("、");
  827 + }
  828 + }
  829 + stringBuffer.append("掌握的比较好,");
  830 + for (int i = 0; i < suggestRepVo.getMidSkillList().size(); i++) {
  831 + if(i == suggestRepVo.getMidSkillList().size() - 1 ){
  832 + stringBuffer.append(suggestRepVo.getMidSkillList().get(i));
  833 + }else {
  834 + stringBuffer.append(suggestRepVo.getMidSkillList().get(i)).append("、");
  835 + }
  836 + }
  837 + stringBuffer.append("等相对较弱一些,而");
  838 + for (int i = 0; i < suggestRepVo.getLessSkillList().size(); i++) {
  839 + if(i == suggestRepVo.getLessSkillList().size() - 1 ){
  840 + stringBuffer.append(suggestRepVo.getLessSkillList().get(i));
  841 + }else {
  842 + stringBuffer.append(suggestRepVo.getLessSkillList().get(i)).append("、");
  843 + }
  844 + }
  845 + stringBuffer.append("学生掌握有些问题。学习能力上:");
  846 + for (int i = 0; i < suggestRepVo.getHighAbilityList().size(); i++) {
  847 + if(i == suggestRepVo.getHighAbilityList().size() - 1 ){
  848 + stringBuffer.append(suggestRepVo.getHighAbilityList().get(i));
  849 + }else {
  850 + stringBuffer.append(suggestRepVo.getHighAbilityList().get(i)).append("、");
  851 + }
  852 + }
  853 + stringBuffer.append("掌握较好,");
  854 + for (int i = 0; i < suggestRepVo.getMidAbilityList().size(); i++) {
  855 + if(i == suggestRepVo.getMidAbilityList().size() - 1 ){
  856 + stringBuffer.append(suggestRepVo.getMidAbilityList().get(i));
  857 + }else {
  858 + stringBuffer.append(suggestRepVo.getMidAbilityList().get(i)).append("、");
  859 + }
  860 + }
  861 + stringBuffer.append("等相对较弱一些,");
  862 + for (int i = 0; i < suggestRepVo.getLessAbilityList().size(); i++) {
  863 + if(i == suggestRepVo.getLessAbilityList().size() - 1 ){
  864 + stringBuffer.append(suggestRepVo.getLessAbilityList().get(i));
  865 + }else {
  866 + stringBuffer.append(suggestRepVo.getLessAbilityList().get(i)).append("、");
  867 + }
  868 + }
  869 + stringBuffer.append("学得还欠缺一些。另外,部分学生审题不够清楚、思维有定势,如选择题");
  870 + for (int i = 0; i < suggestRepVo.getErrorList().size(); i++) {
  871 + if(i == suggestRepVo.getErrorList().size() - 1 ){
  872 + stringBuffer.append(suggestRepVo.getErrorList().get(i));
  873 + }else {
  874 + stringBuffer.append(suggestRepVo.getErrorList().get(i)).append("、");
  875 + }
  876 + }
  877 + stringBuffer.append("错误率大于15%\n后续复习巩固可以从抓好基础、提高能力和注重应用上下功夫。提升");
  878 + for (int i = 0; i < suggestRepVo.getLessKnowledgeList().size(); i++) {
  879 + if(i == suggestRepVo.getLessKnowledgeList().size() - 1 ){
  880 + stringBuffer.append(suggestRepVo.getLessKnowledgeList().get(i));
  881 + }else {
  882 + stringBuffer.append(suggestRepVo.getLessKnowledgeList().get(i)).append("、");
  883 + }
  884 + }
  885 + stringBuffer.append("的教学,减少低分面;以思维教学促进学生能力的提高,特别是");
  886 + for (int i = 0; i < suggestRepVo.getLessAbilityList().size(); i++) {
  887 + if(i == suggestRepVo.getLessAbilityList().size() - 1 ){
  888 + stringBuffer.append(suggestRepVo.getLessAbilityList().get(i));
  889 + }else {
  890 + stringBuffer.append(suggestRepVo.getLessAbilityList().get(i)).append("、");
  891 + }
  892 + }
  893 + stringBuffer.append("等方面的能力;重视将知识应用到具体的实践中,尤其是做好试题审题和思路分析的引导,教师自己开发一些新情景的试题。");
  894 + return stringBuffer.toString();
  895 + }
768 896 }
... ...
src/main/java/com/jevon/mapper/LeagueMapper.java
... ... @@ -11,6 +11,10 @@ import java.util.List;
11 11 */
12 12 public interface LeagueMapper {
13 13  
  14 + int insert(League league);
  15 +
  16 + League selectById(int id);
  17 +
14 18 int insertBatch(List<League> list);
15 19  
16 20 int update(League league);
... ...
src/main/java/com/jevon/service/LeagueService.java
... ... @@ -11,10 +11,14 @@ import java.util.List;
11 11 */
12 12 public interface LeagueService {
13 13  
  14 + int insert(League league);
  15 +
14 16 int insertBatch(List<League> list);
15 17  
16 18 int update(int id , String league);
17 19  
  20 + int initLeagueSchool(int id , String schoolName);
  21 +
18 22 List<League> selectByAnalyseId(int analyseId);
19 23  
20 24 List<String> getLeagueBySchoolName(int analyseId , String schoolName);
... ...
src/main/java/com/jevon/service/impl/LeagueServiceImpl.java
... ... @@ -3,6 +3,7 @@ package com.jevon.service.impl;
3 3 import com.jevon.mapper.LeagueMapper;
4 4 import com.jevon.model.League;
5 5 import com.jevon.service.LeagueService;
  6 +import org.apache.commons.lang3.StringUtils;
6 7 import org.springframework.beans.factory.annotation.Autowired;
7 8 import org.springframework.stereotype.Service;
8 9  
... ... @@ -21,6 +22,11 @@ public class LeagueServiceImpl implements LeagueService {
21 22 LeagueMapper leagueMapper;
22 23  
23 24 @Override
  25 + public int insert(League league) {
  26 + return leagueMapper.insert(league);
  27 + }
  28 +
  29 + @Override
24 30 public int insertBatch(List<League> list) {
25 31 return leagueMapper.insertBatch(list);
26 32 }
... ... @@ -34,12 +40,39 @@ public class LeagueServiceImpl implements LeagueService {
34 40 }
35 41  
36 42 @Override
  43 + public int initLeagueSchool(int id, String schoolName) {
  44 + League result = leagueMapper.selectById(id) ;
  45 + League search = new League();
  46 + search.setAnalyseId(result.getAnalyseId());
  47 + search.setLeague(result.getLeague());
  48 + List<League> list = leagueMapper.selectByLeague(search);
  49 + boolean isCreate = true ;
  50 + for(League temp : list){
  51 + if(StringUtils.isBlank(temp.getSchoolName())){
  52 + temp.setSchoolName(schoolName);
  53 + leagueMapper.update(temp);
  54 + isCreate = false;
  55 + break;
  56 + }
  57 + }
  58 + if(isCreate){
  59 + League createLeague = new League();
  60 + createLeague.setAnalyseId(result.getAnalyseId());
  61 + createLeague.setLeague(result.getLeague());
  62 + createLeague.setSchoolName(schoolName);
  63 + leagueMapper.insert(createLeague);
  64 + }
  65 + return 1;
  66 + }
  67 +
  68 + @Override
37 69 public List<League> selectByAnalyseId(int analyseId) {
38 70 League league = new League();
39 71 league.setAnalyseId(analyseId);
40 72 return leagueMapper.selectByLeague(league);
41 73 }
42 74  
  75 +
43 76 @Override
44 77 public List<String> getLeagueBySchoolName(int analyseId, String schoolName) {
45 78 League league = new League();
... ...
src/main/java/com/jevon/vo/req/CreateLeagueReqVo.java 0 → 100644
... ... @@ -0,0 +1,28 @@
  1 +package com.jevon.vo.req;
  2 +
  3 +/**
  4 + * @author chen
  5 + * @version 1.0
  6 + * @date 2019/10/23 0023 15:46
  7 + */
  8 +public class CreateLeagueReqVo {
  9 +
  10 + private int analyseId ;
  11 + private String league ;
  12 +
  13 + public int getAnalyseId() {
  14 + return analyseId;
  15 + }
  16 +
  17 + public void setAnalyseId(int analyseId) {
  18 + this.analyseId = analyseId;
  19 + }
  20 +
  21 + public String getLeague() {
  22 + return league;
  23 + }
  24 +
  25 + public void setLeague(String league) {
  26 + this.league = league;
  27 + }
  28 +}
... ...
src/main/java/com/jevon/vo/req/InitScoreReqVo.java 0 → 100644
... ... @@ -0,0 +1,19 @@
  1 +package com.jevon.vo.req;
  2 +
  3 +/**
  4 + * @author chen
  5 + * @version 1.0
  6 + * @date 2019/10/23 0023 15:50
  7 + */
  8 +public class InitScoreReqVo extends InitAnalyseReqVo {
  9 +
  10 + private int leagueId ;
  11 +
  12 + public int getLeagueId() {
  13 + return leagueId;
  14 + }
  15 +
  16 + public void setLeagueId(int leagueId) {
  17 + this.leagueId = leagueId;
  18 + }
  19 +}
... ...
src/main/resources/mapping/AnalyseMapper.xml
... ... @@ -38,7 +38,7 @@
38 38 <select id="select" parameterType="com.jevon.model.Analyse" resultMap="BaseResultMap">
39 39 select * from sz_learn_analyse
40 40 <where>
41   - <if test="courseName != 0">
  41 + <if test="courseName != null">
42 42 and course_name = #{courseName}
43 43 </if>
44 44 <if test="examName != null">
... ...
src/main/resources/mapping/LeagueMapper.xml
... ... @@ -8,6 +8,12 @@
8 8 <result column="school_name" property="schoolName" jdbcType="VARCHAR" />
9 9 </resultMap>
10 10  
  11 + <insert id="insert" parameterType="com.jevon.model.League" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
  12 + insert into sz_learn_league (analyse_id, league,school_name)
  13 + values
  14 + (#{analyseId,jdbcType=INTEGER}, #{league,jdbcType=INTEGER}, #{schoolName,jdbcType=VARCHAR})
  15 + </insert>
  16 +
11 17 <insert id="insertBatch" parameterType="java.util.List">
12 18 insert into sz_learn_league (analyse_id, league,school_name)
13 19 values
... ... @@ -16,8 +22,12 @@
16 22 </foreach>
17 23 </insert>
18 24  
  25 + <select id="selectById" parameterType="java.lang.Integer" resultMap="BaseResultMap">
  26 + select * from sz_learn_league where id = #{id}
  27 + </select>
  28 +
19 29 <update id="update" parameterType="com.jevon.model.League">
20   - update sz_learn_league set league = #{league} where id = #{id}
  30 + update sz_learn_league set league = #{league} , school_name = #{schoolName} where id = #{id}
21 31 </update>
22 32  
23 33 <select id="selectByLeague" parameterType="com.jevon.model.League" resultMap="BaseResultMap">
... ...