Parcourir la source

fix 模考已结束列表

tanzh il y a 3 ans
Parent
commit
a46644cb97

+ 2 - 2
zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserMockSubscribeController.java

@@ -128,8 +128,8 @@ public class UserMockSubscribeController extends BaseController {
     @GetMapping("/listSubscribe")
     @GetMapping("/listSubscribe")
     public TableDataInfo<UserMockSubscribeVo> listSubscribe(UserMockSubscribeQueryBo bo) {
     public TableDataInfo<UserMockSubscribeVo> listSubscribe(UserMockSubscribeQueryBo bo) {
         startPage();
         startPage();
-        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
-        bo.setUserId(loginUser.getUser().getUserId());
+        /*ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());*/
         List<UserMockSubscribeVo> list = iUserMockSubscribeService.listSubscribe(bo);
         List<UserMockSubscribeVo> list = iUserMockSubscribeService.listSubscribe(bo);
         return getDataTable(list);
         return getDataTable(list);
     }
     }

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/mapper/MockMajorSubjectTimeMapper.java

@@ -2,6 +2,10 @@ package com.zhongzheng.modules.mock.mapper;
 
 
 import com.zhongzheng.modules.mock.domain.MockMajorSubjectTime;
 import com.zhongzheng.modules.mock.domain.MockMajorSubjectTime;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.user.bo.UserMockSubscribeQueryBo;
+import com.zhongzheng.modules.user.vo.UserMockSubscribeVo;
+
+import java.util.List;
 
 
 /**
 /**
  * 模考专业科目绑定时间Mapper接口
  * 模考专业科目绑定时间Mapper接口
@@ -11,4 +15,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
  */
 public interface MockMajorSubjectTimeMapper extends BaseMapper<MockMajorSubjectTime> {
 public interface MockMajorSubjectTimeMapper extends BaseMapper<MockMajorSubjectTime> {
 
 
+    List<MockMajorSubjectTime> listBySubject(UserMockSubscribeQueryBo bo);
+
+    UserMockSubscribeVo listByEachExamId(Long eachExamId);
 }
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/service/IMockMajorSubjectTimeService.java

@@ -6,6 +6,8 @@ import com.zhongzheng.modules.mock.bo.MockMajorSubjectTimeQueryBo;
 import com.zhongzheng.modules.mock.bo.MockMajorSubjectTimeAddBo;
 import com.zhongzheng.modules.mock.bo.MockMajorSubjectTimeAddBo;
 import com.zhongzheng.modules.mock.bo.MockMajorSubjectTimeEditBo;
 import com.zhongzheng.modules.mock.bo.MockMajorSubjectTimeEditBo;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.user.bo.UserMockSubscribeQueryBo;
+import com.zhongzheng.modules.user.vo.UserMockSubscribeVo;
 
 
 import java.util.Collection;
 import java.util.Collection;
 import java.util.List;
 import java.util.List;
@@ -49,4 +51,8 @@ public interface IMockMajorSubjectTimeService extends IService<MockMajorSubjectT
 	 * @return
 	 * @return
 	 */
 	 */
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    List<MockMajorSubjectTime> listBySubject(UserMockSubscribeQueryBo bo);
+
+    UserMockSubscribeVo listByEachExamId(Long eachExamId);
 }
 }

+ 12 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/service/impl/MockMajorSubjectTimeServiceImpl.java

@@ -3,6 +3,8 @@ package com.zhongzheng.modules.mock.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.user.bo.UserMockSubscribeQueryBo;
+import com.zhongzheng.modules.user.vo.UserMockSubscribeVo;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -99,4 +101,14 @@ public class MockMajorSubjectTimeServiceImpl extends ServiceImpl<MockMajorSubjec
         }
         }
         return this.removeByIds(ids);
         return this.removeByIds(ids);
     }
     }
+
+    @Override
+    public List<MockMajorSubjectTime> listBySubject(UserMockSubscribeQueryBo bo) {
+        return baseMapper.listBySubject(bo);
+    }
+
+    @Override
+    public UserMockSubscribeVo listByEachExamId(Long eachExamId) {
+        return baseMapper.listByEachExamId(eachExamId);
+    }
 }
 }

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

