From b7273d6fc94ae5e14f5a911d8b8b88cb7c848264 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 30 十月 2024 20:14:10 +0800
Subject: [PATCH] 学员bug

---
 src/main/java/com/ycl/jxkg/domain/vo/MeetVO.java             |    1 
 src/main/java/com/ycl/jxkg/mapper/MeetMapper.java            |    3 
 src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java     |    8 ++
 src/main/resources/mapper/MeetMapper.xml                     |   53 ++++++++++++++---
 src/main/java/com/ycl/jxkg/service/impl/HomeServiceImpl.java |    8 +-
 src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java |   40 +++++++++----
 src/main/resources/application.yml                           |    1 
 src/main/resources/mapper/ClassesUserMapper.xml              |   24 ++++++--
 src/main/resources/mapper/UserMapper.xml                     |    4 
 9 files changed, 106 insertions(+), 36 deletions(-)

diff --git a/src/main/java/com/ycl/jxkg/domain/vo/MeetVO.java b/src/main/java/com/ycl/jxkg/domain/vo/MeetVO.java
index 229cfea..8803164 100644
--- a/src/main/java/com/ycl/jxkg/domain/vo/MeetVO.java
+++ b/src/main/java/com/ycl/jxkg/domain/vo/MeetVO.java
@@ -29,7 +29,6 @@
 
     /** 鐝骇id */
     private List<Integer> classesIds;
-    private String classesName;
 
     /** 鑰佸笀鍒楄〃 */
     private List<Integer> teacherIds;
diff --git a/src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java b/src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java
index eb9b7bc..76b3efd 100644
--- a/src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java
+++ b/src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java
@@ -66,4 +66,12 @@
      * @return
      */
     List<StudentVO> getTeacherListByClassesId(@Param("id") Integer id);
+
+    /**
+     * 鏌ヨ鐝骇鑰佸笀
+     *
+     * @param classesIds
+     * @return
+     */
+    List<String> getTeachersByClassesIds(@Param("classesIds") List<Integer> classesIds);
 }
diff --git a/src/main/java/com/ycl/jxkg/mapper/MeetMapper.java b/src/main/java/com/ycl/jxkg/mapper/MeetMapper.java
index 8f1e15c..13ec7bd 100644
--- a/src/main/java/com/ycl/jxkg/mapper/MeetMapper.java
+++ b/src/main/java/com/ycl/jxkg/mapper/MeetMapper.java
@@ -30,7 +30,8 @@
     /**
     *  鍒嗛〉
     */
