yangdamao 1 year ago
parent
commit
8443e1ed46

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseMapper.java

@@ -15,6 +15,7 @@ import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.grade.vo.ClassGradeVo;
 import com.zhongzheng.modules.order.bo.SpecialQuestionBo;
 import com.zhongzheng.modules.order.vo.SpecialQuestionVo;
+import com.zhongzheng.modules.user.bo.SubjectStudyRecordQueryBo;
 import com.zhongzheng.modules.user.bo.UserPlanQueryBo;
 import org.apache.ibatis.annotations.Param;
 
@@ -79,4 +80,7 @@ public interface CourseMapper extends BaseMapper<Course> {
     Long getSpecialQuestionCount(SpecialQuestionBo bo);
 
     List<Long> getOrderGoodsIds(CourseQueryBo bo);
+
+    Long getStudyCourseNum(SubjectStudyRecordQueryBo subjectStudyRecordQueryBo);
+
 }

+ 10 - 8
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseServiceImpl.java

@@ -983,19 +983,21 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
                 continue;
             }
 
-            Long secLong = 0L;
-            Long studyLong = 0L;
+//            Long secLong = 0L;
+//            Long studyLong = 0L;
             SubjectStudyRecordQueryBo subjectStudyRecordQueryBo = new SubjectStudyRecordQueryBo();
             subjectStudyRecordQueryBo.setGoodsId(goodsUserVo.getGoodsId());
             subjectStudyRecordQueryBo.setUserId(bo.getUserId());
             subjectStudyRecordQueryBo.setGradeId(goodsUserVo.getGradeId());
             subjectStudyRecordQueryBo.setOrderGoodsId(goodsUserVo.getOrderGoodsId());
-            List<SubjectStudyRecordVo> subjectStudyRecordVos = iUserStudyRecordService.listDangAnSubject(subjectStudyRecordQueryBo);
-            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();
-            }
-            goodsUserVo.setSecAllNum(secLong);
+//            List<SubjectStudyRecordVo> subjectStudyRecordVos = iUserStudyRecordService.listDangAnSubject(subjectStudyRecordQueryBo);
+//            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();
+//            }
+            goodsUserVo.setSecAllNum(goodsUserVo.getCourseNum());
+            //已学节
+            Long studyLong =  baseMapper.getStudyCourseNum(subjectStudyRecordQueryBo);
             goodsUserVo.setStuAllNum(studyLong);
             goodsUserVo.setExamNum(classGradeVo.getExamNum());
             goodsUserVo.setRecordNum(classGradeVo.getRecordNum());

+ 18 - 0
zhongzheng-system/src/main/resources/mapper/modules/course/CourseMapper.xml

@@ -178,6 +178,8 @@
         <result property="sectionMaxNum" column="section_max_num"/>
         <result property="externalLink" column="external_link"/>
         <result property="externalLinkStatus" column="external_link_status"/>
+        <result property="courseNum" column="course_num"/>
+        <result property="examNum" column="exam_num"/>
 
         <result property="supplyName" column="supply_name"/>
         <result property="educationName" column="education_name"/>
@@ -611,6 +613,8 @@
         o.user_id,
         og.order_goods_id,
         og.grade_id,
+        og.course_num,
+        og.exam_num,
         og.create_time as open_goods_time
         FROM
         `order` o
@@ -1082,6 +1086,20 @@
         </if>
     </select>
 
+    <select id="getStudyCourseNum" parameterType="com.zhongzheng.modules.user.bo.SubjectStudyRecordQueryBo" resultType="java.lang.Long">
+        SELECT
+            COUNT( DISTINCT course_id, module_id, chapter_id, section_id )
+        FROM
+            user_study_record c
+        WHERE
+          AND c.current_status = 1
+          AND c.grade_id = #{gradeId}
+          AND c.order_goods_id = #{orderGoodsId}
+          AND c.user_id = #{userId}
+          and c.status = 1
+          and c.goods_id = #{goodsId}
+    </select>
+
     <select id="getOrderGoodsIds" parameterType="com.zhongzheng.modules.course.bo.CourseQueryBo" resultType="java.lang.Long">
         SELECT
             og.order_goods_id

+ 7 - 1
zhongzheng-system/src/main/resources/mapper/modules/order/OrderGoodsMapper.xml

@@ -984,7 +984,13 @@
     </select>
 
     <select id="listByNotTenant"  resultType="com.zhongzheng.modules.order.domain.OrderGoods">
-        SELECT * FROM order_goods WHERE `status` = 1 AND ((course_num IS NULL OR course_num = 0)OR(exam_num IS NULL OR exam_num = 0)) AND refund_status != 2 AND pay_status != 1
+        SELECT og.* FROM order_goods og
+        LEFT JOIN goods g ON og.goods_id = g.goods_id
+        WHERE og.`status` = 1
+          AND (( og.course_num IS NULL OR og.course_num = 0 ) AND ( og.exam_num IS NULL OR og.exam_num = 0 ))
+          AND og.refund_status != 2
+          AND og.pay_status != 1
+          AND g.goods_type = 1
     </select>
 
     <update id="upBatchNumById" parameterType="com.zhongzheng.modules.order.domain.OrderGoods">