فهرست منبع

修改學時審核

change 4 سال پیش
والد
کامیت
17b3b0edd0

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeUserMapper.java

@@ -38,4 +38,6 @@ public interface ClassGradeUserMapper extends BaseMapper<ClassGradeUser> {
     List<ClassPeriodSectionVo> listperiodExam(@Param("chapterId") Long id,@Param("goodsId") Long goodsId,@Param("courseId") Long courseId,@Param("userId") Long userId,@Param("moduleId") Long moduleId);
 
     List<ClassPeriodSectionVo> listPeriodSectionExam(@Param("chapterId") Long id,@Param("goodsId") Long goodsId,@Param("courseId") Long courseId,@Param("userId") Long userId);
+
+    List<Long> selectStart(@Param("userId") Long userId,@Param("goodsId") Long goodsId,@Param("gradeId") Long gradeId);
 }

+ 35 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java

@@ -149,6 +149,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
             SubjectStudyRecordQueryBo subjectStudyRecordQueryBo = new SubjectStudyRecordQueryBo();
             subjectStudyRecordQueryBo.setGoodsId(classPeriodStudentVo.getGoodsId());
             subjectStudyRecordQueryBo.setUserId(bo.getUserId());
+            subjectStudyRecordQueryBo.setGradeId(bo.getGradeId());
             List<SubjectStudyRecordVo> subjectStudyRecordVos = iUserStudyRecordService.listSubject(subjectStudyRecordQueryBo);
             for (SubjectStudyRecordVo subjectStudyRecordVo : subjectStudyRecordVos) {
                 secLong = new BigDecimal(secLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getSectionNum().toString())).longValue();
@@ -157,8 +158,32 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
             }
             //BigDecimal divide = new BigDecimal(studyLong.toString()).divide(new BigDecimal(secLong.toString()),2,BigDecimal.ROUND_HALF_UP);
             //classGradeStudentVo.setStudyNum(divide.multiply(new BigDecimal("100")).longValue());
+            //总节数
             classPeriodStudentVo.setSecAllNum(secLong);
+            //学习节数
             classPeriodStudentVo.setStuAllNum(studyLong);
+
+            //总的审核状态按照策划规则
+            bo.setUserId(classPeriodStudentVo.getUserId());
+            bo.setGoodsId(classPeriodStudentVo.getGoodsId());
+            ClassPeriodUserVo classPeriodUserVos = baseMapper.listPeriod(bo).get(0);
+            classPeriodUserVos.setPending(classPeriodStudentVo.getSecAllNum()-classPeriodUserVos.getPass()-classPeriodUserVos.getCheat());
+            classPeriodUserVos.setExamPending(classPeriodUserVos.getExamNum()-classPeriodUserVos.getExamPass()-classPeriodUserVos.getExamCheat());
+            if (classPeriodStudentVo.getStuAllNum().equals(classPeriodStudentVo.getSecAllNum()) && classPeriodStudentVo.getExamNum().equals(classPeriodStudentVo.getRecordNum())){
+                if (classPeriodUserVos.getPending() != 0 || classPeriodUserVos.getExamPending() != 0){
+                    classPeriodStudentVo.setAllStatus(0);
+                }else if (classPeriodUserVos.getCheat() != 0 || classPeriodUserVos.getExamCheat() != 0){
+                    classPeriodStudentVo.setAllStatus(1);
+                }else {
+                    classPeriodStudentVo.setAllStatus(2);
+                }
+            }else {
+                classPeriodStudentVo.setAllStatus(-1);
+            }
+            classPeriodStudentVo.setWaitRebuildNum(classPeriodUserVos.getCheat());
+            if (!CollectionUtils.isEmpty(baseMapper.selectStart(classPeriodStudentVo.getUserId(),classPeriodStudentVo.getGoodsId(),classPeriodStudentVo.getGradeId()))) {
+                classPeriodStudentVo.setStartTime(baseMapper.selectStart(classPeriodStudentVo.getUserId(),classPeriodStudentVo.getGoodsId(),classPeriodStudentVo.getGradeId()).get(0));
+            }
         }
         return classPeriodStudentVos;
     }
@@ -184,10 +209,17 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
             classPeriodUserVo.setStuAllNum(studyLong);
             classPeriodUserVo.setPending(classPeriodUserVo.getSecAllNum()-classPeriodUserVo.getPass()-classPeriodUserVo.getCheat());
             classPeriodUserVo.setExamPending(classPeriodUserVo.getExamNum()-classPeriodUserVo.getExamPass()-classPeriodUserVo.getExamCheat());
