he2802 hai 1 ano
pai
achega
a6c23a2aca

+ 16 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/DangAnController.java

@@ -8,8 +8,11 @@ import com.zhongzheng.modules.grade.vo.ClassPeriodStudentVo;
 import com.zhongzheng.modules.order.bo.OrderQueryBo;
 import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.order.vo.OrderListVo;
+import com.zhongzheng.modules.user.bo.UserQueryBo;
 import com.zhongzheng.modules.user.bo.UserVisitLogQueryBo;
+import com.zhongzheng.modules.user.service.IUserStudyRecordService;
 import com.zhongzheng.modules.user.service.IUserVisitLogService;
+import com.zhongzheng.modules.user.vo.ExamStudyRecordVo;
 import com.zhongzheng.modules.user.vo.UserVisitLogVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -38,6 +41,8 @@ public class DangAnController extends BaseController {
 
     private final IOrderService iOrderService;
 
+    private final IUserStudyRecordService iUserStudyRecordService;
+
     @ApiOperation("查询档案网课列表")
     @PreAuthorize("@ss.hasPermi('grade:user:list')")
     @GetMapping("/listVideoUserPeriod")
@@ -56,5 +61,16 @@ public class DangAnController extends BaseController {
         return getDataTable(list);
     }
 
+    /**
+     * 查询学员商品题库学习记录
+     */
+    @ApiOperation("查询档案题库列表")
+    @PreAuthorize("@ss.hasPermi('grade:student:list')")
+    @GetMapping("/listUserExam")
+    public TableDataInfo<ExamStudyRecordVo> listUserExam(UserQueryBo bo) {
+        startPage();
+        List<ExamStudyRecordVo> list = iUserStudyRecordService.querDangAnExamStudy(bo);
+        return getDataTable(list);
+    }
 
 }

+ 3 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -286,6 +286,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 Integer[] orderStatus = new Integer[]{-2, -1};
                 bo.setOrderStatus(orderStatus);
             } else if (bo.getOrderGoodsStatus() == 0) {
+                Integer[] orderStatus = new Integer[]{0};
+                bo.setOrderStatus(orderStatus);
                 bo.setGoodsPayStatus(1);
             } else if (bo.getOrderGoodsStatus() == 1) {
                 //已支付 sql实现
@@ -293,7 +295,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 bo.setRefundStatus(2);
             }
         }
-        List<OrderListVo> orderListVos = this.baseMapper.selectListByBo(bo);
+        List<OrderListVo> orderListVos = this.baseMapper.selectDangAnOrderList(bo);
         for (OrderListVo vo : orderListVos) {
             //商品订单状态 -1关闭 0待支付 1已支付 2已退款
             if (Validator.isEmpty(vo.getRefundStatus())) {

+ 8 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserQueryBo.java

@@ -211,4 +211,12 @@ public class UserQueryBo extends BaseEntity {
 
 	@ApiModelProperty("学员搜索关键字")
 	private String userKerWord;
+
+	@ApiModelProperty("商品名称")
+	private String goodsName;
+
+	private Integer goodsStatus;
+	@ApiModelProperty("教育类型id")
+	private Long educationTypeId;
+
 }

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

@@ -51,6 +51,8 @@ public interface UserStudyRecordMapper extends BaseMapper<UserStudyRecord> {
 
     List<ExamStudyRecordVo> querExamStudy(UserQueryBo bo);
 
+    List<ExamStudyRecordVo> querDangAnExamStudy(UserQueryBo bo);
+
     List<ExamSonStudyRecordVo> listExamSon(SubjectStudyRecordQueryBo bo);
 
     List<String> examTypes(Long id);

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserStudyRecordService.java

@@ -86,6 +86,8 @@ public interface IUserStudyRecordService extends IService<UserStudyRecord> {
 
     List<ExamStudyRecordVo> querExamStudy(UserQueryBo bo);
 
+	List<ExamStudyRecordVo> querDangAnExamStudy(UserQueryBo bo);
+
     List<ExamSonStudyRecordVo> listExamSon(SubjectStudyRecordQueryBo bo);
 
 	SectionStudyRecordVo listExamRecord(SubjectStudyRecordQueryBo bo);

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserStudyRecordServiceImpl.java

@@ -1951,6 +1951,12 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
         return examStudyRecordVos;
     }
 
+    @Override
+    public List<ExamStudyRecordVo> querDangAnExamStudy(UserQueryBo bo) {
+        List<ExamStudyRecordVo> examStudyRecordVos = baseMapper.querDangAnExamStudy(bo);
+        return examStudyRecordVos;
+    }
+
     @Override
     public List<ExamSonStudyRecordVo> listExamSon(SubjectStudyRecordQueryBo bo) {
         List<ExamSonStudyRecordVo> examSonStudyRecordVos = baseMapper.listExamSon(bo);

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

@@ -101,5 +101,11 @@ public class ExamStudyRecordVo {
     @ApiModelProperty("服务有效期结束")
     private Long serviceEndTime;
     private Long orderGoodsId;
+    @ApiModelProperty("模块卷数量")
+    private Long moduleExamNum;
+    @ApiModelProperty("章卷数量")
+    private Long chapterExamNum;
+    @ApiModelProperty("专业")
+    private String categoryName;
 
 }

+ 10 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserMapper.xml

@@ -713,6 +713,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="companyName != null and companyName != ''" >
             AND u.company_name like concat('%', #{companyName}, '%')
         </if>
+        <if test="educationTypeId != null and educationTypeId != ''" >
+            AND (SELECT count(*) FROM `order` o
+            LEFT JOIN order_goods og ON o.order_sn = og.order_sn
+            LEFT JOIN goods g ON og.goods_id = g.goods_id WHERE o.`status` = 1 AND og.pay_status IN ( 2, 3, 4 )  AND og.refund_status != 2 AND g.education_type_id = #{educationTypeId})>0
+        </if>
+        <if test="businessId != null and businessId != ''" >
+            AND (SELECT count(*) FROM `order` o
+            LEFT JOIN order_goods og ON o.order_sn = og.order_sn
+            LEFT JOIN goods g ON og.goods_id = g.goods_id WHERE o.`status` = 1 AND og.pay_status IN ( 2, 3, 4 )  AND og.refund_status != 2 AND g.business_id = #{businessId})>0
+        </if>
         order by u.user_id desc
     </select>
 

+ 73 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserStudyRecordMapper.xml

@@ -121,6 +121,9 @@
         <result property="serviceStartTime" column="service_start_time"/>
         <result property="serviceEndTime" column="service_end_time"/>
         <result property="orderGoodsId" column="order_goods_id"/>
+        <result property="moduleExamNum" column="module_exam_num"/>
+        <result property="chapterExamNum" column="chapter_exam_num"/>
+        <result property="categoryName" column="category_name"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.user.vo.ExamSonStudyRecordVo" id="ExamSonStudyRecordVoResult">
@@ -656,6 +659,76 @@
         ORDER BY s.create_time DESC
     </select>
 
+    <select id="querDangAnExamStudy" parameterType="com.zhongzheng.modules.user.bo.UserQueryBo"
+            resultMap="ExamStudyRecordVoResult">
+        SELECT
+        DISTINCT g.goods_id,
+        #{userId} as user_id,
+        s.create_time,
+        g.goods_name,
+        g.`year`,
+        g.`code`,
+        g.class_hours,
+        g.study_start_time,
+        g.study_end_time,
+        s.service_start_time,
+        s.service_end_time,
+        s.order_goods_id,
+        ( SELECT m.category_name FROM major m WHERE   m.id =g.major_id LIMIT 1) AS category_name,
+        ( SELECT i.business_name FROM course_business i WHERE i.id = g.business_id LIMIT 1) AS business_name,
+        ( SELECT p.project_name FROM course_project_type p WHERE p.id = g.project_id LIMIT 1) AS project_name,
+        (SELECT COUNT(*)  FROM goods_attached a where a.goods_id=g.goods_id and a.type = 1) as module_exam_num,
+        ((SELECT COUNT(a.id) FROM goods_attached e LEFT JOIN question_chapter_exam a on e.major_id =
+        a.chapter_exam_id where e.goods_id = g.goods_id and e.type=2)+(SELECT COUNT(h.id) FROM goods_attached e LEFT
+        JOIN question_module_chapter a on e.major_id = a.module_exam_id LEFT JOIN question_chapter_exam h on
+        a.chapter_exam_id = h.chapter_exam_id where e.goods_id = g.goods_id and e.type=1)) as chapter_exam_num,
+        ( SELECT e.education_name FROM course_education_type e WHERE e.id = g.education_type_id LIMIT 1) AS education_name,
+        (SELECT COUNT(a.id)+(SELECT COUNT(a.id) FROM goods_attached e LEFT JOIN question_chapter_exam a on e.major_id =
+        a.chapter_exam_id where e.goods_id = g.goods_id and e.type=2)+(SELECT COUNT(h.id) FROM goods_attached e LEFT
+        JOIN question_module_chapter a on e.major_id = a.module_exam_id LEFT JOIN question_chapter_exam h on
+        a.chapter_exam_id = h.chapter_exam_id where e.goods_id = g.goods_id and e.type=1) FROM goods_attached a where
+        a.goods_id=g.goods_id and a.type = 3) as exam_num,
+        (SELECT create_time FROM user_exam_record r where r.goods_id=g.goods_id AND r.do_mode = 1 AND r.user_id = #{userId} ORDER BY
+        create_time ASC LIMIT 1) as start_time,
+        (SELECT create_time FROM user_exam_record r where r.goods_id=g.goods_id AND r.do_mode = 1 AND r.user_id = #{userId} ORDER BY
+        create_time DESC LIMIT 1) as end_time,
+        (SELECT COUNT(DISTINCT exam_id) FROM user_exam_record r where r.goods_id=g.goods_id AND r.do_mode = 1 AND r.user_id = #{userId})
+        as stu_all_num,
+        s.service_start_time,
+        s.service_end_time
+        FROM
+        goods g
+        LEFT JOIN order_goods s ON g.goods_id = s.goods_id AND s.pay_status in (2,3,4)
+        LEFT JOIN `order` o ON o.order_sn = s.order_sn
+        WHERE
+        g.goods_type =2
+        <if test="userId != null and userId !=''">
+            AND o.user_id = #{userId}
+        </if>
+        <if test="businessId != null and businessId != ''">
+            AND g.business_id = #{businessId}
+        </if>
+        <if test="projectId != null and projectId != ''">
+            AND g.project_id = #{projectId}
+        </if>
+        <if test="educationTypeId != null and educationTypeId != ''">
+            AND g.education_type_id = #{educationTypeId}
+        </if>
+        <if test="goodsName != null and goodsName != '' ">
+            and g.goods_name like concat('%', #{goodsName}, '%')
+        </if>
+        <if test="goodsStatus != null and goodsStatus != '' ">
+            and g.`status` = #{goodsStatus}
+        </if>
+        <if test="studyStartTime != null and studyStartTime != '' ">
+            and (SELECT count(*) FROM user_exam_record r where r.goods_id=g.goods_id AND r.do_mode = 1 AND r.user_id = #{userId} AND r.create_time >= #{studyStartTime} )>0
+        </if>
+        <if test="studyEndTime != null and studyEndTime != '' ">
+            and (SELECT count(*) FROM user_exam_record r where r.goods_id=g.goods_id AND r.do_mode = 1 AND r.user_id = #{userId} AND #{studyEndTime} >= r.create_time )>0
+        </if>
+        ORDER BY s.create_time DESC
+    </select>
+
     <select id="listExamSon" parameterType="com.zhongzheng.modules.user.bo.SubjectStudyRecordQueryBo"
             resultMap="ExamSonStudyRecordVoResult">
         SELECT