xiangpei
2024-10-30 b7273d6fc94ae5e14f5a911d8b8b88cb7c848264
学员bug
9个文件已修改
142 ■■■■ 已修改文件
src/main/java/com/ycl/jxkg/domain/vo/MeetVO.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/mapper/MeetMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/service/impl/HomeServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ClassesUserMapper.xml 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/MeetMapper.xml 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/UserMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
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);
}
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);
    /**
     * 获取会议对应班级的学生列表
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();
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());
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
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>
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">
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>