Browse Source

fix 目录

he2802 3 years ago
parent
commit
da107eb67d
17 changed files with 190 additions and 17 deletions
  1. 5 4
      zhongzheng-api/src/main/java/com/zhongzheng/controller/plan/UserPlanController.java
  2. 7 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseChapterSectionMapper.java
  3. 16 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseChapterSectionServiceImpl.java
  4. 2 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseSubjectServiceImpl.java
  5. 16 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseUserChapterSectionVo.java
  6. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseUserModuleChapterVo.java
  7. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamApplyServiceImpl.java
  8. 7 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeUserQueryBo.java
  9. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderMapper.java
  10. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java
  11. 2 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserPlanServiceImpl.java
  12. 79 0
      zhongzheng-system/src/main/resources/mapper/modules/course/CourseChapterSectionMapper.xml
  13. 4 4
      zhongzheng-system/src/main/resources/mapper/modules/course/CourseMenuMapper.xml
  14. 4 2
      zhongzheng-system/src/main/resources/mapper/modules/course/CourseModuleChapterMapper.xml
  15. 1 0
      zhongzheng-system/src/main/resources/mapper/modules/exam/ExamApplyMapper.xml
  16. 13 0
      zhongzheng-system/src/main/resources/mapper/modules/order/OrderMapper.xml
  17. 16 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserPlanMapper.xml

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

