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