diff --git a/cloud/common/pom.xml b/cloud/common/pom.xml
index 79499df..1f9bd63 100644
--- a/cloud/common/pom.xml
+++ b/cloud/common/pom.xml
@@ -19,6 +19,16 @@
+ redis.clients
+ jedis
+ 2.9.0
+
+
+ org.apache.httpcomponents
+ httpclient
+ 4.3
+
+
org.apache.tomcat.embed
tomcat-embed-core
@@ -40,6 +50,16 @@
commons-collections
3.2.2
+
+ io.springfox
+ springfox-swagger2
+ 2.5.0
+
+
+ io.springfox
+ springfox-swagger-ui
+ 2.5.0
+
diff --git a/cloud/common/src/main/java/com/sincere/common/dto/independence/AnalyseDetailDto.java b/cloud/common/src/main/java/com/sincere/common/dto/independence/AnalyseDetailDto.java
new file mode 100644
index 0000000..f3503a6
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/dto/independence/AnalyseDetailDto.java
@@ -0,0 +1,76 @@
+package com.sincere.common.dto.independence;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/13 0013 10:05
+ */
+public class AnalyseDetailDto implements Serializable {
+
+ private int id ;
+ private int analyseId ;
+ private String questionNumber ;
+ private String questionType ;
+ private int difficult ;
+ private Double score ;
+ private Date createTime ;
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public int getAnalyseId() {
+ return analyseId;
+ }
+
+ public void setAnalyseId(int analyseId) {
+ this.analyseId = analyseId;
+ }
+
+ public String getQuestionNumber() {
+ return questionNumber;
+ }
+
+ public void setQuestionNumber(String questionNumber) {
+ this.questionNumber = questionNumber;
+ }
+
+ public int getDifficult() {
+ return difficult;
+ }
+
+ public void setDifficult(int difficult) {
+ this.difficult = difficult;
+ }
+
+ public Double getScore() {
+ return score;
+ }
+
+ public void setScore(Double score) {
+ this.score = score;
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getQuestionType() {
+ return questionType;
+ }
+
+ public void setQuestionType(String questionType) {
+ this.questionType = questionType;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/dto/independence/AnalyseDimensionalDto.java b/cloud/common/src/main/java/com/sincere/common/dto/independence/AnalyseDimensionalDto.java
new file mode 100644
index 0000000..45361b3
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/dto/independence/AnalyseDimensionalDto.java
@@ -0,0 +1,67 @@
+package com.sincere.common.dto.independence;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/13 0013 10:19
+ */
+public class AnalyseDimensionalDto implements Serializable {
+
+ private int id ;
+ private int analyseId ;
+ private String questionNumber ;
+ private int dimensionalId ;
+ private Double score ;
+ private Date createTime ;
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public int getAnalyseId() {
+ return analyseId;
+ }
+
+ public void setAnalyseId(int analyseId) {
+ this.analyseId = analyseId;
+ }
+
+ public String getQuestionNumber() {
+ return questionNumber;
+ }
+
+ public void setQuestionNumber(String questionNumber) {
+ this.questionNumber = questionNumber;
+ }
+
+ public int getDimensionalId() {
+ return dimensionalId;
+ }
+
+ public void setDimensionalId(int dimensionalId) {
+ this.dimensionalId = dimensionalId;
+ }
+
+ public Double getScore() {
+ return score;
+ }
+
+ public void setScore(Double score) {
+ this.score = score;
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/dto/independence/AnalyseDto.java b/cloud/common/src/main/java/com/sincere/common/dto/independence/AnalyseDto.java
new file mode 100644
index 0000000..f6353ff
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/dto/independence/AnalyseDto.java
@@ -0,0 +1,85 @@
+package com.sincere.common.dto.independence;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/13 0013 9:39
+ */
+public class AnalyseDto implements Serializable {
+
+ private int id ;
+ private String examName ;
+ private String examTime ;
+ private String courseName ;
+ private Date createTime ;
+ private Double maxScore ;
+ private String grade ;
+ private String examScope ;
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getExamName() {
+ return examName;
+ }
+
+ public void setExamName(String examName) {
+ this.examName = examName;
+ }
+
+ public String getExamTime() {
+ return examTime;
+ }
+
+ public void setExamTime(String examTime) {
+ this.examTime = examTime;
+ }
+
+ public String getCourseName() {
+ return courseName;
+ }
+
+ public void setCourseName(String courseName) {
+ this.courseName = courseName;
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public Double getMaxScore() {
+ return maxScore;
+ }
+
+ public void setMaxScore(Double maxScore) {
+ this.maxScore = maxScore;
+ }
+
+ public String getGrade() {
+ return grade;
+ }
+
+ public void setGrade(String grade) {
+ this.grade = grade;
+ }
+
+ public String getExamScope() {
+ return examScope;
+ }
+
+ public void setExamScope(String examScope) {
+ this.examScope = examScope;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/dto/independence/ChapterDto.java b/cloud/common/src/main/java/com/sincere/common/dto/independence/ChapterDto.java
new file mode 100644
index 0000000..8f2f614
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/dto/independence/ChapterDto.java
@@ -0,0 +1,67 @@
+package com.sincere.common.dto.independence;
+
+import java.io.Serializable;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/13 0013 9:17
+ */
+public class ChapterDto implements Serializable {
+
+ private int id ;
+ private int analyseId ;
+ private int chapterNumber ;
+ private String chapterName ;
+ private Double chapterScore ;
+
+ private Double percent ;
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public int getAnalyseId() {
+ return analyseId;
+ }
+
+ public void setAnalyseId(int analyseId) {
+ this.analyseId = analyseId;
+ }
+
+ public int getChapterNumber() {
+ return chapterNumber;
+ }
+
+ public void setChapterNumber(int chapterNumber) {
+ this.chapterNumber = chapterNumber;
+ }
+
+ public String getChapterName() {
+ return chapterName;
+ }
+
+ public void setChapterName(String chapterName) {
+ this.chapterName = chapterName;
+ }
+
+ public Double getChapterScore() {
+ return chapterScore;
+ }
+
+ public void setChapterScore(Double chapterScore) {
+ this.chapterScore = chapterScore;
+ }
+
+ public Double getPercent() {
+ return percent;
+ }
+
+ public void setPercent(Double percent) {
+ this.percent = percent;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/dto/independence/ClassCourseDto.java b/cloud/common/src/main/java/com/sincere/common/dto/independence/ClassCourseDto.java
new file mode 100644
index 0000000..a784c0a
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/dto/independence/ClassCourseDto.java
@@ -0,0 +1,132 @@
+package com.sincere.common.dto.independence;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/13 0013 16:46
+ */
+public class ClassCourseDto implements Serializable {
+
+ private Integer courseId;
+
+ private Integer schoolId;
+
+ private String grade;
+
+ private Integer classId;
+
+ private Integer singleOrDouble;
+
+ private Integer week;
+
+ private Integer courseNumber;
+
+ private String courseName;
+
+ private Date createTime;
+
+ private Date updateTime;
+
+ private String team ;
+
+ private int courseOpenId ;
+
+ public Integer getCourseId() {
+ return courseId;
+ }
+
+ public void setCourseId(Integer courseId) {
+ this.courseId = courseId;
+ }
+
+ public Integer getSchoolId() {
+ return schoolId;
+ }
+
+ public void setSchoolId(Integer schoolId) {
+ this.schoolId = schoolId;
+ }
+
+ public String getGrade() {
+ return grade;
+ }
+
+ public void setGrade(String grade) {
+ this.grade = grade;
+ }
+
+ public Integer getClassId() {
+ return classId;
+ }
+
+ public void setClassId(Integer classId) {
+ this.classId = classId;
+ }
+
+ public Integer getSingleOrDouble() {
+ return singleOrDouble;
+ }
+
+ public void setSingleOrDouble(Integer singleOrDouble) {
+ this.singleOrDouble = singleOrDouble;
+ }
+
+ public Integer getWeek() {
+ return week;
+ }
+
+ public void setWeek(Integer week) {
+ this.week = week;
+ }
+
+ public Integer getCourseNumber() {
+ return courseNumber;
+ }
+
+ public void setCourseNumber(Integer courseNumber) {
+ this.courseNumber = courseNumber;
+ }
+
+ public String getCourseName() {
+ return courseName;
+ }
+
+ public void setCourseName(String courseName) {
+ this.courseName = courseName == null ? null : courseName.trim();
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public Date getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Date updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getTeam() {
+ return team;
+ }
+
+ public void setTeam(String team) {
+ this.team = team;
+ }
+
+ public int getCourseOpenId() {
+ return courseOpenId;
+ }
+
+ public void setCourseOpenId(int courseOpenId) {
+ this.courseOpenId = courseOpenId;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/dto/independence/ClassModelDto.java b/cloud/common/src/main/java/com/sincere/common/dto/independence/ClassModelDto.java
new file mode 100644
index 0000000..d31fc16
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/dto/independence/ClassModelDto.java
@@ -0,0 +1,51 @@
+package com.sincere.common.dto.independence;
+
+import java.io.Serializable;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/13 0013 16:35
+ */
+public class ClassModelDto implements Serializable {
+
+ private Integer classId;
+
+ private Integer schoolId;
+
+ private String grade;
+
+ private String className;
+
+ public Integer getClassId() {
+ return classId;
+ }
+
+ public void setClassId(Integer classId) {
+ this.classId = classId;
+ }
+
+ public Integer getSchoolId() {
+ return schoolId;
+ }
+
+ public void setSchoolId(Integer schoolId) {
+ this.schoolId = schoolId;
+ }
+
+ public String getGrade() {
+ return grade;
+ }
+
+ public void setGrade(String grade) {
+ this.grade = grade;
+ }
+
+ public String getClassName() {
+ return className;
+ }
+
+ public void setClassName(String className) {
+ this.className = className == null ? null : className.trim();
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/dto/independence/CourseDto.java b/cloud/common/src/main/java/com/sincere/common/dto/independence/CourseDto.java
new file mode 100644
index 0000000..aac57b2
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/dto/independence/CourseDto.java
@@ -0,0 +1,57 @@
+package com.sincere.common.dto.independence;
+
+import java.io.Serializable;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/13 0013 16:38
+ */
+public class CourseDto implements Serializable {
+
+ private int id ;
+ private int schoolId ;
+ private int courseId ;
+ private String courseName ;
+ private int courseType;
+
+ public int getCourseId() {
+ return courseId;
+ }
+
+ public void setCourseId(int courseId) {
+ this.courseId = courseId;
+ }
+
+ public String getCourseName() {
+ return courseName;
+ }
+
+ public void setCourseName(String courseName) {
+ this.courseName = courseName;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public int getSchoolId() {
+ return schoolId;
+ }
+
+ public void setSchoolId(int schoolId) {
+ this.schoolId = schoolId;
+ }
+
+ public int getCourseType() {
+ return courseType;
+ }
+
+ public void setCourseType(int courseType) {
+ this.courseType = courseType;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/dto/independence/GetLearnDto.java b/cloud/common/src/main/java/com/sincere/common/dto/independence/GetLearnDto.java
new file mode 100644
index 0000000..e82a47c
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/dto/independence/GetLearnDto.java
@@ -0,0 +1,30 @@
+package com.sincere.common.dto.independence;
+
+import java.io.Serializable;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/13 0013 9:04
+ */
+public class GetLearnDto implements Serializable {
+
+ private int analyseId ;
+ private String schoolName ;
+
+ public int getAnalyseId() {
+ return analyseId;
+ }
+
+ public void setAnalyseId(int analyseId) {
+ this.analyseId = analyseId;
+ }
+
+ public String getSchoolName() {
+ return schoolName;
+ }
+
+ public void setSchoolName(String schoolName) {
+ this.schoolName = schoolName;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/dto/independence/JoinClassDto.java b/cloud/common/src/main/java/com/sincere/common/dto/independence/JoinClassDto.java
new file mode 100644
index 0000000..0b89397
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/dto/independence/JoinClassDto.java
@@ -0,0 +1,75 @@
+package com.sincere.common.dto.independence;
+
+import java.io.Serializable;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/13 0013 15:32
+ */
+public class JoinClassDto implements Serializable {
+
+ private int id ;
+ private int schoolId ;
+ private int classId ;
+ private String team ;
+ private int courseId ;
+ private String courseName ;
+ private int courseGroup ;
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public int getSchoolId() {
+ return schoolId;
+ }
+
+ public void setSchoolId(int schoolId) {
+ this.schoolId = schoolId;
+ }
+
+ public int getClassId() {
+ return classId;
+ }
+
+ public void setClassId(int classId) {
+ this.classId = classId;
+ }
+
+ public String getTeam() {
+ return team;
+ }
+
+ public void setTeam(String team) {
+ this.team = team;
+ }
+
+ public int getCourseId() {
+ return courseId;
+ }
+
+ public void setCourseId(int courseId) {
+ this.courseId = courseId;
+ }
+
+ public String getCourseName() {
+ return courseName;
+ }
+
+ public void setCourseName(String courseName) {
+ this.courseName = courseName;
+ }
+
+ public int getCourseGroup() {
+ return courseGroup;
+ }
+
+ public void setCourseGroup(int courseGroup) {
+ this.courseGroup = courseGroup;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/dto/independence/LeagueDto.java b/cloud/common/src/main/java/com/sincere/common/dto/independence/LeagueDto.java
new file mode 100644
index 0000000..05654b2
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/dto/independence/LeagueDto.java
@@ -0,0 +1,48 @@
+package com.sincere.common.dto.independence;
+
+import java.io.Serializable;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/13 0013 9:46
+ */
+public class LeagueDto implements Serializable {
+
+ private int id ;
+ private int analyseId ;
+ private String league ;
+ private String schoolName ;
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public int getAnalyseId() {
+ return analyseId;
+ }
+
+ public void setAnalyseId(int analyseId) {
+ this.analyseId = analyseId;
+ }
+
+ public String getLeague() {
+ return league;
+ }
+
+ public void setLeague(String league) {
+ this.league = league;
+ }
+
+ public String getSchoolName() {
+ return schoolName;
+ }
+
+ public void setSchoolName(String schoolName) {
+ this.schoolName = schoolName;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/dto/independence/ScheduleDto.java b/cloud/common/src/main/java/com/sincere/common/dto/independence/ScheduleDto.java
new file mode 100644
index 0000000..7617ffc
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/dto/independence/ScheduleDto.java
@@ -0,0 +1,103 @@
+package com.sincere.common.dto.independence;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/13 0013 13:51
+ */
+public class ScheduleDto implements Serializable {
+
+ private int id ;
+ private String scheduleName ;
+ private int schoolId ;
+ private String team ;
+ private Date createTime ;
+ private Date updateTime ;
+ private int speed ;
+ private int morning ;
+ private int afternoon;
+ private int night ;
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getScheduleName() {
+ return scheduleName;
+ }
+
+ public void setScheduleName(String scheduleName) {
+ this.scheduleName = scheduleName;
+ }
+
+ public int getSchoolId() {
+ return schoolId;
+ }
+
+ public void setSchoolId(int schoolId) {
+ this.schoolId = schoolId;
+ }
+
+ public String getTeam() {
+ return team;
+ }
+
+ public void setTeam(String team) {
+ this.team = team;
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public Date getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Date updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public int getSpeed() {
+ return speed;
+ }
+
+ public void setSpeed(int speed) {
+ this.speed = speed;
+ }
+
+ public int getMorning() {
+ return morning;
+ }
+
+ public void setMorning(int morning) {
+ this.morning = morning;
+ }
+
+ public int getAfternoon() {
+ return afternoon;
+ }
+
+ public void setAfternoon(int afternoon) {
+ this.afternoon = afternoon;
+ }
+
+ public int getNight() {
+ return night;
+ }
+
+ public void setNight(int night) {
+ this.night = night;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/dto/independence/StudentDetailDto.java b/cloud/common/src/main/java/com/sincere/common/dto/independence/StudentDetailDto.java
new file mode 100644
index 0000000..85cbebd
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/dto/independence/StudentDetailDto.java
@@ -0,0 +1,112 @@
+package com.sincere.common.dto.independence;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/13 0013 10:56
+ */
+public class StudentDetailDto implements Serializable {
+
+ private long id ;
+ private int openId;
+ private String schoolName ;
+ private String className ;
+ private String studentName ;
+ private String studentNumber ;
+ private int analyseId ;
+ private String examNumber ;
+ private Double score ;
+ private Date createTime ;
+ private int correct ; //1 正确 0 错误
+
+ public long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public int getOpenId() {
+ return openId;
+ }
+
+ public void setOpenId(int openId) {
+ this.openId = openId;
+ }
+
+ public String getSchoolName() {
+ return schoolName;
+ }
+
+ public void setSchoolName(String schoolName) {
+ this.schoolName = schoolName;
+ }
+
+ public String getClassName() {
+ return className;
+ }
+
+ public void setClassName(String className) {
+ this.className = className;
+ }
+
+ public String getStudentName() {
+ return studentName;
+ }
+
+ public void setStudentName(String studentName) {
+ this.studentName = studentName;
+ }
+
+ public String getStudentNumber() {
+ return studentNumber;
+ }
+
+ public void setStudentNumber(String studentNumber) {
+ this.studentNumber = studentNumber;
+ }
+
+ public int getAnalyseId() {
+ return analyseId;
+ }
+
+ public void setAnalyseId(int analyseId) {
+ this.analyseId = analyseId;
+ }
+
+ public String getExamNumber() {
+ return examNumber;
+ }
+
+ public void setExamNumber(String examNumber) {
+ this.examNumber = examNumber;
+ }
+
+ public Double getScore() {
+ return score;
+ }
+
+ public void setScore(Double score) {
+ this.score = score;
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public int getCorrect() {
+ return correct;
+ }
+
+ public void setCorrect(int correct) {
+ this.correct = correct;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/dto/independence/StudentDto.java b/cloud/common/src/main/java/com/sincere/common/dto/independence/StudentDto.java
new file mode 100644
index 0000000..7f818bb
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/dto/independence/StudentDto.java
@@ -0,0 +1,95 @@
+package com.sincere.common.dto.independence;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/13 0013 10:51
+ */
+public class StudentDto implements Serializable {
+
+ private int id ;
+ private int openId;
+ private String schoolName ;
+ private String className ;
+ private String studentName ;
+ private String studentNumber ;
+ private int analyseId ;
+ private double score ;
+ private Date createTime ;
+
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public int getOpenId() {
+ return openId;
+ }
+
+ public void setOpenId(int openId) {
+ this.openId = openId;
+ }
+
+ public String getSchoolName() {
+ return schoolName;
+ }
+
+ public void setSchoolName(String schoolName) {
+ this.schoolName = schoolName;
+ }
+
+ public String getClassName() {
+ return className;
+ }
+
+ public void setClassName(String className) {
+ this.className = className;
+ }
+
+ public String getStudentName() {
+ return studentName;
+ }
+
+ public void setStudentName(String studentName) {
+ this.studentName = studentName;
+ }
+
+ public String getStudentNumber() {
+ return studentNumber;
+ }
+
+ public void setStudentNumber(String studentNumber) {
+ this.studentNumber = studentNumber;
+ }
+
+ public int getAnalyseId() {
+ return analyseId;
+ }
+
+ public void setAnalyseId(int analyseId) {
+ this.analyseId = analyseId;
+ }
+
+ public double getScore() {
+ return score;
+ }
+
+ public void setScore(double score) {
+ this.score = score;
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/dto/independence/TeacherClassDto.java b/cloud/common/src/main/java/com/sincere/common/dto/independence/TeacherClassDto.java
new file mode 100644
index 0000000..270eedb
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/dto/independence/TeacherClassDto.java
@@ -0,0 +1,132 @@
+package com.sincere.common.dto.independence;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/13 0013 16:53
+ */
+public class TeacherClassDto implements Serializable {
+
+ private Integer tClassId;
+
+ private Integer teacherId;
+
+ private String teacherName;
+
+ private Integer schoolId;
+
+ private String grade;
+
+ private Integer classId;
+
+ private String courseName;
+
+ private Integer times;
+
+ private Integer joinTimes;
+
+ private Date createTime;
+
+ private String team ;
+
+ private int status ;
+
+ public Integer gettClassId() {
+ return tClassId;
+ }
+
+ public void settClassId(Integer tClassId) {
+ this.tClassId = tClassId;
+ }
+
+ public Integer getTeacherId() {
+ return teacherId;
+ }
+
+ public void setTeacherId(Integer teacherId) {
+ this.teacherId = teacherId;
+ }
+
+ public String getTeacherName() {
+ return teacherName;
+ }
+
+ public void setTeacherName(String teacherName) {
+ this.teacherName = teacherName == null ? null : teacherName.trim();
+ }
+
+ public Integer getSchoolId() {
+ return schoolId;
+ }
+
+ public void setSchoolId(Integer schoolId) {
+ this.schoolId = schoolId;
+ }
+
+ public String getGrade() {
+ return grade;
+ }
+
+ public void setGrade(String grade) {
+ this.grade = grade;
+ }
+
+ public Integer getClassId() {
+ return classId;
+ }
+
+ public void setClassId(Integer classId) {
+ this.classId = classId;
+ }
+
+ public String getCourseName() {
+ return courseName;
+ }
+
+ public void setCourseName(String courseName) {
+ this.courseName = courseName == null ? null : courseName.trim();
+ }
+
+ public Integer getTimes() {
+ return times;
+ }
+
+ public void setTimes(Integer times) {
+ this.times = times;
+ }
+
+ public Integer getJoinTimes() {
+ return joinTimes;
+ }
+
+ public void setJoinTimes(Integer joinTimes) {
+ this.joinTimes = joinTimes;
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getTeam() {
+ return team;
+ }
+
+ public void setTeam(String team) {
+ this.team = team;
+ }
+
+ public int getStatus() {
+ return status;
+ }
+
+ public void setStatus(int status) {
+ this.status = status;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/enums/DifficultEnums.java b/cloud/common/src/main/java/com/sincere/common/enums/DifficultEnums.java
new file mode 100644
index 0000000..be5cabb
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/enums/DifficultEnums.java
@@ -0,0 +1,66 @@
+package com.sincere.common.enums;
+
+/**
+ * 学情分析 题目困难程度
+ * @author chen
+ * @version 1.0 1
+ * @date 2019/10/18 0018 8:40
+ */
+public enum DifficultEnums {
+
+ easy(1,"易","认知"),
+ medium(2,"中","理解"),
+ difficult(3,"难","应用");
+
+ private int difficultType ;
+ private String difficultName ;
+ private String difficultShow ;
+
+ DifficultEnums(int difficultType, String difficultName, String difficultShow) {
+ this.difficultType = difficultType;
+ this.difficultName = difficultName;
+ this.difficultShow = difficultShow;
+ }
+
+ public String getDifficultShow() {
+ return difficultShow;
+ }
+
+ public void setDifficultShow(String difficultShow) {
+ this.difficultShow = difficultShow;
+ }
+
+ public int getDifficultType() {
+ return difficultType;
+ }
+
+ public void setDifficultType(int difficultType) {
+ this.difficultType = difficultType;
+ }
+
+ public String getDifficultName() {
+ return difficultName;
+ }
+
+ public void setDifficultName(String difficultName) {
+ this.difficultName = difficultName;
+ }
+
+ public static int getDifficultType(String difficultName){
+ for (DifficultEnums difficultEnums : DifficultEnums.values()) {
+ if (difficultEnums.getDifficultName().equals(difficultName)) {
+ return difficultEnums.getDifficultType();
+ }
+ }
+ return 0 ;
+ }
+
+ public static String getDifficultName(int difficultType){
+ for (DifficultEnums difficultEnums : DifficultEnums.values()) {
+ if (difficultEnums.getDifficultType() == difficultType) {
+ return difficultEnums.getDifficultName();
+ }
+ }
+ return "" ;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/enums/DimensionalEnums.java b/cloud/common/src/main/java/com/sincere/common/enums/DimensionalEnums.java
new file mode 100644
index 0000000..0fd4200
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/enums/DimensionalEnums.java
@@ -0,0 +1,38 @@
+package com.sincere.common.enums;
+
+/**
+ * 学情分析 四维细目
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/18 0018 8:33
+ */
+public enum DimensionalEnums {
+ knowledge(1,"知识点"),
+ ability(2,"能力"),
+ skill(3,"技能"),
+ think(4,"四维");
+
+ private int dimensionalType ;
+ private String dimensionalName ;
+
+ DimensionalEnums(int dimensionalType, String dimensionalName) {
+ this.dimensionalType = dimensionalType;
+ this.dimensionalName = dimensionalName;
+ }
+
+ public int getDimensionalType() {
+ return dimensionalType;
+ }
+
+ public void setDimensionalType(int dimensionalType) {
+ this.dimensionalType = dimensionalType;
+ }
+
+ public String getDimensionalName() {
+ return dimensionalName;
+ }
+
+ public void setDimensionalName(String dimensionalName) {
+ this.dimensionalName = dimensionalName;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/util/HttpClientUtils.java b/cloud/common/src/main/java/com/sincere/common/util/HttpClientUtils.java
new file mode 100644
index 0000000..c138e63
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/util/HttpClientUtils.java
@@ -0,0 +1,164 @@
+package com.sincere.common.util;
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpStatus;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+/**
+ * HttpClient4.3工具类
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/11 0011 10:17
+ */
+public class HttpClientUtils {
+
+ private static RequestConfig requestConfig = null;
+
+ static
+ {
+ // 设置请求和传输超时时间
+ requestConfig = RequestConfig.custom().setSocketTimeout(2000).setConnectTimeout(2000).build();
+ }
+
+ public static void main(String[] args){
+ JSONObject teacherList = HttpClientUtils.httpGet("http://60.190.202.57:1000/api/EasyN/GetSchoolSubject?SchoolId=1");
+ System.out.println("1");
+ }
+
+ /**
+ * post请求传输json参数
+ * @param url url地址
+ * @param jsonParam 参数
+ * @return
+ */
+ public static JSONObject httpPost(String url, JSONObject jsonParam) {
+ // post请求返回结果
+ CloseableHttpClient httpClient = HttpClients.createDefault();
+ JSONObject jsonResult = null;
+ HttpPost httpPost = new HttpPost(url);
+ // 设置请求和传输超时时间
+ httpPost.setConfig(requestConfig);
+ try {
+ if (null != jsonParam) {
+ // 解决中文乱码问题
+ StringEntity entity = new StringEntity(jsonParam.toString(), "utf-8");
+ entity.setContentEncoding("UTF-8");
+ entity.setContentType("application/json");
+ httpPost.setEntity(entity);
+ }
+ CloseableHttpResponse result = httpClient.execute(httpPost);
+ // 请求发送成功,并得到响应
+ if (result.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
+ String str = "";
+ // 读取服务器返回过来的json字符串数据
+ str = EntityUtils.toString(result.getEntity(), "utf-8");
+ // 把json字符串转换成json对象
+ jsonResult = JSONObject.parseObject(str);
+
+ }
+ } catch (IOException e) {
+
+ } finally {
+ httpPost.releaseConnection();
+ }
+ return jsonResult;
+ }
+
+ /**
+ * post请求传输String参数 例如:name=Jack&sex=1&type=2
+ * Content-type:application/x-www-form-urlencoded
+ * @param url url地址
+ * @param strParam 参数
+ * @return
+ */
+ public static JSONObject httpPost(String url, String strParam) {
+ // post请求返回结果
+ CloseableHttpClient httpClient = HttpClients.createDefault();
+ JSONObject jsonResult = null;
+ HttpPost httpPost = new HttpPost(url);
+ httpPost.setConfig(requestConfig);
+ try {
+ if (null != strParam) {
+ // 解决中文乱码问题
+ StringEntity entity = new StringEntity(strParam, "utf-8");
+ entity.setContentEncoding("UTF-8");
+ entity.setContentType("application/x-www-form-urlencoded");
+ httpPost.setEntity(entity);
+ }
+ CloseableHttpResponse result = httpClient.execute(httpPost);
+ // 请求发送成功,并得到响应
+ if (result.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
+ String str = "";
+ // 读取服务器返回过来的json字符串数据
+ str = EntityUtils.toString(result.getEntity(), "utf-8");
+ // 把json字符串转换成json对象
+ jsonResult = JSONObject.parseObject(str);
+ }
+ } catch (IOException e) {
+
+ } finally {
+ httpPost.releaseConnection();
+ }
+ return jsonResult;
+ }
+
+ /**
+ * 发送get请求
+ * @param url 路径
+ * @return
+ */
+ public static JSONObject httpGet(String url) {
+ // get请求返回结果
+ JSONObject jsonResult = null;
+ CloseableHttpClient client = HttpClients.createDefault();
+ // 发送get请求
+ HttpGet request = new HttpGet(url);
+ request.setConfig(requestConfig);
+ try {
+ CloseableHttpResponse response = client.execute(request);
+ // 请求发送成功,并得到响应
+ if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
+ // 读取服务器返回过来的json字符串数据
+ HttpEntity entity = response.getEntity();
+ String strResult = EntityUtils.toString(entity, "utf-8");
+ // 把json字符串转换成json对象
+ jsonResult = JSONObject.parseObject(strResult);
+ }
+ } catch (IOException e) {
+
+ } finally {
+ request.releaseConnection();
+ }
+ return jsonResult;
+ }
+
+
+ public static InputStream GetFileInputStream(String fileUrl){
+ try{
+ URL url = new URL(fileUrl);
+ HttpURLConnection conn = (HttpURLConnection)url.openConnection();
+ //设置超时间为3秒
+ conn.setConnectTimeout(8*1000);
+ //得到输入流
+ InputStream inputStream = conn.getInputStream();
+
+ return inputStream ;
+ }catch (Exception e){
+
+ }
+ return null ;
+ }
+}
\ No newline at end of file
diff --git a/cloud/common/src/main/java/com/sincere/common/util/RedisUtils.java b/cloud/common/src/main/java/com/sincere/common/util/RedisUtils.java
new file mode 100644
index 0000000..f38d33f
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/util/RedisUtils.java
@@ -0,0 +1,225 @@
+package com.sincere.common.util;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.stereotype.Component;
+import redis.clients.jedis.Jedis;
+import redis.clients.jedis.JedisPool;
+import redis.clients.jedis.JedisPoolConfig;
+
+import javax.annotation.PostConstruct;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/5 0005 8:51
+ */
+@Component
+@PropertySource(value = "classpath:conf.properties")
+public class RedisUtils {
+
+
+ @Value("${redis.host}")
+ private String host;
+ @Value("${redis.port}")
+ private int port;
+ @Value("${redis.password}")
+ private String password;
+
+ @PostConstruct
+ public void getApiToken() {
+ ADDR = this.host ;
+ PORT = this.port ;
+ AUTH = this.password ;
+ }
+
+ //Redis服务器IP
+ private static String ADDR;
+
+ //Redis的端口号
+ private static int PORT;
+
+ //访问密码
+ private static String AUTH;
+
+ //可用连接实例的最大数目,默认值为8;
+ //如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。
+ private static int MAX_ACTIVE = 1024;
+
+ //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。
+ private static int MAX_IDLE = 200;
+
+ //等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException;
+ private static int MAX_WAIT = 10000;
+
+ private static int TIMEOUT = 10000;
+
+ //在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
+ private static boolean TEST_ON_BORROW = true;
+
+ private static JedisPool jedisPool = null;
+
+
+ /**
+ * 获取Jedis实例
+ * @return
+ */
+ public synchronized static Jedis getJedis() {
+
+ try {
+ if (jedisPool != null) {
+ Jedis resource = jedisPool.getResource();
+ return resource;
+ } else {
+ JedisPoolConfig config = new JedisPoolConfig();
+ config.setMaxTotal(MAX_ACTIVE);
+ config.setMaxIdle(MAX_IDLE);
+ config.setMaxWaitMillis(MAX_WAIT);
+ config.setTestOnBorrow(TEST_ON_BORROW);
+ jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH);
+ Jedis resource = jedisPool.getResource();
+ return resource;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ public static void main(String[] args) {
+ RedisUtils.setString("test","test");
+ }
+ /**
+ * 释放jedis资源
+ * @param jedis
+ */
+ public static void returnResource(final Jedis jedis) {
+ if (jedis != null) {
+ jedisPool.returnResource(jedis);
+ }
+ }
+
+ public static void setString(String key ,String value){
+ Jedis jedis = null;
+ try {
+ jedis = getJedis();
+ jedis.set(key,value);
+ } catch (Exception e) {
+ System.out.println("setString设置redis键值异常:key=" + key + " value=" + value + " cause:" + e.getMessage());
+ } finally {
+ if(jedis != null)
+ {
+ jedis.close();
+ }
+ }
+ }
+
+ public static void setObject(String key,Object object) {
+ Jedis jedis = null;
+ try {
+ jedis = getJedis();
+ jedis.set(key.getBytes(), SerializeUtil.serialize(object));
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.out.println("setString设置redis键值异常:key=" + key + " value=" + object + " cause:" + e.getMessage());
+ } finally {
+ if(jedis != null)
+ {
+ jedis.close();
+ }
+ }
+ }
+
+ public static void setString(String key ,String value , int expireTime){
+ String result = "OK";
+ Jedis jedis = null;
+ try {
+ jedis = getJedis();
+ jedis.set(key,value);
+ if(result.equals("OK")) {
+ jedis.expire(key.getBytes(), expireTime);
+ }
+ } catch (Exception e) {
+ System.out.println("setString设置redis键值异常:key=" + key + " value=" + value + " cause:" + e.getMessage());
+ } finally {
+ if(jedis != null)
+ {
+ jedis.close();
+ }
+ }
+ }
+
+ public static String getString(String key) {
+ Jedis jedis = null;
+ try {
+ jedis = getJedis();
+ String value = jedis.get(key);
+ return value;
+ } catch (Exception e) {
+ System.out.println("getString获取redis键值异常:key=" + key + " cause:" + e.getMessage());
+ } finally {
+ jedis.close();
+ }
+ return null;
+ }
+
+ public static Object getObject(String key) {
+ Jedis jedis = null;
+ try {
+ jedis = getJedis();
+ byte[] value = jedis.get(key.getBytes());
+ return SerializeUtil. unserialize(value);
+ } catch (Exception e) {
+ System.out.println("getString获取redis键值异常:key=" + key + " cause:" + e.getMessage());
+ } finally {
+ jedis.close();
+ }
+ return null;
+ }
+
+
+ /**
+ * 删除key
+ */
+ public static Long delkeyObject(String key) {
+ Jedis jedis = null;
+ try {
+ jedis = getJedis();
+ return jedis.del(key.getBytes());
+ }catch(Exception e) {
+ e.printStackTrace();
+ return null;
+ }finally{
+ if(jedis != null)
+ {
+ jedis.close();
+ }
+ }
+ }
+
+ public static Boolean existsObject(String key) {
+ Jedis jedis = null;
+ try {
+ jedis = getJedis();
+ return jedis.exists(key);
+ }catch(Exception e) {
+ e.printStackTrace();
+ return false;
+ }finally{
+ if(jedis != null)
+ {
+ jedis.close();
+ }
+ }
+ }
+
+ public static void flushAll() {
+ Jedis jedis = null;
+ try {
+ jedis = getJedis();
+ jedis.flushAll();
+ } catch (Exception e) {
+ System.out.println("Cache清空失败:" + e);
+ }
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/util/SerializeUtil.java b/cloud/common/src/main/java/com/sincere/common/util/SerializeUtil.java
new file mode 100644
index 0000000..8845226
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/util/SerializeUtil.java
@@ -0,0 +1,44 @@
+package com.sincere.common.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/5 0005 9:06
+ */
+public class SerializeUtil {
+
+ // 序列化
+ public static byte[] serialize(Object object) {
+ ObjectOutputStream oos;
+ oos = null;
+ ByteArrayOutputStream baos = null;
+ try {
+ baos = new ByteArrayOutputStream();
+ oos = new ObjectOutputStream(baos);
+ oos.writeObject(object);
+ byte[] bytes = baos.toByteArray();
+ return bytes;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ // 反序列化
+ public static Object unserialize( byte[] bytes) {
+ ByteArrayInputStream bais = null;
+ try {
+ bais = new ByteArrayInputStream(bytes);
+ ObjectInputStream ois = new ObjectInputStream(bais);
+ return ois.readObject();
+ } catch (Exception e) {
+
+ }
+ return null;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/BaseVo.java b/cloud/common/src/main/java/com/sincere/common/vo/BaseVo.java
new file mode 100644
index 0000000..46ef4cb
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/BaseVo.java
@@ -0,0 +1,29 @@
+package com.sincere.common.vo;
+
+import java.io.Serializable;
+
+public class BaseVo implements Serializable {
+
+ private boolean success;
+ private String message ;
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public BaseVo() {
+ success = true;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/ClassCourseDetailVo.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/ClassCourseDetailVo.java
new file mode 100644
index 0000000..96b4902
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/ClassCourseDetailVo.java
@@ -0,0 +1,58 @@
+package com.sincere.common.vo.independence.paike;
+
+import com.sincere.common.dto.independence.TeacherClassDto;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/12 0012 8:30
+ */
+public class ClassCourseDetailVo {
+
+ private String courseName ;
+ private String teacherName ;
+ private int times ;
+ private int joinTimes ;
+
+
+ public ClassCourseDetailVo(TeacherClassDto teacherClass) {
+ this.courseName = teacherClass.getCourseName();
+ this.teacherName = teacherClass.getTeacherName();
+ this.joinTimes = teacherClass.getJoinTimes();
+ this.times = teacherClass.getTimes()-2*(teacherClass.getJoinTimes());
+ }
+
+
+ public String getCourseName() {
+ return courseName;
+ }
+
+ public void setCourseName(String courseName) {
+ this.courseName = courseName;
+ }
+
+ public String getTeacherName() {
+ return teacherName;
+ }
+
+ public void setTeacherName(String teacherName) {
+ this.teacherName = teacherName;
+ }
+
+ public int getTimes() {
+ return times;
+ }
+
+ public void setTimes(int times) {
+ this.times = times;
+ }
+
+ public int getJoinTimes() {
+ return joinTimes;
+ }
+
+ public void setJoinTimes(int joinTimes) {
+ this.joinTimes = joinTimes;
+ }
+
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/ClassCourseRepVo.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/ClassCourseRepVo.java
new file mode 100644
index 0000000..6cbad20
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/ClassCourseRepVo.java
@@ -0,0 +1,25 @@
+package com.sincere.common.vo.independence.paike;
+
+
+import com.sincere.common.dto.independence.ClassCourseDto;
+import com.sincere.common.vo.BaseVo;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/11 0011 10:17
+ */
+public class ClassCourseRepVo extends BaseVo {
+
+ private List data;
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/ClassCourseVO.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/ClassCourseVO.java
new file mode 100644
index 0000000..8303354
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/ClassCourseVO.java
@@ -0,0 +1,49 @@
+package com.sincere.common.vo.independence.paike;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/12 0012 8:30
+ */
+public class ClassCourseVO {
+
+ private int classId ;
+ private String className ;
+ private int allCount ;
+
+ List list ;
+
+ public int getClassId() {
+ return classId;
+ }
+
+ public void setClassId(int classId) {
+ this.classId = classId;
+ }
+
+ public String getClassName() {
+ return className;
+ }
+
+ public void setClassName(String className) {
+ this.className = className;
+ }
+
+ public int getAllCount() {
+ return allCount;
+ }
+
+ public void setAllCount(int allCount) {
+ this.allCount = allCount;
+ }
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/ClassRepVo.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/ClassRepVo.java
new file mode 100644
index 0000000..0f652aa
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/ClassRepVo.java
@@ -0,0 +1,24 @@
+package com.sincere.common.vo.independence.paike;
+
+import com.sincere.common.dto.independence.ClassModelDto;
+import com.sincere.common.vo.BaseVo;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/11 0011 14:08
+ */
+public class ClassRepVo extends BaseVo {
+
+ private List data ;
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/CourseGroupReqVo.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/CourseGroupReqVo.java
new file mode 100644
index 0000000..3961b5a
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/CourseGroupReqVo.java
@@ -0,0 +1,30 @@
+package com.sincere.common.vo.independence.paike;
+
+import java.io.Serializable;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/12 0012 8:58
+ */
+public class CourseGroupReqVo implements Serializable {
+
+ private int scheduleId ;
+ private int courseGroup ;
+
+ public int getScheduleId() {
+ return scheduleId;
+ }
+
+ public void setScheduleId(int scheduleId) {
+ this.scheduleId = scheduleId;
+ }
+
+ public int getCourseGroup() {
+ return courseGroup;
+ }
+
+ public void setCourseGroup(int courseGroup) {
+ this.courseGroup = courseGroup;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/CourseRepVo.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/CourseRepVo.java
new file mode 100644
index 0000000..1a12765
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/CourseRepVo.java
@@ -0,0 +1,28 @@
+package com.sincere.common.vo.independence.paike;
+
+import com.sincere.common.dto.independence.CourseDto;
+import com.sincere.common.vo.BaseVo;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/11 0011 10:12
+ */
+public class CourseRepVo extends BaseVo {
+
+ private List data ;
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public CourseRepVo(){
+ super();
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/CourseTypeListVO.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/CourseTypeListVO.java
new file mode 100644
index 0000000..9c44bf1
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/CourseTypeListVO.java
@@ -0,0 +1,42 @@
+package com.sincere.common.vo.independence.paike;
+
+import com.jevon.model.Course;
+import com.sincere.common.dto.independence.CourseDto;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/14 0014 7:58
+ */
+public class CourseTypeListVO {
+
+ private int courseType ;
+ private String courseTypeName ;
+ private List list ;
+
+ public int getCourseType() {
+ return courseType;
+ }
+
+ public void setCourseType(int courseType) {
+ this.courseType = courseType;
+ }
+
+ public String getCourseTypeName() {
+ return courseTypeName;
+ }
+
+ public void setCourseTypeName(String courseTypeName) {
+ this.courseTypeName = courseTypeName;
+ }
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/FirstReqVo.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/FirstReqVo.java
new file mode 100644
index 0000000..1fd6902
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/FirstReqVo.java
@@ -0,0 +1,52 @@
+package com.sincere.common.vo.independence.paike;
+
+import java.io.Serializable;
+
+public class FirstReqVo implements Serializable {
+
+ private int scheduleId;
+ private int morning ;
+ private int afternoon;
+ private int night ;
+ private int dayNumber;
+
+ public int getScheduleId() {
+ return scheduleId;
+ }
+
+ public void setScheduleId(int scheduleId) {
+ this.scheduleId = scheduleId;
+ }
+
+ public int getMorning() {
+ return morning;
+ }
+
+ public void setMorning(int morning) {
+ this.morning = morning;
+ }
+
+ public int getAfternoon() {
+ return afternoon;
+ }
+
+ public void setAfternoon(int afternoon) {
+ this.afternoon = afternoon;
+ }
+
+ public int getNight() {
+ return night;
+ }
+
+ public void setNight(int night) {
+ this.night = night;
+ }
+
+ public int getDayNumber() {
+ return dayNumber;
+ }
+
+ public void setDayNumber(int dayNumber) {
+ this.dayNumber = dayNumber;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/GetCourseClassListRepVo.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/GetCourseClassListRepVo.java
new file mode 100644
index 0000000..be7c605
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/GetCourseClassListRepVo.java
@@ -0,0 +1,57 @@
+package com.sincere.common.vo.independence.paike;
+
+import java.io.Serializable;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/12 0012 9:20
+ */
+public class GetCourseClassListRepVo implements Serializable {
+
+ private int classId ;
+ private String className ;
+ private int courseId ;
+ private String courseName ;
+ private String teacherName ;
+
+ public int getClassId() {
+ return classId;
+ }
+
+ public void setClassId(int classId) {
+ this.classId = classId;
+ }
+
+ public String getClassName() {
+ return className;
+ }
+
+ public void setClassName(String className) {
+ this.className = className;
+ }
+
+ public int getCourseId() {
+ return courseId;
+ }
+
+ public void setCourseId(int courseId) {
+ this.courseId = courseId;
+ }
+
+ public String getCourseName() {
+ return courseName;
+ }
+
+ public void setCourseName(String courseName) {
+ this.courseName = courseName;
+ }
+
+ public String getTeacherName() {
+ return teacherName;
+ }
+
+ public void setTeacherName(String teacherName) {
+ this.teacherName = teacherName;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/GetCourseTypeListRepVo.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/GetCourseTypeListRepVo.java
new file mode 100644
index 0000000..dd05e6a
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/GetCourseTypeListRepVo.java
@@ -0,0 +1,32 @@
+package com.sincere.common.vo.independence.paike;
+
+import com.sincere.common.vo.BaseVo;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/14 0014 7:59
+ */
+public class GetCourseTypeListRepVo extends BaseVo {
+
+ private int scheduleId ;
+ private List data ;
+
+ public int getScheduleId() {
+ return scheduleId;
+ }
+
+ public void setScheduleId(int scheduleId) {
+ this.scheduleId = scheduleId;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/InitRepVo.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/InitRepVo.java
new file mode 100644
index 0000000..d677762
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/InitRepVo.java
@@ -0,0 +1,40 @@
+package com.sincere.common.vo.independence.paike;
+
+
+import com.sincere.common.vo.BaseVo;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/11 0011 16:55
+ */
+public class InitRepVo extends BaseVo {
+
+ private int classNumber ;
+ private int teacherNumber ;
+ private int courseNumber ;
+
+ public int getClassNumber() {
+ return classNumber;
+ }
+
+ public void setClassNumber(int classNumber) {
+ this.classNumber = classNumber;
+ }
+
+ public int getTeacherNumber() {
+ return teacherNumber;
+ }
+
+ public void setTeacherNumber(int teacherNumber) {
+ this.teacherNumber = teacherNumber;
+ }
+
+ public int getCourseNumber() {
+ return courseNumber;
+ }
+
+ public void setCourseNumber(int courseNumber) {
+ this.courseNumber = courseNumber;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/JoinClassReqVo.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/JoinClassReqVo.java
new file mode 100644
index 0000000..688ca96
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/JoinClassReqVo.java
@@ -0,0 +1,40 @@
+package com.sincere.common.vo.independence.paike;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/10 0010 8:40
+ */
+public class JoinClassReqVo implements Serializable {
+
+ private int scheduleId ;
+ private int courseId ;
+ private List classIdList ;
+
+ public int getScheduleId() {
+ return scheduleId;
+ }
+
+ public void setScheduleId(int scheduleId) {
+ this.scheduleId = scheduleId;
+ }
+
+ public int getCourseId() {
+ return courseId;
+ }
+
+ public void setCourseId(int courseId) {
+ this.courseId = courseId;
+ }
+
+ public List getClassIdList() {
+ return classIdList;
+ }
+
+ public void setClassIdList(List classIdList) {
+ this.classIdList = classIdList;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/JoinDetail.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/JoinDetail.java
new file mode 100644
index 0000000..86d6bd6
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/JoinDetail.java
@@ -0,0 +1,46 @@
+package com.sincere.common.vo.independence.paike;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/11 0011 14:27
+ */
+public class JoinDetail {
+
+ private int courseGroup ;
+ private String courseName ;
+ private String className ;
+ private String teacherName ;
+
+ public int getCourseGroup() {
+ return courseGroup;
+ }
+
+ public void setCourseGroup(int courseGroup) {
+ this.courseGroup = courseGroup;
+ }
+
+ public String getCourseName() {
+ return courseName;
+ }
+
+ public void setCourseName(String courseName) {
+ this.courseName = courseName;
+ }
+
+ public String getClassName() {
+ return className;
+ }
+
+ public void setClassName(String className) {
+ this.className = className;
+ }
+
+ public String getTeacherName() {
+ return teacherName;
+ }
+
+ public void setTeacherName(String teacherName) {
+ this.teacherName = teacherName;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/JoinRepVo.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/JoinRepVo.java
new file mode 100644
index 0000000..c83ecfa
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/JoinRepVo.java
@@ -0,0 +1,24 @@
+package com.sincere.common.vo.independence.paike;
+
+
+import com.sincere.common.vo.BaseVo;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/11 0011 14:28
+ */
+public class JoinRepVo extends BaseVo {
+
+ private List data ;
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/NoScheduleReqVo.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/NoScheduleReqVo.java
new file mode 100644
index 0000000..5c0712b
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/NoScheduleReqVo.java
@@ -0,0 +1,58 @@
+package com.sincere.common.vo.independence.paike;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/9 0009 15:53
+ */
+public class NoScheduleReqVo implements Serializable {
+
+ private int scheduleId ;
+ private String grade ;
+ private int classId ;
+ private int level ; //1 班级不排 2 年级不排 3 学校不排
+ private List list ;
+
+ public int getScheduleId() {
+ return scheduleId;
+ }
+
+ public void setScheduleId(int scheduleId) {
+ this.scheduleId = scheduleId;
+ }
+
+ public int getLevel() {
+ return level;
+ }
+
+ public void setLevel(int level) {
+ this.level = level;
+ }
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public String getGrade() {
+ return grade;
+ }
+
+ public void setGrade(String grade) {
+ this.grade = grade;
+ }
+
+ public int getClassId() {
+ return classId;
+ }
+
+ public void setClassId(int classId) {
+ this.classId = classId;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/ParallelClassReqVo.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/ParallelClassReqVo.java
new file mode 100644
index 0000000..3f15b1c
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/ParallelClassReqVo.java
@@ -0,0 +1,68 @@
+package com.sincere.common.vo.independence.paike;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/9/25 0025 8:41
+ */
+public class ParallelClassReqVo implements Serializable {
+
+ private int scheduleId ;
+ private List intervalList ;
+ private int courseType;
+
+ private int level ; //1 班级不排 2 年级不排 3 学校不排
+ private String grade ;
+ private int classId ;
+
+ public int getScheduleId() {
+ return scheduleId;
+ }
+
+ public void setScheduleId(int scheduleId) {
+ this.scheduleId = scheduleId;
+ }
+
+ public List getIntervalList() {
+ return intervalList;
+ }
+
+ public void setIntervalList(List intervalList) {
+ this.intervalList = intervalList;
+ }
+
+ public int getCourseType() {
+ return courseType;
+ }
+
+ public void setCourseType(int courseType) {
+ this.courseType = courseType;
+ }
+
+ public int getLevel() {
+ return level;
+ }
+
+ public void setLevel(int level) {
+ this.level = level;
+ }
+
+ public String getGrade() {
+ return grade;
+ }
+
+ public void setGrade(String grade) {
+ this.grade = grade;
+ }
+
+ public int getClassId() {
+ return classId;
+ }
+
+ public void setClassId(int classId) {
+ this.classId = classId;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/RecallReqVo.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/RecallReqVo.java
new file mode 100644
index 0000000..55fd77d
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/RecallReqVo.java
@@ -0,0 +1,29 @@
+package com.sincere.common.vo.independence.paike;
+
+import java.io.Serializable;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/15 0015 8:08
+ */
+public class RecallReqVo implements Serializable {
+ private int scheduleId ;
+ private int number ;// 对应页面 1不排课 2 公共课 3 主课 4 副课
+
+ public int getScheduleId() {
+ return scheduleId;
+ }
+
+ public void setScheduleId(int scheduleId) {
+ this.scheduleId = scheduleId;
+ }
+
+ public int getNumber() {
+ return number;
+ }
+
+ public void setNumber(int number) {
+ this.number = number;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/ScheduleListRepVo.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/ScheduleListRepVo.java
new file mode 100644
index 0000000..aeb0b3d
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/ScheduleListRepVo.java
@@ -0,0 +1,28 @@
+package com.sincere.common.vo.independence.paike;
+
+
+import com.sincere.common.dto.independence.ScheduleDto;
+import com.sincere.common.vo.BaseVo;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/11 0011 14:03
+ */
+public class ScheduleListRepVo extends BaseVo {
+
+ private List data ;
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+ public ScheduleListRepVo(){
+ super();
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/SetTypeReqVo.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/SetTypeReqVo.java
new file mode 100644
index 0000000..5425c1a
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/SetTypeReqVo.java
@@ -0,0 +1,41 @@
+package com.sincere.common.vo.independence.paike;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/9 0009 16:32
+ */
+public class SetTypeReqVo implements Serializable {
+
+ private int scheduleId ;
+ private int courseType ; // 1 主课 2 副课 3 公共课
+ private List courseIdList ;
+
+
+ public int getCourseType() {
+ return courseType;
+ }
+
+ public void setCourseType(int courseType) {
+ this.courseType = courseType;
+ }
+
+ public int getScheduleId() {
+ return scheduleId;
+ }
+
+ public void setScheduleId(int scheduleId) {
+ this.scheduleId = scheduleId;
+ }
+
+ public List getCourseIdList() {
+ return courseIdList;
+ }
+
+ public void setCourseIdList(List courseIdList) {
+ this.courseIdList = courseIdList;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/TeacherCourseRepVo.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/TeacherCourseRepVo.java
new file mode 100644
index 0000000..1faa9f8
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/paike/TeacherCourseRepVo.java
@@ -0,0 +1,33 @@
+package com.sincere.common.vo.independence.paike;
+
+
+import com.sincere.common.vo.BaseVo;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/12 0012 8:32
+ */
+public class TeacherCourseRepVo extends BaseVo {
+
+ private List data ;
+ private List courseNameList ;
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public List getCourseNameList() {
+ return courseNameList;
+ }
+
+ public void setCourseNameList(List courseNameList) {
+ this.courseNameList = courseNameList;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form1.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form1.java
new file mode 100644
index 0000000..71e9381
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form1.java
@@ -0,0 +1,46 @@
+package com.sincere.common.vo.independence.school;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/18 0018 15:37
+ */
+@ApiModel
+public class Form1 implements Serializable {
+
+ @ApiModelProperty(value="等级")
+ private String level ;
+ @ApiModelProperty(value="人数")
+ private int number ;
+ @ApiModelProperty(value="比例")
+ private double prop ;
+
+ public String getLevel() {
+ return level;
+ }
+
+ public void setLevel(String level) {
+ this.level = level;
+ }
+
+ public int getNumber() {
+ return number;
+ }
+
+ public void setNumber(int number) {
+ this.number = number;
+ }
+
+ public double getProp() {
+ return prop;
+ }
+
+ public void setProp(double prop) {
+ this.prop = prop;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form1RepVO.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form1RepVO.java
new file mode 100644
index 0000000..058f0ce
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form1RepVO.java
@@ -0,0 +1,38 @@
+package com.sincere.common.vo.independence.school;
+
+import com.sincere.common.vo.BaseVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/18 0018 15:46
+ */
+@ApiModel
+public class Form1RepVO extends BaseVo {
+
+ @ApiModelProperty(value="分数段区间")
+ private Map map ;
+ @ApiModelProperty(value="分数段详情")
+ private List list ;
+
+ public Map getMap() {
+ return map;
+ }
+
+ public void setMap(Map map) {
+ this.map = map;
+ }
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form2.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form2.java
new file mode 100644
index 0000000..8134780
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form2.java
@@ -0,0 +1,86 @@
+package com.sincere.common.vo.independence.school;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/18 0018 16:10
+ */
+@ApiModel
+public class Form2 implements Serializable {
+
+ @ApiModelProperty(value="名称")
+ private String name ;
+ @ApiModelProperty(value="参考人数")
+ private int studentNumber ;
+ @ApiModelProperty(value="参考人数占比")
+ private double studentProp ;
+ @ApiModelProperty(value="高分段人数")
+ private int highNumber ;
+ @ApiModelProperty(value="高分段人数占比")
+ private double highProp ;
+ @ApiModelProperty(value="低分段人数")
+ private int lowNumber ;
+ @ApiModelProperty(value="低分段人数占比")
+ private double lowProp ;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getStudentNumber() {
+ return studentNumber;
+ }
+
+ public void setStudentNumber(int studentNumber) {
+ this.studentNumber = studentNumber;
+ }
+
+ public int getHighNumber() {
+ return highNumber;
+ }
+
+ public void setHighNumber(int highNumber) {
+ this.highNumber = highNumber;
+ }
+
+ public double getHighProp() {
+ return highProp;
+ }
+
+ public void setHighProp(double highProp) {
+ this.highProp = highProp;
+ }
+
+ public int getLowNumber() {
+ return lowNumber;
+ }
+
+ public void setLowNumber(int lowNumber) {
+ this.lowNumber = lowNumber;
+ }
+
+ public double getLowProp() {
+ return lowProp;
+ }
+
+ public void setLowProp(double lowProp) {
+ this.lowProp = lowProp;
+ }
+
+ public double getStudentProp() {
+ return studentProp;
+ }
+
+ public void setStudentProp(double studentProp) {
+ this.studentProp = studentProp;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form2RepVO.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form2RepVO.java
new file mode 100644
index 0000000..00511de
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form2RepVO.java
@@ -0,0 +1,26 @@
+package com.sincere.common.vo.independence.school;
+
+import com.sincere.common.vo.BaseVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/22 0022 9:51
+ */
+@ApiModel
+public class Form2RepVO extends BaseVo {
+ @ApiModelProperty(value="数据")
+ private List data ;
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form3.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form3.java
new file mode 100644
index 0000000..07807e8
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form3.java
@@ -0,0 +1,96 @@
+package com.sincere.common.vo.independence.school;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/21 0021 9:03
+ */
+@ApiModel
+public class Form3 implements Serializable {
+
+ @ApiModelProperty(value="名称")
+ private String name ;
+ @ApiModelProperty(value="最高分")
+ private Double maxScore ;
+ @ApiModelProperty(value="平均分")
+ private Double average ;
+ @ApiModelProperty(value="最低分")
+ private Double minScore ;
+ @ApiModelProperty(value="优秀率")
+ private Double apercent ;
+ @ApiModelProperty(value="良好率")
+ private Double bpercent ;
+ @ApiModelProperty(value="及格率")
+ private Double cpercent ;
+ @ApiModelProperty(value="不及格率")
+ private Double dpercent ;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Double getMaxScore() {
+ return maxScore;
+ }
+
+ public void setMaxScore(Double maxScore) {
+ this.maxScore = maxScore;
+ }
+
+ public Double getAverage() {
+ return average;
+ }
+
+ public void setAverage(Double average) {
+ this.average = average;
+ }
+
+ public Double getMinScore() {
+ return minScore;
+ }
+
+ public void setMinScore(Double minScore) {
+ this.minScore = minScore;
+ }
+
+ public Double getApercent() {
+ return apercent;
+ }
+
+ public void setApercent(Double apercent) {
+ this.apercent = apercent;
+ }
+
+ public Double getBpercent() {
+ return bpercent;
+ }
+
+ public void setBpercent(Double bpercent) {
+ this.bpercent = bpercent;
+ }
+
+ public Double getCpercent() {
+ return cpercent;
+ }
+
+ public void setCpercent(Double cpercent) {
+ this.cpercent = cpercent;
+ }
+
+ public Double getDpercent() {
+ return dpercent;
+ }
+
+ public void setDpercent(Double dpercent) {
+ this.dpercent = dpercent;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form3RepVO.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form3RepVO.java
new file mode 100644
index 0000000..f5a1ff5
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form3RepVO.java
@@ -0,0 +1,23 @@
+package com.sincere.common.vo.independence.school;
+
+import com.sincere.common.vo.BaseVo;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/22 0022 10:14
+ */
+public class Form3RepVO extends BaseVo {
+
+ private List data ;
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form4.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form4.java
new file mode 100644
index 0000000..899e657
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form4.java
@@ -0,0 +1,66 @@
+package com.sincere.common.vo.independence.school;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/21 0021 9:51
+ */
+@ApiModel
+public class Form4 implements Serializable {
+
+ @ApiModelProperty(value="名称")
+ private String name ;
+ @ApiModelProperty(value="众数")
+ private Double modeNumber ;
+ @ApiModelProperty(value="中位数")
+ private Double medianNumber ;
+ @ApiModelProperty(value="标准差")
+ private Double stdev ;
+ @ApiModelProperty(value="平均分")
+ private Double avgNumber ;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Double getModeNumber() {
+ return modeNumber;
+ }
+
+ public void setModeNumber(Double modeNumber) {
+ this.modeNumber = modeNumber;
+ }
+
+ public Double getMedianNumber() {
+ return medianNumber;
+ }
+
+ public void setMedianNumber(Double medianNumber) {
+ this.medianNumber = medianNumber;
+ }
+
+ public Double getStdev() {
+ return stdev;
+ }
+
+ public void setStdev(Double stdev) {
+ this.stdev = stdev;
+ }
+
+ public Double getAvgNumber() {
+ return avgNumber;
+ }
+
+ public void setAvgNumber(Double avgNumber) {
+ this.avgNumber = avgNumber;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form4RepVO.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form4RepVO.java
new file mode 100644
index 0000000..e96da13
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form4RepVO.java
@@ -0,0 +1,25 @@
+package com.sincere.common.vo.independence.school;
+
+import com.sincere.common.vo.BaseVo;
+import io.swagger.annotations.ApiModel;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/22 0022 10:23
+ */
+@ApiModel
+public class Form4RepVO extends BaseVo {
+
+ private List data ;
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form5.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form5.java
new file mode 100644
index 0000000..d03f961
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form5.java
@@ -0,0 +1,136 @@
+package com.sincere.common.vo.independence.school;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/21 0021 9:59
+ */
+@ApiModel
+public class Form5 implements Serializable {
+ @ApiModelProperty(value="题号")
+ private String examNumber ;
+ @ApiModelProperty(value="难度")
+ private String difficultName ;
+ @ApiModelProperty(value="分值")
+ private Double score ;
+ @ApiModelProperty(value="得分率 区")
+ private Double allRate ;
+ @ApiModelProperty(value="得分率 联盟校")
+ private Double leagueRate ;
+ @ApiModelProperty(value="得分率 本校")
+ private Double schoolRate ;
+ @ApiModelProperty(value="平均分 区")
+ private Double allAvg ;
+ @ApiModelProperty(value="平均分 联盟校")
+ private Double leagueAvg ;
+ @ApiModelProperty(value="平均分 本校")
+ private Double schoolAvg ;
+ @ApiModelProperty(value="区分度 区")
+ private Double allDist ;
+ @ApiModelProperty(value="区分度 联盟校")
+ private Double leagueDist ;
+ @ApiModelProperty(value="区分度 本校")
+ private Double schoolDist ;
+
+
+ public String getExamNumber() {
+ return examNumber;
+ }
+
+ public void setExamNumber(String examNumber) {
+ this.examNumber = examNumber;
+ }
+
+ public Double getScore() {
+ return score;
+ }
+
+ public void setScore(Double score) {
+ this.score = score;
+ }
+
+ public Double getAllRate() {
+ return allRate;
+ }
+
+ public void setAllRate(Double allRate) {
+ this.allRate = allRate;
+ }
+
+ public Double getSchoolRate() {
+ return schoolRate;
+ }
+
+ public void setSchoolRate(Double schoolRate) {
+ this.schoolRate = schoolRate;
+ }
+
+ public Double getAllAvg() {
+ return allAvg;
+ }
+
+ public void setAllAvg(Double allAvg) {
+ this.allAvg = allAvg;
+ }
+
+ public Double getSchoolAvg() {
+ return schoolAvg;
+ }
+
+ public void setSchoolAvg(Double schoolAvg) {
+ this.schoolAvg = schoolAvg;
+ }
+
+ public Double getAllDist() {
+ return allDist;
+ }
+
+ public void setAllDist(Double allDist) {
+ this.allDist = allDist;
+ }
+
+ public Double getSchoolDist() {
+ return schoolDist;
+ }
+
+ public void setSchoolDist(Double schoolDist) {
+ this.schoolDist = schoolDist;
+ }
+
+ public String getDifficultName() {
+ return difficultName;
+ }
+
+ public void setDifficultName(String difficultName) {
+ this.difficultName = difficultName;
+ }
+
+ public Double getLeagueRate() {
+ return leagueRate;
+ }
+
+ public void setLeagueRate(Double leagueRate) {
+ this.leagueRate = leagueRate;
+ }
+
+ public Double getLeagueAvg() {
+ return leagueAvg;
+ }
+
+ public void setLeagueAvg(Double leagueAvg) {
+ this.leagueAvg = leagueAvg;
+ }
+
+ public Double getLeagueDist() {
+ return leagueDist;
+ }
+
+ public void setLeagueDist(Double leagueDist) {
+ this.leagueDist = leagueDist;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form5RepVO.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form5RepVO.java
new file mode 100644
index 0000000..cdf3770
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form5RepVO.java
@@ -0,0 +1,25 @@
+package com.sincere.common.vo.independence.school;
+
+import com.sincere.common.vo.BaseVo;
+import io.swagger.annotations.ApiModel;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/22 0022 10:28
+ */
+@ApiModel
+public class Form5RepVO extends BaseVo {
+
+ private List data ;
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form6.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form6.java
new file mode 100644
index 0000000..0317324
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form6.java
@@ -0,0 +1,137 @@
+package com.sincere.common.vo.independence.school;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/21 0021 11:25
+ */
+@ApiModel
+public class Form6 implements Serializable {
+ @ApiModelProperty(value="维度名称")
+ private String dimensional ;
+ @ApiModelProperty(value="分值")
+ private Double score ;
+ @ApiModelProperty(value="得分率 区")
+ private Double allRate ;
+ @ApiModelProperty(value="得分率 联盟校")
+ private Double leagueRate ;
+ @ApiModelProperty(value="得分率 本校")
+ private Double schoolRate ;
+ @ApiModelProperty(value="平均分 区")
+ private Double allAvg ;
+ @ApiModelProperty(value="平均分 联盟校")
+ private Double leagueAvg ;
+ @ApiModelProperty(value="平均分 本校")
+ private Double schoolAvg ;
+ @ApiModelProperty(value="区分度 区")
+ private Double allDist ;
+ @ApiModelProperty(value="区分度 联盟校")
+ private Double leagueDist ;
+ @ApiModelProperty(value="区分度 本校")
+ private Double schoolDist ;
+
+
+ private String examNumber ;
+
+
+ public Double getScore() {
+ return score;
+ }
+
+ public void setScore(Double score) {
+ this.score = score;
+ }
+
+ public Double getAllRate() {
+ return allRate;
+ }
+
+ public void setAllRate(Double allRate) {
+ this.allRate = allRate;
+ }
+
+ public Double getSchoolRate() {
+ return schoolRate;
+ }
+
+ public void setSchoolRate(Double schoolRate) {
+ this.schoolRate = schoolRate;
+ }
+
+ public Double getAllAvg() {
+ return allAvg;
+ }
+
+ public void setAllAvg(Double allAvg) {
+ this.allAvg = allAvg;
+ }
+
+ public Double getSchoolAvg() {
+ return schoolAvg;
+ }
+
+ public void setSchoolAvg(Double schoolAvg) {
+ this.schoolAvg = schoolAvg;
+ }
+
+ public Double getAllDist() {
+ return allDist;
+ }
+
+ public void setAllDist(Double allDist) {
+ this.allDist = allDist;
+ }
+
+ public Double getSchoolDist() {
+ return schoolDist;
+ }
+
+ public void setSchoolDist(Double schoolDist) {
+ this.schoolDist = schoolDist;
+ }
+
+ public String getExamNumber() {
+ return examNumber;
+ }
+
+ public void setExamNumber(String examNumber) {
+ this.examNumber = examNumber;
+ }
+
+ public String getDimensional() {
+ return dimensional;
+ }
+
+ public void setDimensional(String dimensional) {
+ this.dimensional = dimensional;
+ }
+
+ public Double getLeagueRate() {
+ return leagueRate;
+ }
+
+ public void setLeagueRate(Double leagueRate) {
+ this.leagueRate = leagueRate;
+ }
+
+ public Double getLeagueAvg() {
+ return leagueAvg;
+ }
+
+ public void setLeagueAvg(Double leagueAvg) {
+ this.leagueAvg = leagueAvg;
+ }
+
+ public Double getLeagueDist() {
+ return leagueDist;
+ }
+
+ public void setLeagueDist(Double leagueDist) {
+ this.leagueDist = leagueDist;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form6RepVO.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form6RepVO.java
new file mode 100644
index 0000000..04aa62a
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form6RepVO.java
@@ -0,0 +1,25 @@
+package com.sincere.common.vo.independence.school;
+
+import com.sincere.common.vo.BaseVo;
+import io.swagger.annotations.ApiModel;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/22 0022 10:51
+ */
+@ApiModel
+public class Form6RepVO extends BaseVo {
+
+ private List data ;
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form7.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form7.java
new file mode 100644
index 0000000..80fa9d3
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form7.java
@@ -0,0 +1,46 @@
+package com.sincere.common.vo.independence.school;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/21 0021 14:58
+ */
+@ApiModel
+public class Form7 implements Serializable {
+
+ @ApiModelProperty(value = "名称")
+ private String name ;
+ @ApiModelProperty(value = "分值")
+ private Double score ;
+ @ApiModelProperty(value = "占比")
+ private Double percent ;
+
+ public Double getScore() {
+ return score;
+ }
+
+ public void setScore(Double score) {
+ this.score = score;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Double getPercent() {
+ return percent;
+ }
+
+ public void setPercent(Double percent) {
+ this.percent = percent;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form7RepVO.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form7RepVO.java
new file mode 100644
index 0000000..e035127
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form7RepVO.java
@@ -0,0 +1,88 @@
+package com.sincere.common.vo.independence.school;
+
+import com.sincere.common.dto.independence.ChapterDto;
+import com.sincere.common.vo.BaseVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/24 0024 9:20
+ */
+@ApiModel
+public class Form7RepVO extends BaseVo {
+
+ @ApiModelProperty(value = "举例七年级上册")
+ private String examScope ;
+ @ApiModelProperty(value = "科目")
+ private String courseName ;
+ @ApiModelProperty(value = "满分")
+ private Double maxScore ;
+ @ApiModelProperty(value = "考试时长")
+ private String examTime ;
+ @ApiModelProperty(value = "章节列表对应分值")
+ private List list ;
+ @ApiModelProperty(value = "难度列表对应分值")
+ private List difficultList ;
+ @ApiModelProperty(value = "题型类型对应分值")
+ private List typeList ;
+
+ public String getExamScope() {
+ return examScope;
+ }
+
+ public void setExamScope(String examScope) {
+ this.examScope = examScope;
+ }
+
+ public String getCourseName() {
+ return courseName;
+ }
+
+ public void setCourseName(String courseName) {
+ this.courseName = courseName;
+ }
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public List getDifficultList() {
+ return difficultList;
+ }
+
+ public void setDifficultList(List difficultList) {
+ this.difficultList = difficultList;
+ }
+
+ public List getTypeList() {
+ return typeList;
+ }
+
+ public void setTypeList(List typeList) {
+ this.typeList = typeList;
+ }
+
+ public Double getMaxScore() {
+ return maxScore;
+ }
+
+ public void setMaxScore(Double maxScore) {
+ this.maxScore = maxScore;
+ }
+
+ public String getExamTime() {
+ return examTime;
+ }
+
+ public void setExamTime(String examTime) {
+ this.examTime = examTime;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form8.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form8.java
new file mode 100644
index 0000000..43080d0
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form8.java
@@ -0,0 +1,66 @@
+package com.sincere.common.vo.independence.school;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/21 0021 15:14
+ */
+@ApiModel
+public class Form8 implements Serializable {
+
+ @ApiModelProperty(value="题目难度")
+ private String difficultName ;
+ @ApiModelProperty(value="分值")
+ private Double score ;
+ @ApiModelProperty(value="得分率 区")
+ private Double allRate ;
+ @ApiModelProperty(value="得分率 联盟校")
+ private Double leagueRate ;
+ @ApiModelProperty(value="得分率 本校")
+ private Double schoolRate ;
+
+ public String getDifficultName() {
+ return difficultName;
+ }
+
+ public void setDifficultName(String difficultName) {
+ this.difficultName = difficultName;
+ }
+
+ public Double getScore() {
+ return score;
+ }
+
+ public void setScore(Double score) {
+ this.score = score;
+ }
+
+ public Double getAllRate() {
+ return allRate;
+ }
+
+ public void setAllRate(Double allRate) {
+ this.allRate = allRate;
+ }
+
+ public Double getSchoolRate() {
+ return schoolRate;
+ }
+
+ public void setSchoolRate(Double schoolRate) {
+ this.schoolRate = schoolRate;
+ }
+
+ public Double getLeagueRate() {
+ return leagueRate;
+ }
+
+ public void setLeagueRate(Double leagueRate) {
+ this.leagueRate = leagueRate;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form8RepVO.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form8RepVO.java
new file mode 100644
index 0000000..8abb5cc
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Form8RepVO.java
@@ -0,0 +1,25 @@
+package com.sincere.common.vo.independence.school;
+
+import com.sincere.common.vo.BaseVo;
+import io.swagger.annotations.ApiModel;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/22 0022 10:47
+ */
+@ApiModel
+public class Form8RepVO extends BaseVo {
+
+ private List data ;
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/school/SuggestRepVo.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/SuggestRepVo.java
new file mode 100644
index 0000000..d4ac84d
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/SuggestRepVo.java
@@ -0,0 +1,135 @@
+package com.sincere.common.vo.independence.school;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/23 0023 9:04
+ */
+@ApiModel
+public class SuggestRepVo {
+ @ApiModelProperty(value = "总体情况")
+ private String assess ;
+ @ApiModelProperty(value = "难度系数")
+ private String difficultyDegree ;
+ @ApiModelProperty(value = "优秀率")
+ private String excellentRate ;
+ @ApiModelProperty(value = "知识点得分率不到50%的")
+ private List lessKnowledgeList ;
+ @ApiModelProperty(value = "知识点得分率不到70%")
+ private List midKnowledgeList ;
+ @ApiModelProperty(value = "学习能力得分率<69%")
+ private List lessAbilityList ;
+ @ApiModelProperty(value = "学习能力得分率在70%≤η<80%")
+ private List midAbilityList ;
+ @ApiModelProperty(value = "学习能力得分率≥80%")
+ private List highAbilityList ;
+ @ApiModelProperty(value = "探究技能方面得分率<69%")
+ private List lessSkillList ;
+ @ApiModelProperty(value = "探究技能方面得分率在70%≤η<80%")
+ private List midSkillList ;
+ @ApiModelProperty(value = "探究技能方面得分率≥80%")
+ private List highSkillList ;
+ @ApiModelProperty(value = "选择题错误率>15%")
+ private List errorList ;
+
+ public List getErrorList() {
+ return errorList;
+ }
+
+ public void setErrorList(List errorList) {
+ this.errorList = errorList;
+ }
+
+ public String getAssess() {
+ return assess;
+ }
+
+ public void setAssess(String assess) {
+ this.assess = assess;
+ }
+
+ public String getDifficultyDegree() {
+ return difficultyDegree;
+ }
+
+ public void setDifficultyDegree(String difficultyDegree) {
+ this.difficultyDegree = difficultyDegree;
+ }
+
+ public String getExcellentRate() {
+ return excellentRate;
+ }
+
+ public void setExcellentRate(String excellentRate) {
+ this.excellentRate = excellentRate;
+ }
+
+ public List getLessKnowledgeList() {
+ return lessKnowledgeList;
+ }
+
+ public void setLessKnowledgeList(List lessKnowledgeList) {
+ this.lessKnowledgeList = lessKnowledgeList;
+ }
+
+ public List getMidKnowledgeList() {
+ return midKnowledgeList;
+ }
+
+ public void setMidKnowledgeList(List midKnowledgeList) {
+ this.midKnowledgeList = midKnowledgeList;
+ }
+
+ public List getLessAbilityList() {
+ return lessAbilityList;
+ }
+
+ public void setLessAbilityList(List lessAbilityList) {
+ this.lessAbilityList = lessAbilityList;
+ }
+
+ public List getMidAbilityList() {
+ return midAbilityList;
+ }
+
+ public void setMidAbilityList(List midAbilityList) {
+ this.midAbilityList = midAbilityList;
+ }
+
+ public List getHighAbilityList() {
+ return highAbilityList;
+ }
+
+ public void setHighAbilityList(List highAbilityList) {
+ this.highAbilityList = highAbilityList;
+ }
+
+ public List getLessSkillList() {
+ return lessSkillList;
+ }
+
+ public void setLessSkillList(List lessSkillList) {
+ this.lessSkillList = lessSkillList;
+ }
+
+ public List getMidSkillList() {
+ return midSkillList;
+ }
+
+ public void setMidSkillList(List midSkillList) {
+ this.midSkillList = midSkillList;
+ }
+
+ public List getHighSkillList() {
+ return highSkillList;
+ }
+
+ public void setHighSkillList(List highSkillList) {
+ this.highSkillList = highSkillList;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Table1.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Table1.java
new file mode 100644
index 0000000..dd181e5
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Table1.java
@@ -0,0 +1,35 @@
+package com.sincere.common.vo.independence.school;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/21 0021 8:34
+ */
+@ApiModel
+public class Table1 implements Serializable {
+ @ApiModelProperty(value="分数段")
+ private String score ;
+ @ApiModelProperty(value="人数")
+ private int number ;
+
+ public String getScore() {
+ return score;
+ }
+
+ public void setScore(String score) {
+ this.score = score;
+ }
+
+ public int getNumber() {
+ return number;
+ }
+
+ public void setNumber(int number) {
+ this.number = number;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Table2.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Table2.java
new file mode 100644
index 0000000..00bc70b
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Table2.java
@@ -0,0 +1,55 @@
+package com.sincere.common.vo.independence.school;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/5 0005 8:27
+ */
+@ApiModel
+public class Table2 implements Serializable {
+ @ApiModelProperty(value = "知识点")
+ private String knowledge ;
+ @ApiModelProperty(value = "得分率")
+ private Double schoolRate ;
+ @ApiModelProperty(value = "考频")
+ private String rate ;
+ @ApiModelProperty(value = "平均分")
+ private String avg ;
+
+ public String getKnowledge() {
+ return knowledge;
+ }
+
+ public void setKnowledge(String knowledge) {
+ this.knowledge = knowledge;
+ }
+
+ public Double getSchoolRate() {
+ return schoolRate;
+ }
+
+ public void setSchoolRate(Double schoolRate) {
+ this.schoolRate = schoolRate;
+ }
+
+ public String getRate() {
+ return rate;
+ }
+
+ public void setRate(String rate) {
+ this.rate = rate;
+ }
+
+ public String getAvg() {
+ return avg;
+ }
+
+ public void setAvg(String avg) {
+ this.avg = avg;
+ }
+}
diff --git a/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Table2RepVO.java b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Table2RepVO.java
new file mode 100644
index 0000000..dc5058b
--- /dev/null
+++ b/cloud/common/src/main/java/com/sincere/common/vo/independence/school/Table2RepVO.java
@@ -0,0 +1,23 @@
+package com.sincere.common.vo.independence.school;
+
+import com.sincere.common.vo.BaseVo;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/5 0005 8:39
+ */
+public class Table2RepVO extends BaseVo {
+
+ private List data ;
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+}
diff --git a/cloud/common/src/main/resources/conf.properties b/cloud/common/src/main/resources/conf.properties
new file mode 100644
index 0000000..de8d9c0
--- /dev/null
+++ b/cloud/common/src/main/resources/conf.properties
@@ -0,0 +1,4 @@
+#redis
+redis.host=121.40.109.21
+redis.port=6379
+redis.password=123456
\ No newline at end of file
diff --git a/cloud/independence/pom.xml b/cloud/independence/pom.xml
new file mode 100644
index 0000000..fbf0f83
--- /dev/null
+++ b/cloud/independence/pom.xml
@@ -0,0 +1,181 @@
+
+
+
+ cloud
+ com.sincere
+ 1.0.0
+
+ 4.0.0
+
+ independence
+
+
+
+ com.sincere
+ common
+ 0.0.1-SNAPSHOT
+
+
+ com.googlecode.rapid-framework
+ rapid-core
+ 4.0.5
+
+
+ org.apache.commons
+ commons-lang3
+ 3.3.2
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.springframework.cloud
+ spring-cloud-starter-feign
+ 1.3.6.RELEASE
+
+
+ org.springframework.cloud
+ spring-cloud-openfeign-core
+ 2.1.2.RELEASE
+
+
+ io.springfox
+ springfox-swagger2
+ 2.5.0
+
+
+ io.springfox
+ springfox-swagger-ui
+ 2.5.0
+
+
+
+ org.slf4j
+ slf4j-api
+ 1.7.13
+
+
+
+
+ commons-net
+ commons-net
+ 2.0
+
+
+ org.apache.poi
+ poi
+ 4.1.0
+
+
+
+ org.apache.poi
+ poi-ooxml
+ 4.1.0
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+ 2.6.5
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.6.5
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+ 2.6.5
+
+
+
+
+
+ independence
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+ 1.8
+ 1.8
+ UTF-8
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ com.jevon.Application
+ true
+ lib/
+
+
+ ./config/
+
+
+
+ config/**
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+
+
+ copy
+ package
+
+ copy-dependencies
+
+
+
+ ${project.build.directory}/lib
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+ 2.5
+
+ UTF-8
+
+
+
+
+ maven-source-plugin
+ 2.2
+
+ true
+
+
+
+ compile
+
+ jar
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cloud/independence/src/main/java/com/sincere/independence/IndependenceApplication.java b/cloud/independence/src/main/java/com/sincere/independence/IndependenceApplication.java
new file mode 100644
index 0000000..db3b2e5
--- /dev/null
+++ b/cloud/independence/src/main/java/com/sincere/independence/IndependenceApplication.java
@@ -0,0 +1,18 @@
+package com.sincere.independence;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+@EnableFeignClients(basePackages = "com.sincere.independence.feign")
+@EnableEurekaClient
+@SpringBootApplication
+public class IndependenceApplication {
+
+
+ public static void main(String[] args) {
+ SpringApplication.run(IndependenceApplication.class, args);
+ }
+
+}
diff --git a/cloud/independence/src/main/java/com/sincere/independence/Swagger2.java b/cloud/independence/src/main/java/com/sincere/independence/Swagger2.java
new file mode 100644
index 0000000..d87d7c9
--- /dev/null
+++ b/cloud/independence/src/main/java/com/sincere/independence/Swagger2.java
@@ -0,0 +1,38 @@
+package com.sincere.independence;
+
+import io.swagger.annotations.ApiOperation;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+@EnableSwagger2
+@Configuration //让Spring来加载该类配置
+public class Swagger2 {
+
+ @Bean
+ public Docket createRestApi() {
+ return new Docket(DocumentationType.SWAGGER_2)
+ .apiInfo(apiInfo())
+ .enableUrlTemplating(true)
+ .select()
+ // 扫描所有有注解的api,用这种方式更灵活
+ .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
+ .paths(PathSelectors.any())
+ .build();
+
+ }
+ private ApiInfo apiInfo() {
+ return new ApiInfoBuilder()
+ .title("Spring Boot中使用Swagger2构建RESTful APIs")
+ .description("接口文档")
+ .termsOfServiceUrl("")
+ .version("1.0")
+ .build();
+ }
+}
diff --git a/cloud/independence/src/main/java/com/sincere/independence/controller/LearnController.java b/cloud/independence/src/main/java/com/sincere/independence/controller/LearnController.java
new file mode 100644
index 0000000..1361b99
--- /dev/null
+++ b/cloud/independence/src/main/java/com/sincere/independence/controller/LearnController.java
@@ -0,0 +1,444 @@
+package com.sincere.independence.controller;
+
+import com.sincere.common.dto.independence.*;
+import com.sincere.common.enums.DifficultEnums;
+import com.sincere.common.enums.DimensionalEnums;
+import com.sincere.common.util.RedisUtils;
+import com.sincere.common.vo.BaseVo;
+import com.sincere.independence.feign.LearnFeign;
+import com.sincere.independence.vo.*;
+import com.sincere.independence.vo.excel.ExamExcelVo;
+import com.sincere.independence.vo.excel.ScoreExcelVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.*;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/17 0017 13:33
+ */
+@RestController
+@RequestMapping(value = "/learn")
+@Api(value = "学情分析")
+public class LearnController {
+
+ @Autowired
+ LearnFeign learnFeign ;
+
+ @ApiOperation("获取列表")
+ @RequestMapping(value = "getList", method = RequestMethod.POST)
+ public List getList(){
+ return learnFeign.getList(new AnalyseDto());
+ }
+
+ @ApiOperation("获取详情,微信入口")
+ @RequestMapping(value = "getDetail", method = RequestMethod.GET)
+ public List getAnalyseId(String grade , String schoolName){
+ List result = new ArrayList<>();
+ AnalyseDto search = new AnalyseDto();
+ String[] msg = grade.split(",");
+ for(String gradeMsg : msg){
+ search.setGrade(initGrade(gradeMsg,schoolName));
+ List analyseList = learnFeign.getList(search);
+ if(analyseList != null && analyseList.size() > 0){
+ for(AnalyseDto analyse :analyseList){
+ List leagues = learnFeign.getLeagueByAnalyse(analyse.getId());
+ for(LeagueDto league : leagues){
+ if(league.getSchoolName() != null && league.getSchoolName().equals(schoolName)){
+ result.add(analyse);
+ break;
+ }
+ }
+ }
+ }
+ }
+ if(result.size() == 0){
+ AnalyseDto searchAnalyse = new AnalyseDto();
+ searchAnalyse.setExamName("顺治中学模拟考试");
+ List analyseList = learnFeign.getList(searchAnalyse);
+ if(analyseList != null && analyseList.size() > 0){
+ result.add(analyseList.get(0));
+ }
+ }
+ return result ;
+ }
+
+ private String initGrade(String grade , String schoolName){
+ String result = null ;
+ if(schoolName.equals("绍兴市越城区皋埠中学")){
+ if(grade.equals("2019级初中一年级")){
+ result = "七年级" ;
+ }
+ if(grade.equals("2017级初中三年级")){
+ result = "九年级" ;
+ }
+ }
+ if(schoolName.equals("绍兴市建功中学")){
+ if(grade.equals("2019级初中一年级")){
+ result = "七年级" ;
+ }
+ if(grade.equals("2017级初中三年级")){
+ result = "九年级" ;
+ }
+ }
+ if(schoolName.equals("绍兴长城中学")){
+ if(grade.equals("2019级初中一年级")){
+ result = "七年级" ;
+ }
+ if(grade.equals("2017级初中三年级")){
+ result = "九年级" ;
+ }
+ }
+ if(schoolName.equals("绍兴市文澜中学")){
+ if(grade.equals("2019级初中一年级")){
+ result = "七年级" ;
+ }
+ if(grade.equals("2017级初中三年级")){
+ result = "九年级" ;
+ }
+ }
+ if(schoolName.equals("绍兴文理学院附属中学(慧)")){
+ if(grade.equals("2019级初中一年级")){
+ result = "七年级" ;
+ }
+ if(grade.equals("2017级初中三年级")){
+ result = "九年级" ;
+ }
+ }
+ if(result == null){
+ result = grade ;
+ }
+ return result ;
+ }
+
+ @ApiOperation("创建考试")
+ @RequestMapping(value = "createExam", method = RequestMethod.POST)
+ public BaseVo createExam(@RequestBody CreateExamReqVo createExamReqVo){
+ AnalyseDto analyse = new AnalyseDto();
+ analyse.setCourseName(createExamReqVo.getCourseName());
+ analyse.setExamName(createExamReqVo.getExamName());
+ analyse.setExamTime(createExamReqVo.getExamTime());
+ analyse.setCreateTime(new Date());
+ analyse.setGrade(createExamReqVo.getGrade());
+ return learnFeign.insertAnalyse(analyse);
+ }
+
+ @ApiOperation("更新考试信息")
+ @RequestMapping(value = "updateExam", method = RequestMethod.POST)
+ public BaseVo updateExam(@RequestBody UpdateExamReqVo updateExamReqVo){
+ BaseVo baseVo = new BaseVo();
+ AnalyseDto analyse = learnFeign.selectById(updateExamReqVo.getAnalyseId());
+ if(analyse == null){
+ baseVo.setMessage("考试不存在");
+ baseVo.setSuccess(false);
+ return baseVo;
+ }
+ analyse.setExamTime(updateExamReqVo.getExamTime());
+ analyse.setExamName(updateExamReqVo.getExamName());
+ analyse.setCourseName(updateExamReqVo.getCourseName());
+ analyse.setGrade(updateExamReqVo.getGrade());
+ return learnFeign.updateAnalyse(analyse);
+ }
+
+ @ApiOperation("试卷信息导入")
+ @RequestMapping(value = "initAnalyse", method = RequestMethod.POST)
+ public BaseVo initAnalyse(@RequestBody InitAnalyseReqVo initAnalyseReqVo){
+ BaseVo baseVo = new BaseVo();
+ AnalyseDto analyse = learnFeign.selectById(initAnalyseReqVo.getAnalyseId());
+ List analyseDetails = learnFeign.isImportExam(analyse.getId());
+ if(analyseDetails != null & analyseDetails.size() > 0){
+ baseVo.setMessage("已经导入");
+ baseVo.setSuccess(false);
+ }else {
+ RedisUtils.flushAll();
+ analysisExcel(initAnalyseReqVo);
+ }
+ return baseVo;
+ }
+
+ private void analysisExcel(InitAnalyseReqVo initAnalyseReqVo){
+ try{
+ List analyseDetails = new ArrayList<>();
+ List analyseDimensionals = new ArrayList<>();
+ Float maxScore = 0f;
+ AnalyseDto analyse = learnFeign.selectById(initAnalyseReqVo.getAnalyseId());
+ File excelFile = new File(initAnalyseReqVo.getUrl());
+ // 获得工作簿
+ String file = excelFile.getName();
+ Workbook workbook = null;
+ InputStream inputStream = new FileInputStream(excelFile) ;
+ //InputStream inputStream = HttpClientUtils.GetFileInputStream(initAnalyseReqVo.getUrl());
+ if(inputStream == null){
+ return;
+ }
+ if (file.endsWith("xls")) {
+ workbook = new HSSFWorkbook(inputStream);
+ } else {
+ workbook = new XSSFWorkbook(inputStream);
+ }
+ // 获得工作表
+ Sheet sheet = workbook.getSheetAt(0);
+ Date date = new Date();
+ int rows = sheet.getPhysicalNumberOfRows();
+ for (int i = 0; i < rows; i++) {
+ // 获取第i行数据
+ Row sheetRow = sheet.getRow(i);
+ if (i == 0) {
+ //获取标题
+ String title = sheetRow.getCell(0).getStringCellValue().trim();
+ }else if(i == 1){
+ //获取表头
+ } else {
+ ExamExcelVo examExcelVo = new ExamExcelVo(sheetRow);
+ if(examExcelVo.getScore() != null){
+ maxScore = maxScore + new Float(examExcelVo.getScore());
+ AnalyseDetailDto analyseDetail = new AnalyseDetailDto();
+ String questionNumber = null ;
+ if(StringUtils.isNotBlank(examExcelVo.getQuestionSmallNumber())){
+ questionNumber = examExcelVo.getQuestionNumber()+"("+examExcelVo.getQuestionSmallNumber()+")";
+ }else {
+ questionNumber = examExcelVo.getQuestionNumber() ;
+ }
+ analyseDetail.setQuestionNumber(questionNumber);
+ analyseDetail.setAnalyseId(analyse.getId());
+ analyseDetail.setQuestionType(examExcelVo.getQuestionType());
+ analyseDetail.setDifficult(DifficultEnums.getDifficultType(examExcelVo.getDifficult()));
+ analyseDetail.setScore(new Double(examExcelVo.getScore()));
+ analyseDetail.setCreateTime(date);
+ analyseDetails.add(analyseDetail);
+ initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getKnowledge(), DimensionalEnums.knowledge.getDimensionalType(),analyseDimensionals);
+ initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getAbility(),DimensionalEnums.ability.getDimensionalType(),analyseDimensionals);
+ initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getSkill(),DimensionalEnums.skill.getDimensionalType(),analyseDimensionals);
+ initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getThink(),DimensionalEnums.think.getDimensionalType(),analyseDimensionals);
+ }
+ }
+ }
+ learnFeign.insertBatchAnalyseDetail(analyseDetails);
+ learnFeign.insertBatchAnalyseDimensional(analyseDimensionals);
+ analyse.setMaxScore(new Double(maxScore));
+ learnFeign.updateAnalyse(analyse);
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+
+ private void initAnalyseDimensional(AnalyseDto analyse ,String questionNumber , String score , String dimensionalMessage , int dimensionalType , List analyseDimensionals){
+ if(StringUtils.isNotBlank(dimensionalMessage)){
+ String[] message =dimensionalMessage.split("、");
+ for (int j = 0; j < message.length ; j++) {
+ if(StringUtils.isNotBlank(message[j])){
+ //查数据库是否已存在该四维诊断 不存在则导入
+ int dimensionalId = learnFeign.selectDimensional(dimensionalType,message[j]);
+ AnalyseDimensionalDto analyseDimensional = new AnalyseDimensionalDto();
+ analyseDimensional.setAnalyseId(analyse.getId());
+ analyseDimensional.setDimensionalId(dimensionalId);
+ analyseDimensional.setQuestionNumber(questionNumber);
+ analyseDimensional.setScore(new Double(score));
+ analyseDimensional.setCreateTime(new Date());
+ analyseDimensionals.add(analyseDimensional);
+ }
+ }
+ }
+ }
+
+ @ApiOperation("考生成绩导入")
+ @RequestMapping(value = "initScore", method = RequestMethod.POST)
+ public BaseVo initScore(@RequestBody InitScoreReqVo initScoreReqVo){
+ BaseVo baseVo = new BaseVo();
+ boolean success = analysisScoreExcel(initScoreReqVo);
+ if(!success){
+ baseVo.setSuccess(false);
+ baseVo.setMessage("一个学校不能在两个联盟下");
+ }
+ return baseVo;
+ }
+
+ private boolean analysisScoreExcel(InitScoreReqVo initScoreReqVo){
+ try{
+ AnalyseDto analyse = learnFeign.selectById(initScoreReqVo.getAnalyseId());
+ List analyseDetails = learnFeign.isImportExam(analyse.getId());
+ Map scoreMap = new HashMap<>();
+ for(AnalyseDetailDto analyseDetail : analyseDetails){
+ scoreMap.put(analyseDetail.getQuestionNumber(),analyseDetail.getScore());
+ }
+ File excelFile = new File(initScoreReqVo.getUrl());
+ // 获得工作簿
+ String file = excelFile.getName();
+ Workbook workbook = null;
+ InputStream inputStream = new FileInputStream(excelFile) ;
+ //InputStream inputStream = HttpClientUtils.GetFileInputStream(initScoreReqVo.getUrl());
+ if(inputStream == null){
+ return false ;
+ }
+ if (file.endsWith("xls")) {
+ workbook = new HSSFWorkbook(inputStream);
+ } else {
+ workbook = new XSSFWorkbook(inputStream);
+ }
+ // 获得工作表
+ for(int number = 0 ; number < workbook.getNumberOfSheets() ; number++){
+ Sheet sheet = workbook.getSheetAt(number);
+ List studentDetails = new ArrayList<>();
+ List students = new ArrayList<>();
+ Date date = new Date();
+ int rows = sheet.getPhysicalNumberOfRows();
+ Map map = new HashMap<>();
+ int column = 0 ;
+ for (int i = 0; i < rows; i++) {
+ // 获取第i行数据
+ Row sheetRow = sheet.getRow(i);
+ if (i == 0) {
+ //获取标题
+ }else if(i == 1){
+ //获取表头
+ int j = 7 ;
+ while (sheetRow.getCell(j) != null){
+ Cell cell = sheetRow.getCell(j);
+ cell.setCellType(CellType.STRING);
+ map.put(j,cell.getStringCellValue().trim().replace("(","(").replace(")",")"));
+ j++;
+ }
+ column = j ;
+ } else {
+ ScoreExcelVo scoreExcelVo = new ScoreExcelVo(sheetRow);
+ if(StringUtils.isNotBlank(scoreExcelVo.getStudentName())){
+ StudentDto student = initStudent(scoreExcelVo);
+ student.setAnalyseId(analyse.getId());
+ student.setCreateTime(date);
+ students.add(student);
+ for(int j = 7 ; j < column ; j++){
+ Cell cell = sheetRow.getCell(j);
+ StudentDetailDto studentDetail = initStudentDetail(scoreExcelVo);
+ studentDetail.setAnalyseId(analyse.getId());
+ studentDetail.setExamNumber(map.get(j));
+ studentDetail.setScore(new Double(cell.getNumericCellValue()));
+ Double score = scoreMap.get((map.get(j))) ;
+ Double studentScore = studentDetail.getScore() ;
+ if(Double.doubleToLongBits(score) == Double.doubleToLongBits(studentScore) ){
+ studentDetail.setCorrect(1);
+ }else {
+ studentDetail.setCorrect(0);
+ }
+ studentDetail.setCreateTime(date);
+ studentDetails.add(studentDetail);
+ }
+ }
+ }
+ }
+ boolean flag = learnFeign.initLeagueSchool(initScoreReqVo.getLeagueId(),students.get(0).getSchoolName());
+ if(flag){
+ learnFeign.insertBatchStudent(students);
+ learnFeign.insertBatchStudentDetail(studentDetails);
+ return true ;
+ }else {
+ return false ;
+ }
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ System.out.println(e.toString());
+ }
+ return false ;
+ }
+
+ private StudentDto initStudent(ScoreExcelVo scoreExcelVo){
+ StudentDto studentDto = new StudentDto();
+ studentDto.setSchoolName(scoreExcelVo.getSchoolName());
+ studentDto.setClassName(scoreExcelVo.getClassName());
+ studentDto.setStudentName(scoreExcelVo.getStudentName());
+ studentDto.setStudentNumber(scoreExcelVo.getStudentNumber());
+ studentDto.setScore(new Double(scoreExcelVo.getScore()));
+ return studentDto;
+ }
+
+ private StudentDetailDto initStudentDetail(ScoreExcelVo scoreExcelVo){
+ StudentDetailDto studentDetailDto = new StudentDetailDto();
+ studentDetailDto.setSchoolName(scoreExcelVo.getSchoolName());
+ studentDetailDto.setClassName(scoreExcelVo.getClassName());
+ studentDetailDto.setStudentName(scoreExcelVo.getStudentName());
+ studentDetailDto.setStudentNumber(scoreExcelVo.getStudentNumber());
+ return studentDetailDto ;
+ }
+
+ @ApiOperation("获取该次考试联盟学校信息")
+ @RequestMapping(value = "getLeague", method = RequestMethod.GET)
+ public GetLeagueRepVo getLeague(int analyseId){
+ GetLeagueRepVo getLeagueRepVo = new GetLeagueRepVo();
+ List leagues = learnFeign.getLeagueByAnalyse(analyseId);
+ List getLeagues = new ArrayList<>();
+ for(LeagueDto league : leagues){
+ boolean isExist = false ;
+ for(GetLeague getLeague : getLeagues){
+ if(getLeague.getLeagueName().equals(league.getLeague())){
+ isExist = true ;
+ List list = getLeague.getLeagues();
+ list.add(league);
+ getLeague.setLeagues(list);
+ }
+ }
+ if(!isExist){
+ GetLeague getLeague = new GetLeague();
+ getLeague.setLeagueName(league.getLeague());
+ List list = new ArrayList<>();
+ list.add(league);
+ getLeague.setLeagues(list);
+ getLeagues.add(getLeague);
+ }
+ }
+ getLeagueRepVo.setData(getLeagues);
+ return getLeagueRepVo;
+ }
+
+ @ApiOperation("创建联盟")
+ @RequestMapping(value = "createLeague", method = RequestMethod.POST)
+ public BaseVo createLeague(@RequestBody CreateLeagueReqVo createLeagueReqVo){
+ BaseVo baseVo = new BaseVo();
+ LeagueDto league = new LeagueDto();
+ AnalyseDto analyse = learnFeign.selectById(createLeagueReqVo.getAnalyseId());
+ league.setAnalyseId(analyse.getId());
+ league.setLeague(createLeagueReqVo.getLeague());
+ int id = learnFeign.insertLeague(league);
+ baseVo.setMessage(id +"");
+ return baseVo;
+ }
+
+ @ApiOperation("基础信息输入")
+ @RequestMapping(value = "createChapter", method = RequestMethod.POST)
+ public BaseVo createChapter(@RequestBody ChapterReqVo chapterReqVo){
+ BaseVo baseVo = new BaseVo();
+ AnalyseDto analyseDto = new AnalyseDto();
+ analyseDto.setId(chapterReqVo.getAnalyseId());
+ analyseDto.setExamTime(chapterReqVo.getExamTime());
+ analyseDto.setExamScope(chapterReqVo.getExamScope());
+ learnFeign.updateAnalyse(analyseDto);
+ List list = new ArrayList<>();
+ for(ChapterReq chapterReq :chapterReqVo.getList()){
+ ChapterDto chapter = new ChapterDto();
+ chapter.setAnalyseId(chapterReqVo.getAnalyseId());
+ chapter.setChapterNumber(chapterReq.getChapterNumber());
+ chapter.setChapterName(chapterReq.getChapterName());
+ chapter.setChapterScore(chapterReq.getScore());
+ list.add(chapter);
+ }
+ learnFeign.initChapter(list);
+ return baseVo;
+ }
+
+ @ApiOperation("获取导入的学校列表")
+ @RequestMapping(value = "getSchoolName", method = RequestMethod.GET)
+ public List getSchoolName(int analyseId){
+ return learnFeign.getSchoolName(analyseId);
+ }
+}
diff --git a/cloud/independence/src/main/java/com/sincere/independence/controller/LearnStatController.java b/cloud/independence/src/main/java/com/sincere/independence/controller/LearnStatController.java
new file mode 100644
index 0000000..5df282a
--- /dev/null
+++ b/cloud/independence/src/main/java/com/sincere/independence/controller/LearnStatController.java
@@ -0,0 +1,132 @@
+package com.sincere.independence.controller;
+
+import com.sincere.common.dto.independence.GetLearnDto;
+import com.sincere.common.vo.independence.school.*;
+import com.sincere.independence.feign.LearnFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/18 0018 15:54
+ */
+@RestController
+@RequestMapping(value = "/getLearn")
+@Api(value = "学情分析")
+public class LearnStatController {
+ @Autowired
+ LearnFeign learnFeign ;
+
+
+ @ApiOperation("getForm1_1")
+ @RequestMapping(value = "getForm1_1", method = RequestMethod.POST)
+ public Form7RepVO getForm1_1(@RequestBody GetLearnDto getLearnDto){
+ return learnFeign.getForm1_1(getLearnDto);
+ }
+
+ @ApiOperation("getForm2_1_1")
+ @RequestMapping(value = "getForm2_1_1", method = RequestMethod.POST)
+ public Form1RepVO getForm2_1_1(@RequestBody GetLearnDto getLearnDto){
+ return learnFeign.getForm2_1_1(getLearnDto);
+ }
+
+ @ApiOperation("getForm2_1_2")
+ @RequestMapping(value = "getForm2_1_2", method = RequestMethod.POST)
+ public Form2RepVO getForm2_1_2(@RequestBody GetLearnDto getLearnDto){
+ return learnFeign.getForm2_1_2(getLearnDto);
+ }
+
+ @ApiOperation("getForm2_1_3_2")
+ @RequestMapping(value = "getForm2_1_3_2", method = RequestMethod.POST)
+ public Form2RepVO getForm2_1_3_2(@RequestBody GetLearnDto getLearnDto){
+ return learnFeign.getForm2_1_3_2(getLearnDto);
+ }
+
+ @ApiOperation("getForm2_1_3")
+ @RequestMapping(value = "getForm2_1_3", method = RequestMethod.POST)
+ public List getForm2_1_3(@RequestBody GetLearnDto getLearnDto){
+ return learnFeign.getForm2_1_3(getLearnDto);
+ }
+
+ @ApiOperation("getForm2_2_1")
+ @RequestMapping(value = "getForm2_2_1", method = RequestMethod.POST)
+ public Form3RepVO getForm2_2_1(@RequestBody GetLearnDto getLearnDto){
+ return learnFeign.getForm2_2_1(getLearnDto);
+ }
+
+ @ApiOperation("getForm2_2_2")
+ @RequestMapping(value = "getForm2_2_2", method = RequestMethod.POST)
+ public Form4RepVO getForm2_2_2(@RequestBody GetLearnDto getLearnDto){
+ return learnFeign.getForm2_2_2(getLearnDto);
+ }
+
+ @ApiOperation("getForm2_2_3")
+ @RequestMapping(value = "getForm2_2_3", method = RequestMethod.POST)
+ public Form5RepVO getForm2_2_3(@RequestBody GetLearnDto getLearnDto){
+ return learnFeign.getForm2_2_3(getLearnDto);
+ }
+
+ @ApiOperation("getForm2_2_4")
+ @RequestMapping(value = "getForm2_2_4", method = RequestMethod.POST)
+ public Form8RepVO getForm2_2_4(@RequestBody GetLearnDto getLearnDto){
+ return learnFeign.getForm2_2_4(getLearnDto);
+ }
+
+ @ApiOperation("getForm2_2_5")
+ @RequestMapping(value = "getForm2_2_5", method = RequestMethod.POST)
+ public Map getForm2_2_5(@RequestBody GetLearnDto getLearnDto){
+ return learnFeign.getForm2_2_5(getLearnDto);
+ }
+
+ @ApiOperation("getForm3_1")
+ @RequestMapping(value = "getForm3_1", method = RequestMethod.POST)
+ public Form6RepVO getForm3_1(@RequestBody GetLearnDto getLearnDto){
+ return learnFeign.getForm3_1(getLearnDto);
+ }
+
+ @ApiOperation("getForm3_1_1")
+ @RequestMapping(value = "getForm3_1_1", method = RequestMethod.POST)
+ public Table2RepVO getForm3_1_1(@RequestBody GetLearnDto getLearnDto){
+ return learnFeign.getForm3_1_1(getLearnDto);
+ }
+
+ @ApiOperation("getForm3_2")
+ @RequestMapping(value = "getForm3_2", method = RequestMethod.POST)
+ public Form6RepVO getForm3_2(@RequestBody GetLearnDto getLearnDto){
+ return learnFeign.getForm3_2(getLearnDto);
+ }
+
+ @ApiOperation("getForm3_3")
+ @RequestMapping(value = "getForm3_3", method = RequestMethod.POST)
+ public Form6RepVO getForm3_3(@RequestBody GetLearnDto getLearnDto){
+ return learnFeign.getForm3_3(getLearnDto);
+ }
+
+ @ApiOperation("getForm3_4")
+ @RequestMapping(value = "getForm3_4", method = RequestMethod.POST)
+ public Form6RepVO getForm3_4(@RequestBody GetLearnDto getLearnDto){
+ return learnFeign.getForm3_4(getLearnDto);
+ }
+
+ @ApiOperation("获取教学改进建议")
+ @RequestMapping(value = "getSuggest", method = RequestMethod.POST)
+ public String getSuggest(@RequestBody GetLearnDto getLearnDto){
+ return learnFeign.getSuggest(getLearnDto);
+ }
+
+ @ApiOperation("获取教学改进建议")
+ @RequestMapping(value = "getSuggest2", method = RequestMethod.POST)
+ public String getSuggest2(@RequestBody GetLearnDto getLearnDto){
+ return learnFeign.getSuggest2(getLearnDto);
+ }
+
+}
diff --git a/cloud/independence/src/main/java/com/sincere/independence/feign/LearnFeign.java b/cloud/independence/src/main/java/com/sincere/independence/feign/LearnFeign.java
new file mode 100644
index 0000000..61f564c
--- /dev/null
+++ b/cloud/independence/src/main/java/com/sincere/independence/feign/LearnFeign.java
@@ -0,0 +1,121 @@
+package com.sincere.independence.feign;
+
+import com.sincere.common.dto.independence.*;
+import com.sincere.common.vo.BaseVo;
+import com.sincere.common.vo.independence.school.*;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/13 0013 11:32
+ */
+@FeignClient("independenceSearch")
+public interface LearnFeign {
+
+ @RequestMapping(value = "/learn/init/getList", method = RequestMethod.POST)
+ List getList(@RequestBody AnalyseDto analyseDto);
+
+ @RequestMapping(value = "/learn/init/insertAnalyse", method = RequestMethod.POST)
+ BaseVo insertAnalyse(@RequestBody AnalyseDto analyseDto);
+
+ @RequestMapping(value = "/learn/init/updateAnalyse", method = RequestMethod.POST)
+ BaseVo updateAnalyse(@RequestBody AnalyseDto analyseDto);
+
+ @RequestMapping(value = "/learn/init/selectById", method = RequestMethod.GET)
+ AnalyseDto selectById(@RequestParam("analyseId") int analyseId) ;
+
+ @RequestMapping(value = "/learn/init/getLeagueByAnalyse", method = RequestMethod.GET)
+ List getLeagueByAnalyse(@RequestParam("analyseId") int analyseId);
+
+ @RequestMapping(value = "/learn/init/isImportExam", method = RequestMethod.GET)
+ List isImportExam(@RequestParam("analyseId") int analyseId);
+
+ @RequestMapping(value = "/learn/init/insertBatchAnalyseDetail", method = RequestMethod.POST)
+ boolean insertBatchAnalyseDetail(@RequestBody List analyseDetailDtos);
+
+ @RequestMapping(value = "/learn/init/insertBatchAnalyseDimensional", method = RequestMethod.POST)
+ boolean insertBatchAnalyseDimensional(@RequestBody List analyseDimensionalDtos);
+
+ //查数据库是否已存在该四维诊断 不存在则导入 返回主键
+ @RequestMapping(value = "/learn/init/selectDimensional", method = RequestMethod.GET)
+ int selectDimensional(@RequestParam("type") int type, @RequestParam("name") String name);
+
+ @RequestMapping(value = "/learn/init/insertBatchStudent", method = RequestMethod.POST)
+ boolean insertBatchStudent(@RequestBody List studentDtos);
+
+ @RequestMapping(value = "/learn/init/insertBatchStudentDetail", method = RequestMethod.POST)
+ boolean insertBatchStudentDetail(@RequestBody List studentDetailDtos);
+
+ @RequestMapping(value = "/learn/init/initLeagueSchool", method = RequestMethod.GET)
+ boolean initLeagueSchool(@RequestParam("leagueId")int leagueId , @RequestParam("schoolName")String schoolName);
+
+ @RequestMapping(value = "/learn/init/insertLeague", method = RequestMethod.POST)
+ int insertLeague(@RequestBody LeagueDto leagueDto);
+
+ @RequestMapping(value = "/learn/init/getSchoolName", method = RequestMethod.GET)
+ List getSchoolName(@RequestParam("analyseId")int analyseId);
+
+ @RequestMapping(value = "/learn/init/initChapter", method = RequestMethod.POST)
+ boolean initChapter(@RequestBody List chapterDtos);
+
+
+
+ @RequestMapping(value = "learn/getLearn/getForm1_1", method = RequestMethod.POST)
+ Form7RepVO getForm1_1(@RequestBody GetLearnDto getLearnDto);
+
+ @RequestMapping(value = "learn/getLearn/getForm2_1_1", method = RequestMethod.POST)
+ Form1RepVO getForm2_1_1(@RequestBody GetLearnDto getLearnDto);
+
+ @RequestMapping(value = "learn/getLearn/getForm2_1_2", method = RequestMethod.POST)
+ Form2RepVO getForm2_1_2(@RequestBody GetLearnDto GetLearnDto);
+
+ @RequestMapping(value = "learn/getLearn/getForm2_1_3_2", method = RequestMethod.POST)
+ Form2RepVO getForm2_1_3_2(@RequestBody GetLearnDto GetLearnDto);
+
+ @RequestMapping(value = "learn/getLearn/getForm2_1_3", method = RequestMethod.POST)
+ List getForm2_1_3(@RequestBody GetLearnDto GetLearnDto);
+
+ @RequestMapping(value = "learn/getLearn/getForm2_2_1", method = RequestMethod.POST)
+ Form3RepVO getForm2_2_1(@RequestBody GetLearnDto GetLearnDto);
+
+ @RequestMapping(value = "learn/getLearn/getForm2_2_2", method = RequestMethod.POST)
+ public Form4RepVO getForm2_2_2(@RequestBody GetLearnDto GetLearnDto);
+
+ @RequestMapping(value = "learn/getLearn/getForm2_2_3", method = RequestMethod.POST)
+ Form5RepVO getForm2_2_3(@RequestBody GetLearnDto GetLearnDto);
+
+ @RequestMapping(value = "learn/getLearn/getForm2_2_4", method = RequestMethod.POST)
+ Form8RepVO getForm2_2_4(@RequestBody GetLearnDto GetLearnDto);
+
+ @RequestMapping(value = "learn/getLearn/getForm2_2_5", method = RequestMethod.POST)
+ Map getForm2_2_5(@RequestBody GetLearnDto GetLearnDto);
+
+ @RequestMapping(value = "learn/getLearn/getForm3_1", method = RequestMethod.POST)
+ Form6RepVO getForm3_1(@RequestBody GetLearnDto GetLearnDto);
+
+ @RequestMapping(value = "learn/getLearn/getForm3_1_1", method = RequestMethod.POST)
+ Table2RepVO getForm3_1_1(@RequestBody GetLearnDto GetLearnDto);
+
+ @RequestMapping(value = "learn/getLearn/getForm3_2", method = RequestMethod.POST)
+ Form6RepVO getForm3_2(@RequestBody GetLearnDto GetLearnDto);
+
+ @RequestMapping(value = "learn/getLearn/getForm3_3", method = RequestMethod.POST)
+ Form6RepVO getForm3_3(@RequestBody GetLearnDto GetLearnDto);
+
+ @RequestMapping(value = "learn/getLearn/getForm3_4", method = RequestMethod.POST)
+ Form6RepVO getForm3_4(@RequestBody GetLearnDto GetLearnDto);
+
+ @RequestMapping(value = "learn/getLearn/getSuggest", method = RequestMethod.POST)
+ String getSuggest(@RequestBody GetLearnDto GetLearnDto);
+
+ @RequestMapping(value = "learn/getLearn/getSuggest2", method = RequestMethod.POST)
+ String getSuggest2(@RequestBody GetLearnDto GetLearnDto);
+}
diff --git a/cloud/independence/src/main/java/com/sincere/independence/filter/AllowOriginFilter.java b/cloud/independence/src/main/java/com/sincere/independence/filter/AllowOriginFilter.java
new file mode 100644
index 0000000..34c5f1c
--- /dev/null
+++ b/cloud/independence/src/main/java/com/sincere/independence/filter/AllowOriginFilter.java
@@ -0,0 +1,38 @@
+package com.sincere.independence.filter;
+
+import org.springframework.stereotype.Component;
+
+import javax.servlet.*;
+import javax.servlet.annotation.WebFilter;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * 用于解决跨域问题
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/11 0011 10:17
+ */
+@Component
+@WebFilter(urlPatterns = "/*", filterName = "authFilter")
+public class AllowOriginFilter implements Filter {
+
+ @Override
+ public void init(FilterConfig filterConfig) throws ServletException {
+ }
+
+ public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
+ HttpServletResponse response = (HttpServletResponse) res;
+ response.setHeader("Access-Control-Allow-Origin", "*");
+ response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
+ response.setHeader("Access-Control-Allow-Credentials", "true");
+ response.setHeader("Access-Control-Allow-Headers","Origin, X-Requested-With, Content-Type, Accept");
+ chain.doFilter(req, res);
+ }
+
+ @Override
+ public void destroy() {
+ }
+}
+
+
diff --git a/cloud/independence/src/main/java/com/sincere/independence/vo/ChapterReq.java b/cloud/independence/src/main/java/com/sincere/independence/vo/ChapterReq.java
new file mode 100644
index 0000000..23dc58e
--- /dev/null
+++ b/cloud/independence/src/main/java/com/sincere/independence/vo/ChapterReq.java
@@ -0,0 +1,44 @@
+package com.sincere.independence.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/24 0024 8:55
+ */
+@ApiModel
+public class ChapterReq {
+
+ @ApiModelProperty(value = "考试章节")
+ private int chapterNumber ;
+ @ApiModelProperty(value = "章节名称")
+ private String chapterName ;
+ @ApiModelProperty(value = "章节 分值")
+ private Double score ;
+
+ public int getChapterNumber() {
+ return chapterNumber;
+ }
+
+ public void setChapterNumber(int chapterNumber) {
+ this.chapterNumber = chapterNumber;
+ }
+
+ public String getChapterName() {
+ return chapterName;
+ }
+
+ public void setChapterName(String chapterName) {
+ this.chapterName = chapterName;
+ }
+
+ public Double getScore() {
+ return score;
+ }
+
+ public void setScore(Double score) {
+ this.score = score;
+ }
+}
diff --git a/cloud/independence/src/main/java/com/sincere/independence/vo/ChapterReqVo.java b/cloud/independence/src/main/java/com/sincere/independence/vo/ChapterReqVo.java
new file mode 100644
index 0000000..f143bf3
--- /dev/null
+++ b/cloud/independence/src/main/java/com/sincere/independence/vo/ChapterReqVo.java
@@ -0,0 +1,65 @@
+package com.sincere.independence.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/24 0024 8:53
+ */
+@ApiModel
+public class ChapterReqVo {
+
+ private int analyseId ;
+ @ApiModelProperty(value = "考试时长")
+ private String examTime ;
+ @ApiModelProperty(value = "考试范围 七年级上册")
+ private String examScope ;
+ @ApiModelProperty(value = "满分")
+ private Double maxScore ;
+ @ApiModelProperty(value = "考试内容")
+ private List list ;
+
+ public int getAnalyseId() {
+ return analyseId;
+ }
+
+ public void setAnalyseId(int analyseId) {
+ this.analyseId = analyseId;
+ }
+
+ public String getExamTime() {
+ return examTime;
+ }
+
+ public void setExamTime(String examTime) {
+ this.examTime = examTime;
+ }
+
+ public String getExamScope() {
+ return examScope;
+ }
+
+ public void setExamScope(String examScope) {
+ this.examScope = examScope;
+ }
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public Double getMaxScore() {
+ return maxScore;
+ }
+
+ public void setMaxScore(Double maxScore) {
+ this.maxScore = maxScore;
+ }
+}
diff --git a/cloud/independence/src/main/java/com/sincere/independence/vo/CreateExamReqVo.java b/cloud/independence/src/main/java/com/sincere/independence/vo/CreateExamReqVo.java
new file mode 100644
index 0000000..aa18073
--- /dev/null
+++ b/cloud/independence/src/main/java/com/sincere/independence/vo/CreateExamReqVo.java
@@ -0,0 +1,53 @@
+package com.sincere.independence.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/18 0018 14:48
+ */
+@ApiModel
+public class CreateExamReqVo {
+ @ApiModelProperty(value="考试名称")
+ private String examName ;
+ @ApiModelProperty(value="学科")
+ private String courseName ;
+ @ApiModelProperty(value="考试时间")
+ private String examTime ;
+ @ApiModelProperty(value="年级")
+ private String grade ;
+
+ public String getExamName() {
+ return examName;
+ }
+
+ public void setExamName(String examName) {
+ this.examName = examName;
+ }
+
+ public String getCourseName() {
+ return courseName;
+ }
+
+ public void setCourseName(String courseName) {
+ this.courseName = courseName;
+ }
+
+ public String getExamTime() {
+ return examTime;
+ }
+
+ public void setExamTime(String examTime) {
+ this.examTime = examTime;
+ }
+
+ public String getGrade() {
+ return grade;
+ }
+
+ public void setGrade(String grade) {
+ this.grade = grade;
+ }
+}
diff --git a/cloud/independence/src/main/java/com/sincere/independence/vo/CreateLeagueReqVo.java b/cloud/independence/src/main/java/com/sincere/independence/vo/CreateLeagueReqVo.java
new file mode 100644
index 0000000..6c40bf7
--- /dev/null
+++ b/cloud/independence/src/main/java/com/sincere/independence/vo/CreateLeagueReqVo.java
@@ -0,0 +1,28 @@
+package com.sincere.independence.vo;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/23 0023 15:46
+ */
+public class CreateLeagueReqVo {
+
+ private int analyseId ;
+ private String league ;
+
+ public int getAnalyseId() {
+ return analyseId;
+ }
+
+ public void setAnalyseId(int analyseId) {
+ this.analyseId = analyseId;
+ }
+
+ public String getLeague() {
+ return league;
+ }
+
+ public void setLeague(String league) {
+ this.league = league;
+ }
+}
diff --git a/cloud/independence/src/main/java/com/sincere/independence/vo/GetLeague.java b/cloud/independence/src/main/java/com/sincere/independence/vo/GetLeague.java
new file mode 100644
index 0000000..115c540
--- /dev/null
+++ b/cloud/independence/src/main/java/com/sincere/independence/vo/GetLeague.java
@@ -0,0 +1,32 @@
+package com.sincere.independence.vo;
+
+import com.sincere.common.dto.independence.LeagueDto;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/22 0022 15:46
+ */
+public class GetLeague {
+
+ private String leagueName ;
+ private List leagues ;
+
+ public String getLeagueName() {
+ return leagueName;
+ }
+
+ public void setLeagueName(String leagueName) {
+ this.leagueName = leagueName;
+ }
+
+ public List getLeagues() {
+ return leagues;
+ }
+
+ public void setLeagues(List leagues) {
+ this.leagues = leagues;
+ }
+}
diff --git a/cloud/independence/src/main/java/com/sincere/independence/vo/GetLeagueRepVo.java b/cloud/independence/src/main/java/com/sincere/independence/vo/GetLeagueRepVo.java
new file mode 100644
index 0000000..2c005b9
--- /dev/null
+++ b/cloud/independence/src/main/java/com/sincere/independence/vo/GetLeagueRepVo.java
@@ -0,0 +1,23 @@
+package com.sincere.independence.vo;
+
+import com.sincere.common.vo.BaseVo;
+
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/22 0022 15:48
+ */
+public class GetLeagueRepVo extends BaseVo {
+
+ private List data ;
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+}
diff --git a/cloud/independence/src/main/java/com/sincere/independence/vo/InitAnalyseReqVo.java b/cloud/independence/src/main/java/com/sincere/independence/vo/InitAnalyseReqVo.java
new file mode 100644
index 0000000..2d741d6
--- /dev/null
+++ b/cloud/independence/src/main/java/com/sincere/independence/vo/InitAnalyseReqVo.java
@@ -0,0 +1,28 @@
+package com.sincere.independence.vo;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/17 0017 13:36
+ */
+public class InitAnalyseReqVo {
+
+ private int analyseId ;
+ private String url ;
+
+ public int getAnalyseId() {
+ return analyseId;
+ }
+
+ public void setAnalyseId(int analyseId) {
+ this.analyseId = analyseId;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+}
diff --git a/cloud/independence/src/main/java/com/sincere/independence/vo/InitScoreReqVo.java b/cloud/independence/src/main/java/com/sincere/independence/vo/InitScoreReqVo.java
new file mode 100644
index 0000000..3af2e37
--- /dev/null
+++ b/cloud/independence/src/main/java/com/sincere/independence/vo/InitScoreReqVo.java
@@ -0,0 +1,19 @@
+package com.sincere.independence.vo;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/23 0023 15:50
+ */
+public class InitScoreReqVo extends InitAnalyseReqVo {
+
+ private int leagueId ;
+
+ public int getLeagueId() {
+ return leagueId;
+ }
+
+ public void setLeagueId(int leagueId) {
+ this.leagueId = leagueId;
+ }
+}
diff --git a/cloud/independence/src/main/java/com/sincere/independence/vo/UpdateExamReqVo.java b/cloud/independence/src/main/java/com/sincere/independence/vo/UpdateExamReqVo.java
new file mode 100644
index 0000000..469fdef
--- /dev/null
+++ b/cloud/independence/src/main/java/com/sincere/independence/vo/UpdateExamReqVo.java
@@ -0,0 +1,24 @@
+package com.sincere.independence.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/18 0018 14:53
+ */
+@ApiModel
+public class UpdateExamReqVo extends CreateExamReqVo{
+
+ @ApiModelProperty(value="主键")
+ private int analyseId ;
+
+ public int getAnalyseId() {
+ return analyseId;
+ }
+
+ public void setAnalyseId(int analyseId) {
+ this.analyseId = analyseId;
+ }
+}
diff --git a/cloud/independence/src/main/java/com/sincere/independence/vo/excel/ExamExcelVo.java b/cloud/independence/src/main/java/com/sincere/independence/vo/excel/ExamExcelVo.java
new file mode 100644
index 0000000..98e7653
--- /dev/null
+++ b/cloud/independence/src/main/java/com/sincere/independence/vo/excel/ExamExcelVo.java
@@ -0,0 +1,168 @@
+package com.sincere.independence.vo.excel;
+
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellType;
+import org.apache.poi.ss.usermodel.Row;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/18 0018 8:51
+ */
+public class ExamExcelVo extends ExcelVo {
+
+ private String questionNumber ;
+ private String questionSmallNumber ;
+ private String questionType ;
+ private String difficult ;
+ private String score ;
+ private String knowledge ;
+ private String ability ;
+ private String skill ;
+ private String think ;
+
+ public String getQuestionNumber() {
+ return questionNumber;
+ }
+
+ public void setQuestionNumber(String questionNumber) {
+ this.questionNumber = questionNumber;
+ }
+
+ public String getQuestionSmallNumber() {
+ return questionSmallNumber;
+ }
+
+ public void setQuestionSmallNumber(String questionSmallNumber) {
+ this.questionSmallNumber = questionSmallNumber;
+ }
+
+ public String getQuestionType() {
+ return questionType;
+ }
+
+ public void setQuestionType(String questionType) {
+ this.questionType = questionType;
+ }
+
+ public String getDifficult() {
+ return difficult;
+ }
+
+ public void setDifficult(String difficult) {
+ this.difficult = difficult;
+ }
+
+ public String getScore() {
+ return score;
+ }
+
+ public void setScore(String score) {
+ this.score = score;
+ }
+
+ public String getKnowledge() {
+ return knowledge;
+ }
+
+ public void setKnowledge(String knowledge) {
+ this.knowledge = knowledge;
+ }
+
+ public String getAbility() {
+ return ability;
+ }
+
+ public void setAbility(String ability) {
+ this.ability = ability;
+ }
+
+ public String getSkill() {
+ return skill;
+ }
+
+ public void setSkill(String skill) {
+ this.skill = skill;
+ }
+
+ public String getThink() {
+ return think;
+ }
+
+ public void setThink(String think) {
+ this.think = think;
+ }
+
+ public ExamExcelVo(Row sheetRow) {
+ super(sheetRow);
+ Cell cell1 = sheetRow.getCell(0);
+ if(cell1 != null){
+ cell1.setCellType(CellType.STRING);
+ this.questionNumber = cell1.getStringCellValue().trim();
+ }
+
+ Cell cell2 = sheetRow.getCell(1);
+ if(cell2 != null){
+ cell2.setCellType(CellType.STRING);
+ this.questionSmallNumber = cell2.getStringCellValue().trim();
+ }else {
+ this.questionSmallNumber = null ;
+ }
+
+ Cell cell3 = sheetRow.getCell(2);
+ if(cell3 != null){
+ cell3.setCellType(CellType.STRING);
+ this.questionType = cell3.getStringCellValue().trim();
+ }else {
+ this.questionType = null ;
+ }
+
+ Cell cell4 = sheetRow.getCell(3);
+ if(cell4 != null){
+ cell4.setCellType(CellType.STRING);
+ this.difficult = cell4.getStringCellValue().trim();
+ }else {
+ this.difficult = null ;
+ }
+
+ Cell cell5 = sheetRow.getCell(4);
+ if(cell5 != null){
+ cell5.setCellType(CellType.STRING);
+ this.score = cell5.getStringCellValue().trim();
+ }else {
+ this.score = null ;
+ }
+
+ Cell cell6 = sheetRow.getCell(5);
+ if(cell6 != null){
+ cell6.setCellType(CellType.STRING);
+ this.knowledge = cell6.getStringCellValue().trim();
+ }else {
+ this.knowledge = null ;
+ }
+
+ Cell cell7 = sheetRow.getCell(6);
+ if(cell7 != null){
+ cell7.setCellType(CellType.STRING);
+ this.ability = cell7.getStringCellValue().trim();
+ }else {
+ this.ability = null ;
+ }
+
+ Cell cell8 = sheetRow.getCell(7);
+ if(cell8 != null){
+ cell8.setCellType(CellType.STRING);
+ this.skill = cell8.getStringCellValue().trim();
+ }else {
+ this.skill = null ;
+ }
+
+ Cell cell9 = sheetRow.getCell(8);
+ if(cell9 != null){
+ cell9.setCellType(CellType.STRING);
+ this.think = cell9.getStringCellValue().trim();
+ }else {
+ this.think = null ;
+ }
+ }
+}
diff --git a/cloud/independence/src/main/java/com/sincere/independence/vo/excel/ExcelVo.java b/cloud/independence/src/main/java/com/sincere/independence/vo/excel/ExcelVo.java
new file mode 100644
index 0000000..f0e2041
--- /dev/null
+++ b/cloud/independence/src/main/java/com/sincere/independence/vo/excel/ExcelVo.java
@@ -0,0 +1,14 @@
+package com.sincere.independence.vo.excel;
+
+import org.apache.poi.ss.usermodel.Row;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/18 0018 13:59
+ */
+public class ExcelVo {
+
+ public ExcelVo(Row sheetRow) {
+ }
+}
diff --git a/cloud/independence/src/main/java/com/sincere/independence/vo/excel/ScoreExcelVo.java b/cloud/independence/src/main/java/com/sincere/independence/vo/excel/ScoreExcelVo.java
new file mode 100644
index 0000000..e42431b
--- /dev/null
+++ b/cloud/independence/src/main/java/com/sincere/independence/vo/excel/ScoreExcelVo.java
@@ -0,0 +1,102 @@
+package com.sincere.independence.vo.excel;
+
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellType;
+import org.apache.poi.ss.usermodel.Row;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/18 0018 13:50
+ */
+public class ScoreExcelVo extends ExcelVo {
+
+ private String schoolName ;
+ private String className ;
+ private String studentNumber ;
+ private String studentName ;
+ private String courseName ;
+ private String score ;
+
+ public String getSchoolName() {
+ return schoolName;
+ }
+
+ public void setSchoolName(String schoolName) {
+ this.schoolName = schoolName;
+ }
+
+ public String getClassName() {
+ return className;
+ }
+
+ public void setClassName(String className) {
+ this.className = className;
+ }
+
+ public String getStudentNumber() {
+ return studentNumber;
+ }
+
+ public void setStudentNumber(String studentNumber) {
+ this.studentNumber = studentNumber;
+ }
+
+ public String getStudentName() {
+ return studentName;
+ }
+
+ public void setStudentName(String studentName) {
+ this.studentName = studentName;
+ }
+
+ public String getCourseName() {
+ return courseName;
+ }
+
+ public void setCourseName(String courseName) {
+ this.courseName = courseName;
+ }
+
+ public String getScore() {
+ return score;
+ }
+
+ public void setScore(String score) {
+ this.score = score;
+ }
+
+ public ScoreExcelVo(Row sheetRow) {
+ super(sheetRow);
+ Cell cell1 = sheetRow.getCell(1);
+ if(cell1 != null){
+ cell1.setCellType(CellType.STRING);
+ this.schoolName = cell1.getStringCellValue().trim();
+ }
+ Cell cell2 = sheetRow.getCell(2);
+ if(cell2 != null){
+ cell2.setCellType(CellType.STRING);
+ this.className = cell2.getStringCellValue().trim();
+ }
+ Cell cell3 = sheetRow.getCell(3);
+ if(cell3 != null){
+ cell3.setCellType(CellType.STRING);
+ this.studentNumber = cell3.getStringCellValue().trim();
+ }
+ Cell cell4 = sheetRow.getCell(4);
+ if(cell4 != null){
+ cell4.setCellType(CellType.STRING);
+ this.studentName = cell4.getStringCellValue().trim();
+ }
+ Cell cell5 = sheetRow.getCell(5);
+ if(cell5 != null){
+ cell5.setCellType(CellType.STRING);
+ this.courseName = cell5.getStringCellValue().trim();
+ }
+ Cell cell6 = sheetRow.getCell(6);
+ if(cell6 != null){
+ cell6.setCellType(CellType.STRING);
+ this.score = cell6.getStringCellValue().trim();
+ }
+ }
+}
diff --git a/cloud/independence/src/main/resources/application.yaml b/cloud/independence/src/main/resources/application.yaml
new file mode 100644
index 0000000..4a58736
--- /dev/null
+++ b/cloud/independence/src/main/resources/application.yaml
@@ -0,0 +1,20 @@
+server:
+ port: 8008
+
+spring:
+ application:
+ name: independence
+ profiles:
+ active: dev
+
+
+eureka:
+ instance:
+ hostname: localhost
+ lease-expiration-duration-in-seconds: 60
+ lease-renewal-interval-in-seconds: 10
+ client:
+ service-url:
+ # defaultZone: http://localhost:8761/eureka/
+ defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
+
diff --git a/cloud/independence/src/main/resources/logback.xml b/cloud/independence/src/main/resources/logback.xml
new file mode 100644
index 0000000..0dd9aeb
--- /dev/null
+++ b/cloud/independence/src/main/resources/logback.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %highlight([%-5level] %logger{50} - %msg%n)
+ UTF-8
+
+
+
+
+
+
+
+
+ ${LOG_HOME}/${PROJECT_NAME}.system-dev.%d{yyyy-MM-dd HH}.%i.log
+
+ 30
+
+ 100MB
+
+
+
+
+ [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n
+ UTF-8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cloud/pom.xml b/cloud/pom.xml
index ab2b9ef..a8e5e8a 100644
--- a/cloud/pom.xml
+++ b/cloud/pom.xml
@@ -24,10 +24,12 @@
dahua
consumer
haikangface
- smartCampus_search
- xiaoan_search
+ search_independence
+ search_smartCampus
+ search_xiaoan
mypulsar
weigeng
+ independence
diff --git a/cloud/search_independence/pom.xml b/cloud/search_independence/pom.xml
new file mode 100644
index 0000000..d2b61b8
--- /dev/null
+++ b/cloud/search_independence/pom.xml
@@ -0,0 +1,146 @@
+
+
+
+ cloud
+ com.sincere
+ 1.0.0
+
+ 4.0.0
+
+ search_independence
+
+
+
+ com.sincere
+ common
+ 0.0.1-SNAPSHOT
+
+
+ org.apache.httpcomponents
+ httpclient
+ 4.3
+
+
+ com.microsoft.sqlserver
+ mssql-jdbc
+ 6.4.0.jre8
+
+
+ com.alibaba
+ fastjson
+ 1.2.16
+
+
+ org.apache.commons
+ commons-lang3
+ 3.3.2
+
+
+
+
+ org.slf4j
+ slf4j-api
+ 1.7.13
+
+
+
+ commons-net
+ commons-net
+ 2.0
+
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ 1.3.0
+
+
+
+
+
+ search_smartCampus
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+ 1.8
+ 1.8
+ UTF-8
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ com.sincere.smartSearch.SmartSearchApplication
+ true
+ lib/
+
+
+ ./config/
+
+
+
+ config/**
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+
+
+ copy
+ package
+
+ copy-dependencies
+
+
+
+ ${project.build.directory}/lib
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+ 2.5
+
+ UTF-8
+
+
+
+
+ maven-source-plugin
+ 2.2
+
+ true
+
+
+
+ compile
+
+ jar
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cloud/search_independence/src/main/java/com/sincere/independence/IndependenceSearchApplication.java b/cloud/search_independence/src/main/java/com/sincere/independence/IndependenceSearchApplication.java
new file mode 100644
index 0000000..535f39f
--- /dev/null
+++ b/cloud/search_independence/src/main/java/com/sincere/independence/IndependenceSearchApplication.java
@@ -0,0 +1,23 @@
+package com.sincere.independence;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.context.annotation.ComponentScan;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/13 0013 8:40
+ */
+@EnableEurekaClient
+@SpringBootApplication
+@MapperScan("com.sincere.independence.mapper")
+@ComponentScan("com.sincere.common")
+public class IndependenceSearchApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(IndependenceSearchApplication.class, args);
+ }
+}
diff --git a/cloud/search_independence/src/main/java/com/sincere/independence/controller/LearnController.java b/cloud/search_independence/src/main/java/com/sincere/independence/controller/LearnController.java
new file mode 100644
index 0000000..68bcc71
--- /dev/null
+++ b/cloud/search_independence/src/main/java/com/sincere/independence/controller/LearnController.java
@@ -0,0 +1,225 @@
+package com.sincere.independence.controller;
+
+import com.sincere.common.dto.independence.*;
+import com.sincere.common.util.RedisUtils;
+import com.sincere.common.vo.BaseVo;
+import com.sincere.independence.model.*;
+import com.sincere.independence.service.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/11/13 0013 9:33
+ */
+@RestController
+@RequestMapping(value = "/learn/init")
+public class LearnController {
+
+ @Autowired
+ AnalyseService analyseService;
+
+ @Autowired
+ DimensionalService dimensionalService;
+
+ @Autowired
+ AnalyseDimensionalService analyseDimensionalService;
+
+ @Autowired
+ AnalyseDetailService analyseDetailService;
+
+ @Autowired
+ StudentDetailService studentDetailService;
+
+ @Autowired
+ StudentService studentService;
+
+ @Autowired
+ LeagueService leagueService;
+
+ @Autowired
+ ChapterService chapterService;
+
+ @Autowired
+ KnowledgeService knowledgeService;
+
+ @RequestMapping(value = "getList", method = RequestMethod.POST)
+ public List getList(@RequestBody AnalyseDto analyseDto){
+ List list = analyseService.select(new Analyse(analyseDto));
+ List analyseDtos = new ArrayList<>();
+ for(Analyse analyse : list){
+ AnalyseDto temp = initAnalyseDto(analyse);
+ analyseDtos.add(temp);
+ }
+ return analyseDtos;
+ }
+
+ private AnalyseDto initAnalyseDto(Analyse analyse){
+ AnalyseDto analyseDto = new AnalyseDto();
+ analyseDto.setCourseName(analyse.getCourseName());
+ analyseDto.setCreateTime(analyse.getCreateTime());
+ analyseDto.setExamName(analyse.getExamName());
+ analyseDto.setExamScope(analyse.getExamScope());
+ analyseDto.setExamTime(analyse.getExamTime());
+ analyseDto.setGrade(analyse.getGrade());
+ analyseDto.setId(analyse.getId());
+ analyseDto.setMaxScore(analyse.getMaxScore());
+ return analyseDto;
+ }
+
+ @RequestMapping(value = "insertAnalyse", method = RequestMethod.POST)
+ public BaseVo insertAnalyse(@RequestBody AnalyseDto analyseDto){
+ BaseVo baseVo = new BaseVo();
+ Analyse analyse = new Analyse(analyseDto);
+ analyseService.insert(analyse);
+ baseVo.setMessage(analyse.getId()+"");
+ return baseVo;
+ }
+
+ @RequestMapping(value = "updateAnalyse", method = RequestMethod.POST)
+ public BaseVo updateAnalyse(@RequestBody AnalyseDto analyseDto){
+ BaseVo baseVo = new BaseVo();
+ Analyse analyse = new Analyse(analyseDto);
+ analyseService.update(analyse);
+ return baseVo;
+ }
+
+ @RequestMapping(value = "selectById", method = RequestMethod.GET)
+ public AnalyseDto selectById(@RequestParam("analyseId") int analyseId) {
+ Analyse analyse = analyseService.selectById(analyseId);
+ return initAnalyseDto(analyse);
+ }
+
+ @RequestMapping(value = "getLeagueByAnalyse", method = RequestMethod.GET)
+ public List getLeagueByAnalyse(@RequestParam("analyseId") int analyseId){
+ List leagues = leagueService.selectByAnalyseId(analyseId);
+ List leagueDtos = new ArrayList<>();
+ for(League league : leagues){
+ leagueDtos.add(initLeagueDto(league));
+ }
+ return leagueDtos ;
+ }
+
+ private LeagueDto initLeagueDto(League league){
+ LeagueDto leagueDto = new LeagueDto();
+ leagueDto.setAnalyseId(league.getAnalyseId());
+ leagueDto.setId(league.getId());
+ leagueDto.setLeague(league.getLeague());
+ leagueDto.setSchoolName(league.getSchoolName());
+ return leagueDto;
+ }
+
+ @RequestMapping(value = "isImportExam", method = RequestMethod.GET)
+ public List isImportExam(@RequestParam("analyseId") int analyseId){
+ List analyseDetails = analyseDetailService.selectByAnalyseId(analyseId);
+ List analyseDetailDtos = new ArrayList<>();
+ if(analyseDetails != null & analyseDetails.size() > 0){
+ for(AnalyseDetail analyseDetail : analyseDetails){
+ analyseDetailDtos.add(initAnalyseDetail(analyseDetail));
+ }
+ }
+ return analyseDetailDtos ;
+ }
+
+ private AnalyseDetailDto initAnalyseDetail(AnalyseDetail analyseDetail){
+ AnalyseDetailDto analyseDetailDto = new AnalyseDetailDto();
+ analyseDetailDto.setAnalyseId(analyseDetail.getAnalyseId());
+ analyseDetailDto.setCreateTime(analyseDetail.getCreateTime());
+ analyseDetailDto.setDifficult(analyseDetail.getDifficult());
+ analyseDetailDto.setQuestionNumber(analyseDetail.getQuestionNumber());
+ analyseDetailDto.setScore(analyseDetail.getScore());
+ analyseDetailDto.setId(analyseDetail.getId());
+ return analyseDetailDto;
+ }
+
+ @RequestMapping(value = "insertBatchAnalyseDetail", method = RequestMethod.POST)
+ public boolean insertBatchAnalyseDetail(@RequestBody List analyseDetailDtos){
+ List list = new ArrayList<>();
+ for(AnalyseDetailDto analyseDetailDto :analyseDetailDtos){
+ list.add(new AnalyseDetail(analyseDetailDto));
+ }
+ analyseDetailService.insertBatch(list);
+ return true ;
+ }
+
+ @RequestMapping(value = "insertBatchAnalyseDimensional", method = RequestMethod.POST)
+ public boolean insertBatchAnalyseDimensional(@RequestBody List analyseDimensionalDtos){
+ List list = new ArrayList<>();
+ for(AnalyseDimensionalDto analyseDimensionalDto :analyseDimensionalDtos){
+ list.add(new AnalyseDimensional(analyseDimensionalDto));
+ }
+ analyseDimensionalService.insertBatch(list);
+ return true ;
+ }
+
+ //查数据库是否已存在该四维诊断 不存在则导入 返回主键
+ @RequestMapping(value = "selectDimensional", method = RequestMethod.GET)
+ public int selectDimensional(@RequestParam("type") int type, @RequestParam("name") String name) {
+ Dimensional result = dimensionalService.selectByTypeAndName(type,name);
+ int dimensionalId = 0 ;
+ if(result == null || result.getId() == 0){
+ Dimensional dimensional = new Dimensional();
+ dimensional.setDimensionalType(type);
+ dimensional.setDimensionalName(name);
+ dimensional.setCreateTime(new Date());
+ dimensionalService.insert(dimensional);
+ dimensionalId = dimensional.getId();
+ }else{
+ dimensionalId = result.getId();
+ }
+ return dimensionalId ;
+ }
+
+ @RequestMapping(value = "insertBatchStudent", method = RequestMethod.POST)
+ public boolean insertBatchStudent(@RequestBody List studentDtos){
+ List list = new ArrayList<>();
+ for(StudentDto studentDto :studentDtos){
+ list.add(new Student(studentDto));
+ }
+ studentService.insertBatch(list);
+ return true ;
+ }
+
+ @RequestMapping(value = "insertBatchStudentDetail", method = RequestMethod.POST)
+ public boolean insertBatchStudentDetail(@RequestBody List studentDetailDtos){
+ List list = new ArrayList<>();
+ for(StudentDetailDto studentDetailDto :studentDetailDtos){
+ list.add(new StudentDetail(studentDetailDto));
+ }
+ studentDetailService.insertBatch(list);
+ return true ;
+ }
+
+ @RequestMapping(value = "initLeagueSchool", method = RequestMethod.GET)
+ public boolean initLeagueSchool(@RequestParam("leagueId")int leagueId , @RequestParam("schoolName")String schoolName){
+ return leagueService.initLeagueSchool(leagueId,schoolName)==1 ? true : false ;
+ }
+
+ @RequestMapping(value = "insertLeague", method = RequestMethod.POST)
+ public int insertLeague(@RequestBody LeagueDto leagueDto){
+ League league = new League(leagueDto);
+ leagueService.insert(league);
+ return league.getId();
+ }
+
+ @RequestMapping(value = "getSchoolName", method = RequestMethod.GET)
+ public List getSchoolName(@RequestParam("analyseId")int analyseId){
+ return studentService.selectSchoolNameByAnalyse(analyseId);
+ }
+
+ @RequestMapping(value = "initChapter", method = RequestMethod.POST)
+ public boolean initChapter(@RequestBody List chapterDtos){
+ List list = new ArrayList<>();
+ for(ChapterDto chapterDto : chapterDtos){
+ list.add(new Chapter(chapterDto));
+ }
+ chapterService.insertBatch(list);
+ return true ;
+ }
+
+}
diff --git a/cloud/search_independence/src/main/java/com/sincere/independence/controller/LearnStatController.java b/cloud/search_independence/src/main/java/com/sincere/independence/controller/LearnStatController.java
new file mode 100644
index 0000000..dfa3956
--- /dev/null
+++ b/cloud/search_independence/src/main/java/com/sincere/independence/controller/LearnStatController.java
@@ -0,0 +1,1216 @@
+package com.sincere.independence.controller;
+
+import com.sincere.common.dto.independence.ChapterDto;
+import com.sincere.common.dto.independence.GetLearnDto;
+import com.sincere.common.enums.DifficultEnums;
+import com.sincere.common.enums.DimensionalEnums;
+import com.sincere.common.util.RedisUtils;
+import com.sincere.common.vo.independence.school.SuggestRepVo;
+import com.sincere.common.vo.independence.school.*;
+import com.sincere.independence.model.*;
+import com.sincere.independence.service.*;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/10/18 0018 15:54
+ */
+@RestController
+@RequestMapping(value = "learn/getLearn")
+public class LearnStatController {
+ @Autowired
+ AnalyseService analyseService;
+
+ @Autowired
+ DimensionalService dimensionalService;
+
+ @Autowired
+ AnalyseDimensionalService analyseDimensionalService;
+
+ @Autowired
+ AnalyseDetailService analyseDetailService;
+
+ @Autowired
+ StudentDetailService studentDetailService;
+
+ @Autowired
+ StudentService studentService;
+
+ @Autowired
+ LeagueService leagueService;
+
+ @Autowired
+ ChapterService chapterService;
+
+ @Autowired
+ KnowledgeService knowledgeService ;
+
+
+ @RequestMapping(value = "getForm1_1", method = RequestMethod.POST)
+ public Form7RepVO getForm1_1(@RequestBody GetLearnDto getLearnDto){
+ Form7RepVO form7RepVO = new Form7RepVO();
+ if(RedisUtils.existsObject(getLearnDto.getAnalyseId()+"_"+getLearnDto.getSchoolName()+"_1_1")){
+ form7RepVO = (Form7RepVO) RedisUtils.getObject(getLearnDto.getAnalyseId()+"_"+getLearnDto.getSchoolName()+"_1_1");
+ }else {
+ Analyse analyse = analyseService.selectById(getLearnDto.getAnalyseId());
+ form7RepVO.setExamTime(analyse.getExamTime());
+ form7RepVO.setMaxScore(analyse.getMaxScore());
+ form7RepVO.setExamScope(analyse.getExamScope());
+ form7RepVO.setCourseName(analyse.getCourseName());
+
+ List chapters = chapterService.selectByAnalyse(analyse.getId());
+ List chapterDtos = new ArrayList<>();
+ for(Chapter chapter : chapters){
+ ChapterDto chapterDto = new ChapterDto();
+ chapterDto.setAnalyseId(chapter.getAnalyseId());
+ chapterDto.setChapterName(chapter.getChapterName());
+ chapterDto.setChapterNumber(chapter.getChapterNumber());
+ chapterDto.setChapterScore(chapter.getChapterScore());
+ chapterDto.setPercent(chapter.getChapterScore() / analyse.getMaxScore() * 100);
+ chapterDtos.add(chapterDto);
+ }
+ form7RepVO.setList(chapterDtos);
+ List difficultList = new ArrayList<>();
+ for (DifficultEnums difficultEnums : DifficultEnums.values()){
+ Form7 form7 = new Form7();
+ form7.setName(difficultEnums.getDifficultShow());
+ form7.setPercent(analyseDetailService.selectDifficult(analyse.getId(),difficultEnums.getDifficultType())/analyse.getMaxScore()*100);
+ difficultList.add(form7);
+ }
+ form7RepVO.setDifficultList(difficultList);
+
+ List typeList = new ArrayList<>();
+ List list = analyseDetailService.selectQuestionType(analyse.getId());
+ for(String type : list){
+ Form7 form7 = new Form7();
+ form7.setName(type);
+ Double score = analyseDetailService.selectSumType(analyse.getId(),type);
+ form7.setScore(score);
+ form7.setPercent(score / analyse.getMaxScore() * 100);
+ typeList.add(form7);
+ }
+ form7RepVO.setTypeList(typeList);
+ RedisUtils.setObject(getLearnDto.getAnalyseId()+"_"+getLearnDto.getSchoolName()+"_1_1",form7RepVO);
+ }
+ return form7RepVO;
+ }
+
+ @RequestMapping(value = "getForm2_1_1", method = RequestMethod.POST)
+ public Form1RepVO getForm2_1_1(@RequestBody GetLearnDto getLearnDto){
+ Form1RepVO form1RepVo = new Form1RepVO();
+ if(RedisUtils.existsObject(getLearnDto.getAnalyseId()+"_"+getLearnDto.getSchoolName()+"_2_1_1")){
+ form1RepVo = (Form1RepVO) RedisUtils.getObject(getLearnDto.getAnalyseId()+"_"+getLearnDto.getSchoolName()+"_2_1_1");
+ }else {
+ //2.1表
+ Analyse analyse = analyseService.selectById(getLearnDto.getAnalyseId());
+ //分数段
+ Double maxScore = analyse.getMaxScore();
+ Map segmentMap = new HashMap<>();
+ segmentMap.put("A(优秀)",maxScore*0.85 + "~" + maxScore+"分");
+ segmentMap.put("B(良好)",maxScore*0.7 + "~" + (maxScore*0.85-1f)+"分");
+ segmentMap.put("C(及格)",maxScore*0.6 + "~" + (maxScore*0.7-1f)+"分");
+ segmentMap.put("D(不及格)",0 + "~" + (maxScore*0.6-1f)+"分");
+ form1RepVo.setMap(segmentMap);
+ List students = studentService.selectBySchoolName(getLearnDto.getAnalyseId(),null,getLearnDto.getSchoolName());
+ double sum = new Double(students.size());
+ int a = studentService.selectCountByScore(getLearnDto.getAnalyseId(),null,getLearnDto.getSchoolName(),maxScore*0.85,maxScore+1f);
+ int b = studentService.selectCountByScore(getLearnDto.getAnalyseId(),null,getLearnDto.getSchoolName(),maxScore*0.7,(maxScore*0.85));
+ int c = studentService.selectCountByScore(getLearnDto.getAnalyseId(),null,getLearnDto.getSchoolName(),maxScore*0.6,(maxScore*0.7));
+ int d = studentService.selectCountByScore(getLearnDto.getAnalyseId(),null,getLearnDto.getSchoolName(),maxScore*0,(maxScore*0.6));
+ List form1List = new ArrayList<>();
+ Form1 formA = new Form1();
+ formA.setLevel("A");
+ formA.setNumber(a);
+ formA.setProp(a/sum*100);
+ Form1 formB = new Form1();
+ formB.setLevel("B");
+ formB.setNumber(b);
+ formB.setProp(b/sum*100);
+ Form1 formC = new Form1();
+ formC.setLevel("C");
+ formC.setNumber(c);
+ formC.setProp(c/sum*100);
+ Form1 formD = new Form1();
+ formD.setLevel("D");
+ formD.setNumber(d);
+ formD.setProp(d/sum*100);
+ form1List.add(formA);
+ form1List.add(formB);
+ form1List.add(formC);
+ form1List.add(formD);
+ form1RepVo.setList(form1List);
+ RedisUtils.setObject(getLearnDto.getAnalyseId()+"_"+getLearnDto.getSchoolName()+"_2_1_1",form1RepVo);
+ }
+ return form1RepVo;
+ }
+
+ @RequestMapping(value = "getForm2_1_2", method = RequestMethod.POST)
+ public Form2RepVO getForm2_1_2(@RequestBody GetLearnDto GetLearnDto){
+ Form2RepVO repVO = new Form2RepVO();
+ if(RedisUtils.existsObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_2_1_2")){
+ repVO = (Form2RepVO) RedisUtils.getObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_2_1_2");
+ }else {
+ Analyse analyse = analyseService.selectById(GetLearnDto.getAnalyseId());
+ if(analyse == null){
+ repVO.setSuccess(false);
+ repVO.setMessage("请先创建考试");
+ return repVO;
+ }
+ List leagues = leagueService.getLeagueBySchoolName(analyse.getId(),GetLearnDto.getSchoolName());
+ if(leagues == null){
+ repVO.setSuccess(false);
+ repVO.setMessage("请先设定联盟校");
+ return repVO;
+ }
+ List allStudents = studentService.selectBySchoolName(GetLearnDto.getAnalyseId(),null,null);
+ List leagueStudents = studentService.selectBySchoolName(GetLearnDto.getAnalyseId(),leagues,null);
+ List students = studentService.selectBySchoolName(GetLearnDto.getAnalyseId(),null,GetLearnDto.getSchoolName());
+ //先算高分段的分数
+ int highNumber = (int) Math.floor(allStudents.size()*0.27);
+ double highScore = allStudents.get(highNumber).getScore();
+ int lowNumber = allStudents.size()-highNumber;
+ double lowScore = allStudents.get(lowNumber).getScore();
+ List list = new ArrayList<>();
+
+ int highAllCount = studentService.selectCountByScore(GetLearnDto.getAnalyseId(),null,null,highScore,analyse.getMaxScore()+1f);
+ int lowAllCount = studentService.selectCountByScore(GetLearnDto.getAnalyseId(),null,null,0,lowScore);
+ Form2 form2 = new Form2();
+ form2.setName("区");
+ form2.setStudentNumber(allStudents.size());
+ form2.setHighNumber(highAllCount);
+ form2.setLowNumber(lowAllCount);
+ list.add(form2);
+ {
+ int highLeagueCount = studentService.selectCountByScore(GetLearnDto.getAnalyseId(),leagues,null,highScore,analyse.getMaxScore()+1f);
+ int lowLeagueCount = studentService.selectCountByScore(GetLearnDto.getAnalyseId(),leagues,null,0,lowScore);
+ Form2 form = new Form2();
+ form.setName("联盟校");
+ form.setStudentNumber(leagueStudents.size());
+ form.setStudentProp(new Double(leagueStudents.size()) / new Double(allStudents.size()));
+ form.setHighNumber(highLeagueCount);
+ form.setLowNumber(lowLeagueCount);
+ form.setHighProp(highLeagueCount/new Double(highAllCount));
+ form.setLowProp(lowLeagueCount/new Double(lowAllCount));
+ list.add(form);
+ }
+ {
+ int highCount = studentService.selectCountByScore(GetLearnDto.getAnalyseId(),null,GetLearnDto.getSchoolName(),highScore,analyse.getMaxScore()+1f);
+ int lowCount = studentService.selectCountByScore(GetLearnDto.getAnalyseId(),null,GetLearnDto.getSchoolName(),0,lowScore);
+ Form2 form = new Form2();
+ form.setName(GetLearnDto.getSchoolName());
+ form.setStudentNumber(students.size());
+ form.setStudentProp(new Double(students.size()) / new Double(allStudents.size()));
+ form.setHighNumber(highCount);
+ form.setLowNumber(lowCount);
+ form.setHighProp(highCount/new Double(highAllCount));
+ form.setLowProp(lowCount/new Double(lowAllCount));
+ list.add(form);
+ }
+ repVO.setData(list);
+ RedisUtils.setObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_2_1_2",repVO);
+ }
+ return repVO;
+ }
+
+ @RequestMapping(value = "getForm2_1_3_2", method = RequestMethod.POST)
+ public Form2RepVO getForm2_1_3_2(@RequestBody GetLearnDto GetLearnDto){
+ Form2RepVO repVO = new Form2RepVO();
+ if(RedisUtils.existsObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_2_1_3_2")){
+ repVO = (Form2RepVO) RedisUtils.getObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_2_1_3_2");
+ }else {
+ Analyse analyse = analyseService.selectById(GetLearnDto.getAnalyseId());
+ if(analyse == null){
+ repVO.setSuccess(false);
+ repVO.setMessage("请先创建考试");
+ return repVO;
+ }
+ List allStudents = studentService.selectBySchoolName(GetLearnDto.getAnalyseId(),null,GetLearnDto.getSchoolName());
+ //先算高分段的分数
+ int highNumber = (int) Math.floor(allStudents.size()*0.27);
+ double highScore = allStudents.get(highNumber).getScore();
+ int lowNumber = allStudents.size()-highNumber;
+ double lowScore = allStudents.get(lowNumber).getScore();
+ int highAllCount = studentService.selectCountByScore(GetLearnDto.getAnalyseId(),null,GetLearnDto.getSchoolName(),highScore,analyse.getMaxScore()+1f);
+ int lowAllCount = studentService.selectCountByScore(GetLearnDto.getAnalyseId(),null,GetLearnDto.getSchoolName(),0,lowScore);
+ List resultList = new ArrayList<>();
+ Form2 form = new Form2();
+ form.setName(GetLearnDto.getSchoolName());
+ form.setStudentNumber(allStudents.size());
+ form.setHighNumber(highAllCount);
+ form.setLowNumber(lowAllCount);
+ resultList.add(form);
+ List classNamList = studentService.selectClassNameBySchool(GetLearnDto.getAnalyseId(),GetLearnDto.getSchoolName());
+ for(String className : classNamList){
+ List list = studentService.selectByClassName(GetLearnDto.getAnalyseId(),GetLearnDto.getSchoolName(),className);
+ int highCount = studentService.selectCountBySchoolScore(GetLearnDto.getAnalyseId(),GetLearnDto.getSchoolName(),className,highScore,analyse.getMaxScore()+1f);
+ int lowCount = studentService.selectCountBySchoolScore(GetLearnDto.getAnalyseId(),GetLearnDto.getSchoolName(),className,0,lowScore);
+ Form2 form2 = new Form2();
+ form2.setName(className);
+ form2.setStudentNumber(list.size());
+ form2.setStudentProp(new Double(list.size()) / new Double(allStudents.size()));
+ form2.setHighNumber(highCount);
+ form2.setLowNumber(lowCount);
+ form2.setHighProp(highCount/new Double(highAllCount));
+ form2.setLowProp(lowCount/new Double(lowAllCount));
+ resultList.add(form2);
+ }
+ repVO.setData(resultList);
+ RedisUtils.setObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_2_1_3_2",repVO);
+ }
+ return repVO;
+ }
+
+ @RequestMapping(value = "getForm2_1_3", method = RequestMethod.POST)
+ public List getForm2_1_3(@RequestBody GetLearnDto GetLearnDto){
+ Analyse analyse = analyseService.selectById(GetLearnDto.getAnalyseId());
+ List list = new ArrayList<>();
+ list.add(Math.ceil(analyse.getMaxScore()));
+ list.add(Math.ceil(analyse.getMaxScore()*0.95));
+ list.add(Math.ceil(analyse.getMaxScore()*0.9));
+ list.add(Math.ceil(analyse.getMaxScore()*0.85));
+ list.add(Math.ceil(analyse.getMaxScore()*0.8));
+ list.add(Math.ceil(analyse.getMaxScore()*0.75));
+ list.add(Math.ceil(analyse.getMaxScore()*0.7));
+ list.add(Math.ceil(analyse.getMaxScore()*0.65));
+ list.add(Math.ceil(analyse.getMaxScore()*0.6));
+ list.add(Math.ceil(analyse.getMaxScore()*0.55));
+ list.add(Math.ceil(analyse.getMaxScore()*0.5));
+ list.add(Math.ceil(analyse.getMaxScore()*0.45));
+ list.add(Math.ceil(analyse.getMaxScore()*0.4));
+ list.add(Math.ceil(analyse.getMaxScore()*0.35));
+ list.add(Math.ceil(analyse.getMaxScore()*0.3));
+ list.add(Math.ceil(analyse.getMaxScore()*0));
+ List list1 = new ArrayList<>();
+ for(int i =0 ; i leagues = leagueService.getLeagueBySchoolName(analyse.getId(),GetLearnDto.getSchoolName());
+ if(leagues == null){
+ repVO.setSuccess(false);
+ repVO.setMessage("请先设定联盟校");
+ return repVO;
+ }
+ List list = new ArrayList<>();
+ List allStudents = studentService.selectBySchoolName(analyse.getId(),null,null);
+ {
+ Form3 form3 = new Form3();
+ form3.setName("区");
+ form3.setMaxScore(studentService.selectMaxScore(analyse.getId(),null,null));
+ form3.setAverage(studentService.selectAvgScore(analyse.getId(),null,null));
+ form3.setMinScore(studentService.selectMinScore(analyse.getId(),null,null));
+ int a = studentService.selectCountByScore(analyse.getId(),null,null,analyse.getMaxScore()*0.85,analyse.getMaxScore()+1);
+ form3.setApercent(a / new Double(allStudents.size()) * 100);
+ int b = studentService.selectCountByScore(analyse.getId(),null,null,analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85);
+ form3.setBpercent(b / new Double(allStudents.size()) * 100);
+ int c = studentService.selectCountByScore(analyse.getId(),null,null,analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7);
+ form3.setCpercent(c / new Double(allStudents.size()) * 100);
+ int d = studentService.selectCountByScore(analyse.getId(),null,null,analyse.getMaxScore()*0,analyse.getMaxScore()*0.6);
+ form3.setDpercent(d / new Double(allStudents.size()) * 100);
+ list.add(form3);
+ }
+ {
+ Form3 form = new Form3();
+ form.setName("联盟校");
+ List students = studentService.selectBySchoolName(analyse.getId(),leagues,null);
+ form.setMaxScore(studentService.selectMaxScore(analyse.getId(),leagues,null));
+ form.setAverage(studentService.selectAvgScore(analyse.getId(),leagues,null));
+ form.setMinScore(studentService.selectMinScore(analyse.getId(),leagues,null));
+ int a1 = studentService.selectCountByScore(analyse.getId(),leagues,null,analyse.getMaxScore()*0.85,analyse.getMaxScore()+1);
+ form.setApercent(a1 / new Double(students.size()) * 100);
+ int b1 = studentService.selectCountByScore(analyse.getId(),leagues,null,analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85);
+ form.setBpercent(b1 / new Double(students.size()) * 100);
+ int c1 = studentService.selectCountByScore(analyse.getId(),leagues,null,analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7);
+ form.setCpercent(c1 / new Double(students.size()) * 100);
+ int d1 = studentService.selectCountByScore(analyse.getId(),leagues,null,analyse.getMaxScore()*0,analyse.getMaxScore()*0.6);
+ form.setDpercent(d1 / new Double(students.size()) * 100);
+ list.add(form);
+ }
+ {
+ Form3 form = new Form3();
+ form.setName(GetLearnDto.getSchoolName());
+ List students = studentService.selectBySchoolName(analyse.getId(),null,GetLearnDto.getSchoolName());
+ form.setMaxScore(studentService.selectMaxScore(analyse.getId(),null,GetLearnDto.getSchoolName()));
+ form.setAverage(studentService.selectAvgScore(analyse.getId(),null,GetLearnDto.getSchoolName()));
+ form.setMinScore(studentService.selectMinScore(analyse.getId(),null,GetLearnDto.getSchoolName()));
+ int a1 = studentService.selectCountByScore(analyse.getId(),null,GetLearnDto.getSchoolName(),analyse.getMaxScore()*0.85,analyse.getMaxScore()+1);
+ form.setApercent(a1 / new Double(students.size()) * 100);
+ int b1 = studentService.selectCountByScore(analyse.getId(),null,GetLearnDto.getSchoolName(),analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85);
+ form.setBpercent(b1 / new Double(students.size()) * 100);
+ int c1 = studentService.selectCountByScore(analyse.getId(),null,GetLearnDto.getSchoolName(),analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7);
+ form.setCpercent(c1 / new Double(students.size()) * 100);
+ int d1 = studentService.selectCountByScore(analyse.getId(),null,GetLearnDto.getSchoolName(),analyse.getMaxScore()*0,analyse.getMaxScore()*0.6);
+ form.setDpercent(d1 / new Double(students.size()) * 100);
+ list.add(form);
+ }
+ repVO.setData(list);
+ RedisUtils.setObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_2_2_1",repVO);
+ }
+ return repVO ;
+ }
+
+ @RequestMapping(value = "getForm2_2_2", method = RequestMethod.POST)
+ public Form4RepVO getForm2_2_2(@RequestBody GetLearnDto GetLearnDto){
+ Form4RepVO repVO = new Form4RepVO();
+ if(RedisUtils.existsObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_2_2_2")){
+ repVO = (Form4RepVO) RedisUtils.getObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_2_2_2");
+ }else {
+ Analyse analyse = analyseService.selectById(GetLearnDto.getAnalyseId());
+ if(analyse == null){
+ repVO.setSuccess(false);
+ repVO.setMessage("请先创建考试");
+ return repVO;
+ }
+ List leagues = leagueService.getLeagueBySchoolName(analyse.getId(),GetLearnDto.getSchoolName());
+ if(leagues == null){
+ repVO.setSuccess(false);
+ repVO.setMessage("请先设定联盟校");
+ return repVO;
+ }
+ List list = new ArrayList<>();
+ {
+ Form4 form4 = new Form4();
+ form4.setName("区");
+ form4.setModeNumber(studentService.selectModeNumber(analyse.getId(),null,null));
+ form4.setMedianNumber(studentService.selectMedian(analyse.getId(),null,null));
+ form4.setStdev(studentService.selectStdev(analyse.getId(),null,null));
+ form4.setAvgNumber(studentService.selectAvgScore(analyse.getId(),null,null));
+ list.add(form4);
+ }
+ {
+ Form4 form = new Form4();
+ form.setName("联盟校");
+ form.setModeNumber(studentService.selectModeNumber(analyse.getId(),leagues,null));
+ form.setMedianNumber(studentService.selectMedian(analyse.getId(),leagues,null));
+ form.setStdev(studentService.selectStdev(analyse.getId(),leagues,null));
+ form.setAvgNumber(studentService.selectAvgScore(analyse.getId(),leagues,null));
+ list.add(form);
+ }
+ {
+ Form4 form = new Form4();
+ form.setName(GetLearnDto.getSchoolName());
+ form.setModeNumber(studentService.selectModeNumber(analyse.getId(),null,GetLearnDto.getSchoolName()));
+ form.setMedianNumber(studentService.selectMedian(analyse.getId(),null,GetLearnDto.getSchoolName()));
+ form.setStdev(studentService.selectStdev(analyse.getId(),null,GetLearnDto.getSchoolName()));
+ form.setAvgNumber(studentService.selectAvgScore(analyse.getId(),null,GetLearnDto.getSchoolName()));
+ list.add(form);
+ }
+ repVO.setData(list);
+ RedisUtils.setObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_2_2_2",repVO);
+ }
+ return repVO;
+ }
+
+ @RequestMapping(value = "getForm2_2_3", method = RequestMethod.POST)
+ public Form5RepVO getForm2_2_3(@RequestBody GetLearnDto GetLearnDto){
+ Form5RepVO repVO = new Form5RepVO();
+ if(RedisUtils.existsObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_2_2_3")){
+ repVO = (Form5RepVO) RedisUtils.getObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_2_2_3");
+ }else {
+ Analyse analyse = analyseService.selectById(GetLearnDto.getAnalyseId());
+ if(analyse == null){
+ repVO.setSuccess(false);
+ repVO.setMessage("请先创建考试");
+ return repVO;
+ }
+ List leagues = leagueService.getLeagueBySchoolName(analyse.getId(),GetLearnDto.getSchoolName());
+ if(leagues == null){
+ repVO.setSuccess(false);
+ repVO.setMessage("请先设定联盟校");
+ return repVO;
+ }
+ List allHighStudent = new ArrayList<>();
+ List allLowStudent = new ArrayList<>();
+ List allStudents = studentService.selectBySchoolName(analyse.getId(),null,null);
+ int allNumber = (int) Math.floor(allStudents.size()*0.27) ;
+ {
+ //获取区 高分段,低分段学生编号
+ for (int i = 0; i < allNumber ; i++) {
+ allHighStudent.add(allStudents.get(i).getStudentNumber());
+ }
+ for(int i =allStudents.size()-allNumber ; i < allStudents.size() ; i++){
+ allLowStudent.add(allStudents.get(i).getStudentNumber());
+ }
+ }
+ List leagueHighStudent = new ArrayList<>();
+ List leagueLowStudent = new ArrayList<>();
+ List leagueStudents = studentService.selectBySchoolName(analyse.getId(),leagues,null);
+ int leagueNumber = (int) Math.floor(leagueStudents.size()*0.27) ;
+ {
+ //获取联盟校 高分段 低分段 学生编号
+ for (int i = 0; i < leagueNumber ; i++) {
+ leagueHighStudent.add(leagueStudents.get(i).getStudentNumber());
+ }
+ for(int i =leagueStudents.size()-leagueNumber ; i < leagueStudents.size() ; i++){
+ leagueLowStudent.add(leagueStudents.get(i).getStudentNumber());
+ }
+ }
+ List highStudent = new ArrayList<>();
+ List lowStudent = new ArrayList<>();
+ List students = studentService.selectBySchoolName(analyse.getId(),null,GetLearnDto.getSchoolName());
+ int number = (int) Math.floor(students.size()*0.27) ;
+ {
+ //获取本校高分段 低分段 学生编号
+ for (int i = 0; i < number ; i++) {
+ highStudent.add(students.get(i).getStudentNumber());
+ }
+ for(int i =students.size()-number ; i < students.size() ; i++){
+ lowStudent.add(students.get(i).getStudentNumber());
+ }
+ }
+
+ List list = new ArrayList<>();
+
+ List analyseDetails = analyseDetailService.selectByAnalyseId(analyse.getId());
+ for(AnalyseDetail analyseDetail : analyseDetails){
+ Form5 from5 = new Form5();
+ Double allSumScore = studentDetailService.selectSumScore(analyse.getId(),null,null,analyseDetail.getQuestionNumber());
+ Double leagueSumScore = studentDetailService.selectSumScore(analyse.getId(),leagues,null,analyseDetail.getQuestionNumber());
+ Double schoolSumScore = studentDetailService.selectSumScore(analyse.getId(),null,GetLearnDto.getSchoolName(),analyseDetail.getQuestionNumber());
+ from5.setExamNumber(analyseDetail.getQuestionNumber());
+ from5.setScore(analyseDetail.getScore());
+ from5.setDifficultName(DifficultEnums.getDifficultName(analyseDetail.getDifficult()));
+ from5.setAllRate(allSumScore/new Double(allStudents.size()) / analyseDetail.getScore());
+ from5.setLeagueRate(leagueSumScore/new Double(leagueStudents.size()) / analyseDetail.getScore());
+ from5.setSchoolRate(schoolSumScore/new Double(students.size()) / analyseDetail.getScore());
+
+ from5.setAllAvg(allSumScore / new Double(allStudents.size()));
+ from5.setLeagueAvg(leagueSumScore / new Double(leagueStudents.size()));
+ from5.setSchoolAvg(schoolSumScore / new Double(students.size()));
+
+ int allHigh = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,null ,analyseDetail.getQuestionNumber(),allHighStudent);
+ int allLow = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,null ,analyseDetail.getQuestionNumber(),allLowStudent);
+
+ int leagueHigh = studentDetailService.selectTrueByExamNumber(analyse.getId(),leagues,null ,analyseDetail.getQuestionNumber(),allHighStudent);
+ int leagueLow = studentDetailService.selectTrueByExamNumber(analyse.getId(),leagues,null ,analyseDetail.getQuestionNumber(),allLowStudent);
+
+ int high = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,GetLearnDto.getSchoolName() ,analyseDetail.getQuestionNumber(),highStudent);
+ int low = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,GetLearnDto.getSchoolName() ,analyseDetail.getQuestionNumber(),lowStudent);
+ from5.setAllDist(new Double(allHigh-allLow)/new Double(allNumber));
+ from5.setLeagueDist(new Double(leagueHigh-leagueLow)/new Double(leagueNumber));
+ from5.setSchoolDist(new Double(high-low)/new Double(number));
+ list.add(from5);
+ }
+ repVO.setData(list);
+ RedisUtils.setObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_2_2_3",repVO);
+ }
+ return repVO;
+ }
+
+ @RequestMapping(value = "getForm2_2_4", method = RequestMethod.POST)
+ public Form8RepVO getForm2_2_4(@RequestBody GetLearnDto GetLearnDto){
+ Form8RepVO repVO = new Form8RepVO();
+ if(RedisUtils.existsObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_2_2_4")){
+ repVO = (Form8RepVO) RedisUtils.getObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_2_2_4");
+ }else {
+ Analyse analyse = analyseService.selectById(GetLearnDto.getAnalyseId());
+ if(analyse == null){
+ repVO.setSuccess(false);
+ repVO.setMessage("请先创建考试");
+ return repVO;
+ }
+ List leagues = leagueService.getLeagueBySchoolName(analyse.getId(),GetLearnDto.getSchoolName());
+ if(leagues == null){
+ repVO.setSuccess(false);
+ repVO.setMessage("请先设定联盟校");
+ return repVO;
+ }
+ List list = new ArrayList<>();
+ List allStudents = studentService.selectBySchoolName(analyse.getId(),null,null);
+ List leagueStudents = studentService.selectBySchoolName(analyse.getId(),leagues,null);
+ List students = studentService.selectBySchoolName(analyse.getId(),null,GetLearnDto.getSchoolName());
+ for(DifficultEnums enums : DifficultEnums.values()){
+ Form8 form8 = new Form8();
+ form8.setDifficultName(enums.getDifficultName());
+ form8.setScore(analyseDetailService.selectDifficult(analyse.getId(),enums.getDifficultType()));
+ List analyseDetails = analyseDetailService.selectDifficultDetail(analyse.getId(),enums.getDifficultType());
+ Double allSumScore = 0d , leagueSumScore = 0d , schoolSumScore = 0d , score = 0d;
+ for(AnalyseDetail analyseDetail : analyseDetails){
+ allSumScore = allSumScore + studentDetailService.selectSumScore(analyse.getId(),null,null,analyseDetail.getQuestionNumber());
+ leagueSumScore = leagueSumScore + studentDetailService.selectSumScore(analyse.getId(),leagues,null,analyseDetail.getQuestionNumber());
+ schoolSumScore = schoolSumScore + studentDetailService.selectSumScore(analyse.getId(),null,GetLearnDto.getSchoolName(),analyseDetail.getQuestionNumber());
+ score = score + analyseDetail.getScore() ;
+ }
+ form8.setAllRate(allSumScore / new Double(allStudents.size()) / score );
+ form8.setLeagueRate(leagueSumScore / new Double(leagueStudents.size()) / score );
+ form8.setSchoolRate(schoolSumScore / new Double(students.size()) / score);
+ list.add(form8);
+ }
+ repVO.setData(list);
+ RedisUtils.setObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_2_2_4",repVO);
+ }
+ return repVO;
+ }
+
+ @RequestMapping(value = "getForm2_2_5", method = RequestMethod.POST)
+ public Map getForm2_2_5(@RequestBody GetLearnDto GetLearnDto){
+ Analyse analyse = analyseService.selectById(GetLearnDto.getAnalyseId());
+ //分数段
+ Double maxScore = analyse.getMaxScore();
+ Map segmentMap = new HashMap<>();
+ segmentMap.put("A",maxScore*0.85);
+ segmentMap.put("B",maxScore*0.7);
+ segmentMap.put("C",maxScore*0.6);
+ segmentMap.put("D",maxScore*0.6);
+ return segmentMap ;
+ }
+
+ @RequestMapping(value = "getForm3_1", method = RequestMethod.POST)
+ public Form6RepVO getForm3_1(@RequestBody GetLearnDto GetLearnDto){
+ Form6RepVO form6RepVO = new Form6RepVO();
+ if(RedisUtils.existsObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_3_1")){
+ form6RepVO = (Form6RepVO) RedisUtils.getObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_3_1");
+ }else {
+ form6RepVO = initDimensional(GetLearnDto, DimensionalEnums.knowledge.getDimensionalType()) ;
+ RedisUtils.setObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_3_1",form6RepVO);
+ }
+ return form6RepVO;
+ }
+
+ @RequestMapping(value = "getForm3_1_1", method = RequestMethod.POST)
+ public Table2RepVO getForm3_1_1(@RequestBody GetLearnDto GetLearnDto){
+ Table2RepVO table2RepVO = new Table2RepVO();
+ Form6RepVO form6RepVO = new Form6RepVO();
+ if(RedisUtils.existsObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_3_1")){
+ form6RepVO = (Form6RepVO) RedisUtils.getObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_3_1");
+ }else {
+ form6RepVO = initDimensional(GetLearnDto,DimensionalEnums.knowledge.getDimensionalType()) ;
+ RedisUtils.setObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_3_1",form6RepVO);
+ }
+ List knowledges = knowledgeService.selectAll();
+ List table2List = new ArrayList<>();
+ for(Knowledge knowledge : knowledges){
+ Double sumScore = new Double("0");
+ Double getScore = new Double("0");
+ String[] detailArray = knowledge.getDetail().split("、");
+ for(String detail : detailArray){
+ for(Form6 form6 : form6RepVO.getData()){
+ if(detail.equals(form6.getDimensional())){
+ sumScore = sumScore + form6.getScore() ;
+ getScore = getScore + form6.getSchoolRate()*form6.getScore();
+ }
+ }
+ }
+ if(sumScore > 0){
+ Table2 table2 = new Table2();
+ table2.setKnowledge(knowledge.getKnowledge());
+ table2.setAvg(knowledge.getAvg());
+ table2.setRate(knowledge.getRate());
+ table2.setSchoolRate(getScore / sumScore);
+ table2List.add(table2);
+ }
+ }
+ List data = sort(table2List);
+ table2RepVO.setData(data);
+ return table2RepVO;
+ }
+
+ private List sort(List target){
+ List course = new ArrayList<>();
+ if(target.size() > 0){
+ for(Table2 table2 : target){
+ if(table2.getSchoolRate() < 0.75 && Double.valueOf(table2.getAvg()) >2){
+ course.add(table2);
+ }
+ }
+ if(course.size() == 0){
+ Double avg = new Double("0");
+ Table2 result = new Table2();
+ for(Table2 table2 : target){
+ if(avg < new Double(table2.getAvg())){
+ avg = new Double(table2.getAvg()) ;
+ result = table2 ;
+ }
+ }
+ course.add(result);
+ }
+
+ if(course.size() > 5){
+ course = course.subList(0,5);
+ }
+ for (int i = 0; i < course.size() ; i++) {
+ Table2 temp = new Table2();
+ for (int j = 0; j < course.size() ; j++) {
+ if(new Double(course.get(i).getAvg()) > new Double(course.get(j).getAvg())){
+ temp = course.get(j);
+ course.set(j,course.get(i));
+ course.set(i,temp);
+ }
+ }
+ }
+ }
+ return course;
+ }
+
+ @RequestMapping(value = "getForm3_2", method = RequestMethod.POST)
+ public Form6RepVO getForm3_2(@RequestBody GetLearnDto GetLearnDto){
+ Form6RepVO form6RepVO = new Form6RepVO();
+ if(RedisUtils.existsObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_3_2")){
+ form6RepVO = (Form6RepVO) RedisUtils.getObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_3_2");
+ }else {
+ form6RepVO = initDimensional(GetLearnDto,DimensionalEnums.skill.getDimensionalType()) ;
+ RedisUtils.setObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_3_2",form6RepVO);
+ }
+ return form6RepVO;
+ }
+
+ @RequestMapping(value = "getForm3_3", method = RequestMethod.POST)
+ public Form6RepVO getForm3_3(@RequestBody GetLearnDto GetLearnDto){
+ Form6RepVO form6RepVO = new Form6RepVO();
+ if(RedisUtils.existsObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_3_3")){
+ form6RepVO = (Form6RepVO) RedisUtils.getObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_3_3");
+ }else {
+ form6RepVO = initDimensional(GetLearnDto,DimensionalEnums.ability.getDimensionalType()) ;
+ RedisUtils.setObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_3_3",form6RepVO);
+ }
+ return form6RepVO;
+ }
+
+ @RequestMapping(value = "getForm3_4", method = RequestMethod.POST)
+ public Form6RepVO getForm3_4(@RequestBody GetLearnDto GetLearnDto){
+ Form6RepVO form6RepVO = new Form6RepVO();
+ if(RedisUtils.existsObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_3_4")){
+ form6RepVO = (Form6RepVO) RedisUtils.getObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_3_4");
+ }else {
+ form6RepVO = initDimensional(GetLearnDto,DimensionalEnums.think.getDimensionalType()) ;
+ RedisUtils.setObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_3_4",form6RepVO);
+ }
+ return form6RepVO;
+ }
+
+ private Form6RepVO initDimensional(GetLearnDto GetLearnDto , int dimensionalType){
+ Form6RepVO repVO = new Form6RepVO();
+ Analyse analyse = analyseService.selectById(GetLearnDto.getAnalyseId());
+ if(analyse == null){
+ repVO.setSuccess(false);
+ repVO.setMessage("请先创建考试");
+ return repVO;
+ }
+ List leagues = leagueService.getLeagueBySchoolName(analyse.getId(),GetLearnDto.getSchoolName());
+ if(leagues == null){
+ repVO.setSuccess(false);
+ repVO.setMessage("请先设定区");
+ return repVO;
+ }
+ List allHighStudent = new ArrayList<>();
+ List allLowStudent = new ArrayList<>();
+ List allStudents = studentService.selectBySchoolName(analyse.getId(),null,null);
+ int allNumber = (int) Math.floor(allStudents.size()*0.27) ;
+ {
+ //获取区 高分段,低分段学生编号
+ for (int i = 0; i < allNumber ; i++) {
+ allHighStudent.add(allStudents.get(i).getStudentNumber());
+ }
+ for(int i =allStudents.size()-allNumber ; i < allStudents.size() ; i++){
+ allLowStudent.add(allStudents.get(i).getStudentNumber());
+ }
+ }
+ List leagueHighStudent = new ArrayList<>();
+ List leagueLowStudent = new ArrayList<>();
+ List leagueStudents = studentService.selectBySchoolName(analyse.getId(),leagues,null);
+ int leagueNumber = (int) Math.floor(leagueStudents.size()*0.27) ;
+ {
+ //获取联盟校 高分段 低分段 学生编号
+ for (int i = 0; i < leagueNumber ; i++) {
+ leagueHighStudent.add(leagueStudents.get(i).getStudentNumber());
+ }
+ for(int i =leagueStudents.size()-leagueNumber ; i < leagueStudents.size() ; i++){
+ leagueLowStudent.add(leagueStudents.get(i).getStudentNumber());
+ }
+ }
+ List highStudent = new ArrayList<>();
+ List lowStudent = new ArrayList<>();
+ List students = studentService.selectBySchoolName(analyse.getId(),null,GetLearnDto.getSchoolName());
+ int number = (int) Math.floor(students.size()*0.27) ;
+ {
+ //获取本校高分段 低分段 学生编号
+ for (int i = 0; i < number ; i++) {
+ highStudent.add(students.get(i).getStudentNumber());
+ }
+ for(int i =students.size()-number ; i < students.size() ; i++){
+ lowStudent.add(students.get(i).getStudentNumber());
+ }
+ }
+
+ List list = new ArrayList<>();
+
+ List knowledgeList = dimensionalService.selectByAnalyse(analyse.getId(),dimensionalType);
+ for(Dimensional dimensional : knowledgeList){
+ Form6 form6 = new Form6();
+ form6.setDimensional(dimensional.getDimensionalName());
+ List analyseDimensionals = analyseDimensionalService.selectByDimensional(analyse.getId(),dimensional.getId());
+ Double score = 0d;
+ StringBuffer examNumber = new StringBuffer();
+ List examNumberList = new ArrayList<>();
+ for(AnalyseDimensional analyseDimensional :analyseDimensionals){
+ score = score + analyseDimensional.getScore() ;
+ String questionNumber = analyseDimensional.getQuestionNumber();
+ if(questionNumber.contains("(")){
+ questionNumber = questionNumber.split("\\(")[0];
+ }
+ if(!examNumber.toString().contains(questionNumber)){
+ examNumber.append(questionNumber).append(",");
+ }
+ examNumberList.add(analyseDimensional.getQuestionNumber());
+ }
+ Double allSumScore = studentDetailService.selectSumScore(analyse.getId(),null,null,examNumberList);
+ int allHigh = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,null ,examNumberList,allHighStudent);
+ int allLow = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,null ,examNumberList,allLowStudent);
+
+ Double leagueSumScore = studentDetailService.selectSumScore(analyse.getId(),leagues,null,examNumberList);
+ int leagueHigh = studentDetailService.selectTrueByExamNumber(analyse.getId(),leagues,null ,examNumberList,leagueHighStudent);
+ int leagueLow = studentDetailService.selectTrueByExamNumber(analyse.getId(),leagues,null ,examNumberList,leagueLowStudent);
+
+ Double schoolSumScore = studentDetailService.selectSumScore(analyse.getId(),null,GetLearnDto.getSchoolName(),examNumberList);
+ int high = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,GetLearnDto.getSchoolName() ,examNumberList,highStudent);
+ int low = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,GetLearnDto.getSchoolName() ,examNumberList,lowStudent);
+
+ form6.setScore(score);
+ form6.setAllRate(allSumScore / new Double(allStudents.size()) / score );
+ form6.setLeagueRate(leagueSumScore / new Double(leagueStudents.size()) / score );
+ form6.setSchoolRate(schoolSumScore / new Double(students.size()) / score);
+
+ form6.setAllAvg(allSumScore / new Double(allStudents.size()));
+ form6.setLeagueAvg(leagueSumScore / new Double(leagueStudents.size()));
+ form6.setSchoolAvg(schoolSumScore / new Double(students.size()));
+
+ form6.setAllDist(new Double(allHigh-allLow) / new Double(allNumber * analyseDimensionals.size()));
+ form6.setLeagueDist(new Double(leagueHigh-leagueLow) / new Double(leagueNumber * analyseDimensionals.size()));
+ form6.setSchoolDist(new Double(high-low) / new Double(number * analyseDimensionals.size()));
+ form6.setExamNumber(examNumber.toString().substring(0,examNumber.toString().length()-1));
+ list.add(form6);
+ }
+ repVO.setData(list);
+ return repVO;
+ }
+
+ private Form6RepVO initSchoolDimensional(GetLearnDto GetLearnDto , int dimensionalType){
+ Form6RepVO repVO = new Form6RepVO();
+ Analyse analyse = analyseService.selectById(GetLearnDto.getAnalyseId());
+ if(analyse == null){
+ repVO.setSuccess(false);
+ repVO.setMessage("请先创建考试");
+ return repVO;
+ }
+ List highStudent = new ArrayList<>();
+ List lowStudent = new ArrayList<>();
+ List students = studentService.selectBySchoolName(analyse.getId(),null,GetLearnDto.getSchoolName());
+ int number = (int) Math.floor(students.size()*0.27) ;
+ {
+ //获取本校高分段 低分段 学生编号
+ for (int i = 0; i < number ; i++) {
+ highStudent.add(students.get(i).getStudentNumber());
+ }
+ for(int i =students.size()-number ; i < students.size() ; i++){
+ lowStudent.add(students.get(i).getStudentNumber());
+ }
+ }
+ List list = new ArrayList<>();
+ List knowledgeList = dimensionalService.selectByAnalyse(analyse.getId(),dimensionalType);
+ for(Dimensional dimensional : knowledgeList){
+ Form6 form6 = new Form6();
+ form6.setDimensional(dimensional.getDimensionalName());
+ List analyseDimensionals = analyseDimensionalService.selectByDimensional(analyse.getId(),dimensional.getId());
+ Double score = 0d;
+ StringBuffer examNumber = new StringBuffer();
+ List examNumberList = new ArrayList<>();
+ for(AnalyseDimensional analyseDimensional :analyseDimensionals){
+ score = score + analyseDimensional.getScore() ;
+ examNumber.append(analyseDimensional.getQuestionNumber()).append(",");
+ examNumberList.add(analyseDimensional.getQuestionNumber());
+ }
+ Double schoolSumScore = studentDetailService.selectSumScore(analyse.getId(),null,GetLearnDto.getSchoolName(),examNumberList);
+ int high = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,GetLearnDto.getSchoolName() ,examNumberList,highStudent);
+ int low = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,GetLearnDto.getSchoolName() ,examNumberList,lowStudent);
+ form6.setScore(score);
+ form6.setSchoolRate(schoolSumScore / new Double(students.size()) / score);
+ form6.setSchoolAvg(schoolSumScore / new Double(students.size()));
+ form6.setSchoolDist(new Double(high-low) / new Double(number * analyseDimensionals.size()));
+ form6.setExamNumber(examNumber.toString().substring(0,examNumber.toString().length()-1));
+ list.add(form6);
+ }
+ repVO.setData(list);
+ return repVO;
+ }
+
+ @RequestMapping(value = "getSuggest", method = RequestMethod.POST)
+ public String getSuggest(@RequestBody GetLearnDto GetLearnDto){
+ String suggest = null ;
+ if(RedisUtils.existsObject(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_suggest")){
+ suggest = RedisUtils.getString(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_suggest");
+ }else {
+ SuggestRepVo suggestRepVo = new SuggestRepVo() ;
+ Analyse analyse = analyseService.selectById(GetLearnDto.getAnalyseId());
+ Double avg = studentService.selectAvgScore(analyse.getId(),null,GetLearnDto.getSchoolName()) ;
+ DecimalFormat df = new DecimalFormat("#.00");
+ //得分率
+ String avgStr = df.format(avg / analyse.getMaxScore());
+
+ List students = studentService.selectBySchoolName(GetLearnDto.getAnalyseId(),null,GetLearnDto.getSchoolName());
+ int a = studentService.selectCountByScore(GetLearnDto.getAnalyseId(),null,GetLearnDto.getSchoolName(),analyse.getMaxScore()*0.85,analyse.getMaxScore()+1f);
+ //优秀率
+ Double apercent = new Double(a) / new Double(students.size()) * 100 ;
+ String aStr = df.format(apercent);
+ String access = "";
+ if(avg>=80){
+ if(apercent >= 20){
+ access = "良好";
+ }else {
+ access = "相对可以";
+ }
+ }else if(avg >= 75){
+ if(apercent >= 35){
+ access = "很好";
+ }else if(apercent >= 20){
+ access = "良好";
+ }else {
+ access = "相对可以";
+ }
+ }else if(avg >= 70){
+ if(apercent >= 20){
+ access = "良好";
+ }else {
+ access = "相对可以";
+ }
+ } else if (avg >= 60) {
+ if(apercent >= 10){
+ access = "相对可以";
+ }else {
+ access = "一般";
+ }
+ }else {
+ access = "暴露出一些问题,试卷偏难,学生掌握不够理想";
+ }
+ suggestRepVo.setAssess(access);
+ suggestRepVo.setDifficultyDegree(avgStr);
+ suggestRepVo.setExcellentRate(aStr);
+ suggestRepVo.setErrorList(getErrorRate(GetLearnDto.getAnalyseId(),GetLearnDto.getSchoolName(),students.size()));
+ Form6RepVO knowledge = initSchoolDimensional(GetLearnDto,DimensionalEnums.knowledge.getDimensionalType());
+ List lessKnowledgeList = new ArrayList<>(); //不足50%
+ List midKnowledgeList = new ArrayList<>(); //50-70%
+ for(Form6 form6 :knowledge.getData()){
+ if(form6.getSchoolRate() < 0.5d){
+ lessKnowledgeList.add(form6.getDimensional());
+ }else if(form6.getSchoolRate() < 0.7d){
+ midKnowledgeList.add(form6.getDimensional());
+ }
+ }
+ suggestRepVo.setLessKnowledgeList(lessKnowledgeList);
+ suggestRepVo.setMidKnowledgeList(midKnowledgeList);
+ Form6RepVO ability = initSchoolDimensional(GetLearnDto,DimensionalEnums.ability.getDimensionalType());
+ List lessAbilityList = new ArrayList<>(); //不足70%
+ List midAbilityList = new ArrayList<>(); //70-80%
+ List highAbilityList = new ArrayList<>(); //大于80%
+ for(Form6 form6 :ability.getData()){
+ if(form6.getSchoolRate() < 0.7d){
+ lessAbilityList.add(form6.getDimensional());
+ }else if(form6.getSchoolRate() < 0.8d){
+ midAbilityList.add(form6.getDimensional());
+ }else if(form6.getSchoolRate() >= 0.8d){
+ highAbilityList.add(form6.getDimensional());
+ }
+ }
+ suggestRepVo.setLessAbilityList(lessAbilityList);
+ suggestRepVo.setMidAbilityList(midAbilityList);
+ suggestRepVo.setHighAbilityList(highAbilityList);
+ Form6RepVO skill = initSchoolDimensional(GetLearnDto,DimensionalEnums.skill.getDimensionalType());
+ List lessSkillList = new ArrayList<>(); //不足70%
+ List midSkillList = new ArrayList<>(); //70-80%
+ List highSkillList = new ArrayList<>(); //大于80%
+ for(Form6 form6 :skill.getData()){
+ if(form6.getSchoolRate() < 0.7d){
+ lessSkillList.add(form6.getDimensional());
+ }else if(form6.getSchoolRate() < 0.8d){
+ midSkillList.add(form6.getDimensional());
+ }else if(form6.getSchoolRate() >= 0.8d){
+ highSkillList.add(form6.getDimensional());
+ }
+ }
+ suggestRepVo.setLessSkillList(lessSkillList);
+ suggestRepVo.setMidSkillList(midSkillList);
+ suggestRepVo.setHighSkillList(highSkillList);
+ suggest = initSuggest(suggestRepVo);
+ RedisUtils.setString(GetLearnDto.getAnalyseId()+"_"+GetLearnDto.getSchoolName()+"_suggest",suggest);
+ }
+ return suggest;
+ }
+
+ private List getErrorRate(int analyseId , String schoolName , int studentSize){
+ List