baizonghao
2023-06-16 e3fc8c41f194818e9881f25944180a492500ee3a
视频教学
8个文件已添加
313 ■■■■■ 已修改文件
src/main/java/com/mindskip/xzs/controller/admin/VideoController.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/VideoStudent.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/vo/VideoStudentDto.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/vo/VideoStudentVO.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/repository/VideoMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/IVideoService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/VideoServiceImpl.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/VideoMapper.xml 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/controller/admin/VideoController.java
New file
@@ -0,0 +1,36 @@
package com.mindskip.xzs.controller.admin;
import com.mindskip.xzs.base.RestResponse;
import com.mindskip.xzs.domain.vo.VideoStudentDto;
import com.mindskip.xzs.domain.vo.VideoStudentVO;
import com.mindskip.xzs.service.IVideoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.xml.ws.Response;
@RestController("VideoController")
@RequestMapping(value = "/api/admin/video")
public class VideoController {
    @Autowired
    private IVideoService videoService;
    @GetMapping("/clear")
    public RestResponse clear(){
        videoService.clear();
        return RestResponse.ok();
    }
    @PostMapping("/add")
    public RestResponse add(@RequestBody VideoStudentDto videoStudentDto){
        videoService.save(videoStudentDto);
        return RestResponse.ok();
    }
    @GetMapping("/showButton/{id}")
    public RestResponse showButton(@PathVariable Integer id){
        VideoStudentVO videoStudentVO = videoService.showButton(id);
        return RestResponse.ok(videoStudentVO);
    }
}
src/main/java/com/mindskip/xzs/domain/VideoStudent.java
New file
@@ -0,0 +1,74 @@
package com.mindskip.xzs.domain;
import java.io.Serializable;
import java.util.Date;
public class VideoStudent implements Serializable {
    private Integer id;
    private String roomName;
    private Integer stuId;
    private Date start;
    private Date end;
    public VideoStudent() {
    }
    public VideoStudent(Integer id, String roomName, Integer stuId, Date start, Date end) {
        this.id = id;
        this.roomName = roomName;
        this.stuId = stuId;
        this.start = start;
        this.end = end;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getRoomName() {
        return roomName;
    }
    public void setRoomName(String roomName) {
        this.roomName = roomName;
    }
    public Integer getStuId() {
        return stuId;
    }
    public void setStuId(Integer stuId) {
        this.stuId = stuId;
    }
    public Date getStart() {
        return start;
    }
    public void setStart(Date start) {
        this.start = start;
    }
    public Date getEnd() {
        return end;
    }
    public void setEnd(Date end) {
        this.end = end;
    }
    @Override
    public String toString() {
        return "VideoStudent{" +
                "id=" + id +
                ", roomName='" + roomName + '\'' +
                ", stuId=" + stuId +
                ", start=" + start +
                ", end=" + end +
                '}';
    }
}
src/main/java/com/mindskip/xzs/domain/vo/VideoStudentDto.java
New file
@@ -0,0 +1,40 @@
package com.mindskip.xzs.domain.vo;
import java.util.List;
public class VideoStudentDto {
    private String roomName;
    private List<Integer> stuIds;
    public VideoStudentDto() {
    }
    public VideoStudentDto(String roomName, List<Integer> stuIds) {
        this.roomName = roomName;
        this.stuIds = stuIds;
    }
    public String getRoomName() {
        return roomName;
    }
    public void setRoomName(String roomName) {
        this.roomName = roomName;
    }
    public List<Integer> getStuIds() {
        return stuIds;
    }
    public void setStuIds(List<Integer> stuIds) {
        this.stuIds = stuIds;
    }
    @Override
    public String toString() {
        return "VideoStudentDto{" +
                "roomName='" + roomName + '\'' +
                ", stuIds=" + stuIds +
                '}';
    }
}
src/main/java/com/mindskip/xzs/domain/vo/VideoStudentVO.java
New file
@@ -0,0 +1,40 @@
package com.mindskip.xzs.domain.vo;
import com.sun.org.apache.xpath.internal.operations.Bool;
public class VideoStudentVO {
    private Boolean flag;
    private String roomName;
    public VideoStudentVO() {
    }
    public VideoStudentVO(Boolean flag, String roomName) {
        this.flag = flag;
        this.roomName = roomName;
    }
    public Boolean getFlag() {
        return flag;
    }
    public void setFlag(Boolean flag) {
        this.flag = flag;
    }
    public String getRoomName() {
        return roomName;
    }
    public void setRoomName(String roomName) {
        this.roomName = roomName;
    }
    @Override
    public String toString() {
        return "VideoStudentVO{" +
                "flag=" + flag +
                ", roomName='" + roomName + '\'' +
                '}';
    }
}
src/main/java/com/mindskip/xzs/repository/VideoMapper.java
New file
@@ -0,0 +1,16 @@
package com.mindskip.xzs.repository;
import com.mindskip.xzs.domain.VideoStudent;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface VideoMapper {
    List<VideoStudent> getAll();
    void clear();
    Integer insert (VideoStudent record);
}
src/main/java/com/mindskip/xzs/service/IVideoService.java
New file
@@ -0,0 +1,13 @@
package com.mindskip.xzs.service;
import com.mindskip.xzs.domain.vo.VideoStudentDto;
import com.mindskip.xzs.domain.vo.VideoStudentVO;
public interface IVideoService{
    void save(VideoStudentDto videoStudentDto);
    void clear();
    VideoStudentVO showButton(Integer id);
}
src/main/java/com/mindskip/xzs/service/impl/VideoServiceImpl.java
New file
@@ -0,0 +1,59 @@
package com.mindskip.xzs.service.impl;
import com.mindskip.xzs.domain.VideoStudent;
import com.mindskip.xzs.domain.vo.VideoStudentDto;
import com.mindskip.xzs.domain.vo.VideoStudentVO;
import com.mindskip.xzs.repository.VideoMapper;
import com.mindskip.xzs.service.IVideoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
@Service
public class VideoServiceImpl implements IVideoService {
    @Autowired
    private VideoMapper videoMapper;
    @Override
    public void save(VideoStudentDto videoStudentVO) {
        List<Integer> stuIds = videoStudentVO.getStuIds();
        for (Integer stuId : stuIds) {
            VideoStudent record = new VideoStudent();
            Calendar calendar = Calendar.getInstance();
            Date start = calendar.getTime();
            calendar.add(Calendar.MINUTE, 10); // 加上十分钟
            Date end = calendar.getTime();
            record.setRoomName(videoStudentVO.getRoomName());
            record.setStart(start);
            record.setEnd(end);
            record.setStuId(stuId);
            videoMapper.insert(record);
        }
    }
    @Override
    public void clear() {
        videoMapper.clear();
    }
    @Override
    public VideoStudentVO showButton(Integer id) {
        List<VideoStudent> all = videoMapper.getAll();
        List<Integer> collect = all.stream().map(new Function<VideoStudent, Integer>() {
            @Override
            public Integer apply(VideoStudent videoStudent) {
                return videoStudent.getStuId();
            }
        }).collect(Collectors.toList());
        VideoStudentVO videoStudentVO = new VideoStudentVO();
        videoStudentVO.setFlag(collect.contains(id));
        videoStudentVO.setRoomName(all.get(0).getRoomName());
        return videoStudentVO;
    }
}
src/main/resources/mapper/VideoMapper.xml
New file
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mindskip.xzs.repository.VideoMapper">
    <resultMap id="BaseResultMap" type="com.mindskip.xzs.domain.VideoStudent">
        <id column="id" jdbcType="INTEGER" property="id" />
        <result column="room_name" jdbcType="VARCHAR" property="roomName" />
        <result column="stu_id" jdbcType="VARCHAR" property="stuId" />
        <result column="start" jdbcType="TIMESTAMP" property="start" />
        <result column="end" jdbcType="TIMESTAMP" property="end" />
    </resultMap>
    <sql id="Base_Column_List">
        id, room_name, stu_id, start, end
    </sql>
    <select id="getAll" resultType="com.mindskip.xzs.domain.VideoStudent">
        select
        <include refid="Base_Column_List" />
        from t_video_student
    </select>
    <delete id="clear">
        DELETE FROM t_video_student;
    </delete>
    <insert id="insert" parameterType="com.mindskip.xzs.domain.VideoStudent" useGeneratedKeys="true" keyProperty="id">
        insert into t_video_student (id, room_name, stu_id, start, end)
        values (#{id,jdbcType=INTEGER},
                #{roomName,jdbcType=VARCHAR},
                #{stuId,jdbcType=VARCHAR},
                #{start,jdbcType=TIMESTAMP},
                #{end,jdbcType=TIMESTAMP}
               )
    </insert>
</mapper>