-            if (classPeriodUserVo.getPending() != 0 || classPeriodUserVo.getExamPending() != 0){
-                classPeriodUserVo.setAllStatus(0);
+
+            if (classPeriodUserVo.getStuAllNum().equals(classPeriodUserVo.getSecAllNum()) && classPeriodUserVo.getExamNum().equals(classPeriodUserVo.getRecordNum())){
+                if (classPeriodUserVo.getPending() != 0 || classPeriodUserVo.getExamPending() != 0){
+                    classPeriodUserVo.setAllStatus(0);
+                }else if (classPeriodUserVo.getCheat() != 0 || classPeriodUserVo.getExamCheat() != 0){
+                    classPeriodUserVo.setAllStatus(1);
+                }else {
+                    classPeriodUserVo.setAllStatus(2);
+                }
             }else {
-                classPeriodUserVo.setAllStatus(1);
+                classPeriodUserVo.setAllStatus(-1);
             }
         }
         return classPeriodUserVos;

+ 36 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodStudentVo.java

@@ -104,4 +104,40 @@ public class ClassPeriodStudentVo {
 	/** 已做试卷 */
 	@ApiModelProperty("已做试卷")
 	private Long recordNum;
+
+	/** 是否学时推送 0未推送 1推送 */
+	@ApiModelProperty("是否学时推送 0未推送 1推送")
+	private Long periodPlush;
+	/** 推送次数 */
+	@ApiModelProperty("推送次数")
+	private Long plushNum;
+
+	/** 学习有效期开始 */
+	@ApiModelProperty("学习开始")
+	private Long startTime;
+	/** 学习有效期结束 */
+	@ApiModelProperty("学习结束")
+	private Long endTime;
+
+	/** 学习有效期开始 */
+	@ApiModelProperty("学习有效期开始")
+	private Long studyStartTime;
+
+	/** 学习有效期结束 */
+	@ApiModelProperty("学习有效期结束")
+	private Long studyEndTime;
+
+	/** 学员编码 */
+	@Excel(name = "當前班級學員審核狀態 -1不可审核 0待審  1未通过 2通过")
+	@ApiModelProperty("當前班級學員審核狀態 -1不可审核 0待審  1未通过 2通过")
+	private Integer allStatus;
+
+	/** 待重修 */
+	@ApiModelProperty("重修节")
+	private Long rebuildNum;
+
+	/** 待重修 */
+	@ApiModelProperty("待重修节")
+	private Long waitRebuildNum;
+
 }

+ 2 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodUserVo.java

