Browse Source

拥有课程获得

change 4 năm trước cách đây
mục cha
commit
80102755ed

+ 56 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/user/OrderPossessUserController.java

@@ -0,0 +1,56 @@
+package com.zhongzheng.controller.user;
+
+import java.util.List;
+import java.util.Arrays;
+
+import com.zhongzheng.modules.user.bo.OrderPossessUserQueryBo;
+import com.zhongzheng.modules.user.service.IOrderPossessUserService;
+import com.zhongzheng.modules.user.vo.OrderPossessUserVo;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.enums.BusinessType;
+
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 【请填写功能名称】Controller
+ * 
+ * @author ruoyi
+ * @date 2021-06-25
+ */
+@Api(value = "【用户拥有课程或题库】控制器", tags = {"【用户拥有课程或题库】管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/user")
+public class OrderPossessUserController extends BaseController {
+
+    private final IOrderPossessUserService iOrderPossessUserService;
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @ApiOperation("查询【请填写功能名称】列表")
+    @PreAuthorize("@ss.hasPermi('system:user:list')")
+    @GetMapping("/list")
+    public AjaxResult<OrderPossessUserVo> list(OrderPossessUserQueryBo bo) {
+        OrderPossessUserVo list = iOrderPossessUserService.queryList(bo);
+        return  AjaxResult.success(list);
+    }
+
+
+}

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/OrderPossessUserQueryBo.java

@@ -43,4 +43,8 @@ public class OrderPossessUserQueryBo extends BaseEntity {
 	@ApiModelProperty("拥有的课程id或题库id或考试重点")
 	private Long possessId;
 
+	/** 用户id */
+	@ApiModelProperty("用户ID")
+	private Long userId;
+
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/domain/UserPlan.java

@@ -37,7 +37,7 @@ private static final long serialVersionUID=1L;
     private String reminderTime;
 
     /** 0周日  1周一 2周二 3周三 4周四 5周五 6周六 */
-    private Integer studyCount;
+    private String studyCount;
 
     /** 复习天数 */
     private Long studyDay;

+ 13 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/OrderPossessUserMapper.java

@@ -1,7 +1,15 @@
 package com.zhongzheng.modules.user.mapper;
 
+import com.zhongzheng.modules.bank.domain.QuestionBank;
+import com.zhongzheng.modules.course.domain.Course;
+import com.zhongzheng.modules.exam.domain.ExamNote;
+import com.zhongzheng.modules.exam.vo.ExamNoteVo;
+import com.zhongzheng.modules.user.bo.OrderPossessUserQueryBo;
 import com.zhongzheng.modules.user.domain.OrderPossessUser;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.user.vo.OrderPossessUserVo;
+
+import java.util.List;
 
 /**
  * 【请填写功能名称】Mapper接口
@@ -11,4 +19,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface OrderPossessUserMapper extends BaseMapper<OrderPossessUser> {
 
+    List<Course> selectByCource(OrderPossessUserQueryBo bo);
+
+    List<QuestionBank> selectByBank(OrderPossessUserQueryBo bo);
+
+    List<ExamNote> selectByEmphasis(OrderPossessUserQueryBo bo);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserPlanMapper.java

@@ -19,4 +19,6 @@ public interface UserPlanMapper extends BaseMapper<UserPlan> {
     CoursePlanVo selectByCourse(UserPlanQueryBo bo);
 
     ExamArrangementTimeVo selectByExam(Long categoryId);
+
+    List<CoursePlanVo> selectByListCourse(UserPlanQueryBo bo);
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IOrderPossessUserService.java

@@ -26,7 +26,7 @@ public interface IOrderPossessUserService extends IService<OrderPossessUser> {
 	/**
 	 * 查询列表
 	 */
-	List<OrderPossessUserVo> queryList(OrderPossessUserQueryBo bo);
+	OrderPossessUserVo queryList(OrderPossessUserQueryBo bo);
 
 	/**
 	 * 根据新增业务对象插入【请填写功能名称】

+ 84 - 5
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/OrderPossessUserServiceImpl.java

@@ -3,6 +3,12 @@ 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.bank.domain.QuestionBank;
+import com.zhongzheng.modules.bank.vo.QuestionBankVo;
+import com.zhongzheng.modules.course.domain.Course;
+import com.zhongzheng.modules.course.vo.CourseVo;
+import com.zhongzheng.modules.exam.domain.ExamNote;
+import com.zhongzheng.modules.exam.vo.ExamNoteVo;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -16,6 +22,7 @@ import com.zhongzheng.modules.user.mapper.OrderPossessUserMapper;
 import com.zhongzheng.modules.user.vo.OrderPossessUserVo;
 import com.zhongzheng.modules.user.service.IOrderPossessUserService;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -37,11 +44,83 @@ public class OrderPossessUserServiceImpl extends ServiceImpl<OrderPossessUserMap
     }
 
     @Override
-    public List<OrderPossessUserVo> queryList(OrderPossessUserQueryBo bo) {
-        LambdaQueryWrapper<OrderPossessUser> lqw = Wrappers.lambdaQuery();
-        lqw.eq(bo.getTypeId() != null, OrderPossessUser::getTypeId, bo.getTypeId());
-        lqw.eq(bo.getPossessId() != null, OrderPossessUser::getPossessId, bo.getPossessId());
-        return entity2Vo(this.list(lqw));
+    public OrderPossessUserVo queryList(OrderPossessUserQueryBo bo) {
+        OrderPossessUserVo orderPossessUserVo = BeanUtil.toBean(bo, OrderPossessUserVo.class);
+        if (bo.getTypeId() == 0){
+            List<Course> courses= baseMapper.selectByCource(bo);
+            List<CourseVo> coursesVO = entityCourseVo(courses);
+            orderPossessUserVo.setCourseVoList(coursesVO);
+       }else if (bo.getTypeId() == 1){
+           List<QuestionBank> questionBankList= baseMapper.selectByBank(bo);
+            List<QuestionBankVo> questionBankVos = entityQuestionBankVo(questionBankList);
+            orderPossessUserVo.setQuestionBankList(questionBankVos);
+       }else if (bo.getTypeId() == 2){
+            List<ExamNote> examNoteVos = baseMapper.selectByEmphasis(bo);
+            List<ExamNoteVo> ExamNoteVos = entityExamNoteVo(examNoteVos);
+            orderPossessUserVo.setExamNoteList(ExamNoteVos);
+       }
+        return orderPossessUserVo;
+    }
+
+    /**
+     * 实体类转化成视图对象
+     *
+     * @param collection 实体类集合
+     * @return
+     */
+    private List<ExamNoteVo> entityExamNoteVo(Collection<ExamNote> collection) {
+        List<ExamNoteVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, ExamNoteVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<ExamNote> page = (Page<ExamNote>)collection;
+            Page<ExamNoteVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+
+    /**
+     * 实体类转化成视图对象
+     *
+     * @param collection 实体类集合
+     * @return
+     */
+    private List<CourseVo> entityCourseVo(Collection<Course> collection) {
+        List<CourseVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, CourseVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<Course> page = (Page<Course>)collection;
+            Page<CourseVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    /**
+     * 实体类转化成视图对象
+     *
+     * @param collection 实体类集合
+     * @return
+     */
+    private List<QuestionBankVo> entityQuestionBankVo(Collection<QuestionBank> collection) {
+        List<QuestionBankVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, QuestionBankVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<QuestionBank> page = (Page<QuestionBank>)collection;
+            Page<QuestionBankVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
     }
 
     /**

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

@@ -3,6 +3,7 @@ package com.zhongzheng.modules.user.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.modules.exam.vo.ExamArrangementTimeVo;
@@ -10,6 +11,8 @@ import com.zhongzheng.modules.user.vo.CalendarStudyVo;
 import com.zhongzheng.modules.user.vo.CoursePlanVo;
 import com.zhongzheng.modules.user.vo.DayStudyVo;
 import io.micrometer.core.instrument.util.TimeUtils;
+import org.codehaus.jettison.json.JSONArray;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -120,6 +123,22 @@ public class UserPlanServiceImpl extends ServiceImpl<UserPlanMapper, UserPlan> i
         //自定义学习计划,自动生成计划
         if (bo.getCourseId() != null && bo.getStudyCount() == null){
             UserPlanVo userPlanVo = generateSelf(bo);
+            if (bo.getStatus() != null && bo.getStatus() == 1){
+                UserPlan userPlan = new UserPlan();
+                String s = JSON.toJSONString(userPlanVo.getCalendarStudyVo());
+                String s1 = JSON.toJSONString(userPlanVo);
+
+                userPlan.setStudyDay(bo.getStudyDay());
+                userPlan.setStudyCount(s1);
+                userPlan.setUserId(bo.getUserId());
+                userPlan.setSchedule(s);
+                userPlan.setPitchNum(userPlanVo.getPitchNum());
+                userPlan.setStudyNum(0L);
+                userPlan.setCreateTime(DateUtils.getNowTime());
+                userPlan.setUpdateTime(DateUtils.getNowTime());
+
+                boolean save = this.save(userPlan);
+            }
             return userPlanVo;
         }else{
             UserPlanVo userPlanVo = generateSelfBo(bo);
@@ -128,20 +147,135 @@ public class UserPlanServiceImpl extends ServiceImpl<UserPlanMapper, UserPlan> i
     }
 
     private UserPlanVo generateSelfBo(UserPlanQueryBo bo) throws ParseException {
+
+
         //获得当前课程最近一个考试计划  考生考生计划或者最近考试计划
-        CoursePlanVo coursePlanVo = baseMapper.selectByCourse(bo);
+        List<CoursePlanVo> coursePlanVo = baseMapper.selectByListCourse(bo);
+
+        UserPlanVo userPlanVo1 = new UserPlanVo();
+        for (CoursePlanVo planVo : coursePlanVo) {
+            if (userPlanVo1 == null) {
+                userPlanVo1 = generateList(bo, planVo);
+            }else {
+                userPlanVo1 = generateOr(bo,planVo,userPlanVo1);
+            }
+        }
+        return userPlanVo1;
+    }
 
+    private UserPlanVo generateOr(UserPlanQueryBo bo, CoursePlanVo planVo, UserPlanVo userPlanVo1) throws ParseException {
         //最近考试时间七天前到现在的天数,学习视频时长
         Date date1 = new Date(bo.getExamDate()*1000L);
         //获得相隔天数
         Long[] longs =bo.getStudyCount();
-        int dutyDays = getDutyDays(new Date(), date1,longs,bo.getStudyDay());
+        int dutyDays = getDutyDays(new Date(), date1,longs,7L);
+
+        //计算每天需要学习多少节课
+        int Sec = (int)Math.ceil((double)planVo.getSectionNum()/dutyDays);
+
+        //总节数
+        Integer sectionNum = planVo.getSectionNum();
+
+
+        //获得今天日期,将每天节数写入
+        Calendar cal = Calendar.getInstance();
+        int year = cal.get(Calendar.YEAR);
+        Integer month = 0;
+        //将原有的月份添加课程的节数
+        for (CalendarStudyVo calendarStudyVo : userPlanVo1.getCalendarStudyVo()) {
+            if (month < calendarStudyVo.getMonth()){
+                month = Convert.toInt(calendarStudyVo.getMonth());
+            }
+            for (DayStudyVo dayStudyVo : calendarStudyVo.getDayStudyList()) {
+                if (dayStudyVo.getDate() > Calendar.getInstance().get(Calendar.DAY_OF_MONTH) && calendarStudyVo.getMonth() == (cal.get(Calendar.MONTH) + 1) && ifTrue(dayStudyVo.getStudyDay(),longs)) {
+                    if (sectionNum == 0){
+                        break;
+                    }
+                    if (Sec < sectionNum) {
+                        dayStudyVo.setStudyCourseKnob(Convert.toLong(Sec)+dayStudyVo.getStudyCourseKnob());
+                        sectionNum = sectionNum-Sec;
+                    }else if (Sec >= sectionNum){
+                        dayStudyVo.setStudyCourseKnob(Convert.toLong(sectionNum)+dayStudyVo.getStudyCourseKnob());
+                        sectionNum = 0;
+                    }
+                }else if(calendarStudyVo.getMonth() != (cal.get(Calendar.MONTH) + 1) && ifTrue(dayStudyVo.getStudyDay(),longs)){
+                    if (Sec < sectionNum) {
+                        dayStudyVo.setStudyCourseKnob(Convert.toLong(Sec)+dayStudyVo.getStudyCourseKnob());
+                        sectionNum = sectionNum-Sec;
+                    }else if (Sec >= sectionNum){
+                        dayStudyVo.setStudyCourseKnob(Convert.toLong(sectionNum)+dayStudyVo.getStudyCourseKnob());
+                        sectionNum = 0;
+                    }
+                }
+            }
+        }
+
+        //原有课程不满足课程节数则再创建课程
+        if (sectionNum == 0){
+            while (sectionNum != 0 ) {
+                month++;
+                Long firstDayOfMonth = getFirstDayOfMonth(month+1);
+                Long lastDayOfMonth = getLastDayOfMonth(month+1);
+
+                List<DayStudyVo> dayStudyVos = getDays(firstDayOfMonth, lastDayOfMonth);
+                for (DayStudyVo dayStudyVo : dayStudyVos) {
+                    if (dayStudyVo.getDate() > Calendar.getInstance().get(Calendar.DAY_OF_MONTH) && month == (cal.get(Calendar.MONTH) + 1) && ifTrue(dayStudyVo.getStudyDay(),longs)) {
+                        if (sectionNum == 0){
+                            break;
+                        }
+                        if (Sec < sectionNum) {
+                            dayStudyVo.setStudyCourseKnob(Convert.toLong(Sec));
+                            sectionNum = sectionNum-Sec;
+                        }else if (Sec >= sectionNum){
+                            dayStudyVo.setStudyCourseKnob(Convert.toLong(sectionNum));
+                            sectionNum = 0;
+                        }
+                    }else if(month != (cal.get(Calendar.MONTH) + 1) && ifTrue(dayStudyVo.getStudyDay(),longs)){
+                        if (Sec < sectionNum) {
+                            dayStudyVo.setStudyCourseKnob(Convert.toLong(Sec));
+                            sectionNum = sectionNum-Sec;
+                        }else if (Sec >= sectionNum){
+                            dayStudyVo.setStudyCourseKnob(Convert.toLong(sectionNum));
+                            sectionNum = 0;
+                        }
+                    }
+                }
+                CalendarStudyVo calendarStudyVo = new CalendarStudyVo();
+                calendarStudyVo.setYear(Convert.toLong(year));
+                calendarStudyVo.setMonth(Convert.toLong(month));
+                calendarStudyVo.setDayStudyList(dayStudyVos);
+                List<CalendarStudyVo> calendarStudyVo1 = userPlanVo1.getCalendarStudyVo();
+                calendarStudyVo1.add(calendarStudyVo);
+                userPlanVo1.setCalendarStudyVo(calendarStudyVo1);
+            }
+        }
+        //查询是否解锁题库
+        userPlanVo1.setStudyCount(longs);
+        userPlanVo1.setUserId(bo.getUserId());
+        userPlanVo1.setStudyDay(0L);
+        userPlanVo1.setPitchNum(Convert.toLong(sectionNum)+userPlanVo1.getPitchNum());
+        userPlanVo1.setPitchNum(Convert.toLong(sectionNum)+userPlanVo1.getPitchNum());
+        return userPlanVo1;
+    }
+
+    private UserPlanVo generateList(UserPlanQueryBo bo, CoursePlanVo coursePlanVo) throws ParseException {
+        UserPlanVo userPlanVo = new UserPlanVo();
+        //最近考试时间七天前到现在的天数,学习视频时长
+        Date date1 = new Date(bo.getStartTime()*1000L);
+        Date date = new Date(bo.getEndTime()*1000L);
+        Calendar ca = Calendar.getInstance();
+        ca.setTime(date1);
+
+        //获得相隔天数
+        Long[] longs =bo.getStudyCount();
+        int dutyDays = getDutyDays(date1, date,longs,0L);
 
         //计算每天需要学习多少节课
         int Sec = (int)Math.ceil((double)coursePlanVo.getSectionNum()/dutyDays);
 
         //总节数
         Integer sectionNum = coursePlanVo.getSectionNum();
+        userPlanVo.setPitchNum(Convert.toLong(sectionNum));
 
         //获得今天日期,将每天节数写入
         List<CalendarStudyVo> calendarStudyVos = new ArrayList<>();
@@ -166,19 +300,22 @@ public class UserPlanServiceImpl extends ServiceImpl<UserPlanMapper, UserPlan> i
 
             List<DayStudyVo> dayStudyVos = getDays(firstDayOfMonth, lastDayOfMonth);
             for (DayStudyVo dayStudyVo : dayStudyVos) {
-                if (dayStudyVo.getDate() > Calendar.getInstance().get(Calendar.DAY_OF_MONTH) && month == (cal.get(Calendar.MONTH) + 1) && ifTrue(dayStudyVo.getStudyDay(),longs)) {
-                    if (Sec > sectionNum) {
+                if (dayStudyVo.getDate() > ca.get(Calendar.DAY_OF_MONTH) && month == (cal.get(Calendar.MONTH) + 1) && ifTrue(dayStudyVo.getStudyDay(),longs)) {
+                    if (sectionNum == 0){
+                        break;
+                    }
+                    if (Sec < sectionNum) {
                         dayStudyVo.setStudyCourseKnob(Convert.toLong(Sec));
                         sectionNum = sectionNum-Sec;
-                    }else if (Sec <= sectionNum){
+                    }else if (Sec >= sectionNum){
                         dayStudyVo.setStudyCourseKnob(Convert.toLong(sectionNum));
                         sectionNum = 0;
                     }
                 }else if(month != (cal.get(Calendar.MONTH) + 1) && ifTrue(dayStudyVo.getStudyDay(),longs)){
-                    if (Sec > sectionNum) {
+                    if (Sec < sectionNum) {
                         dayStudyVo.setStudyCourseKnob(Convert.toLong(Sec));
                         sectionNum = sectionNum-Sec;
-                    }else if (Sec <= sectionNum){
+                    }else if (Sec >= sectionNum){
                         dayStudyVo.setStudyCourseKnob(Convert.toLong(sectionNum));
                         sectionNum = 0;
                     }
@@ -193,9 +330,13 @@ public class UserPlanServiceImpl extends ServiceImpl<UserPlanMapper, UserPlan> i
 
         //查询是否解锁题库
 
-        UserPlanVo userPlanVo = new UserPlanVo();
+
         userPlanVo.setCalendarStudyVo(calendarStudyVos);
         List<CoursePlanVo> coursePlanVos = new ArrayList<>();
+        userPlanVo.setStudyCount(longs);
+        userPlanVo.setUserId(bo.getUserId());
+
+        userPlanVo.setStudyDay(0L);
         coursePlanVos.add(coursePlanVo);
         userPlanVo.setCoursePlanVo(coursePlanVos);
         return userPlanVo;

+ 20 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/OrderPossessUserVo.java

@@ -2,11 +2,14 @@ package com.zhongzheng.modules.user.vo;
 
 import com.zhongzheng.common.annotation.Excel;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zhongzheng.modules.bank.vo.QuestionBankVo;
+import com.zhongzheng.modules.course.vo.CourseVo;
+import com.zhongzheng.modules.exam.vo.ExamNoteVo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import java.util.Date;
-
+import java.util.List;
 
 
 /**
@@ -33,4 +36,20 @@ public class OrderPossessUserVo {
 	@ApiModelProperty("拥有的课程id或题库id或考试重点")
 	private Long possessId;
 
+	/** 拥有的课程 */
+	@Excel(name = "拥有的课程")
+	@ApiModelProperty("拥有的课程")
+	private List<CourseVo> CourseVoList;
+
+	/** 拥有的考试重点 */
+	@Excel(name = "拥有的考试重点")
+	@ApiModelProperty("拥有的考试重点")
+	private List<ExamNoteVo> examNoteList;
+
+	/** 拥有的考试重点 */
+	@Excel(name = "拥有的考试重点")
+	@ApiModelProperty("拥有的考试重点")
+	private List<QuestionBankVo> questionBankList;
+
+
 }

+ 114 - 1
zhongzheng-system/src/main/resources/mapper/modules/user/OrderPossessUserMapper.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.zhongzheng.system.mapper.OrderPossessUserMapper">
+<mapper namespace="com.zhongzheng.modules.user.mapper.OrderPossessUserMapper">
 
     <resultMap type="com.zhongzheng.modules.user.domain.OrderPossessUser" id="OrderPossessUserResult">
         <result property="userId" column="user_id"/>
@@ -14,4 +14,117 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
 
+    <resultMap type="com.zhongzheng.modules.bank.domain.QuestionBank" id="QuestionBankResult">
+        <result property="bankId" column="bank_id"/>
+        <result property="categoryId" column="category_id"/>
+        <result property="bankName" column="bank_name"/>
+        <result property="price" column="price"/>
+        <result property="startTime" column="start_time"/>
+        <result property="endTime" column="end_time"/>
+        <result property="coverUrl" column="cover_url"/>
+        <result property="introduction" column="introduction"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="status" column="status"/>
+        <result property="typeId" column="type_id"/>
+        <result property="teacherIds" column="teacher_ids"/>
+        <result property="categoryName" column="category_name"/>
+        <result property="questionNum" column="question_num"/>
+        <result property="sort" column="sort"/>
+    </resultMap>
+
+    <select id="selectByBank" parameterType="com.zhongzheng.modules.user.bo.OrderPossessUserQueryBo"  resultMap="QuestionBankResult">
+        SELECT qb.*,mc.category_name FROM question_bank qb LEFT JOIN major_category mc on qb.category_id = mc.category_id LEFT JOIN order_possess_user o ON o.possess_id =qb.bank_id
+        WHERE 1=1 and o.type_id =1
+        <if test="userId != null and userId != ''">
+            AND o.user_id = #{userId}
+        </if>
+    </select>
+
+
+    <resultMap type="com.zhongzheng.modules.course.domain.Course" id="CourseResult">
+        <result property="courseId" column="course_id"/>
+        <result property="categoryId" column="category_id"/>
+        <result property="price" column="price"/>
+        <result property="duration" column="duration"/>
+        <result property="startTime" column="start_time"/>
+        <result property="endTime" column="end_time"/>
+        <result property="coverUrl" column="cover_url"/>
+        <result property="introduction" column="introduction"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="status" column="status"/>
+        <result property="teacherIds" column="teacher_ids"/>
+        <result property="courseName" column="course_name"/>
+        <result property="chapterNum" column="chapter_num"/>
+        <result property="sectionNum" column="section_num"/>
+        <result property="categoryName" column="category_name"/>
+    </resultMap>
+
+
+    <select id="selectByCource" parameterType="com.zhongzheng.modules.user.bo.OrderPossessUserQueryBo"  resultMap="CourseResult">
+        SELECT
+            rs.course_name,
+            rs.course_id,
+            rs.STATUS,
+            sum( section_num ) AS section_num,
+            count( chapter_id ) AS chapter_num,
+            mc.category_name,
+            mc.category_id,
+            sum( total_time ) AS duration
+        FROM
+            (
+                SELECT
+                    c.*,
+                    count( cs.section_id ) AS section_num,
+                    cs.chapter_id,
+                    IFNULL( sum( cs.video_time ), 0 ) AS total_time
+                FROM
+                    course c
+                        LEFT JOIN course_chapter cc ON c.course_id = cc.course_id
+                        LEFT JOIN course_section cs ON cc.chapter_id = cs.chapter_id
+                WHERE
+                    1 = 1
+                GROUP BY
+                    cs.chapter_id,
+                    c.course_id
+            ) rs
+                LEFT JOIN major_category mc ON rs.category_id = mc.category_id
+                LEFT JOIN order_possess_user o ON o.possess_id =rs.course_id
+            where 1=1 and o.type_id =0
+            <if test="userId != null and userId != ''">
+                AND o.user_id = #{userId}
+            </if>
+            GROUP BY course_id
+    </select>
+
+    <resultMap type="com.zhongzheng.modules.exam.domain.ExamNote" id="ExamNoteResult">
+        <result property="fileId" column="file_id"/>
+        <result property="categoryId" column="category_id"/>
+        <result property="name" column="name"/>
+        <result property="teacherIds" column="teacher_ids"/>
+        <result property="price" column="price"/>
+        <result property="coverUrl" column="cover_url"/>
+        <result property="introduction" column="introduction"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="status" column="status"/>
+        <result property="fileUrls" column="file_urls"/>
+        <result property="sort" column="sort"/>
+        <result property="categoryName" column="category_name"/>
+    </resultMap>
+
+    <select id="selectByEmphasis" parameterType="com.zhongzheng.modules.user.bo.OrderPossessUserQueryBo" resultMap="ExamNoteResult">
+        SELECT
+            en.*,
+            mc.category_name
+        FROM
+            exam_note en
+                LEFT JOIN major_category mc ON en.category_id = mc.category_id
+                LEFT JOIN LEFT JOIN order_possess_user o ON o.possess_id =en.file_id
+        where 1=1  and o.type_id =2
+        <if test="userId != null and userId != ''">
+            AND o.user_id = #{userId}
+        </if>
+    </select>
 </mapper>

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

@@ -70,4 +70,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </if>
         ORDER BY e.start_time LIMIT 1
     </select>
+
+
+    <select id="selectByListCourse" parameterType="com.zhongzheng.modules.user.bo.UserPlanQueryBo"  resultMap="CourseResult">
+        SELECT rs.course_name,
+        rs.course_id,rs.status,sum(section_num) as section_num,count(chapter_id)
+        as chapter_num,mc.category_name,mc.category_id,sum(total_time) as duration from
+        (SELECT c.*,count(cs.section_id) as section_num,cs.chapter_id,IFNULL(sum(cs.video_time),0) as total_time
+        FROM course c LEFT JOIN course_chapter cc on c.course_id = cc.course_id
+        LEFT JOIN course_section cs
+        on cc.chapter_id = cs.chapter_id
+        WHERE 1=1
+        <if test="courseId != null and courseId !=''">
+            and c.course_id in
+            <foreach collection="courseId" open="(" separator="," close=")" item="courseId">
+                #{courseId}
+            </foreach>
+        </if>
+        GROUP BY cs.chapter_id,c.course_id)rs LEFT JOIN major_category mc on rs.category_id = mc.category_id
+        GROUP BY course_id
+    </select>
 </mapper>