@@ -49,8 +49,7 @@ public class UserPlanController extends BaseController {
     private final IUserPlanService iUserPlanService;
 
 
-    @Autowired
-    private WxTokenService wxTokenService;
+    private final WxTokenService wxTokenService;
     /**
      * 查询学习计划列表
      */
@@ -99,6 +98,8 @@ public class UserPlanController extends BaseController {
     @ApiOperation("获得展示的日历学习计划,不添加到数据库")
     @GetMapping("/listPlan")
     public AjaxResult<UserPlanVo> listPlan(UserPlanEditBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
         UserPlanVo list = iUserPlanService.listPlan(bo);
         return AjaxResult.success(list);
     }
@@ -106,10 +107,10 @@ public class UserPlanController extends BaseController {
     /**
      * 查询学习计划列表
      */
-  /*  @ApiOperation("查询学员拥有商品能生成学习计划的商品")
+ /*   @ApiOperation("查询学员拥有商品能生成学习计划的商品")
     @GetMapping("/listGoods")
     public TableDataInfo<GoodsVo> listGoods(UserPlanQueryBo bo) {
-        ClientLoginUser loginUser = WxTokenService.getLoginUser(ServletUtils.getRequest());
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
         bo.setUserId(loginUser.getUser().getUserId());
         List<GoodsVo> list = iUserPlanService.listGoods(bo);
         return getDataTable(list);

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseChapterSectionMapper.java

@@ -6,7 +6,9 @@ import com.zhongzheng.modules.course.domain.CourseChapterBusiness;
 import com.zhongzheng.modules.course.domain.CourseChapterSection;
 import com.zhongzheng.modules.course.vo.CourseChapterSectionVo;
 import com.zhongzheng.modules.course.vo.CourseUserChapterSectionVo;
+import org.apache.ibatis.annotations.Param;
 
+import java.util.Collection;
 import java.util.List;
 
 /**
@@ -21,4 +23,9 @@ public interface CourseChapterSectionMapper extends BaseMapper<CourseChapterSect
     Long getListTotalTime(Long id);
 
     List<CourseUserChapterSectionVo> sectionList(CourseMenuQueryBo bo);
+
+    List<CourseUserChapterSectionVo> examList(CourseMenuQueryBo bo);
+
+    Integer rebuildCheck(@Param("typeId") Long typeId,@Param("gradeId") Long gradeId,
+                         @Param("userId") Long userId,@Param("moduleId") Long moduleId,@Param("chapterId") Long chapterId,@Param("examId") Long examId);
 }

+ 16 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseChapterSectionServiceImpl.java

@@ -11,6 +11,7 @@ import com.zhongzheng.modules.course.mapper.CourseChapterSectionMapper;
 import com.zhongzheng.modules.course.service.ICourseChapterSectionService;
 import com.zhongzheng.modules.course.vo.CourseChapterSectionVo;
 import com.zhongzheng.modules.course.vo.CourseUserChapterSectionVo;
+import com.zhongzheng.modules.course.vo.CourseUserMenuVo;
 import com.zhongzheng.modules.course.vo.CourseUserVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -131,6 +132,20 @@ public class CourseChapterSectionServiceImpl extends ServiceImpl<CourseChapterSe
     @Override
     public List<CourseUserChapterSectionVo> sectionList(CourseMenuQueryBo bo) {
         List<CourseUserChapterSectionVo> courseUserChapterSectionVos = courseChapterSectionMapper.sectionList(bo);
-        return null;
+        courseUserChapterSectionVos.addAll(courseChapterSectionMapper.examList(bo));
+        for (CourseUserChapterSectionVo courseMenuVo : courseUserChapterSectionVos) {
+            if (courseMenuVo.getType().equals(1)){
+                Integer rebuild = baseMapper.rebuildCheck(courseMenuVo.getTypeId(),courseMenuVo.getGradeId(),bo.getUserId(),bo.getModuleId(),bo.getChapterId(),0L);
+                if (rebuild > 0){
+                    courseMenuVo.setRebuild(1);
+                }
+            }else {
+                Integer rebuild = baseMapper.rebuildCheck(0L,courseMenuVo.getGradeId(),bo.getUserId(),0L,bo.getChapterId(),courseMenuVo.getTypeId());
+                if (rebuild > 0){
+                    courseMenuVo.setRebuild(1);
+                }
+            }
+        }
+        return courseUserChapterSectionVos;
     }
 }

+ 2 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseSubjectServiceImpl.java

@@ -120,10 +120,10 @@ public class CourseSubjectServiceImpl extends ServiceImpl<CourseSubjectMapper, C
         Collection<CourseSubjectVo> courseSubjectVos = baseMapper.queryList(courseSubjectQueryBo);
         if (CollectionUtils.isEmpty(courseSubjectVos)){
             CourseSubjectQueryBo courseSubjectQuery = new CourseSubjectQueryBo();
-            courseSubjectQueryBo.setSubjectName(bo.getSubjectName());
+            courseSubjectQuery.setSubjectName(bo.getSubjectName());
             List<Integer> status = new ArrayList<>();
             status.add(1);
-            courseSubjectQueryBo.setStatus(status);
+            courseSubjectQuery.setStatus(status);
             Collection<CourseSubjectVo> courseSubjectVo = baseMapper.queryList(courseSubjectQuery);
             if (CollectionUtils.isNotEmpty(courseSubjectVo)){
                 throw new RuntimeException("重复科目名称");

+ 16 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseUserChapterSectionVo.java

@@ -21,10 +21,15 @@ public class CourseUserChapterSectionVo {
 	@ApiModelProperty("$pkColumn.columnComment")
 	private Long id;
 
+	/** 节id */
+	@Excel(name = "节id")
+	@ApiModelProperty("节id 试卷ID")
+	private Long typeId;
 	/** 节id */
 	@Excel(name = "节id")
 	@ApiModelProperty("节id")
 	private Long sectionId;
+
 	/** 章ID */
 	@Excel(name = "章ID")
 	@ApiModelProperty("章ID")
@@ -34,6 +39,10 @@ public class CourseUserChapterSectionVo {
 	@ApiModelProperty("班级ID")
 	private Long gradeId;
 
+	@Excel(name = "模块Id")
+	@ApiModelProperty("模块Id")
+	private Long moduleId;
+
 	/** 编码 */
 	@Excel(name = "编码")
 	@ApiModelProperty("编码")
@@ -68,7 +77,12 @@ public class CourseUserChapterSectionVo {
 	private Long durationTime;
 
 	/** 1模块卷 2章卷 3试卷 */
-	@Excel(name = "1模块卷 2章卷 3试卷")
-	@ApiModelProperty("1模块卷 2章卷 3试卷")
+	@Excel(name = "1 节 2试卷")
+	@ApiModelProperty("1 节 2试卷")
 	private Integer type;
+
+	/** 1模块卷 2章卷 3试卷 */
+	@Excel(name = "1 需重修")
+	@ApiModelProperty("1 需重修")
+	private Integer rebuild;
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseUserModuleChapterVo.java

@@ -31,6 +31,10 @@ public class CourseUserModuleChapterVo {
 	@Excel(name = "章ID")
 	@ApiModelProperty("章ID")
 	private Long chapterId;
+	/** 章ID */
+	@Excel(name = "课程ID")
+	@ApiModelProperty("课程ID")
+	private Long courseId;
 
 	/** 班级ID */
 	@Excel(name = "班级ID")

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamApplyServiceImpl.java

@@ -98,6 +98,10 @@ public class ExamApplyServiceImpl extends ServiceImpl<ExamApplyMapper, ExamApply
         ExamApply update = BeanUtil.toBean(bo, ExamApply.class);
         if (bo.getStatus() == 1){
             List<Long> contGoodsId = baseMapper.countGoods(bo.getApplyId());
+            List<ExamApplySiteVo> examApplySite = baseMapper.addressExam(bo.getApplyId(),1L);
+            if (CollectionUtils.isEmpty(examApplySite)){
+                throw new RuntimeException("请先设置考试地点和时间");
+            }
             if (CollectionUtils.isNotEmpty(contGoodsId)){
                 String goodsName ="";
                 for (Long goodsId : contGoodsId) {
@@ -107,6 +111,8 @@ public class ExamApplyServiceImpl extends ServiceImpl<ExamApplyMapper, ExamApply
                     goodsName.concat(examNumberGoodsVos.get(0).getGoodsName()+",");
                 }
                 throw new RuntimeException(goodsName+"已被其他进行中的考试计划使用,请修改,再启用");
+            }else {
+                throw new RuntimeException("请先设置适用商品");
             }
         }
         validEntityBeforeSave(update);

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeUserQueryBo.java

@@ -98,4 +98,11 @@ public class ClassGradeUserQueryBo extends BaseEntity {
 	/** 獲得第幾條審核記錄 */
 	@ApiModelProperty("1 无选班再次学习的学员 2有选班再次学习的学员 0全部")
 	private Long choice;
+
+	/** 班级有效期开始时间 */
+	@ApiModelProperty("班级有效期开始时间")
+	private Long classStartTime;
+	/** 班级有效期结束时间 */
+	@ApiModelProperty("班级有效期结束时间")
+	private Long classEndTime;
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderMapper.java

@@ -5,6 +5,7 @@ import com.zhongzheng.modules.order.bo.OrderQueryBo;
 import com.zhongzheng.modules.order.domain.Order;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
 import com.zhongzheng.modules.order.vo.OrderListVo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -16,4 +17,6 @@ import java.util.List;
  */
 public interface OrderMapper extends BaseMapper<Order> {
     List<OrderListVo> selectList(OrderQueryBo bo);
+
+    Integer selectUserClass(@Param("goodsId") Long goodsId,@Param("userId") Long userId);
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -257,6 +257,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
      * @return
      */
     public boolean arrangeGrade(String goodsName,Long goodsId,Long orderGoodsId,Long gradeId,Long userId){
+        //查询该学员有没有有效期内同商品班级 有就不允许添加
+        Integer classNum = baseMapper.selectUserClass(goodsId,userId);
+        if (classNum > 0){
+            throw new CustomException("该学员已在此商品有效期内的班级,无法加入新的有效期班级,请查看该学员此商品下的班级");
+        }
         System.out.println("进入创建班级"+gradeId);
         //指定班级
         if(gradeId!=null){

+ 2 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserPlanServiceImpl.java

@@ -130,10 +130,10 @@ public class UserPlanServiceImpl extends ServiceImpl<UserPlanMapper, UserPlan> i
      * @param bo 实体类数据
      */
     private void validEntityPlanBeforeSave(UserPlanEditBo bo){
-        //判断是否课程已被生成过课程
+        //判断是否商品已被生成过课程
         Integer rank = baseMapper.selectCountGoods(bo);
         if (rank > 0){
-            throw new IllegalArgumentException("您当前商品的拥有计划,请到计划修改上修改计划");
+            throw new IllegalArgumentException("此网课学习计划正在进行中,若想再次制定请将计划完成或删除");
         }
 
     }

+ 79 - 0
zhongzheng-system/src/main/resources/mapper/modules/course/CourseChapterSectionMapper.xml

@@ -27,6 +27,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="durationTime" column="duration_time"/>
     </resultMap>
 
+    <resultMap type="com.zhongzheng.modules.course.vo.CourseUserChapterSectionVo" id="CourseUserChapterSectionVo">
+        <result property="typeId" column="type_id"/>
+        <result property="chapterId" column="chapter_id"/>
+        <result property="sort" column="c_sort"/>
+        <result property="id" column="id"/>
+        <result property="type" column="type"/>
+
+        <result property="code" column="code"/>
+        <result property="name" column="name"/>
+        <result property="prefixName" column="prefix_name"/>
+        <result property="status" column="status"/>
+        <result property="sectionType" column="section_type"/>
+        <result property="publishStatus" column="publish_status"/>
+        <result property="durationTime" column="duration_time"/>
+    </resultMap>
+
 
     <select id="getListById" parameterType="Long"  resultMap="CourseChapterSectionResultVo">
         SELECT
@@ -61,6 +77,53 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             c_sort DESC
     </select>
 
+    <select id="sectionList" parameterType="com.zhongzheng.modules.course.bo.CourseMenuQueryBo"  resultMap="CourseUserChapterSectionVo">
+        SELECT
+            cs.section_id as type_id,
+            #{gradeId} as grade_id,
+        <if test="moduleId != null ">
+            #{moduleId} as module_id,
+        </if>
+        <if test="moduleId == null ">
+            0 as module_id,
+        </if>
+
+            cs.*,
+            ccs.sort as c_sort,
+            ccs.id,
+            ccs.chapter_id,
+            1 as type,
+            cmc.module_id
+        FROM
+            course_chapter_section ccs
+                LEFT JOIN course_section cs ON ccs.section_id = cs.section_id
+                LEFT JOIN course_module_chapter cmc ON cmc.chapter_id = ccs.chapter_id
+        WHERE
+            cs.`status` = 1
+          AND ccs.chapter_id = #{chapterId}
+        ORDER BY
+            c_sort DESC
+    </select>
+
+    <select id="examList" parameterType="com.zhongzheng.modules.course.bo.CourseMenuQueryBo"  resultMap="CourseUserChapterSectionVo">
+        SELECT
+            e.*,
+            cme.course_id,
+            cme.module_id,
+            cme.chapter_id,
+            cme.section_id,
+            e.exam_name as name,
+            e.exam_id as type_id,
+            #{gradeId} as grade_id,
+            2 as type
+        FROM
+            exam e
+                LEFT JOIN course_menu_exam cme ON cme.exam_id = e.exam_id
+        where 1=1
+          and cme.chapter_id = #{chapterId}
+        and cme.course_id = #{courseId}
+    </select>
+
     <select id="getListTotalTime" parameterType="Long"  resultType="java.lang.Long">
         SELECT
             IFNULL(sum( cs.duration_time ),0) AS duration_time
@@ -73,4 +136,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
 
+    <select id="rebuildCheck" parameterType="map"  resultType="integer">
+        SELECT
+            COUNT(up.id)
+        FROM
+            user_period up
+                LEFT JOIN user_period_status ups ON up.id = ups.period_id
+        WHERE
+            up.grade_id =#{gradeId}
+          AND up.user_id = #{userId}
+          AND up.module_id= #{moduleId}
+          and up.chapter_id=#{chapterId}
+          and up.section_id=#{typeId}
+          and up.exam_id=#{examId}
+          AND ups.period_status =1
+          and (ups.`status` = 0 or ups.`status` = 3)
+    </select>
 </mapper>

+ 4 - 4
zhongzheng-system/src/main/resources/mapper/modules/course/CourseMenuMapper.xml

@@ -100,17 +100,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         FROM
             course_menu m
                 LEFT JOIN course_module cm ON m.menu_id = cm.module_id
-                AND m.type = 1
+                AND m.type = 1 and cm.status=1
                 LEFT JOIN course_chapter cc ON m.menu_id = cc.chapter_id
-                AND m.type = 2
+                AND m.type = 2 and cc.status=1
                 LEFT JOIN course_section cs ON m.menu_id = cs.section_id
-                AND m.type = 3
+                AND m.type = 3 and cs.status=1
         WHERE
             m.course_id = #{courseId}
         ORDER BY m.sort
     </select>
 
-    <select id="rebuildCheck" parameterType="com.zhongzheng.modules.course.bo.CourseMenuQueryBo"  resultMap="CourseUserMenuVo">
+    <select id="rebuildCheck" parameterType="map"  resultType="long">
         SELECT
             COUNT(up.id)
         FROM

+ 4 - 2
zhongzheng-system/src/main/resources/mapper/modules/course/CourseModuleChapterMapper.xml

@@ -35,6 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="prefixName" column="prefix_name"/>
         <result property="status" column="status"/>
         <result property="publishStatus" column="publish_status"/>
+        <result property="courseId" column="course_id"/>
     </resultMap>
 
     <select id="getListById" parameterType="Long"  resultMap="CourseModuleChapterResultVo">
@@ -58,12 +59,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             cmc.sort AS c_sort,
             cmc.id,
             cmc.module_id,
-            #{gradeId} as grade_id
+            #{gradeId} as grade_id,
+            #{courseId} as course_id
         FROM
             course_module_chapter cmc
                 LEFT JOIN course_chapter cc ON cmc.chapter_id = cc.chapter_id
         WHERE
-            cc.`status` !=- 1
+            cc.`status` =1
 	AND cmc.module_id = #{moduleId}
         ORDER BY
             c_sort DESC

+ 1 - 0
zhongzheng-system/src/main/resources/mapper/modules/exam/ExamApplyMapper.xml

@@ -163,5 +163,6 @@ and (SELECT COUNT(eay.apply_id) FROM exam_apply eay LEFT JOIN exam_apply_goods e
                 #{item}
             </foreach>
         </if>
+        order by ea.create_time desc
     </select>
 </mapper>

+ 13 - 0
zhongzheng-system/src/main/resources/mapper/modules/order/OrderMapper.xml

@@ -131,5 +131,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         ORDER BY o.order_id DESC
     </select>
 
+    <select id="selectUserClass" parameterType="map" resultType="integer">
+        SELECT
+            COUNT(cg.grade_id)
+        FROM
+            class_grade_goods cgg
+                LEFT JOIN class_grade_user cgu ON cgu.grade_id = cgg.grade_id
+                LEFT JOIN class_grade cg ON cg.grade_id = cgg.grade_id
+        WHERE cgg.goods_id =#{goodsId}
+          and cgu.user_id=#{userId}
+          and cg.`status` =1
+          and unix_timestamp(now()) BETWEEN cg.class_start_time and cg.class_end_time
+    </select>
+
 
 </mapper>

+ 16 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserPlanMapper.xml

@@ -90,4 +90,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
           and og.pay_status in(2,3)
           and g.goods_type =1
     </select>
+    <select id="selectCountGoods" parameterType="com.zhongzheng.modules.user.bo.UserPlanEditBo"  resultType="INTEGER">
+        SELECT
+        COUNT(up.plan_id)
+        FROM
+        user_plan up
+        LEFT JOIN user_plan_goods upg ON up.plan_id = upg.plan_id
+        <if test="goodsId != null and goodsId !=''">
+            and c.source_id in
+            <foreach collection="goodsId" open="(" separator="," close=")" item="goodsId">
+                #{goodsId}
+            </foreach>
+        </if>
+        <if test="userId != null and userId !=''">
+            and u.user_id = #{userId}
+        </if>
+    </select>
 </mapper>