change 3 жил өмнө
parent
commit
f9dc6a1afe

+ 36 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseServiceImpl.java

@@ -3,6 +3,7 @@ package com.zhongzheng.modules.course.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.ServletUtils;
@@ -17,7 +18,10 @@ import com.zhongzheng.modules.course.service.ICourseSectionBusinessService;
 import com.zhongzheng.modules.course.service.ICourseService;
 import com.zhongzheng.modules.course.vo.CourseVo;
 import com.zhongzheng.modules.goods.vo.GoodsPeriodVo;
+import com.zhongzheng.modules.user.bo.SubjectStudyRecordQueryBo;
 import com.zhongzheng.modules.user.bo.UserPlanQueryBo;
+import com.zhongzheng.modules.user.service.IUserStudyRecordService;
+import com.zhongzheng.modules.user.vo.SubjectStudyRecordVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -25,6 +29,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.Page;
 
+import java.math.BigDecimal;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -42,6 +47,9 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
     @Autowired
     private CourseMapper courseMapper;
 
+    @Autowired
+    private IUserStudyRecordService iUserStudyRecordService;
+
     @Override
     public CourseVo queryById(Long courseId){
         Course db = this.baseMapper.selectById(courseId);
@@ -140,7 +148,34 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
 
     @Override
     public List<GoodsPeriodVo> listGoodsPeriodVo(UserPlanQueryBo bo) {
-        return baseMapper.listGoodsPeriodVo(bo);
+        List<GoodsPeriodVo> goodsPeriodVos = baseMapper.listGoodsPeriodVo(bo);
+        for (GoodsPeriodVo goodsPeriodVo : goodsPeriodVos) {
+            Long secLong = 0L;
+            Long studyLong = 0L;
+            SubjectStudyRecordQueryBo subjectStudyRecordQueryBo = new SubjectStudyRecordQueryBo();
+            subjectStudyRecordQueryBo.setGoodsId(goodsPeriodVo.getGoodsId());
+            subjectStudyRecordQueryBo.setUserId(bo.getUserId());
+            subjectStudyRecordQueryBo.setGradeId(goodsPeriodVo.getGradeId());
+            List<SubjectStudyRecordVo> subjectStudyRecordVos = iUserStudyRecordService.listSubject(subjectStudyRecordQueryBo);
+            if (!CollectionUtils.isEmpty(subjectStudyRecordVos)) {
+                for (SubjectStudyRecordVo subjectStudyRecordVo : subjectStudyRecordVos) {
+                    secLong = new BigDecimal(secLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getSectionNum().toString())).longValue();
+                    studyLong = new BigDecimal(studyLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getRecordNum().toString())).longValue();
+                }
+                if (secLong.equals(studyLong) && goodsPeriodVo.getExamNum().equals(goodsPeriodVo.getRecordNum())) {
+                    if (goodsPeriodVo.getPending() != 0 || goodsPeriodVo.getExamPending() != 0) {
+                        goodsPeriodVo.setPeriodStatus(2L);
+                    } else if (goodsPeriodVo.getCheat() != 0 || goodsPeriodVo.getExamCheat() != 0) {
+                        goodsPeriodVo.setPeriodStatus(3L);
+                    } else {
+                        goodsPeriodVo.setPeriodStatus(1L);
+                    }
+                } else {
+                    goodsPeriodVo.setPeriodStatus(-1L);
+                }
+            }
+        }
+        return goodsPeriodVos;
     }
 
     private boolean checkNameUnique(Course entity) {

+ 37 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsPeriodVo.java

@@ -45,4 +45,41 @@ public class GoodsPeriodVo {
 	@Excel(name = "需要重修节数目")
 	@ApiModelProperty("需要重修节数目")
 	private Long rebuild;
+
+	@Excel(name = "班级Id")
+	@ApiModelProperty("班级Id")
+	private Long gradeId;
+
+	/** 节数 */
+	@ApiModelProperty("试卷数")
+	private Long examNum;
+
+
+	/** 已做试卷 */
+	@ApiModelProperty("已做试卷")
+	private Long recordNum;
+
+	/** 通过节 */
+	@ApiModelProperty("視頻通过节")
+	private Long pass;
+
+	/** 作弊节 */
+	@ApiModelProperty("視頻作弊节")
+	private Long cheat;
+
+	/** 待审*/
+	@ApiModelProperty("視頻待审")
+	private Long pending;
+
+	/** 通过节 */
+	@ApiModelProperty("試卷通过节")
+	private Long examPass;
+
+	/** 作弊节 */
+	@ApiModelProperty("試卷作弊节")
+	private Long examCheat;
+
+	/** 待审*/
+	@ApiModelProperty("試卷待审")
+	private Long examPending;
 }

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java

@@ -200,6 +200,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
             SubjectStudyRecordQueryBo subjectStudyRecordQueryBo = new SubjectStudyRecordQueryBo();
             subjectStudyRecordQueryBo.setGoodsId(classPeriodUserVo.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();

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/domain/UserSubscribe.java

@@ -59,5 +59,6 @@ private static final long serialVersionUID=1L;
     @TableField(fill = FieldFill.INSERT_UPDATE)
     private Long updateTime;
     /** 前培Id */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long beforeId;
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserSubscribeVo.java

@@ -119,6 +119,10 @@ public class UserSubscribeVo {
 	@ApiModelProperty("创建时间")
 	private Long createTime;
 
+	/** 前培ID */
+	@ApiModelProperty("前培ID")
+	private Long beforeId;
+
 	@ApiModelProperty("考试地点时间")
 	private List<ExamApplySiteVo> examApplySite;
 

+ 25 - 11
zhongzheng-system/src/main/resources/mapper/modules/course/CourseMapper.xml

@@ -62,6 +62,9 @@
         <result property="goodsName" column="goods_name"/>
         <result property="periodStatus" column="period_status"/>
         <result property="rebuild" column="rebuild"/>
+        <result property="gradeId" column="grade_id"/>
+        <result property="examNum" column="exam_num"/>
+        <result property="recordNum" column="record_num"/>
     </resultMap>
 
     <select id="findGoodsList" resultMap="CourseGoodsListResult">
@@ -199,19 +202,30 @@
     <select id="listGoodsPeriodVo" parameterType="com.zhongzheng.modules.user.bo.UserPlanQueryBo"  resultMap="GoodsPeriodVo">
         SELECT
             g.goods_id,
-            g.`year`,
             g.goods_name,
-            (SELECT COUNT(1) FROM user_period up LEFT JOIN user_period_status ups on up.id = ups.period_id where up.goods_id = g.goods_id AND ups.period_status =1 and ups.`status` =0) as rebuild
+            g.`year`,
+            (SELECT COUNT(1) FROM user_period up LEFT JOIN user_period_status ups on up.id = ups.period_id where up.goods_id = g.goods_id AND ups.period_status =1 and ups.`status` =0) as rebuild,
+            cgu.grade_id,
+            (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 and ubr.type =2 and ubr.report_status =1 and ubr.user_id =cgu.user_id and ubr.grade_id = cg.grade_id) as record_num,
+            (SELECT COUNT(up.id) FROM user_period up LEFT JOIN user_period_status ups on up.id = ups.period_id where
+                ups.`status` =1 and ups.period_status = 1 and up.goods_id=g.goods_id and up.user_id = cgu.user_id and up.type = 1) as pass,
+            (SELECT
+                 COUNT(up.id) FROM user_period up LEFT JOIN user_period_status ups on up.id = ups.period_id where ups.`status`
+                =0 and ups.period_status = 1 and up.goods_id=g.goods_id and up.user_id = cgu.user_id and up.type = 1) as cheat,
+            (SELECT COUNT(up.id) FROM user_period up LEFT JOIN user_period_status ups on up.id = ups.period_id where
+                ups.`status` =1 and ups.period_status = 1 and up.goods_id=g.goods_id and up.user_id = cgu.user_id and up.type = 2) as exam_pass,
+            (SELECT
+                 COUNT(up.id) FROM user_period up LEFT JOIN user_period_status ups on up.id = ups.period_id where ups.`status`
+                =0 and ups.period_status = 1 and up.goods_id=g.goods_id and up.user_id = cgu.user_id and up.type = 2) as exam_cheat
         FROM
-            goods g
-                LEFT JOIN order_goods og ON g.goods_id = og.goods_id
-                LEFT JOIN `order` o ON o.order_sn = og.order_sn
+            class_grade_user cgu
+                LEFT JOIN class_grade_goods cgg ON cgu.grade_id = cgg.grade_id
+                LEFT JOIN class_grade cg on cg.grade_id = cgu.grade_id
+                LEFT JOIN goods g on g.goods_id=cgg.goods_id
         WHERE
-            1 =1
-          and o.user_id = #{userId}
-          AND og.refund_status in (0,3)
-          and og.`status`= 1
-          and og.pay_status in(2,3)
-          and g.goods_type =1
+            cgu.user_id =#{userId}
+          and unix_timestamp(now()) BETWEEN cg.class_start_time and cg.class_end_time
+        AND cg.status=1
     </select>
 </mapper>

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

@@ -255,7 +255,7 @@
         (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 and ubr.type =2 and ubr.report_status =1) as record_num,
+        = ubr.goods_id where ubr.`status`=1 and ubr.type =2 and ubr.report_status =1 and ubr.user_id=#{userId} and cg.grade_id=cgg.grade_id ) as record_num,
         (SELECT COUNT(up.id) FROM user_period up LEFT JOIN user_period_status ups on up.id = ups.period_id where
         ups.`status` =1 and ups.period_status = 1 and up.goods_id=#{goodsId} and up.user_id = #{userId} and up.type = 1) as pass,
        (SELECT

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

@@ -45,6 +45,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="realname" column="realname"/>
         <result property="idCard" column="id_card"/>
         <result property="applyName" column="apply_name"/>
+        <result property="beforeId" column="before_id"/>
     </resultMap>
 
     <select id="listSubscribe" parameterType="com.zhongzheng.modules.user.bo.UserSubscribeQueryBo" resultMap="UserSubscribeVo">