he2802 3 роки тому
батько
коміт
a3837b2e7b

+ 13 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java

@@ -69,7 +69,7 @@ public class ClassGradeController extends BaseController {
     @ApiOperation("查询班级学员列表")
     @PreAuthorize("@ss.hasPermi('grade:grade:list')")
     @GetMapping("/listGrade")
-    public TableDataInfo<ClassGradeStudentVo> listGrade(ClassGradeQueryBo bo) {
+    public TableDataInfo<ClassGradeStudentVo> listGrade(ClassGradeUserQueryBo bo) {
         startPage();
         List<ClassGradeStudentVo> list = iClassGradeService.listGrade(bo);
         return getDataTable(list);
@@ -87,6 +87,18 @@ public class ClassGradeController extends BaseController {
         return getDataTable(list);
     }
 
+    /**
+     * 查询学时学员记录列表
+     */
+/*    @ApiOperation("查询学员记录列表")
+    @PreAuthorize("@ss.hasPermi('grade:user:list')")
+    @GetMapping("/listUserPeriod")
+    public TableDataInfo<ClassGradeUserVo> listUserPeriod(ClassGradeUserQueryBo bo) {
+        startPage();
+        List<ClassGradeUserVo> list = iClassGradeUserService.listUserPeriod(bo);
+        return getDataTable(list);
+    }*/
+
 
 
     /**

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeMapper.java

@@ -2,6 +2,7 @@ package com.zhongzheng.modules.grade.mapper;
 
 import com.zhongzheng.modules.goods.vo.GoodsVo;
 import com.zhongzheng.modules.grade.bo.ClassGradeQueryBo;
+import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.grade.domain.ClassGrade;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.grade.vo.ClassGradeStudentVo;
@@ -23,5 +24,5 @@ public interface ClassGradeMapper extends BaseMapper<ClassGrade> {
     List<GoodsVo> queryGoodsList(Long classId);
 
 
-    List<ClassGradeStudentVo> listGrade(ClassGradeQueryBo bo);
+    List<ClassGradeStudentVo> listGrade(ClassGradeUserQueryBo bo);
 }

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/IClassGradeService.java

@@ -1,5 +1,6 @@
 package com.zhongzheng.modules.grade.service;
 
+import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.grade.domain.ClassGrade;
 import com.zhongzheng.modules.grade.vo.ClassGradeStudentVo;
 import com.zhongzheng.modules.grade.vo.ClassGradeVo;
@@ -51,5 +52,5 @@ public interface IClassGradeService extends IService<ClassGrade> {
 	 */
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
 
-    List<ClassGradeStudentVo> listGrade(ClassGradeQueryBo bo);
+    List<ClassGradeStudentVo> listGrade(ClassGradeUserQueryBo bo);
 }

+ 29 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java

@@ -3,6 +3,7 @@ package com.zhongzheng.modules.grade.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.SecurityUtils;
 import com.zhongzheng.common.utils.ServletUtils;
@@ -15,6 +16,9 @@ import com.zhongzheng.modules.grade.service.IClassGradeGoodsService;
 import com.zhongzheng.modules.grade.service.IClassGradeSysService;
 import com.zhongzheng.modules.grade.vo.ClassGradeStudentVo;
 import com.zhongzheng.modules.system.domain.SysConfig;
+import com.zhongzheng.modules.user.bo.SubjectStudyRecordQueryBo;
+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;
@@ -26,6 +30,7 @@ import com.zhongzheng.modules.grade.mapper.ClassGradeMapper;
 import com.zhongzheng.modules.grade.vo.ClassGradeVo;
 import com.zhongzheng.modules.grade.service.IClassGradeService;
 
+import java.math.BigDecimal;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -49,6 +54,9 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
     @Autowired
     private IClassGradeGoodsService classGradeGoodsService;
 
+    @Autowired
+    private IUserStudyRecordService iUserStudyRecordService;
+
     @Override
     public ClassGradeVo queryById(Long gradeId){
         ClassGradeQueryBo classGradeQueryBo = new ClassGradeQueryBo();
@@ -170,7 +178,26 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
     }
 
     @Override
-    public List<ClassGradeStudentVo> listGrade(ClassGradeQueryBo bo) {
-        return baseMapper.listGrade(bo);
+    public List<ClassGradeStudentVo> listGrade(ClassGradeUserQueryBo bo) {
+        List<ClassGradeStudentVo> classGradeStudentVos = baseMapper.listGrade(bo);
+        for (ClassGradeStudentVo classGradeStudentVo : classGradeStudentVos) {
+            Long secLong = 0L;
+            Long studyLong = 0L;
+
+            SubjectStudyRecordQueryBo subjectStudyRecordQueryBo = new SubjectStudyRecordQueryBo();
+            subjectStudyRecordQueryBo.setGoodsId(classGradeStudentVo.getGoodsId());
+            subjectStudyRecordQueryBo.setUserId(bo.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);
+            //classGradeStudentVo.setStudyNum(divide.multiply(new BigDecimal("100")).longValue());
+            classGradeStudentVo.setSecAllNum(secLong);
+            classGradeStudentVo.setStuAllNum(studyLong);
+        }
+        return classGradeStudentVos;
     }
 }

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

@@ -25,6 +25,11 @@ public class ClassGradeStudentVo {
 	@Excel(name = "学员ID")
 	@ApiModelProperty("学员ID")
 	private Long userId;
+
+	/** 商品ID */
+	@Excel(name = "商品ID")
+	@ApiModelProperty("商品ID")
+	private Long goodsId;
 	/** 班级id */
 	@Excel(name = "班级id")
 	@ApiModelProperty("班级id")
@@ -80,9 +85,11 @@ public class ClassGradeStudentVo {
 	@ApiModelProperty("官方学习账号推送状态")
 	private Long learnStatus;
 
+
 	/** 学习进度 */
-	@ApiModelProperty("学习进度")
-	private Long studyNum;
+	@ApiModelProperty("已学节数")
+	private Long stuAllNum;
+
 
 	/** 学习进度 */
 	@ApiModelProperty("总节数")

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

@@ -0,0 +1,107 @@
+package com.zhongzheng.modules.grade.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 学员记录视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2021-11-10
+ */
+@Data
+@ApiModel("学员学时视图对象")
+public class ClassPeriodStudentVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long id;
+
+	/** 学员ID */
+	@Excel(name = "学员ID")
+	@ApiModelProperty("学员ID")
+	private Long userId;
+
+	/** 商品ID */
+	@Excel(name = "商品ID")
+	@ApiModelProperty("商品ID")
+	private Long goodsId;
+	/** 班级id */
+	@Excel(name = "班级id")
+	@ApiModelProperty("班级id")
+	private Long gradeId;
+	/** 1 进入 0移除 */
+	@Excel(name = "1 进入 0移除")
+	@ApiModelProperty("1 进入 0移除")
+	private Integer status;
+
+	/** 学员编码 */
+	@Excel(name = "学员编码")
+	@ApiModelProperty("学员编码")
+	private String studentCode;
+
+	/** 学员编码 */
+	@Excel(name = "学员姓名")
+	@ApiModelProperty("学员姓名")
+	private String realName;
+
+
+	/** 学员编码 */
+	@Excel(name = "学员身份证")
+	@ApiModelProperty("学员身份证")
+	private String idCard;
+
+	/** 学员编码 */
+	@Excel(name = "学员电话")
+	@ApiModelProperty("学员电话")
+	private String telPhone;
+
+	/** 操作人 */
+	@Excel(name = "资料是否变更过")
+	@ApiModelProperty("资料是否变更过 1变更 0未变更")
+	private Integer userStatus;
+
+	/** 学时 */
+	@ApiModelProperty("学时")
+	private Long classHours;
+
+	/** 学时审批状态 0 未通过 1通过 */
+	@ApiModelProperty("学时审批状态 0 未通过 1通过")
+	private Long periodStatus;
+
+	/** 结业状态 0 未结业 1结业 */
+	@ApiModelProperty("结业状态 0 未结业 1结业")
+	private Long finishStatus;
+
+	/** 官方推送状态 1是 0否 */
+	@ApiModelProperty("官方推送状态 1是 0否")
+	private Long officialStatus;
+
+	/** 官方学习账号推送状态 */
+	@ApiModelProperty("官方学习账号推送状态")
+	private Long learnStatus;
+
+
+	/** 学习进度 */
+	@ApiModelProperty("已学节数")
+	private Long stuAllNum;
+
+
+	/** 学习进度 */
+	@ApiModelProperty("总节数")
+	private Long secAllNum;
+
+
+	/** 节数 */
+	@ApiModelProperty("试卷数")
+	private Long examNum;
+
+
+	/** 已做试卷 */
+	@ApiModelProperty("已做试卷")
+	private Long recordNum;
+}

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

@@ -194,7 +194,13 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
     @Override
     public List<ExamStudyRecordVo> querExamStudy(UserQueryBo bo) {
         List<ExamStudyRecordVo> examStudyRecordVos = baseMapper.querExamStudy(bo);
-
+        for (ExamStudyRecordVo examStudyRecordVo : examStudyRecordVos) {
+            SubjectStudyRecordQueryBo subjectStudyRecordQueryBo = new SubjectStudyRecordQueryBo();
+            subjectStudyRecordQueryBo.setUserId(examStudyRecordVo.getUserId());
+            subjectStudyRecordQueryBo.setGoodsId(examStudyRecordVo.getGoodsId());
+            List<ExamSonStudyRecordVo> examSonStudyRecordVos = baseMapper.listExamSon(subjectStudyRecordQueryBo);
+            examStudyRecordVo.setExamSonStudyRecordVos(examSonStudyRecordVos);
+        }
         return examStudyRecordVos;
     }
 

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

@@ -86,5 +86,9 @@ public class ExamStudyRecordVo {
     @ApiModelProperty("试卷数量")
     private Long examNum;
 
+    /** 试卷详情 */
+    @ApiModelProperty("试卷详情")
+    private List<ExamSonStudyRecordVo> examSonStudyRecordVos;
+
 
 }

+ 6 - 2
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeMapper.xml

@@ -225,12 +225,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
           AND o.grade_id =#{gradeId}
     </select>
 
-    <select id="listGrade"  parameterType="com.zhongzheng.modules.grade.bo.ClassGradeQueryBo" resultMap="ClassGradeStudentVo">
+    <select id="listGrade"  parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo" resultMap="ClassGradeStudentVo">
         SELECT
         u.student_code,
         u.user_id,
         cgu.`status`,
         u.realname,
+        (SELECT cgg.goods_id FROM class_grade_goods cgg where cg.grade_id=cgg.grade_id) as goods_id,
         u.id_card,
         cgu.grade_id,
         u.telphone,
@@ -243,7 +244,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         cg.class_start_time,
         cg.class_end_time,
         cgu.official_status,
-        cgu.learn_status
+        cgu.learn_status,
+        (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
         FROM
         class_grade_user cgu
         LEFT JOIN class_grade cg ON cgu.grade_id = cg.grade_id
@@ -253,6 +256,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="gradeId != null and gradeId !='' ">
           and cgu.grade_id = #{gradeId}
         </if>
+        order by cgu.update_time
     </select>
 
 

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

@@ -119,7 +119,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         and study_duration > 360
     </select>
 
-    <select id="queryGoods" parameterType="com.zhongzheng.modules.user.bo.UserQueryBo"  resultMap="GoodsStudyRecordVoResult">SELECT
+    <select id="queryGoods" parameterType="com.zhongzheng.modules.user.bo.UserQueryBo"  resultMap="GoodsStudyRecordVoResult">
+        SELECT
         g.goods_name,
         g.`code`,
         g.`year`,