Commit 9ef185fb by 宋珺琪

添加视频功能

parent 61cc7003
package com.exam.controller;
import com.exam.entity.ApiResult;
import com.exam.entity.Replay;
import com.exam.entity.Video;
import com.exam.service.VideoService;
import com.exam.util.ApiResultHandler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.xml.crypto.Data;
import java.util.Date;
import java.util.List;
@RestController
public class VideoController {
@Autowired
private VideoService videoService;
/**
* 上传视频
* @param videoFile
* @param videoName
* @return
*/
@PostMapping("/uploadVideo")
public ApiResult handleVideoUpload(MultipartFile videoFile, String videoName , Date uploadTime) {
int res = videoService.add(videoFile, videoName,uploadTime);
if (res == 0) {
return ApiResultHandler.buildApiResult(400, "视频添加失败", res);
} else {
return ApiResultHandler.buildApiResult(200, "图片添加成功", res);
}
}
/**
* 查询视频
* @return
*/
@PostMapping("/selectVideo")
public ApiResult handleVideoSelect() {
List<Video> res = videoService.findAll();
return ApiResultHandler.buildApiResult(200, "视频列表", res);
}
/**
* 根据名称或者时间查询
* @param name
* @param startTime
* @param endTime
* @return
*/
@PostMapping("/selectVideoByNameOrTime")
public ApiResult selectVideoByNameOrTime(@RequestParam(required = false) String name,
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
List<Video> res = videoService.selectVideoByNameOrTime(name ,startTime,endTime);
return ApiResultHandler.buildApiResult(200, "根据时间查询", res);
}
/**
*编辑视频
* @return
*/
@PostMapping("/compileVideo")
public ApiResult compileVideo(String id, String name) {
int res = videoService.compileVideo(id,name);
return ApiResultHandler.buildApiResult(200, "编辑成功", res);
}
/**
*删除视频
* @return
*/
@PostMapping("/deleteVideo")
public ApiResult deleteVideo(String id) {
int res = videoService.deleteVideo(id);
return ApiResultHandler.buildApiResult(200, "删除成功", res);
}
}
package com.exam.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
import java.util.UUID;
@Data
public class Video {
private String videoId;
private String videoName;
private String video;
@JsonFormat(pattern = "yyyy-MM-dd", timezone="GMT+8")
private Date uploadTime;
public Video() {
this.videoId = UUID.randomUUID().toString();
}
}
\ No newline at end of file
package com.exam.mapper;
import com.exam.entity.Admin;
import com.exam.entity.Video;
import org.apache.ibatis.annotations.*;
import java.util.Date;
import java.util.List;
@Mapper
public interface VideoMapper {
@Options(useGeneratedKeys = true, keyProperty = "videoId")
@Insert("insert into video(videoId,videoName,video,uploadTime) " +
"values(#{videoId},#{videoName},#{video},#{uploadTime})")
public int add(Video video);
@Select("select * from video")
List<Video> findAll();
@Update("update video set videoName = #{name} where videoId = #{id}")
public int compileVideo(String id, String name);
@Delete("delete from video where videoId = #{id}")
public int deleteVideo(String id);
@Select(
"<script> SELECT * FROM video WHERE 1=1" +
"<if test='name != \"null\" and name != &quot;&quot;'>" +
"AND videoName LIKE CONCAT('%', #{name}, '%')" +
"</if>" +
"<if test='startDate != \"null\" and endDate != \"null\"'>" +
"AND date_format(uploadTime,'%Y-%m-%d') BETWEEN date_format(#{startDate},'%Y-%m-%d') AND date_format(#{endDate},'%Y-%m-%d')" +
"</if>" +
"<if test='startDate != \"null\" and endDate == \"null\"'>" +
"AND date_format(uploadTime,'%Y-%m-%d') >= date_format(#{startDate},'%Y-%m-%d')" +
"</if>" +
"<if test='endDate != \"null\" and startDate == \"null\"'>" +
"AND date_format(uploadTime,'%Y-%m-%d') >= date_format(#{endDate},'%Y-%m-%d')" +
"</if>" +
"</script>"
)
List<Video> selectVideoByNameOrTime(String name, String startDate, String endDate);
}
package com.exam.service;
import com.exam.entity.Video;
import org.springframework.web.multipart.MultipartFile;
import java.util.Date;
import java.util.List;
public interface VideoService {
int add(MultipartFile videoFile, String videoName , Date uploadTime);
List<Video> findAll();
int compileVideo(String id ,String name);
int deleteVideo(String id);
List<Video> selectVideoByNameOrTime(String name, Date startTime, Date endTime);
}
package com.exam.serviceimpl;
import com.exam.entity.PaperPhoto;
import com.exam.entity.Video;
import com.exam.mapper.VideoMapper;
import com.exam.service.VideoService;
import com.exam.util.Base64Util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Service
public class VideoServiceImpl implements VideoService {
@Autowired
private VideoMapper videoMapper;
@Override
public int add(MultipartFile videoFile, String videoName, Date uploadTime) {
int i = 0;
if (videoFile != null) {
String base64 = "";
try {
base64 = "data:video/mp4;base64," + Base64Util.getBase64(videoFile);
Video video = new Video();
video.setVideo(base64);
video.setVideoName(videoName);
video.setUploadTime(uploadTime);
i = videoMapper.add(video);
} catch (IOException e) {
e.printStackTrace();
return 0;
}
}
return i;
}
@Override
public List<Video> findAll() {
return videoMapper.findAll();
}
@Override
public int compileVideo(String id, String name) {
return videoMapper.compileVideo(id, name);
}
@Override
public int deleteVideo(String id) {
return videoMapper.deleteVideo(id);
}
@Override
public List<Video> selectVideoByNameOrTime(String name, Date startTime, Date endTime) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置日期格式
if (startTime != null && endTime != null) {
return videoMapper.selectVideoByNameOrTime(name, sdf.format(startTime), sdf.format(endTime));
} else if (startTime != null) {
return videoMapper.selectVideoByNameOrTime(name, sdf.format(startTime), "null");
} else if (endTime != null) {
return videoMapper.selectVideoByNameOrTime(name, "null", sdf.format(endTime));
} else {
return videoMapper.selectVideoByNameOrTime(name, "null", "null");
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment