Jelajahi Sumber

考试相关代码提交

pans 6 bulan lalu
induk
melakukan
88c93f0ca5

+ 2 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/CourseOpenMapper.java

@@ -48,4 +48,6 @@ public interface CourseOpenMapper extends BaseMapper<CourseOpen> {
     Page<Map<String,Object>> historyProgressPage(@Param("param") Map param, @Param("page") Page<Object> page);
 
     List<String> selectUserId(@Param("semesterId") String semesterId, @Param("courseId") String courseId);
+
+    List<String> selectByGradesIds(List<Integer> gradesIdsList);
 }

+ 9 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CourseOpenMapper.xml

@@ -176,5 +176,14 @@
         </if>
     </select>
 
+    <select id="selectByGradesIds" resultType="string">
+        SELECT
+            DISTINCT su.ACCOUNT
+        FROM SYS_USER su
+         WHERE GRADES_ID IN
+        <foreach collection="gradesIdsList" separator="," close=")" open="(" item="gradesId">
+            #{gradesId}
+        </foreach>
 
+    </select>
 </mapper>

+ 2 - 1
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/domain/exam/TExamAddParam.java

@@ -19,6 +19,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * 考试表添加参数
@@ -68,7 +69,7 @@ public class TExamAddParam {
 
     /** 班级ID 仅入参 */
     @ApiModelProperty(value = "班级ID", position = 13)
-    private String gradesId;
+    private List<Integer> gradesIdsList;
 
     /** 课程ID 仅入参 */
     @ApiModelProperty(value = "课程ID", position = 14)

+ 3 - 0
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/domain/exam/TExamEditParam.java

@@ -20,6 +20,7 @@ import lombok.Setter;
 
 import javax.validation.constraints.NotNull;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 考试表编辑参数
@@ -87,4 +88,6 @@ public class TExamEditParam {
     @ApiModelProperty(value = "课时ID", position = 14)
     private String hourId;
 
+    @ApiModelProperty(value = "班级ID", position = 13)
+    private List<Integer> gradesIdsList;
 }

+ 2 - 1
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/mapper/mapping/ExamPaperMapper.xml

@@ -423,7 +423,7 @@
     FROM
       t_exam_paper tep
     LEFT JOIN t_exam_paper_answer tepa ON tepa.exam_paper_id = tep.id
-    LEFT JOIN COURSE_RELATE cr ON cr.RELATE_ID = tep.id AND cr.FUNC_TYPE = 4
+    LEFT JOIN COURSE_RELATE cr ON cr.RELATE_ID = tep.id AND cr.FUNC_TYPE = #{funcType}
     LEFT JOIN COURSE_CLASSHOUR cc ON cr.MAIN_ID = cc.ID
     LEFT JOIN COURSE_CHAPTER ch ON cc.CHAPTER_ID = ch.ID
     LEFT JOIN COURSE_INFO ci ON ch.COURSE_ID = ci.COURSE_ID
@@ -432,5 +432,6 @@
     WHERE
       tep.paper_type = #{bo.paperType}
       AND su.ID = #{bo.userId}
+      AND tepa.status=2
   </select>
 </mapper>

+ 28 - 5
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/impl/TExamServiceImpl.java

@@ -90,6 +90,12 @@ public class TExamServiceImpl extends ServiceImpl<TExamMapper, TExam> implements
     private DevMessageService devMessageService;
 
 
+
+
+
+
+
+
     @Override
     public Page<TExamVo> page(TExamPageParam tExamPageParam) {
         if(!StpLoginUserUtil.getLoginUser().getAccount().equals("superAdmin")){
@@ -124,11 +130,12 @@ public class TExamServiceImpl extends ServiceImpl<TExamMapper, TExam> implements
         TExam tExam = BeanUtil.toBean(tExamAddParam, TExam.class);
 
         boolean query = false;
-        Map<String, Object> map = new HashMap<>();
         if(tExamAddParam.getCourseId() != null && !tExamAddParam.getCourseId().isEmpty()){
-            map.put("courseId",tExamAddParam.getCourseId());
             query = true;
         }
+
+
+
         List<String> studentAccounts=new ArrayList<>();
         if(query){
             studentAccounts=courseOpenMapper.selectAccount(tExamAddParam.getSemesterId(),tExamAddParam.getCourseId());
@@ -138,6 +145,15 @@ public class TExamServiceImpl extends ServiceImpl<TExamMapper, TExam> implements
             }else{
                return CommonResult.error("根据学期和课程没有查询到学生信息!!!");
             }
+        }else{
+            //课程id为空的时候,根据班级查询,对应的学生
+            studentAccounts= courseOpenMapper.selectByGradesIds(tExamAddParam.getGradesIdsList());
+            if(CollectionUtil.isNotEmpty(studentAccounts)){
+                String studentIdsStr = String.join(",", studentAccounts);
+                tExam.setStudentIds(studentIdsStr);
+            }else{
+                return CommonResult.error("根据班级没有查出对应的学生!!!");
+            }
         }
 
 
@@ -195,9 +211,7 @@ public class TExamServiceImpl extends ServiceImpl<TExamMapper, TExam> implements
 
 
         boolean query = false;
-        Map<String, Object> map = new HashMap<>();
         if(tExamEditParam.getCourseId() != null && !tExamEditParam.getCourseId().isEmpty()){
-            map.put("courseId",tExamEditParam.getCourseId());
             query = true;
         }
 
@@ -210,10 +224,19 @@ public class TExamServiceImpl extends ServiceImpl<TExamMapper, TExam> implements
             }else{
                 return CommonResult.error("根据学期和课程没有查询到学生信息!!!");
             }
+        }else{
+            //课程id为空的时候,根据班级查询,对应的学生
+            studentAccounts= courseOpenMapper.selectByGradesIds(tExamEditParam.getGradesIdsList());
+            if(CollectionUtil.isNotEmpty(studentAccounts)){
+                String studentIdsStr = String.join(",", studentAccounts);
+                tExam.setStudentIds(studentIdsStr);
+            }else{
+                return CommonResult.error("根据班级没有查出对应的学生!!!");
+            }
         }
 
-        tExam.setExamType(tExamEditParam.getExamType());
 
+        tExam.setExamType(tExamEditParam.getExamType());
 
         if(updateJob){
             // 修改定时任务