-    IPage getPage(IPage page, @Param("query") MeetQuery query);
+    IPage teacherPage(IPage page, @Param("query") MeetQuery query);
+    IPage studentPage(IPage page, @Param("query") MeetQuery query);
 
     /**
      * 鑾峰彇浼氳瀵瑰簲鐝骇鐨勫鐢熷垪琛�
diff --git a/src/main/java/com/ycl/jxkg/service/impl/HomeServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/HomeServiceImpl.java
index ffa07ac..fe423ef 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/HomeServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/HomeServiceImpl.java
@@ -87,14 +87,16 @@
         List<ExamVO> examList = new ArrayList<>();
         if (!CollectionUtils.isEmpty(classes)) {
             LocalDate nowDate = LocalDate.now();
-            // 璁$畻涓冨ぉ鍚庣殑鏃ユ湡
+            // 璁$畻鍓嶅悗涓冨ぉ鐨勬棩鏈�
             LocalDate sevenDayLaterDate = nowDate.plusDays(7);
             LocalDateTime now = LocalDateTime.of(nowDate, LocalTime.MIN);
             LocalDateTime sevenDayLater = LocalDateTime.of(sevenDayLaterDate, LocalTime.MIN);
+            LocalDate sevenDayBeforeDate = nowDate.minusDays(7);
+            LocalDateTime sevenDayBefore = LocalDateTime.of(sevenDayBeforeDate, LocalTime.MIN);
             //鎴戠殑璇剧▼
             QueryWrapper<Meet> meetQueryWrapper = new QueryWrapper<>();
             meetQueryWrapper.in("classes_id",classes);
-            meetQueryWrapper.between("start_time", now,sevenDayLater);
+            meetQueryWrapper.between("start_time", sevenDayBefore,sevenDayLater);
             List<Meet> meets = meetMapper.selectList(meetQueryWrapper);
             for (Meet meet : meets) {
                 MeetVO meetVO = new MeetVO();
@@ -104,7 +106,7 @@
             //鎴戠殑鑰冭瘯
             QueryWrapper<Exam> examQueryWrapper = new QueryWrapper<>();
             examQueryWrapper.in("classes_id",classes);
-            examQueryWrapper.between("start_time", now,sevenDayLater);
+            examQueryWrapper.between("start_time", sevenDayBefore,sevenDayLater);
             List<Exam> exams = examMapper.selectList(examQueryWrapper);
             for (Exam exam : exams) {
                 ExamVO examVO = new ExamVO();
diff --git a/src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java
index 408a884..481ed76 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java
@@ -3,15 +3,13 @@
 import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ycl.jxkg.base.Result;
 import com.ycl.jxkg.base.SystemCode;
 import com.ycl.jxkg.context.WebContext;
-import com.ycl.jxkg.domain.entity.Meet;
-import com.ycl.jxkg.domain.entity.MeetClasses;
-import com.ycl.jxkg.domain.entity.MeetStudent;
-import com.ycl.jxkg.domain.entity.StudyRecord;
+import com.ycl.jxkg.domain.entity.*;
 import com.ycl.jxkg.domain.form.MeetForm;
 import com.ycl.jxkg.domain.query.MeetQuery;
 import com.ycl.jxkg.domain.vo.ClassesVO;
@@ -143,14 +141,26 @@
      */
     @Override
     public Result page(MeetQuery query) {
-        Integer id = webContext.getCurrentUser().getId();
-        //鏌ヨ嚜宸卞垱寤虹殑鎴块棿
-        query.setTeacherId(id);
+        Integer userId = webContext.getCurrentUser().getId();
+        //鏌ヨ嚜宸辩殑浼氳
+        List<ClassesUser> classes = new LambdaQueryChainWrapper<>(classesUserMapper)
+                .eq(ClassesUser::getUserId, userId)
+                .eq(ClassesUser::getTeacher, Boolean.TRUE)
+                .list();
+        List<Integer> classesIds = classes.stream().map(ClassesUser::getClassesId).collect(Collectors.toList());
+        if (CollectionUtils.isEmpty(classesIds) && 3 != webContext.getCurrentUser().getRole()) {
+            throw new RuntimeException("鎮ㄦ殏鏃舵棤娉曡闂椤甸潰");
+        }
+        query.setClassesIds(classesIds);
         IPage<MeetVO> page = PageUtil.getPage(query, MeetVO.class);
-        baseMapper.getPage(page, query);
+        baseMapper.teacherPage(page, query);
         page.getRecords().forEach(vo -> {
-            if (!CollectionUtils.isEmpty(vo.getTeacherNames())) {
-                vo.setTeacherNamesStr(vo.getTeacherNames().stream().collect(Collectors.joining("銆�")));
+            if (! CollectionUtils.isEmpty(vo.getClassesIds())) {
+                // 鏌ヤ富璁茶�佸笀
+                List<String> teacherNames = classesUserMapper.getTeachersByClassesIds(vo.getClassesIds());
+                if (! CollectionUtils.isEmpty(teacherNames)) {
+                    vo.setTeacherNamesStr(teacherNames.stream().collect(Collectors.joining("銆�")));
+                }
             }
         });
         return Result.ok().data(page.getRecords()).total(page.getTotal());
@@ -173,10 +183,14 @@
             query.setClassesIds(classes);
         }
         IPage<MeetVO> page = PageUtil.getPage(query, MeetVO.class);
-        baseMapper.getPage(page, query);
+        baseMapper.studentPage(page, query);
         for (MeetVO vo : page.getRecords()) {
-            if (!CollectionUtils.isEmpty(vo.getTeacherNames())) {
-                vo.setTeacherNamesStr(vo.getTeacherNames().stream().collect(Collectors.joining("銆�")));
+            if (! CollectionUtils.isEmpty(vo.getClassesIds())) {
+                // 鏌ヤ富璁茶�佸笀
+                List<String> teacherNames = classesUserMapper.getTeachersByClassesIds(vo.getClassesIds());
+                if (! CollectionUtils.isEmpty(teacherNames)) {
+                    vo.setTeacherNamesStr(teacherNames.stream().collect(Collectors.joining("銆�")));
+                }
             }
         }
         return Result.ok().data(page.getRecords()).total(page.getTotal());
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 7e33641..f7d765a 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -39,6 +39,7 @@
     - /api/admin/upload/configAndUpload
     - /api/admin/upload/auth
     - /api/student/user/register
+    - /api/files/**
   pwdKey:
     publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQClwwxhJKwStDnu7c0yCRkwTW2VKuLWwyVtFC6Zx9bYdF1qwqSP26CkDwaF6GHayIvv9b8BHlAaQH4SLIPzir062yzNukqspmthUw4gPJhbx1AQrWRoQJSv3/1Sk+tWyJRHXSiCZJZ3216LDhtx42LQ0HItDP8U9BLtsxA+5LEZzQIDAQAB
     privateKey: MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAKXDDGEkrBK0Oe7tzTIJGTBNbZUq4tbDJW0ULpnH1th0XWrCpI/boKQPBoXoYdrIi+/1vwEeUBpAfhIsg/OKvTrbLM26Sqyma2FTDiA8mFvHUBCtZGhAlK/f/VKT61bIlEddKIJklnfbXosOG3HjYtDQci0M/xT0Eu2zED7ksRnNAgMBAAECgYEAlCuz5yn2volnt9HNuEo1v92WdN5vAnZSAB0oQsJFpBrwXjw7CXTTNZNQy2YcAot9uzO6Vu+Xvr+jce9ky9BasM7ehz0gnwJWAO79IqUnmu3RRq7HllDwp72qysXIypJZCF4HX5jAzUGlNzlTSUb1H4LtavKc6a//YqPfQ0jTLsECQQDZuGKGAYq6rBCX0+T8qlQpCPc41wsl4Gi9lLD21ks9PMx44JdhsUrqLWItZiGynDzq1LJ3M1hr3gbSsPQcI9HJAkEAwugDFCiRLOqOBRRGlYbzgGdmXbR4SrMNIpcFTFhU+MsEqaMueVPiNtRSIK6W8pS28ZN0aiZDTBAT84fOIENp5QJBAJaVgQ9OYbVa7N8WH3riE/ONz+/wTDWWUNtOzFbtQHzKYGH6dLmM9lOhsBXWXdg7V6bUFdt8F9wDZJS07yHHZIECQG4rHrJiS80Lt8L/NvaGFVVbHO2SePwgQShwHLqOo1kNyFDqv/YsiA1d7h4zEXeEv/PE2WS2xAtWezCIbualtFECQQDPUkYhs3vZoZgsltdeFnv/WoXaXNRIzunMTmksIlh8JP7C1xQHrwdCpUkffgSVphxGJGHkxooMpki7oTC1Mdjx
diff --git a/src/main/resources/mapper/ClassesUserMapper.xml b/src/main/resources/mapper/ClassesUserMapper.xml
index 10be910..5f713e9 100644
--- a/src/main/resources/mapper/ClassesUserMapper.xml
+++ b/src/main/resources/mapper/ClassesUserMapper.xml
@@ -53,11 +53,12 @@
         TU.birth_day,
         TU.status
         FROM t_classes_user TCU
-        LEFT JOIN t_user TU ON TU.id = TCU.user_id and TU.deleted = 0
-        WHERE TCU.deleted = 0 AND TCU.classes_id = #{query.classesId} AND TCU.teacher = 0
-        <if test="query.studentName != null and query.studentName != ''">AND TU.real_name like concat('%',
-            #{query.studentName}, '%')
-        </if>
+        INNER JOIN t_user TU ON TU.id = TCU.user_id and TU.deleted = 0 AND TCU.classes_id = #{query.classesId} AND TCU.deleted = 0 AND TCU.teacher = 0
+        <where>
+            <if test="query.studentName != null and query.studentName != ''">AND TU.real_name like concat('%',
+                #{query.studentName}, '%')
+            </if>
+        </where>
         order by TU.id desc
     </select>
 
@@ -83,7 +84,7 @@
     <select id="getClassesByUserId1" resultType="com.ycl.jxkg.domain.vo.ClassesVO">
         select distinct tc.id, tc.class_name
         from t_classes_user tcu inner join t_classes tc ON tcu.classes_id = tc.id
-        and tcu.user_id = #{userId} and tcu.teacher = 0
+        and tcu.user_id = #{userId} and tcu.teacher = 0 and tcu.deleted = 0
     </select>
 
     <select id="getClassesNameByUserId" resultType="java.lang.String">
@@ -99,4 +100,15 @@
         FROM t_user tu
             INNER JOIN t_classes_user tcu ON tu.id = tcu.user_id AND tcu.classes_id = #{id} AND tcu.deleted = 0 AND tcu.teacher = 1 AND tu.deleted = 0
     </select>
+
+    <select id="getTeachersByClassesIds" resultType="string">
+        SELECT
+            DISTINCT tu.real_name
+        FROM t_user tu
+                 INNER JOIN t_classes_user tcu ON tu.id = tcu.user_id AND tcu.deleted = 0 AND tcu.teacher = 1 AND tu.deleted = 0
+        WHERE
+        tcu.classes_id in <foreach collection="classesIds" open="(" separator="," close=")" item="classesId">
+                #{classesId}
+            </foreach>
+    </select>
 </mapper>
diff --git a/src/main/resources/mapper/MeetMapper.xml b/src/main/resources/mapper/MeetMapper.xml
index 78d3306..6b9185f 100644
--- a/src/main/resources/mapper/MeetMapper.xml
+++ b/src/main/resources/mapper/MeetMapper.xml
@@ -14,17 +14,17 @@
     </resultMap>
 
     <resultMap id="PageMap" type="com.ycl.jxkg.domain.vo.MeetVO">
+        <id column="id" property="id"/>
         <result column="meet_name" property="meetName" />
         <result column="meet_cover" property="meetCover" />
         <result column="start_time" property="startTime" />
         <result column="end_time" property="endTime" />
         <result column="status" property="status" />
-        <collection property="teacherNames" ofType="string" column="classes_id" select="getTeacherNames"></collection>
-        <collection property="classesIds" ofType="string" column="classes_id" select="getTeacherNames"></collection>
+        <collection property="classesIds" ofType="int" column="id" select="getClassesIds"></collection>
     </resultMap>
 
-    <select id="getTeacherNames" resultType="string">
-        SELECT tu.real_name FROM t_user tu INNER JOIN t_classes_user tcu ON tu.id = tcu.user_id AND tcu.classes_id = #{classesId} AND tcu.teacher = 1
+    <select id="getClassesIds" resultType="int">
+        SELECT tmc.classes_id FROM t_meet_classes tmc WHERE tmc.meet_id = #{id}
     </select>
 
     <select id="getById" resultMap="BaseResultMap">
@@ -44,7 +44,7 @@
     </select>
 
 
-    <select id="getPage" resultMap="PageMap">
+    <select id="teacherPage" resultMap="PageMap">
         SELECT
             TM.meet_name,
             TM.meet_cover,
@@ -55,16 +55,16 @@
             TM.id
         FROM
             t_meet TM
+        <if test="query.classesIds !=null and query.classesIds.size > 0">
+            INNER JOIN t_meet_classes TMC ON TM.id = TMC.meet_id
+        </if>
         <where>
             TM.deleted = 0
-            <if test="query.classesIds !=null">
-                and classes_id in
+            <if test="query.classesIds !=null and query.classesIds.size > 0">
+                and TMC.classes_id in
                 <foreach collection="query.classesIds" item="classesId" open="(" close=")" separator=",">
                     #{classesId}
                 </foreach>
-            </if>
-            <if test="query.teacherId!=null">
-                and TM.create_user = #{query.teacherId}
             </if>
             <if test="query.status!=null">
                 and TM.status = #{query.status}
@@ -73,6 +73,39 @@
                 and TM.meet_name like concat ('%',#{query.meetName},'%')
             </if>
         </where>
+        order by TM.end_time desc
+    </select>
+
+    <select id="studentPage" resultMap="PageMap">
+        SELECT
+        TM.meet_name,
+        TM.meet_cover,
+        TM.create_user,
+        TM.start_time,
+        TM.end_time,
+        TM.status,
+        TM.id
+        FROM
+        t_meet TM
+        <if test="query.classesIds !=null and query.classesIds.size > 0">
+            INNER JOIN t_meet_classes TMC ON TM.id = TMC.meet_id
+        </if>
+        <where>
+            TM.deleted = 0
+            <if test="query.classesIds !=null and query.classesIds.size > 0">
+                and TMC.classes_id in
+                <foreach collection="query.classesIds" item="classesId" open="(" close=")" separator=",">
+                    #{classesId}
+                </foreach>
+            </if>
+            <if test="query.status!=null">
+                and TM.status = #{query.status}
+            </if>
+            <if test="query.meetName !=null and query.meetName!='' ">
+                and TM.meet_name like concat ('%',#{query.meetName},'%')
+            </if>
+        </where>
+        order by TM.end_time desc
     </select>
 
     <select id="getStudentList" resultType="com.ycl.jxkg.domain.vo.StudentSimpleVO">
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
index 90ede01..c4bb36b 100644
--- a/src/main/resources/mapper/UserMapper.xml
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -204,9 +204,9 @@
                tu.real_name,
                tu.phone
         FROM t_user tu
-                 INNER JOIN t_classes_user tcu ON tu.id = tcu.user_id
+                 INNER JOIN t_classes_user tcu ON tu.id = tcu.user_id AND tcu.teacher = 0
         WHERE tcu.classes_id = #{classesId}
-        and tcu.deleted = 0
+        AND tcu.deleted = 0 AND tu.deleted = 0
         ORDER BY tcu.create_time
     </select>
 

--
Gitblit v1.8.0