luohairen
2024-10-29 2467e1193c505d344c31a37e6fd9a269d7b98987
Merge remote-tracking branch 'origin/master'
9个文件已修改
94 ■■■■ 已修改文件
src/main/java/com/ycl/jxkg/controller/student/MeetController.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/query/MeetQuery.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/vo/MeetVO.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/service/MeetService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ClassesUserMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/MeetMapper.xml 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/controller/student/MeetController.java
@@ -9,11 +9,14 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
/**
 * 会议表 前端控制器
@@ -30,12 +33,18 @@
    private final MeetService meetService;
    @GetMapping("/page")
    @PostMapping("/page")
    @ApiOperation(value = "分页", notes = "分页")
    public Result page(MeetQuery query) {
    public Result page(@RequestBody MeetQuery query) {
        return meetService.studentPage(query);
    }
    @GetMapping("/classes")
    @ApiOperation(value = "获取学生的班级", notes = "获取学生的班级")
    public Result getStudentClasses() {
        return meetService.getStudentClasses();
    }
    @GetMapping("/{id}")
    @ApiOperation(value = "学生上课", notes = "学生上课")
    public Result detail(@PathVariable("id") Integer id) {
src/main/java/com/ycl/jxkg/domain/query/MeetQuery.java
@@ -18,6 +18,7 @@
@Data
@ApiModel(value = "Meet查询", description = "会议表查询")
public class MeetQuery extends AbsQuery {
    private List<Integer> classesIds;
    private Integer teacherId;
src/main/java/com/ycl/jxkg/domain/vo/MeetVO.java
@@ -29,11 +29,13 @@
    /** 班级id */
    private Integer classesId;
    private String classesName;
    /** 创建人 */
    private Integer createUser;
    /** 老师列表 */
    private List<Integer> teacherIds;
    private List<String> teacherNames;
    /** 老师姓名 */
    private String teacherName;
    private String teacherNamesStr;
    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date startTime;
src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java
@@ -5,12 +5,10 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ycl.jxkg.domain.entity.User;
import com.ycl.jxkg.domain.query.ClassesUserQuery;
import com.ycl.jxkg.domain.vo.ClassesUserVO;
import com.ycl.jxkg.domain.vo.*;
import com.ycl.jxkg.domain.form.ClassesUserForm;
import java.util.List;
import com.ycl.jxkg.domain.vo.StudentExamInfoVO;
import com.ycl.jxkg.domain.vo.StudentVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -51,6 +49,8 @@
     */
    List<Integer> getClassesByUserId(@Param("userId") Integer userId);
    List<ClassesVO> getClassesByUserId1(@Param("userId") Integer userId);
    /**
     * 根据学生获取班级名称
     *
src/main/java/com/ycl/jxkg/service/MeetService.java
@@ -75,4 +75,11 @@
     * @return
     */
    Result getStudentList(Integer meetId, String keyword);
    /**
     * 获取学生所在的班级
     *
     * @return
     */
    Result getStudentClasses();
}
src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java
@@ -182,14 +182,9 @@
    @Override
    public Result myClassList() {
        Integer userId = webContext.getCurrentUser().getId();
        List<ClassesUser> classes = new LambdaQueryChainWrapper<>(classesUserService.getBaseMapper())
                .eq(ClassesUser::getTeacher, Boolean.TRUE)
                .eq(ClassesUser::getUserId, userId)
                .list();
        List<Integer> classesIds = classes.stream().map(ClassesUser::getClassesId).collect(Collectors.toList());
        List<Classes> list = new LambdaQueryChainWrapper<>(baseMapper)
                .select(Classes::getId, Classes::getClassName)
                .in(Classes::getId, classesIds)
                .eq(Classes::getCreateUser, userId)
                .list();
        return Result.ok(list);
    }
src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java
@@ -13,6 +13,7 @@
import com.ycl.jxkg.domain.entity.StudyRecord;
import com.ycl.jxkg.domain.form.MeetForm;
import com.ycl.jxkg.domain.query.MeetQuery;
import com.ycl.jxkg.domain.vo.ClassesVO;
import com.ycl.jxkg.domain.vo.MeetVO;
import com.ycl.jxkg.domain.vo.StudentSimpleVO;
import com.ycl.jxkg.enums.MeetStatusEnum;
@@ -136,15 +137,21 @@
    @Override
    public Result studentPage(MeetQuery query) {
        Integer userId = webContext.getCurrentUser().getId();
        //查出学生所在班级
        List<Integer> classes = classesUserMapper.getClassesByUserId(userId);
        if(CollectionUtils.isEmpty(classes)){
            return Result.ok("您暂未加入班级");
        if (CollectionUtils.isEmpty(query.getClassesIds())) {
            //查出学生所在班级
            List<Integer> classes = classesUserMapper.getClassesByUserId(userId);
            if(CollectionUtils.isEmpty(classes)){
                return Result.fail(500, "您暂未加入班级");
            }
            query.setClassesIds(classes);
        }
        query.setClassesIds(classes);
        IPage<MeetVO> page = PageUtil.getPage(query, MeetVO.class);
        baseMapper.getPage(page, query);
        for (MeetVO vo : page.getRecords()) {
            if (!CollectionUtils.isEmpty(vo.getTeacherNames())) {
                vo.setTeacherNamesStr(vo.getTeacherNames().stream().collect(Collectors.joining("、")));
            }
        }
        return Result.ok().data(page.getRecords()).total(page.getTotal());
    }
@@ -229,6 +236,13 @@
        return Result.ok().data(studentList);
    }
    @Override
    public Result getStudentClasses() {
        Integer userId = webContext.getCurrentUser().getId();
        List<ClassesVO> classes = classesUserMapper.getClassesByUserId1(userId);
        return Result.ok().data(classes);
    }
    /**
     * 发送mq消息
     *
src/main/resources/mapper/ClassesUserMapper.xml
@@ -77,7 +77,13 @@
    <select id="getClassesByUserId" resultType="java.lang.Integer">
        select classes_id
        from t_classes_user
        where user_id = #{userId} and deleted = 0
        where user_id = #{userId} and deleted = 0 and teacher = 0
    </select>
    <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
    </select>
    <select id="getClassesNameByUserId" resultType="java.lang.String">
src/main/resources/mapper/MeetMapper.xml
@@ -13,6 +13,19 @@
        <result column="status" property="status" />
    </resultMap>
    <resultMap id="PageMap" type="com.ycl.jxkg.domain.vo.MeetVO">
        <result column="meet_name" property="meetName" />
        <result column="meet_cover" property="meetCover" />
        <result column="classes_id" property="classesId" />
        <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>
    </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>
    <select id="getById" resultMap="BaseResultMap">
        SELECT
@@ -31,19 +44,18 @@
    </select>
    <select id="getPage" resultType="com.ycl.jxkg.domain.vo.MeetVO">
    <select id="getPage" resultMap="PageMap">
        SELECT
            TM.meet_name,
            TM.meet_cover,
            TM.classes_id,
            TM.create_user,
            TU.user_name as teacherName,
            TM.start_time,
            TM.end_time,
            TM.status,
            TM.id
        FROM
            t_meet TM left join t_user TU on TM.create_user = TU.id
            t_meet TM
        <where>
            TM.deleted = 0
            <if test="query.classesIds !=null">