Browse Source

fix 商品列表筛选

he2802 3 năm trước cách đây
mục cha
commit
b737ee596f
18 tập tin đã thay đổi với 408 bổ sung14 xóa
  1. 1 1
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/UserSubscribeController.java
  2. 73 0
      zhongzheng-api/src/main/java/com/zhongzheng/controller/course/CoursePeriodController.java
  3. 5 9
      zhongzheng-api/src/main/java/com/zhongzheng/controller/plan/UserPlanController.java
  4. 6 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseMapper.java
  5. 8 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseService.java
  6. 73 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseServiceImpl.java
  7. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamNumberGoodsQueryBo.java
  8. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamNumberServiceImpl.java
  9. 43 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsPeriodStatusVo.java
  10. 85 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsPeriodVo.java
  11. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java
  12. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/domain/UserSubscribe.java
  13. 25 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserSubscribeServiceImpl.java
  14. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserSubscribeVo.java
  15. 74 0
      zhongzheng-system/src/main/resources/mapper/modules/course/CourseMapper.xml
  16. 3 0
      zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsMapper.xml
  17. 1 1
      zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeUserMapper.xml
  18. 1 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserSubscribeMapper.xml

+ 1 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/UserSubscribeController.java

@@ -73,7 +73,7 @@ public class UserSubscribeController extends BaseController {
     /**
      * 修改用户预约考试
      */
-    @ApiOperation("批量选考试登记状态")
+    @ApiOperation("批量改证书状态")
     @PreAuthorize("@ss.hasPermi('system:subscribe:edit')")
     @Log(title = "用户预约考试", businessType = BusinessType.UPDATE)
     @PostMapping()

+ 73 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/course/CoursePeriodController.java

@@ -0,0 +1,73 @@
+package com.zhongzheng.controller.course;
+
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.framework.web.service.*;
+import com.zhongzheng.framework.web.service.WxTokenService;
+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;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 教育类型Controller
+ * 
+ * @author ruoyi
+ * @date 2021-10-08
+ */
+@Api(value = "我的学时", tags = {"我的学时"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/course/period")
+public class CoursePeriodController extends BaseController {
+
+    private final ICourseService courseService;
+
+    private final WxTokenService wxTokenService;
+
+    /**
+     * 查询用户拥有商品的学时记录
+     */
+    @ApiOperation("查询用户拥有商品的学时记录")
+    @PreAuthorize("@ss.hasPermi('system:plan:list')")
+    @GetMapping("/listGoods")
+    public TableDataInfo<GoodsPeriodVo> listGoods(UserPlanQueryBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        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);
+    }
+
+
+}

+ 5 - 9
zhongzheng-api/src/main/java/com/zhongzheng/controller/plan/UserPlanController.java

@@ -48,12 +48,13 @@ public class UserPlanController extends BaseController {
 
     private final IUserPlanService iUserPlanService;
 
-    private final WxTokenService WxTokenService;
+
+    @Autowired
+    private WxTokenService wxTokenService;
     /**
      * 查询学习计划列表
      */
     @ApiOperation("查询学习计划列表")
-    @PreAuthorize("@ss.hasPermi('system:plan:list')")
     @GetMapping("/list")
     public TableDataInfo<UserPlanVo> list(UserPlanQueryBo bo) {
         startPage();
@@ -66,7 +67,6 @@ public class UserPlanController extends BaseController {
      * 获取学习计划详细信息
      */
     @ApiOperation("获取学习计划详细信息")
-    @PreAuthorize("@ss.hasPermi('system:plan:query')")
     @GetMapping("/{planId}")
     public AjaxResult<UserPlanVo> getInfo(@PathVariable("planId" ) Long planId) {
         return AjaxResult.success(iUserPlanService.queryById(planId));
@@ -76,7 +76,6 @@ public class UserPlanController extends BaseController {
      * 新增学习计划
      */
     @ApiOperation("新增学习计划")
-    @PreAuthorize("@ss.hasPermi('system:plan:add')")
     @Log(title = "学习计划", businessType = BusinessType.INSERT)
     @PostMapping()
     public AjaxResult<Void> add(@RequestBody UserPlanAddBo bo) {
@@ -87,7 +86,6 @@ public class UserPlanController extends BaseController {
      * 修改学习计划
      */
     @ApiOperation("修改学习计划")
-    @PreAuthorize("@ss.hasPermi('system:plan:edit')")
     @Log(title = "学习计划", businessType = BusinessType.UPDATE)
     @PutMapping()
     public AjaxResult<Void> edit(@RequestBody UserPlanEditBo bo) {
@@ -99,7 +97,6 @@ public class UserPlanController extends BaseController {
      * 查询学习计划列表
      */
     @ApiOperation("获得展示的日历学习计划,不添加到数据库")
-    @PreAuthorize("@ss.hasPermi('system:plan:list')")
     @GetMapping("/listPlan")
     public AjaxResult<UserPlanVo> listPlan(UserPlanEditBo bo) {
         UserPlanVo list = iUserPlanService.listPlan(bo);
@@ -109,13 +106,12 @@ public class UserPlanController extends BaseController {
     /**
      * 查询学习计划列表
      */
-    @ApiOperation("查询学员拥有商品能生成学习计划的商品")
-    @PreAuthorize("@ss.hasPermi('system:plan:list')")
+  /*  @ApiOperation("查询学员拥有商品能生成学习计划的商品")
     @GetMapping("/listGoods")
     public TableDataInfo<GoodsVo> listGoods(UserPlanQueryBo bo) {
         ClientLoginUser loginUser = WxTokenService.getLoginUser(ServletUtils.getRequest());
         bo.setUserId(loginUser.getUser().getUserId());
         List<GoodsVo> list = iUserPlanService.listGoods(bo);
         return getDataTable(list);
-    }
+    }*/
 }

+ 6 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseMapper.java

@@ -6,6 +6,10 @@ 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;
 import java.util.Map;
@@ -23,6 +27,7 @@ public interface CourseMapper extends BaseMapper<Course> {
     List<CourseVo> selectCourseList(CourseQueryBo bo);
 
 
+    List<GoodsPeriodVo> listGoodsPeriodVo(UserPlanQueryBo bo);
 
-
+    List<GoodsPeriodStatusVo> listSection(ClassGradeUserQueryBo bo);
 }

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

@@ -7,6 +7,10 @@ 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;
 import java.util.List;
@@ -54,4 +58,8 @@ public interface ICourseService extends IService<Course> {
 	 * @return
 	 */
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    List<GoodsPeriodVo> listGoodsPeriodVo(UserPlanQueryBo bo);
+
+	List<GoodsPeriodStatusVo> listSection(ClassGradeUserQueryBo bo);
 }

+ 73 - 0
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;
@@ -16,6 +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;
@@ -23,6 +34,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;
@@ -40,6 +52,12 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
     @Autowired
     private CourseMapper courseMapper;
 
+    @Autowired
+    private IUserStudyRecordPhotoService userStudyRecordPhotoService;
+
+    @Autowired
+    private IUserStudyRecordService iUserStudyRecordService;
+
     @Override
     public CourseVo queryById(Long courseId){
         Course db = this.baseMapper.selectById(courseId);
@@ -136,6 +154,61 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
         return this.removeByIds(ids);
     }
 
+    @Override
+    public List<GoodsPeriodVo> listGoodsPeriodVo(UserPlanQueryBo 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.getCheat() != 0 || goodsPeriodVo.getExamCheat() != 0) {
+                        goodsPeriodVo.setPeriodStatus(3L);
+                    }else if (goodsPeriodVo.getPending() != 0 || goodsPeriodVo.getExamPending() != 0) {
+                        goodsPeriodVo.setPeriodStatus(2L);
+                    } else {
+                        goodsPeriodVo.setPeriodStatus(1L);
+                    }
+                } else {
+                    goodsPeriodVo.setPeriodStatus(-1L);
+                }
+            }
+        }
+        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"));

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamNumberGoodsQueryBo.java

@@ -62,4 +62,7 @@ public class ExamNumberGoodsQueryBo extends BaseEntity {
 
 	@ApiModelProperty("1 前培 2补考")
 	private Long filtration;
+
+	@ApiModelProperty("1上架 0未上架")
+	private Long goodsStatus;
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamNumberServiceImpl.java

@@ -138,7 +138,7 @@ public class ExamNumberServiceImpl extends ServiceImpl<ExamNumberMapper, ExamNum
                     examNumberQueryBo.setGoodsId(goodsId);
                     List<ExamNumberVo> examNumberVos = baseMapper.ListExamNumber(examNumberQueryBo);
                     if (CollectionUtils.isNotEmpty(examNumberVos)) {
-                        throw new IllegalArgumentException("考次存在商品已启用考次配置,不可开启,请重新创建新的考次配置商品");
+                        throw new IllegalArgumentException("当前商品已启用考次配置,不可开启,请重新创建新的配置考试次数和前培次数商品");
                     }
                 }
                 ExamNumberGoodsAddBo examNumberGoodsAddBo = new ExamNumberGoodsAddBo();

+ 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;
+
+}

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

@@ -0,0 +1,85 @@
+package com.zhongzheng.modules.goods.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+
+/**
+ * 商品视图对象 mall_package
+ *
+ * @author hjl
+ * @date 2021-10-12
+ */
+@Data
+@ApiModel("商品视图对象")
+public class GoodsPeriodVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long goodsId;
+
+	/** 年份 */
+	@Excel(name = "年份")
+	@ApiModelProperty("年份")
+	private Long year;
+
+
+	/** 商品名称 */
+	@Excel(name = "商品名称")
+	@ApiModelProperty("商品名称")
+	private String goodsName;
+
+
+	/** 商品名称 */
+	@Excel(name = "商品名称")
+	@ApiModelProperty("学时审核状态 -1 不可审核 1通过审核  2待审 3不通过")
+	private Long periodStatus;
+
+	/** 重修节数目 */
+	@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;
 }

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

@@ -3,7 +3,11 @@ package com.zhongzheng.modules.user.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.exam.mapper.ExamApplyMapper;
+import com.zhongzheng.modules.exam.vo.ExamApplySiteTimeVo;
+import com.zhongzheng.modules.exam.vo.ExamApplySiteVo;
 import com.zhongzheng.modules.user.bo.UserSubscribeCertificateEditBo;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -32,6 +36,9 @@ import java.util.stream.Collectors;
 @Service
 public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, UserSubscribe> implements IUserSubscribeService {
 
+    @Autowired
+    private ExamApplyMapper examApplyMapper;
+
     @Override
     public UserSubscribeVo queryById(Long subscribeId){
         UserSubscribe db = this.baseMapper.selectById(subscribeId);
@@ -96,6 +103,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
             update.setRemark(bo.getRemark());
             update.setBeforeId(bo.getBeforeId());
             update.setBeforeStatus(bo.getBeforeStatus());
+            update.setUpdateTime(DateUtils.getNowTime());
             boolean b = this.updateById(update);
         }
         return true;
@@ -120,7 +128,22 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
 
     @Override
     public List<UserSubscribeVo> listSubscribe(UserSubscribeQueryBo bo) {
-        return baseMapper.listSubscribe(bo);
+        List<UserSubscribeVo> userSubscribeVos = baseMapper.listSubscribe(bo);
+        for (UserSubscribeVo userSubscribeVo : userSubscribeVos) {
+            List<ExamApplySiteVo> examApplySite = examApplyMapper.addressExam(userSubscribeVo.getApplyId(),1L);
+            for (ExamApplySiteVo examApplySiteVo : examApplySite) {
+                List<ExamApplySiteTimeVo> examApplySiteTime = examApplyMapper.addressTimeExam(examApplySiteVo.getId());
+                examApplySiteVo.setExamApplySiteTime(examApplySiteTime);
+            }
+            List<ExamApplySiteVo> examApplySiteTrain = examApplyMapper.addressExam(userSubscribeVo.getApplyId(),2L);
+            for (ExamApplySiteVo examApplySiteVo : examApplySiteTrain) {
+                List<ExamApplySiteTimeVo> examApplySiteTime = examApplyMapper.addressTimeExam(examApplySiteVo.getId());
+                examApplySiteVo.setExamApplySiteTime(examApplySiteTime);
+            }
+            userSubscribeVo.setExamApplySite(examApplySite);
+            userSubscribeVo.setExamApplySiteTrain(examApplySiteTrain);
+        }
+        return userSubscribeVos;
     }
 
     @Override
@@ -132,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;

+ 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;
 

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

@@ -56,6 +56,16 @@
         <result property="subjectName" column="subject_name"/>
         <collection property="goodsList" column="course_id" select="findGoodsList"/>
     </resultMap>
+    <resultMap type="com.zhongzheng.modules.goods.vo.GoodsPeriodVo" id="GoodsPeriodVo">
+        <result property="goodsId" column="goods_id"/>
+        <result property="year" column="year"/>
+        <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">
         SELECT
@@ -188,4 +198,68 @@
         WHERE
             course_id = #{id}
     </select>
+
+    <select id="listGoodsPeriodVo" parameterType="com.zhongzheng.modules.user.bo.UserPlanQueryBo"  resultMap="GoodsPeriodVo">
+        SELECT
+            g.goods_id,
+            g.goods_name,
+            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
+            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
+            cgu.user_id =#{userId}
+          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>

+ 3 - 0
zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsMapper.xml

@@ -249,5 +249,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="goodsType != null and goodsType != ''">
             and g.goods_type = #{goodsType}
         </if>
+          <if test="goodsStatus != null and goodsStatus != ''">
+            and g.goods_status = #{goodsStatus}
+        </if>
     </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">