From fc7baea99b51916d97d77fa1771cba7ed5f2f0ed Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期二, 09 七月 2024 10:44:30 +0800
Subject: [PATCH] feat:排除标签保留无标签、试卷排序

---
 src/main/java/com/mindskip/xzs/viewmodel/student/dashboard/PaperInfo.java  |   44 ++++----------------------------------------
 src/main/java/com/mindskip/xzs/controller/student/DashboardController.java |    3 +++
 src/main/resources/mapper/ExamPaperMapper.xml                              |    6 +++---
 src/main/resources/mapper/ExamTemplatesMapper.xml                          |    2 +-
 4 files changed, 11 insertions(+), 44 deletions(-)

diff --git a/src/main/java/com/mindskip/xzs/controller/student/DashboardController.java b/src/main/java/com/mindskip/xzs/controller/student/DashboardController.java
index 3e847cc..0cbb263 100644
--- a/src/main/java/com/mindskip/xzs/controller/student/DashboardController.java
+++ b/src/main/java/com/mindskip/xzs/controller/student/DashboardController.java
@@ -24,6 +24,7 @@
 
 import java.time.LocalDateTime;
 import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -123,9 +124,11 @@
                     info.setId(get.getId());
                     info.setName(get.getName());
                     info.setStatus("1");
+                    info.setCreateTime(get.getCtime());
                     paperInfos.add(info);
                 }
         }
+        paperInfos = paperInfos.stream().sorted(Comparator.comparing(PaperInfo::getCreateTime).reversed()).collect(Collectors.toList());
         indexVM.setFixedPaper(paperInfos);
 
         PaperFilter timeLimitPaperFilter = new PaperFilter();
diff --git a/src/main/java/com/mindskip/xzs/viewmodel/student/dashboard/PaperInfo.java b/src/main/java/com/mindskip/xzs/viewmodel/student/dashboard/PaperInfo.java
index fa436f4..360edc8 100644
--- a/src/main/java/com/mindskip/xzs/viewmodel/student/dashboard/PaperInfo.java
+++ b/src/main/java/com/mindskip/xzs/viewmodel/student/dashboard/PaperInfo.java
@@ -1,52 +1,16 @@
 package com.mindskip.xzs.viewmodel.student.dashboard;
 
 
+import lombok.Data;
+
 import java.util.Date;
 
+@Data
 public class PaperInfo {
     private Integer id;
     private String name;
     private Date limitStartTime;
     private Date limitEndTime;
     private String status;
-
-    public Integer getId() {
-        return id;
-    }
-
-    public void setId(Integer id) {
-        this.id = id;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public Date getLimitStartTime() {
-        return limitStartTime;
-    }
-
-    public void setLimitStartTime(Date limitStartTime) {
-        this.limitStartTime = limitStartTime;
-    }
-
-    public Date getLimitEndTime() {
-        return limitEndTime;
-    }
-
-    public void setLimitEndTime(Date limitEndTime) {
-        this.limitEndTime = limitEndTime;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
+    private Date createTime;
 }
diff --git a/src/main/resources/mapper/ExamPaperMapper.xml b/src/main/resources/mapper/ExamPaperMapper.xml
index 90f6c53..5783189 100644
--- a/src/main/resources/mapper/ExamPaperMapper.xml
+++ b/src/main/resources/mapper/ExamPaperMapper.xml
@@ -327,7 +327,7 @@
 
   <select id="indexPaper" resultMap="PaperInfoResultMap" parameterType="com.mindskip.xzs.viewmodel.student.dashboard.PaperFilter">
       select * from(
-      SELECT e.id,e.name,e.limit_start_time,e.limit_end_time
+      SELECT e.id,e.name,e.limit_start_time,e.limit_end_time,e.create_time
       FROM t_exam_paper e
       LEFT JOIN t_exam_paper_department d on d.exam_paper_id = e.id
       <where>
@@ -354,7 +354,7 @@
       ORDER BY e.id desc ) t
       union all
       select * from (
-      SELECT e.id,e.name,e.limit_start_time,e.limit_end_time
+      SELECT e.id,e.name,e.limit_start_time,e.limit_end_time,e.create_time
       FROM t_exam_paper e
       LEFT JOIN t_exam_paper_user u on u.exam_paper_id = e.id
       <where>
@@ -488,7 +488,7 @@
         <if test="excludeTagIds != null and excludeTagIds.size > 0">
           <if test="tagIds != null and tagIds.size > 0">and</if>
           <foreach collection="excludeTagIds" open="(" separator="and" close=")" item="item">
-            not find_in_set(#{item}, group_concat(b.tag_id))
+            NOT find_in_set(#{item}, group_concat(b.tag_id) OR group_concat(b.tag_id) IS NULL)
           </foreach>
         </if>
       order by a.id
diff --git a/src/main/resources/mapper/ExamTemplatesMapper.xml b/src/main/resources/mapper/ExamTemplatesMapper.xml
index f9c4436..cfb27e4 100644
--- a/src/main/resources/mapper/ExamTemplatesMapper.xml
+++ b/src/main/resources/mapper/ExamTemplatesMapper.xml
@@ -35,7 +35,7 @@
     <select id="gets" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.domain.vo.ExamTemplatesVO">
         select
         DISTINCT  e.id
-        , e.name, e.paper_type, e.suggest_time, e.title_name, e.ctime, e.status, e.menu_ids,e.start_time,e.end_time
+        , e.name, e.paper_type, e.suggest_time, e.title_name, e.ctime, e.status, e.menu_ids,e.start_time,e.end_time,e.ctime
         from t_exam_templates e
         inner join t_exam_templates_user u on e.id = u.templates_id
         <where>

--
Gitblit v1.8.0