@@ -22,4 +22,6 @@ public interface UserMockSubscribeMapper extends BaseMapper<UserMockSubscribe> {
     Integer getConsoleMockSubscribeNum(ConsoleQueryBo bo);
     Integer getConsoleMockSubscribeNum(ConsoleQueryBo bo);
 
 
     List<UserMockSubscribeVo> listSubscribe(UserMockSubscribeQueryBo bo);
     List<UserMockSubscribeVo> listSubscribe(UserMockSubscribeQueryBo bo);
+
+    List<UserMockSubscribe> listBySubject(UserMockSubscribeQueryBo bo);
 }
 }

+ 55 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserMockSubscribeServiceImpl.java

@@ -9,9 +9,11 @@ import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
 import com.zhongzheng.modules.mock.domain.MockApply;
 import com.zhongzheng.modules.mock.domain.MockApply;
 import com.zhongzheng.modules.mock.domain.MockMajorSubject;
 import com.zhongzheng.modules.mock.domain.MockMajorSubject;
 import com.zhongzheng.modules.mock.domain.MockMajorSubjectGoods;
 import com.zhongzheng.modules.mock.domain.MockMajorSubjectGoods;
+import com.zhongzheng.modules.mock.domain.MockMajorSubjectTime;
 import com.zhongzheng.modules.mock.service.IMockApplyService;
 import com.zhongzheng.modules.mock.service.IMockApplyService;
 import com.zhongzheng.modules.mock.service.IMockMajorSubjectGoodsService;
 import com.zhongzheng.modules.mock.service.IMockMajorSubjectGoodsService;
 import com.zhongzheng.modules.mock.service.IMockMajorSubjectService;
 import com.zhongzheng.modules.mock.service.IMockMajorSubjectService;
+import com.zhongzheng.modules.mock.service.IMockMajorSubjectTimeService;
 import com.zhongzheng.modules.mock.vo.MockApplyVo;
 import com.zhongzheng.modules.mock.vo.MockApplyVo;
 import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.user.domain.User;
 import com.zhongzheng.modules.user.domain.User;
@@ -52,6 +54,9 @@ public class UserMockSubscribeServiceImpl extends ServiceImpl<UserMockSubscribeM
     @Autowired
     @Autowired
     private IMockMajorSubjectGoodsService iMockMajorSubjectGoodsService;
     private IMockMajorSubjectGoodsService iMockMajorSubjectGoodsService;
 
 
+    @Autowired
+    private IMockMajorSubjectTimeService iMockMajorSubjectTimeService;
+
     @Autowired
     @Autowired
     private IOrderService iOrderService;
     private IOrderService iOrderService;
 
 
