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