Browse Source

我的考场列表

小么熊🐻 2 years ago
parent
commit
5cc607c3fd

+ 19 - 0
nbjk-admin/src/main/java/com/miaxis/app/controller/exam/ExamInfoController.java

@@ -64,12 +64,31 @@ public class ExamInfoController extends BaseController {
     })
     public ResponsePageInfo<ExamInfoVipVo> list(@ModelAttribute ExamInfoDto examInfoDto) {
         startPage();
+        UserInfo userInfo = SecurityUtils.getLoginUser().getStudent();
+        examInfoDto.setUserId(userInfo.getId());
         List<ExamInfoVipVo> list = examInfoService.selectExamInfoList(examInfoDto);
+        return toResponsePageInfo(list);
+    }
+
+
+    /**
+     * 我的考场信息列表
+     */
+    @GetMapping("/myList")
+    @ApiOperation("我的考场信息列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "当前页码", dataType = "int", paramType = "query", required = false),
+            @ApiImplicitParam(name = "pageSize", value = "每页数据量", dataType = "int", paramType = "query", required = false),
+    })
+    public ResponsePageInfo<ExamInfoVipVo> myList(@ModelAttribute ExamInfoDto examInfoDto) {
+        startPage();
         UserInfo userInfo = SecurityUtils.getLoginUser().getStudent();
         examInfoDto.setUserId(userInfo.getId());
+        List<ExamInfoVipVo> list = examInfoService.selectMyExamInfoList(examInfoDto);
         return toResponsePageInfo(list);
     }
 
+
     /**
      * 获取考场信息详细信息
      */

+ 2 - 0
nbjk-service/src/main/java/com/miaxis/exam/dto/ExamInfoDto.java

@@ -1,5 +1,6 @@
 package com.miaxis.exam.dto;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -14,6 +15,7 @@ import lombok.Data;
 @ApiModel(value = "ExamInfoDto", description = "考场信息输入对象")
 public class ExamInfoDto {
 
+    @JsonIgnore
     private transient Long userId;
 
     @ApiModelProperty(value = "考场名称")

+ 8 - 1
nbjk-service/src/main/java/com/miaxis/exam/mapper/ExamInfoMapper.java

@@ -21,7 +21,7 @@ public interface ExamInfoMapper extends BaseMapper<ExamInfo> {
      * @param examInfoDto 考场信息
      * @return 考场信息集合
      */
-    public List<ExamInfoVipVo> selectExamInfoList(ExamInfoDto examInfoDto);
+    List<ExamInfoVipVo> selectExamInfoList(ExamInfoDto examInfoDto);
 
     /**
      * 获取考场存在的所有省份
@@ -34,4 +34,11 @@ public interface ExamInfoMapper extends BaseMapper<ExamInfo> {
      * @return
      */
     List<ExamInfoCityVo> getCity(String proviceId);
+
+    /**
+     * 查询我的考场
+     * @param examInfoDto
+     * @return
+     */
+    List<ExamInfoVipVo> selectMyExamInfoList(ExamInfoDto examInfoDto);
 }

+ 2 - 0
nbjk-service/src/main/java/com/miaxis/exam/service/IExamInfoService.java

@@ -26,4 +26,6 @@ public interface IExamInfoService extends IService<ExamInfo>{
     List<ExamInfoProviceVo> getProvice();
 
     List<ExamInfoCityVo> getCity(String proviceId);
+
+    List<ExamInfoVipVo> selectMyExamInfoList(ExamInfoDto examInfoDto);
 }

+ 5 - 0
nbjk-service/src/main/java/com/miaxis/exam/service/impl/ExamInfoServiceImpl.java

@@ -43,4 +43,9 @@ public class ExamInfoServiceImpl extends ServiceImpl<ExamInfoMapper, ExamInfo> i
     public List<ExamInfoCityVo> getCity(String proviceId) {
         return examInfoMapper.getCity(proviceId);
     }
+
+    @Override
+    public List<ExamInfoVipVo> selectMyExamInfoList(ExamInfoDto examInfoDto) {
+        return examInfoMapper.selectMyExamInfoList(examInfoDto);
+    }
 }

+ 20 - 0
nbjk-service/src/main/resources/mapper/exam/ExamInfoMapper.xml

@@ -36,6 +36,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
     </select>
 
+
+    <select id="selectMyExamInfoList" parameterType="com.miaxis.exam.dto.ExamInfoDto" resultType="com.miaxis.exam.vo.ExamInfoVipVo">
+        SELECT e.*,
+        (SELECT COUNT(1) FROM vip_exam_video v WHERE v.exam_id = e.id) AS video_count,
+        (SELECT expiration_time FROM vip_user_exam WHERE e.id = exam_id AND user_id = #{userId} AND NOW() <![CDATA[<=]]> expiration_time) AS expiration_time,
+        (CASE WHEN NOW() <![CDATA[<=]]> (SELECT expiration_time FROM vip_user_exam WHERE e.id = exam_id AND user_id = #{userId}) THEN 1 ELSE 0 END) AS is_vip
+        FROM exam_info e join vip_user_exam vu on e.id = vu.exam_id
+        <where>
+            <if test="province != null and province != ''" > AND e.province = #{province}</if>
+            <if test="provinceId != null and provinceId != ''" > AND e.province_id = #{provinceId}</if>
+            <if test="cityId != null and cityId != ''" > AND e.city_id = #{cityId}</if>
+            <if test="city != null and city != ''" > AND e.city = #{city}</if>
+            <if test="name != null  and name != ''"> and e.name like concat('%', #{name}, '%')</if>
+            <if test="userId != null"> and vu.user_id = #{userId}</if>
+        </where>
+
+
+    </select>
+
+
     <!--
     <select id="selectExamInfoList" parameterType="ExamInfo" resultMap="ExamInfoResult">
         <include refid="selectExamInfoVo"/>