From e3fc8c41f194818e9881f25944180a492500ee3a Mon Sep 17 00:00:00 2001
From: baizonghao <1719256278@qq.com>
Date: 星期五, 16 六月 2023 15:33:56 +0800
Subject: [PATCH] 视频教学

---
 src/main/java/com/mindskip/xzs/domain/vo/VideoStudentVO.java         |   40 ++++++
 src/main/java/com/mindskip/xzs/service/impl/VideoServiceImpl.java    |   59 +++++++++
 src/main/java/com/mindskip/xzs/domain/vo/VideoStudentDto.java        |   40 ++++++
 src/main/resources/mapper/VideoMapper.xml                            |   35 +++++
 src/main/java/com/mindskip/xzs/controller/admin/VideoController.java |   36 ++++++
 src/main/java/com/mindskip/xzs/repository/VideoMapper.java           |   16 ++
 src/main/java/com/mindskip/xzs/domain/VideoStudent.java              |   74 ++++++++++++
 src/main/java/com/mindskip/xzs/service/IVideoService.java            |   13 ++
 8 files changed, 313 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/mindskip/xzs/controller/admin/VideoController.java b/src/main/java/com/mindskip/xzs/controller/admin/VideoController.java
new file mode 100644
index 0000000..41aa599
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/controller/admin/VideoController.java
@@ -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);
+    }
+}
diff --git a/src/main/java/com/mindskip/xzs/domain/VideoStudent.java b/src/main/java/com/mindskip/xzs/domain/VideoStudent.java
new file mode 100644
index 0000000..31fba38
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/domain/VideoStudent.java
@@ -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 +
+                '}';
+    }
+}
diff --git a/src/main/java/com/mindskip/xzs/domain/vo/VideoStudentDto.java b/src/main/java/com/mindskip/xzs/domain/vo/VideoStudentDto.java
new file mode 100644
index 0000000..b8be5d3
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/domain/vo/VideoStudentDto.java
@@ -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 +
+                '}';
+    }
+}
diff --git a/src/main/java/com/mindskip/xzs/domain/vo/VideoStudentVO.java b/src/main/java/com/mindskip/xzs/domain/vo/VideoStudentVO.java
new file mode 100644
index 0000000..dacbe01
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/domain/vo/VideoStudentVO.java
@@ -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 + '\'' +
+                '}';
+    }
+}
diff --git a/src/main/java/com/mindskip/xzs/repository/VideoMapper.java b/src/main/java/com/mindskip/xzs/repository/VideoMapper.java
new file mode 100644
index 0000000..c5fcc75
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/repository/VideoMapper.java
@@ -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);
+}
diff --git a/src/main/java/com/mindskip/xzs/service/IVideoService.java b/src/main/java/com/mindskip/xzs/service/IVideoService.java
new file mode 100644
index 0000000..7eaec6a
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/service/IVideoService.java
@@ -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);
+}
diff --git a/src/main/java/com/mindskip/xzs/service/impl/VideoServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/VideoServiceImpl.java
new file mode 100644
index 0000000..c5f20c3
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/service/impl/VideoServiceImpl.java
@@ -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;
+    }
+}
diff --git a/src/main/resources/mapper/VideoMapper.xml b/src/main/resources/mapper/VideoMapper.xml
new file mode 100644
index 0000000..99be44e
--- /dev/null
+++ b/src/main/resources/mapper/VideoMapper.xml
@@ -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>

--
Gitblit v1.8.0