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