Ver Fonte

学员班级查询

change há 3 anos atrás
pai
commit
1894db08a7

+ 1 - 7
zhongzheng-admin/src/main/java/com/zhongzheng/controller/grade/ClassStudentController.java

@@ -98,13 +98,7 @@ public class ClassStudentController extends BaseController {
     public TableDataInfo<GoodsStudyRecordVo> list(UserQueryBo bo) {
         startPage();
         List<GoodsStudyRecordVo> list = iUserStudyRecordService.queryGoods(bo);
-        for (GoodsStudyRecordVo goodsStudyRecordVo : list) {
-            SubjectStudyRecordQueryBo subjectStudyRecordQueryBo = new SubjectStudyRecordQueryBo();
-            subjectStudyRecordQueryBo.setGoodId(goodsStudyRecordVo.getGoodsId());
-            subjectStudyRecordQueryBo.setUserId(goodsStudyRecordVo.getUserId());
-            List<SubjectStudyRecordVo> subjectStudyRecordVos = iUserStudyRecordService.listSubject(subjectStudyRecordQueryBo);
-            goodsStudyRecordVo.setSubjectStudyRecordVos(subjectStudyRecordVos);
-        }
+
         return getDataTable(list);
     }
 

+ 16 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/SubjectStudyRecordQueryBo.java

@@ -1,5 +1,6 @@
 package com.zhongzheng.modules.user.bo;
 
+import com.zhongzheng.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -12,10 +13,24 @@ import lombok.Data;
  */
 @Data
 @ApiModel("【请填写功能名称】视图对象")
-public class SubjectStudyRecordQueryBo {
+public class SubjectStudyRecordQueryBo extends BaseEntity {
 
     private static final long serialVersionUID = 1L;
 
+
+    /** 分页大小 */
+    @ApiModelProperty("分页大小")
+    private Integer pageSize;
+    /** 当前页数 */
+    @ApiModelProperty("当前页数")
+    private Integer pageNum;
+    /** 排序列 */
+    @ApiModelProperty("排序列")
+    private String orderByColumn;
+    /** 排序的方向desc或者asc */
+    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
+    private String isAsc;
+
     /** 科目ID */
     @ApiModelProperty("科目ID")
     private Long subjectId;

+ 32 - 7
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserStudyRecordServiceImpl.java

@@ -17,6 +17,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.Page;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -35,6 +36,10 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
     private UserStudyRecordMapper userStudyRecordMapper;
 
 
+    @Autowired
+    private IUserStudyRecordService iUserStudyRecordService;
+
+
 
     @Override
     public UserStudyRecordVo queryById(Long recordId){
@@ -127,22 +132,42 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
 
     @Override
     public List<GoodsStudyRecordVo> queryGoods(UserQueryBo bo) {
-        return baseMapper.queryGoods(bo);
+        List<GoodsStudyRecordVo> list = baseMapper.queryGoods(bo);
+
+        for (GoodsStudyRecordVo goodsStudyRecordVo : list) {
+            Long secLong = 0L;
+            Long studyLong = 0L;
+            SubjectStudyRecordQueryBo subjectStudyRecordQueryBo = new SubjectStudyRecordQueryBo();
+            subjectStudyRecordQueryBo.setGoodId(goodsStudyRecordVo.getGoodsId());
+            subjectStudyRecordQueryBo.setUserId(goodsStudyRecordVo.getUserId());
+            List<SubjectStudyRecordVo> subjectStudyRecordVos = iUserStudyRecordService.listSubject(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();
+            }
+            BigDecimal divide = new BigDecimal(studyLong.toString()).divide(new BigDecimal(secLong.toString()),2,BigDecimal.ROUND_HALF_UP);
+
+            goodsStudyRecordVo.setStudyNum(divide.multiply(new BigDecimal("100")).longValue());
+            goodsStudyRecordVo.setSubjectStudyRecordVos(subjectStudyRecordVos);
+        }
+
+        return list;
     }
 
     @Override
     public List<SubjectStudyRecordVo> listSubject(SubjectStudyRecordQueryBo bo) {
         List<SubjectStudyRecordVo> subjectStudyRecordVos = baseMapper.listSubject(bo);
-        for (SubjectStudyRecordVo subjectStudyRecordVo : subjectStudyRecordVos) {
-            String sectionType = new String();
-            sectionType = baseMapper.sectionType(subjectStudyRecordVo.getCourseId());
-
-        }
         return subjectStudyRecordVos;
     }
 
     @Override
     public List<SectionStudyRecordVo> listSection(SubjectStudyRecordQueryBo bo) {
-        return baseMapper.listSection(bo);
+        List<SectionStudyRecordVo> sectionStudyRecordVos = baseMapper.listSection(bo);
+        for (SectionStudyRecordVo sectionStudyRecordVo : sectionStudyRecordVos) {
+            if (sectionStudyRecordVo.getStartTime() == null){
+                sectionStudyRecordVo.setStatus(2L);
+            }
+        }
+        return sectionStudyRecordVos;
     }
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/GoodsStudyRecordVo.java

@@ -81,6 +81,11 @@ public class GoodsStudyRecordVo {
     private Long endTime;
 
 
+    /** 学习进度 */
+    @ApiModelProperty("学习进度")
+    private Long studyNum;
+
+
     /** 課程科目返回 */
     @ApiModelProperty("課程科目返回")
     private List<SubjectStudyRecordVo> subjectStudyRecordVos;

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

@@ -118,7 +118,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="listSubject" parameterType="com.zhongzheng.modules.user.bo.SubjectStudyRecordQueryBo"  resultMap="SubjectStudyRecordVoResult">
         SELECT
-        u.user_id,
+        #{userId} as user_id,
         r.subject_id,
         r.course_id,
         r.course_name,
@@ -127,15 +127,11 @@ 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.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) as record_num
         FROM
-        goods_course c
-        LEFT JOIN course r ON c.course_id = r.course_id
-        LEFT JOIN user_study_record u on u.course_id = r.course_id
+        course r
+        LEFT JOIN goods_course c ON c.course_id = r.course_id
         where 1=1
-        <if test="userId != null and userId !=''">
-            and u.user_id = #{userId}
-        </if>
         <if test="goodId != null and goodId !=''">
             and c.goods_id =#{goodId}
         </if>
@@ -150,17 +146,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             s.duration_time,
             (select i.start_time FROM user_study_record i where m.menu_id = i.section_id
         <if test="userId != null and userId !=''">
-            and u.user_id = #{userId}
+            and i.user_id = #{userId}
         </if>
             ORDER BY i.start_time ASC LIMIT 1) as start_time,
             (select i.end_time FROM user_study_record i where m.menu_id = i.section_id
         <if test="userId != null and userId !=''">
-            and u.user_id = #{userId}
+            and i.user_id = #{userId}
         </if>
             ORDER BY i.start_time DESC LIMIT 1) as end_time,
             (select i.`status` FROM user_study_record i where m.menu_id = i.section_id
         <if test="userId != null and userId !=''">
-            and u.user_id = #{userId}
+            and i.user_id = #{userId}
         </if>
         LIMIT 1) as `status`
         FROM
@@ -169,7 +165,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         WHERE
             m.type =3
         <if test="courseId != null and courseId !=''">
-            and m.course_id={courseId}
+            and m.course_id=#{courseId}
         </if>
         UNION
         SELECT
@@ -180,17 +176,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             s.duration_time,
         (select i.start_time FROM user_study_record i where m.menu_id = i.section_id
         <if test="userId != null and userId !=''">
-            and u.user_id = #{userId}
+            and i.user_id = #{userId}
         </if>
         ORDER BY i.start_time ASC LIMIT 1) as start_time,
         (select i.end_time FROM user_study_record i where m.menu_id = i.section_id
         <if test="userId != null and userId !=''">
-            and u.user_id = #{userId}
+            and i.user_id = #{userId}
         </if>
         ORDER BY i.start_time DESC LIMIT 1) as end_time,
         (select i.`status` FROM user_study_record i where m.menu_id = i.section_id
         <if test="userId != null and userId !=''">
-            and u.user_id = #{userId}
+            and i.user_id = #{userId}
         </if>
         LIMIT 1) as `status`
         FROM
@@ -200,7 +196,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         WHERE
             m.type =2
         <if test="courseId != null and courseId !=''">
-            and m.course_id={courseId}
+            and m.course_id=#{courseId}
         </if>
         UNION
         SELECT
@@ -211,17 +207,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             s.duration_time,
         (select i.start_time FROM user_study_record i where m.menu_id = i.section_id
         <if test="userId != null and userId !=''">
-            and u.user_id = #{userId}
+            and i.user_id = #{userId}
         </if>
         ORDER BY i.start_time ASC LIMIT 1) as start_time,
         (select i.end_time FROM user_study_record i where m.menu_id = i.section_id
         <if test="userId != null and userId !=''">
-            and u.user_id = #{userId}
+            and i.user_id = #{userId}
         </if>
         ORDER BY i.start_time DESC LIMIT 1) as end_time,
         (select i.`status` FROM user_study_record i where m.menu_id = i.section_id
         <if test="userId != null and userId !=''">
-            and u.user_id = #{userId}
+            and i.user_id = #{userId}
         </if>
         LIMIT 1) as `status`
         FROM
@@ -232,7 +228,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         WHERE
             m.type =1
         <if test="courseId != null and courseId !=''">
-            and m.course_id={courseId}
+            and m.course_id=#{courseId}
         </if>
 
     </select>