change 3 лет назад
Родитель
Сommit
239c4665e4

+ 18 - 1
zhongzheng-api/src/main/java/com/zhongzheng/controller/course/CoursePeriodController.java

@@ -9,8 +9,10 @@ import com.zhongzheng.modules.course.bo.CourseEducationTypeQueryBo;
 import com.zhongzheng.modules.course.service.ICourseEducationTypeService;
 import com.zhongzheng.modules.course.service.ICourseService;
 import com.zhongzheng.modules.course.vo.CourseEducationTypeVo;
+import com.zhongzheng.modules.goods.vo.GoodsPeriodStatusVo;
 import com.zhongzheng.modules.goods.vo.GoodsPeriodVo;
 import com.zhongzheng.modules.goods.vo.GoodsVo;
+import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.user.bo.UserPlanQueryBo;
 import com.zhongzheng.modules.user.entity.ClientLoginUser;
 import io.swagger.annotations.Api;
@@ -42,7 +44,7 @@ public class CoursePeriodController extends BaseController {
     private final WxTokenService wxTokenService;
 
     /**
-     * 查询学习计划列表
+     * 查询用户拥有商品的学时记录
      */
     @ApiOperation("查询用户拥有商品的学时记录")
     @PreAuthorize("@ss.hasPermi('system:plan:list')")
@@ -53,4 +55,19 @@ public class CoursePeriodController extends BaseController {
         List<GoodsPeriodVo> list = courseService.listGoodsPeriodVo(bo);
         return getDataTable(list);
     }
+
+    /**
+     * 查询学习计划列表
+     */
+    @ApiOperation("查看班级作弊重学详细情况")
+    @PreAuthorize("@ss.hasPermi('system:plan:list')")
+    @GetMapping("/listSection")
+    public TableDataInfo<GoodsPeriodStatusVo> listSection(ClassGradeUserQueryBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        List<GoodsPeriodStatusVo> list = courseService.listSection(bo);
+        return getDataTable(list);
+    }
+
+
 }

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

@@ -6,7 +6,9 @@ import com.zhongzheng.common.core.domain.entity.SysRole;
 import com.zhongzheng.modules.course.bo.CourseQueryBo;
 import com.zhongzheng.modules.course.domain.Course;
 import com.zhongzheng.modules.course.vo.CourseVo;
+import com.zhongzheng.modules.goods.vo.GoodsPeriodStatusVo;
 import com.zhongzheng.modules.goods.vo.GoodsPeriodVo;
+import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.user.bo.UserPlanQueryBo;
 
 import java.util.List;
@@ -26,4 +28,6 @@ public interface CourseMapper extends BaseMapper<Course> {
 
 
     List<GoodsPeriodVo> listGoodsPeriodVo(UserPlanQueryBo bo);
+
+    List<GoodsPeriodStatusVo> listSection(ClassGradeUserQueryBo bo);
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseService.java

@@ -7,7 +7,9 @@ import com.zhongzheng.modules.course.bo.CourseEditBo;
 import com.zhongzheng.modules.course.bo.CourseQueryBo;
 import com.zhongzheng.modules.course.domain.Course;
 import com.zhongzheng.modules.course.vo.CourseVo;
+import com.zhongzheng.modules.goods.vo.GoodsPeriodStatusVo;
 import com.zhongzheng.modules.goods.vo.GoodsPeriodVo;
+import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.user.bo.UserPlanQueryBo;
 
 import java.util.Collection;
@@ -58,4 +60,6 @@ public interface ICourseService extends IService<Course> {
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
 
     List<GoodsPeriodVo> listGoodsPeriodVo(UserPlanQueryBo bo);
+
+	List<GoodsPeriodStatusVo> listSection(ClassGradeUserQueryBo bo);
 }

+ 34 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseServiceImpl.java

@@ -17,11 +17,16 @@ import com.zhongzheng.modules.course.mapper.CourseSectionMapper;
 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.GoodsPeriodStatusVo;
 import com.zhongzheng.modules.goods.vo.GoodsPeriodVo;
+import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.user.bo.SubjectStudyRecordQueryBo;
 import com.zhongzheng.modules.user.bo.UserPlanQueryBo;
+import com.zhongzheng.modules.user.domain.UserStudyRecordPhoto;
+import com.zhongzheng.modules.user.service.IUserStudyRecordPhotoService;
 import com.zhongzheng.modules.user.service.IUserStudyRecordService;
 import com.zhongzheng.modules.user.vo.SubjectStudyRecordVo;
+import com.zhongzheng.modules.user.vo.UserStudyRecordPhotoVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -47,6 +52,9 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
     @Autowired
     private CourseMapper courseMapper;
 
+    @Autowired
+    private IUserStudyRecordPhotoService userStudyRecordPhotoService;
+
     @Autowired
     private IUserStudyRecordService iUserStudyRecordService;
 
@@ -163,10 +171,10 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
                     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) {
+                    if (goodsPeriodVo.getCheat() != 0 || goodsPeriodVo.getExamCheat() != 0) {
                         goodsPeriodVo.setPeriodStatus(3L);
+                    }else if (goodsPeriodVo.getPending() != 0 || goodsPeriodVo.getExamPending() != 0) {
+                        goodsPeriodVo.setPeriodStatus(2L);
                     } else {
                         goodsPeriodVo.setPeriodStatus(1L);
                     }
@@ -178,6 +186,29 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
         return goodsPeriodVos;
     }
 
+    @Override
+    public List<GoodsPeriodStatusVo> listSection(ClassGradeUserQueryBo bo) {
+        List<GoodsPeriodStatusVo> goodsPeriodStatusVos = baseMapper.listSection(bo);
+        for (GoodsPeriodStatusVo goodsPeriodStatusVo : goodsPeriodStatusVos) {
+            LambdaQueryWrapper<UserStudyRecordPhoto> lqw = Wrappers.lambdaQuery();
+            lqw.eq(UserStudyRecordPhoto::getPeriodId, goodsPeriodStatusVo.getId());
+            goodsPeriodStatusVo.setUserStudyRecordPhoto(entity2PhotoVo(userStudyRecordPhotoService.list(lqw)));
+        }
+        return goodsPeriodStatusVos;
+    }
+    private List<UserStudyRecordPhotoVo> entity2PhotoVo(Collection<UserStudyRecordPhoto> collection) {
+        List<UserStudyRecordPhotoVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, UserStudyRecordPhotoVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<UserStudyRecordPhoto> page = (Page<UserStudyRecordPhoto>)collection;
+            Page<UserStudyRecordPhotoVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
     private boolean checkNameUnique(Course entity) {
         Course info = getOne(new LambdaQueryWrapper<Course>()
                 .eq(Course::getPrefixName,entity.getPrefixName()).eq(Course::getCourseName,entity.getCourseName()).last("limit 1"));

+ 43 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsPeriodStatusVo.java

@@ -0,0 +1,43 @@
+package com.zhongzheng.modules.goods.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.zhongzheng.modules.user.vo.UserStudyRecordPhotoVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 商品视图对象 mall_package
+ *
+ * @author hjl
+ * @date 2021-10-12
+ */
+@Data
+@ApiModel("商品视图对象")
+public class GoodsPeriodStatusVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long id;
+
+	/** 年份 */
+	@Excel(name = "节或卷标题")
+	@ApiModelProperty("节或卷标题")
+	private String name;
+
+
+	/** 1 节 2卷 */
+	@Excel(name = "1 节 2卷")
+	@ApiModelProperty("1 节 2卷")
+	private Long type;
+
+	/** 拍照详情 */
+	@Excel(name = "拍照详情")
+	@ApiModelProperty("拍照详情")
+	private List<UserStudyRecordPhotoVo> userStudyRecordPhoto;
+
+}

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserSubscribeServiceImpl.java

@@ -155,6 +155,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
             update.setResult(userSubscribeCertificateEditBo.getResult());
             update.setCertificateCode(userSubscribeCertificateEditBo.getCertificateCode());
             update.setRemark(userSubscribeCertificateEditBo.getRemark());
+            update.setUpdateTime(DateUtils.getNowTime());
             boolean b = this.updateById(update);
         }
         return true;

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

@@ -228,4 +228,38 @@
           and unix_timestamp(now()) BETWEEN cg.class_start_time and cg.class_end_time
         AND cg.status=1
     </select>
+
+    <select id="listSection" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo"  resultMap="CourseResultVo">
+        SELECT
+            ups.id,
+            cs.`name`,
+            1 as type
+        FROM
+            user_period up
+                LEFT JOIN user_period_status ups ON up.id = ups.period_id
+                LEFT JOIN course_section cs ON cs.section_id = up.section_id
+        WHERE
+            1 = 1
+          AND user_id = #{userId}
+          AND ups.period_status = 1
+          AND ups.`status` = 0
+          AND up.exam_id = 0
+          and up.grade_id = #{gradeId}
+        UNION
+        SELECT
+            ups.id,
+            exam_name as name,
+            2 as type
+        FROM
+            user_period up
+                LEFT JOIN user_period_status ups ON up.id = ups.period_id
+                LEFT JOIN exam e ON e.exam_id = up.exam_id
+        WHERE
+            1 = 1
+          AND user_id = #{userId}
+          AND ups.period_status = 1
+          AND ups.`status` = 0
+          AND up.section_id = 0
+          and up.grade_id = #{gradeId}
+    </select>
 </mapper>