fuliqi
2024-06-19 d0ba0324430a0010ecf47e5cc0e4df609d586cfd
会议学生端查询
11个文件已修改
101 ■■■■ 已修改文件
src/main/java/com/ycl/jxkg/controller/admin/MeetController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/controller/student/MeetController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/entity/Meet.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/form/MeetForm.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/query/MeetQuery.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/vo/MeetVO.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/service/MeetService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ClassesUserMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/MeetMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/controller/admin/MeetController.java
@@ -72,4 +72,5 @@
    public Result list() {
        return meetService.all();
    }
}
src/main/java/com/ycl/jxkg/controller/student/MeetController.java
@@ -33,7 +33,7 @@
    @GetMapping("/page")
    @ApiOperation(value = "分页", notes = "分页")
    public Result page(MeetQuery query) {
        return meetService.page(query);
        return meetService.studentPage(query);
    }
    @GetMapping("/{id}")
src/main/java/com/ycl/jxkg/domain/entity/Meet.java
@@ -27,9 +27,9 @@
    /** 会议封面 */
    private String meetCover;
    @TableField("student_ids")
    @TableField("classed_id")
    /** 学生id */
    private String studentIds;
    private Integer classesId;
    @TableField("create_user")
    /** 创建人 */
src/main/java/com/ycl/jxkg/domain/form/MeetForm.java
@@ -1,11 +1,13 @@
package com.ycl.jxkg.domain.form;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ycl.jxkg.group.Update;
import com.ycl.jxkg.group.Add;
import com.ycl.jxkg.domain.base.AbsForm;
import com.ycl.jxkg.domain.entity.Meet;
import org.springframework.beans.BeanUtils;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import org.springframework.lang.NonNull;
import io.swagger.annotations.ApiModel;
@@ -29,24 +31,24 @@
    @ApiModelProperty("会议名")
    private String meetName;
    @NotBlank(message = "会议封面不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("会议封面")
    private String meetCover;
    @NotBlank(message = "学生id不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("学生id")
    private List<Integer> studentIds;
    @NotNull(message = "班级id不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("班级id")
    private Integer classesId;
    @NotNull(message = "创建人不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("创建人")
    private Integer createUser;
    @NotNull(message = "开始时间不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    @NotNull(message = "结束时间不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;
    @NotNull(message = "状态 0/1/2 未开始/进行中/已结束不能为空", groups = {Add.class, Update.class})
src/main/java/com/ycl/jxkg/domain/query/MeetQuery.java
@@ -18,5 +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
@@ -1,5 +1,6 @@
package com.ycl.jxkg.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ycl.jxkg.domain.base.AbsVo;
import com.ycl.jxkg.domain.entity.Meet;
@@ -27,15 +28,17 @@
    private String meetCover;
    /** 学生id */
    private List<Integer> studentIds;
    private Integer classesId;
    /** 创建人 */
    private Integer createUser;
    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;
    /** 状态 0/1/2 未开始/进行中/已结束 */
src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java
@@ -41,4 +41,12 @@
     * @return
     */
    List<StudentExamInfoVO> getClassesUserList(@Param("classesId") Integer classesId);
    /**
     * 根据学生获取班级
     *
     * @param userId
     * @return
     */
    List<Integer> getClassesByUserId(@Param("userId") Integer userId);
}
src/main/java/com/ycl/jxkg/service/MeetService.java
@@ -62,4 +62,6 @@
     * @return
     */
    Result all();
    Result studentPage(MeetQuery query);
}
src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ycl.jxkg.context.WebContext;
import com.ycl.jxkg.domain.entity.Meet;
import com.ycl.jxkg.mapper.ClassesUserMapper;
import com.ycl.jxkg.mapper.MeetMapper;
import com.ycl.jxkg.service.MeetService;
import com.ycl.jxkg.base.Result;
@@ -12,11 +13,14 @@
import com.ycl.jxkg.domain.vo.MeetVO;
import com.ycl.jxkg.domain.query.MeetQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.User;
import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor;
import com.ycl.jxkg.utils.PageUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
@@ -35,7 +39,9 @@
    private final MeetMapper meetMapper;
    @Autowired
    protected WebContext webContext;
    private WebContext webContext;
    @Autowired
    private ClassesUserMapper classesUserMapper;
    /**
     * 添加
     * @param form
@@ -44,7 +50,6 @@
    @Override
    public Result add(MeetForm form) {
        Meet entity = MeetForm.getEntityByForm(form, null);
        entity.setStudentIds(JSONArray.toJSONString(form.getStudentIds()));
        entity.setCreateUser(webContext.getCurrentUser().getId());
        baseMapper.insert(entity);
        return Result.ok("添加成功");
@@ -62,7 +67,6 @@
        // 为空抛IllegalArgumentException,做全局异常处理
        Assert.notNull(entity, "记录不存在");
        BeanUtils.copyProperties(form, entity);
        entity.setStudentIds(JSONArray.toJSONString(form.getStudentIds()));
        baseMapper.updateById(entity);
        return Result.ok("修改成功");
    }
@@ -90,13 +94,14 @@
    }
    /**
     * 分页查询
     * 教师分页查询
     * @param query
     * @return
     */
    @Override
    public Result page(MeetQuery query) {
        Integer id = webContext.getCurrentUser().getId();
        query.setTeacherId(id);
        IPage<Meet> page = PageUtil.getPage(query, Meet.class);
        baseMapper.getPage(page, query);
        List<Meet> records = page.getRecords();
@@ -104,7 +109,32 @@
        for (Meet record : records) {
            MeetVO meetVO = new MeetVO();
            BeanUtils.copyProperties(record,meetVO);
            meetVO.setStudentIds(JSONArray.parseArray(record.getStudentIds(),Integer.class));
            vos.add(meetVO);
        }
        return Result.ok().data(vos).total(page.getTotal());
    }
    /**
     * 学生分页查询
     * @param query
     * @return
     */
    @Override
    public Result studentPage(MeetQuery query) {
        Integer userId = webContext.getCurrentUser().getId();
        //查出学生所在班级
        List<Integer> classes = classesUserMapper.getClassesByUserId(userId);
        if(CollectionUtils.isEmpty(classes)){
            return Result.ok("您暂未加入班级");
        }
        query.setClassesIds(classes);
        IPage<Meet> page = PageUtil.getPage(query, Meet.class);
        baseMapper.getPage(page, query);
        List<Meet> records = page.getRecords();
        List<MeetVO> vos = new ArrayList<>();
        for (Meet record : records) {
            MeetVO meetVO = new MeetVO();
            BeanUtils.copyProperties(record,meetVO);
            vos.add(meetVO);
        }
        return Result.ok().data(vos).total(page.getTotal());
src/main/resources/mapper/ClassesUserMapper.xml
@@ -70,4 +70,9 @@
            TCU.deleted = 0
    </select>
    <select id="getClassesByUserId" resultType="java.lang.Integer">
        select classes_id
        from t_classes_user
        where user_id = #{userId} and deleted = 0
    </select>
</mapper>
src/main/resources/mapper/MeetMapper.xml
@@ -6,7 +6,7 @@
    <resultMap id="BaseResultMap" type="com.ycl.jxkg.domain.entity.Meet">
        <result column="meet_name" property="meetName" />
        <result column="meet_cover" property="meetCover" />
        <result column="student_ids" property="studentIds" />
        <result column="classes_id" property="classesId" />
        <result column="create_user" property="createUser" />
        <result column="start_time" property="startTime" />
        <result column="end_time" property="endTime" />
@@ -18,7 +18,7 @@
        SELECT
            TM.meet_name,
            TM.meet_cover,
            TM.student_ids,
            TM.classes_id,
            TM.create_user,
            TM.start_time,
            TM.end_time,
@@ -35,7 +35,7 @@
        SELECT
            TM.meet_name,
            TM.meet_cover,
            TM.student_ids,
            TM.classes_id,
            TM.create_user,
            TM.start_time,
            TM.end_time,
@@ -44,9 +44,15 @@
        FROM
            t_meet TM
        <where>
            TM.deleted = 0
            <if test="studentId!=null">
                and
            TM.deleted = 0 and TC.deleted = 0
            <if test="query.classesIds !=null">
                and classes_id in
                <foreach collection="query.classesIds" item="classesId" open="(" close=")" separator=",">
                    #{classesId}
                </foreach>
            </if>
            <if test="query.teacherId!=null">
                and create_user = #{query.teacherId}
            </if>
        </where>
    </select>