@@ -37,8 +37,8 @@ public class ClassPeriodUserVo {
 	private String realName;
 
 	/** 学员编码 */
-	@Excel(name = "當前班級學員審核狀態 0待審  1已審核")
-	@ApiModelProperty("當前班級學員審核狀態 0待審  1已審核")
+	@Excel(name = "當前班級學員審核狀態 -1不可审核 0待審  1未通过 2通过")
+	@ApiModelProperty("當前班級學員審核狀態 -1不可审核 0待審  1未通过 2通过")
 	private Integer allStatus;
 
 	/** 商品ID */

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/SubjectStudyRecordQueryBo.java

@@ -47,6 +47,10 @@ public class SubjectStudyRecordQueryBo extends BaseEntity {
     @ApiModelProperty("商品ID")
     private Long goodsId;
 
+    /** 班级ID */
+    @ApiModelProperty("班级ID")
+    private Long gradeId;
+
     /** 科目名称 */
     @ApiModelProperty("科目名称")
     private String subjectName;

+ 35 - 1
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeUserMapper.xml

@@ -60,6 +60,12 @@
         <result property="secAllNum" column="sec_all_num"/>
         <result property="examNum" column="exam_num"/>
         <result property="recordNum" column="record_num"/>
+        <result property="periodPlush" column="period_plush"/>
+        <result property="startTime" column="start_time"/>
+        <result property="endTime" column="end_time"/>
+        <result property="studyStartTime" column="study_start_time"/>
+        <result property="studyEndTime" column="study_end_time"/>
+        <result property="rebuildNum" column="rebuild_num"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.grade.vo.ClassPeriodUserVo" id="ClassPeriodUserVo">
@@ -201,6 +207,10 @@
         u.telphone,
         (SELECT g.class_hours FROM goods g LEFT JOIN class_grade_goods cgg on cgg.goods_id = g.goods_id where
         cg.grade_id = cgg.grade_id) as class_hours,
+        (SELECT g.study_start_time FROM goods g LEFT JOIN class_grade_goods cgg on cgg.goods_id = g.goods_id where
+        cg.grade_id = cgg.grade_id) as study_start_time,
+        (SELECT g.study_end_time FROM goods g LEFT JOIN class_grade_goods cgg on cgg.goods_id = g.goods_id where
+        cg.grade_id = cgg.grade_id) as study_end_time,
         cgu.period_status,
         (SELECT g.study_start_time FROM goods g LEFT JOIN class_grade_goods cgg on cgg.goods_id = g.goods_id where
         cg.grade_id = cgg.grade_id) as study_start_time,
@@ -208,10 +218,14 @@
         cg.grade_id = cgg.grade_id) as study_end_time,
         cg.class_start_time,
         cg.class_end_time,
+        cgu.period_plush,
         (SELECT COUNT(m.id) FROM course_menu_exam m LEFT JOIN goods_course c on m.course_id=c.course_id LEFT JOIN
         class_grade_goods cgg on cgg.goods_id = c.goods_id where cg.grade_id=cgg.grade_id and m.type = 1 ) as exam_num,
         (SELECT COUNT(DISTINCT ubr.record_id) FROM user_bank_record ubr LEFT JOIN class_grade_goods cgg on cgg.goods_id
-        = ubr.goods_id where ubr.`status`=1) as record_num
+        = ubr.goods_id where ubr.`status`=1 and ubr.grade_id = 91) as record_num,
+        cgu.period_time as end_time,
+      (select COUNT(up.id) from user_period up LEFT JOIN user_period_status ups on up.id=ups.period_id where up.goods_id = (SELECT cgg.goods_id FROM class_grade_goods cgg where cg.grade_id=cgg.grade_id) and up.grade_id = #{gradeId} and up.user_id = u.user_id
+        and ups.period_status=0 and ups.`status`=0 and (SELECT COUNT(upss.id) from user_period_status upss where upss.id = ups.id and upss.period_status = 1 and upss.`status` = 2) > 0 ) as rebuild_num
         FROM
         class_grade_user cgu
         LEFT JOIN class_grade cg ON cgu.grade_id = cg.grade_id
@@ -619,4 +633,24 @@
         </if>
     </select>
 
+    <select id="selectStart" parameterType="map" resultType="long">
+        SELECT
+            usr.create_time
+        FROM
+            user_study_record usr
+        WHERE
+            usr.goods_id = #{goodsId}
+          AND usr.grade_id = #{gradeId}
+          AND usr.user_id = #{userId} UNION
+        SELECT
+            ubr.create_time
+        FROM
+            user_bank_record ubr
+        WHERE
+            ubr.goods_id =#{goodsId}
+          AND ubr.grade_id = #{gradeId}
+          AND ubr.user_id = #{userId}
+        ORDER BY create_time ASC
+    </select>
+
 </mapper>

+ 1 - 1
zhongzheng-system/src/main/resources/mapper/modules/user/UserStudyRecordMapper.xml

@@ -158,7 +158,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         (SELECT COUNT(id) FROM course_menu m where  m.course_id = r.course_id and m.type in(1)) as module_num,
         (SELECT COUNT(id)+(SELECT COUNT(p.id) FROM course_module_chapter p LEFT JOIN course_menu m  on m.menu_id = p.module_id where  m.course_id = r.course_id and m.type in(1)) FROM course_menu m where  m.course_id = r.course_id and m.type in(2)) as chapter_num,
         (SELECT COUNT(id)+(SELECT COUNT(n.id) FROM course_chapter_section n LEFT JOIN course_module_chapter p on n.chapter_id = p.chapter_id LEFT JOIN course_menu m on m.menu_id = p.module_id where m.course_id =  r.course_id and m.type in(1))+(SELECT COUNT(n.id) FROM course_chapter_section n  LEFT JOIN course_menu m on m.menu_id = n.chapter_id where m.course_id = r.course_id and m.type in(2)) FROM course_menu m where  m.course_id = r.course_id and m.type in(3)) as section_num,
-        (select COUNT(DISTINCT record_id) FROM user_study_record c where c.course_id = r.course_id and c.user_id=#{userId} and c.status = 1) as record_num
+        (select COUNT(DISTINCT record_id) FROM user_study_record c where c.course_id = r.course_id and c.user_id=#{userId} and c.status = 1 and c.grade_id = #{gradeId}) as record_num
         FROM
         course r
         LEFT JOIN goods_course c ON c.course_id = r.course_id