@@ -243,15 +248,62 @@ public class UserMockSubscribeServiceImpl extends ServiceImpl<UserMockSubscribeM
                 });
                 });
             }
             }
             if (Validator.isNotEmpty(bo.getMockStatus()) && bo.getMockStatus() == 1) {
             if (Validator.isNotEmpty(bo.getMockStatus()) && bo.getMockStatus() == 1) {
-                userMockSubscribeVoList.stream().forEach(userMockSubscribeVo -> {
+                //查询默认数据(同一批模考中的同一科目的最新的一条)
+                List<MockMajorSubjectTime> mockMajorSubjectTimeList = iMockMajorSubjectTimeService.listBySubject(bo);
+                List<MockMajorSubjectTime> mockMajorSubjectTimeList2 = new ArrayList<>();
+                mockMajorSubjectTimeList.forEach(mockMajorSubjectTime -> {
                     try {
                     try {
-                        if (System.currentTimeMillis()/1000 > formatTime(userMockSubscribeVo.getApplySiteExamTime(), userMockSubscribeVo.getApplySiteEndTime())) {
-                            userMockSubscribeVos.add(userMockSubscribeVo);
+                        if (System.currentTimeMillis()/1000 > formatTime(mockMajorSubjectTime.getExamTime(), mockMajorSubjectTime.getEndTime())) {
+                            mockMajorSubjectTimeList2.add(mockMajorSubjectTime);
+                        }
+                    } catch (ParseException e) {
+                        e.printStackTrace();
+                    }
+                });
+
+                //查询用户最新所预约模考的科目
+                List<UserMockSubscribe> userMockSubscribeList = baseMapper.listBySubject(bo);
+                List<UserMockSubscribe> userMockSubscribeList2 = new ArrayList<>();
+                userMockSubscribeList.forEach(userMockSubscribe -> {
+                    try {
+                        if (System.currentTimeMillis()/1000 > formatTime(userMockSubscribe.getApplySiteExamTime(), userMockSubscribe.getApplySiteEndTime())) {
+                            userMockSubscribeList2.add(userMockSubscribe);
                         }
                         }
                     } catch (ParseException e) {
                     } catch (ParseException e) {
                         e.printStackTrace();
                         e.printStackTrace();
                     }
                     }
                 });
                 });
+                List<Long> list = new ArrayList<>();
+                userMockSubscribeList2.forEach(userMockSubscribe -> {list.add(userMockSubscribe.getMockMajorSubjectId());});
+                //如果默认数据与用户所预约的有重复,则删除对应数据
+                mockMajorSubjectTimeList2.removeIf(mockMajorSubjectTime -> list.contains(mockMajorSubjectTime.getMockMajorSubjectId()));
+                //把用户预约的数据和默认数据组合在一起
+                userMockSubscribeList2.forEach(userMockSubscribe -> {
+                    UserMockSubscribeVo userMockSubscribeVo = iMockMajorSubjectTimeService.listByEachExamId(userMockSubscribe.getEachExamId());
+                    LambdaQueryWrapper<MockMajorSubjectTime> lqw = Wrappers.lambdaQuery();
+                    lqw.eq(MockMajorSubjectTime::getMockMajorSubjectId, userMockSubscribe.getMockMajorSubjectId());
+                    lqw.orderByDesc(MockMajorSubjectTime::getId).last("limit 1");
+                    MockMajorSubjectTime mockMajorSubjectTime = iMockMajorSubjectTimeService.getOne(lqw);
+                    try {
+                        if (System.currentTimeMillis()/1000 < formatTime(mockMajorSubjectTime.getExamTime(), mockMajorSubjectTime.getStartTime())) {
+                            userMockSubscribeVo.setReSubscribe(1);
+                        }
+                    } catch (ParseException e) {
+                        e.printStackTrace();
+                    }
+                    try {
+                        if (System.currentTimeMillis()/1000 < formatTime(mockMajorSubjectTime.getExamTime(), mockMajorSubjectTime.getEndTime())) {
+                            userMockSubscribeVo.setCanDo(0);
+                        }
+                    } catch (ParseException e) {
+                        e.printStackTrace();
+                    }
+                    userMockSubscribeVos.add(userMockSubscribeVo);
+                });
+                mockMajorSubjectTimeList2.forEach(mockMajorSubjectTime -> {
+                    UserMockSubscribeVo userMockSubscribeVo = iMockMajorSubjectTimeService.listByEachExamId(mockMajorSubjectTime.getId());
+                    userMockSubscribeVos.add(userMockSubscribeVo);
+                });
             }
             }
 
 
         }
         }

+ 10 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserMockSubscribeVo.java

@@ -174,4 +174,14 @@ public class UserMockSubscribeVo {
 	@Excel(name = "第一次交卷时间")
 	@Excel(name = "第一次交卷时间")
 	@ApiModelProperty("第一次交卷时间")
 	@ApiModelProperty("第一次交卷时间")
 	private Long firstHandTime;
 	private Long firstHandTime;
+
+	/** 能否做题 默认 能 0 否*/
+	@Excel(name = "能否做题 默认 能 0 否")
+	@ApiModelProperty("能否做题 默认 能 0 否")
+	private Integer canDo;
+
+	/** 重新预约 默认 否 1 是*/
+	@Excel(name = "重新预约 默认 否 1 是")
+	@ApiModelProperty("重新预约 默认 否 1 是")
+	private Integer reSubscribe;
 }
 }

+ 67 - 0
zhongzheng-system/src/main/resources/mapper/modules/mock/MockMajorSubjectTimeMapper.xml

@@ -14,5 +14,72 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateTime" column="update_time"/>
         <result property="updateTime" column="update_time"/>
     </resultMap>
     </resultMap>
 
 
+    <resultMap type="com.zhongzheng.modules.user.vo.UserMockSubscribeVo" id="UserMockSubscribeVoResult">
+        <result property="userId" column="user_id"/>
+        <result property="eachExamId" column="each_exam_id"/>
+        <result property="subscribeStatus" column="subscribe_status"/>
+        <result property="examStatus" column="exam_status"/>
+        <result property="result" column="result"/>
+        <result property="applyId" column="apply_id"/>
+        <result property="mockMajorSubjectId" column="mock_major_subject_id"/>
+        <result property="applySiteStartTime" column="apply_site_start_time"/>
+        <result property="applySiteEndTime" column="apply_site_end_time"/>
+        <result property="applySiteExamTime" column="apply_site_exam_time"/>
+        <result property="applyName" column="apply_name"/>
+        <result property="majorId" column="major_id"/>
+        <result property="categoryName" column="category_name"/>
+        <result property="projectId" column="project_id"/>
+        <result property="projectName" column="project_name"/>
+        <result property="subjectId" column="subject_id"/>
+        <result property="subjectName" column="subject_name"/>
+        <result property="timeLimit" column="time_limit"/>
+        <result property="firstHandTime" column="first_hand_time"/>
+    </resultMap>
+    <select id="listBySubject" parameterType="com.zhongzheng.modules.user.bo.UserMockSubscribeQueryBo" resultType="com.zhongzheng.modules.mock.domain.MockMajorSubjectTime">
+        SELECT
+        mmst.*,
+        ma.apply_name
+        FROM
+        mock_major_subject_time mmst
+        LEFT JOIN mock_major_subject mms ON mmst.mock_major_subject_id = mms.mock_major_subject_id
+        LEFT JOIN mock_major mm ON mms.mock_major_id = mm.mock_major_id
+        LEFT JOIN mock_apply ma ON mm.apply_id = ma.apply_id
+        WHERE
+        ( mmst.mock_major_subject_id, mmst.exam_time ) IN ( SELECT mock_major_subject_id, max( exam_time ) FROM mock_major_subject_time GROUP BY mock_major_subject_id )
+        <if test="startTime != null and startTime != ''">
+            and mmst.exam_time &gt; #{startTime}
+        </if>
+        <if test="endTime != null and endTime != ''">
+            and mmst.exam_time &lt; #{endTime}
+        </if>
+        <if test="applyName != null and applyName != ''">
+            and ma.apply_name = #{applyName}
+        </if>
+    </select>
+    <select id="listByEachExamId" parameterType="java.lang.Long" resultType="com.zhongzheng.modules.user.vo.UserMockSubscribeVo">
+        SELECT
+            mmst.exam_time apply_site_exam_time,
+            mmst.start_time applySiteStartTime,
+            mmst.end_time applySiteEndTime,
+            mms.subject_id,
+            cs.subject_name,
+            mm.major_id,
+            m.category_name,
+            ma.apply_id,
+            ma.apply_name,
+            ma.project_id,
+            cpt.project_name
+        FROM
+            mock_major_subject_time mmst
+        LEFT JOIN mock_major_subject mms ON mmst.mock_major_subject_id = mms.mock_major_subject_id
+        LEFT JOIN course_subject cs ON mms.subject_id = cs.id
+        LEFT JOIN mock_major mm ON mms.mock_major_id = mm.mock_major_id
+        LEFT JOIN major m ON mm.major_id = m.id
+        LEFT JOIN mock_apply ma ON mm.apply_id = ma.apply_id
+        LEFT JOIN course_project_type cpt ON ma.project_id = cpt.id
+        WHERE
+        mmst.id = #{eachExamId}
+    </select>
+
 
 
 </mapper>
 </mapper>

+ 21 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserMockSubscribeMapper.xml

@@ -155,6 +155,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             AND ums.apply_site_exam_time &lt; #{endTime}
             AND ums.apply_site_exam_time &lt; #{endTime}
         </if>
         </if>
     </select>
     </select>
+    <select id="listBySubject" parameterType="com.zhongzheng.modules.user.bo.UserMockSubscribeQueryBo" resultType="com.zhongzheng.modules.user.domain.UserMockSubscribe">
+        SELECT
+        ums.*
+        FROM
+            user_mock_subscribe ums
+        LEFT JOIN mock_apply ma ON ums.apply_id = ma.apply_id
+        WHERE
+                ( ums.mock_major_subject_id, ums.apply_site_exam_time ) IN ( SELECT mock_major_subject_id, max( apply_site_exam_time ) FROM user_mock_subscribe GROUP BY mock_major_subject_id )
+        <if test="startTime != null and startTime != ''">
+            and ums.apply_site_exam_time &gt; #{startTime}
+        </if>
+        <if test="endTime != null and endTime != ''">
+            and ums.apply_site_exam_time &lt; #{endTime}
+        </if>
+        <if test="userId != null and userId != ''">
+            and ums.user_id = #{userId}
+        </if>
+        <if test="applyName != null and applyName != ''">
+            and ma.applyName = #{applyName}
+        </if>
+    </select>
 
 
 
 
 </mapper>
 </mapper>