package com.zqgame.web.site.controller;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.zqgame.web.base.controller.BaseWebController;
import com.zqgame.web.base.util.FileTool;
import com.zqgame.web.site.model.Video;
import com.zqgame.web.site.service.VideoService;
@Controller
@RequestMapping("/admin/")
public class VideoController extends BaseWebController {
@Autowired
private VideoService videoService;
protected final static String MODULE = "video";
protected final static String VIEWS_PACKAGE = "admin/extra/matchff/video/";
protected final static String REDIRECT_BASE = REQUEST_REDIRECT + "/admin/video/";
protected final static String FORM = "form"; //form
/**
* 导航到视频的首页
*
* @param model
* @param request
* @return
*/
@RequestMapping(value = MODULE + "/{id}/page", method = RequestMethod.GET)
public String index(Model model, HttpServletRequest request, @PathVariable Integer id, Video video) {
String status = request.getParameter("status");
video.setVideoType(id);
Integer st = 1;
if(status != null && !"".equals(status.trim())) {
st = Integer.parseInt(status.trim());
}
List<Video> videos = videoService.getVideoListByPage(st, id);
model.addAttribute("videos", videos);
model.addAttribute("status", st);
model.addAttribute("video", video);
return VIEWS_PACKAGE + VIEW_INDEX;
}
/**
* 导航添加视频
*
* @param model
* @param request
* @return
*/
@RequestMapping(value = MODULE + "/new")
public String newVideo(Model model, HttpServletRequest request) {
return VIEWS_PACKAGE + FORM;
}
/**
* 添加视频
*/
@RequestMapping(value = MODULE + "/create", method = RequestMethod.POST)
public String create(@Valid Video video, BindingResult errors, HttpServletRequest request, Model model) {
// 执行新增
video.setSubmitTime(new Date());
videoService.save(video);
// 记录日志到数据库
operationLogService.insert(request, "添加视频");
if (errors.hasErrors()) {
model.addAttribute("video", video);
model.addAttribute("bindErrors", errors);
return VIEWS_PACKAGE + FORM;
}
return REDIRECT_BASE + video.getVideoType() + "/page";
}
/**
* 导航到修改视频
* */
@RequestMapping(value = MODULE + "/{id}/edit")
public String edit(@PathVariable Integer id, Model model, HttpServletRequest request) {
Video video = videoService.get(id);
if (video == null) {
return REDIRECT_BASE + "/page";
}
model.addAttribute("video", video);
return VIEWS_PACKAGE + FORM;
}
/**
* 修改视频
*/
@RequestMapping(value = MODULE + "/update/{id}", method = RequestMethod.POST)
public String update(@PathVariable Integer id ,@Valid Video video, BindingResult errors, HttpServletRequest request, Model model) {
// 注解校验
if (errors.hasErrors()) {
model.addAttribute("video", video);
model.addAttribute("bindErrors", errors);
return VIEWS_PACKAGE + FORM;
}
// 执行修改
video.setVideoId(id);
videoService.update(video);
// 记录日志到数据库
operationLogService.insert(request, "修改视频");
return REDIRECT_BASE + video.getVideoType() + "/page";
}
/**
* 删除视频
*
* @param id
* @param request
* @param response
*/
@ResponseBody
@RequestMapping(value = MODULE + "/{id}", method = RequestMethod.DELETE, produces = "application/json")
public void delete(@PathVariable Integer id, HttpServletRequest request, HttpServletResponse response) throws Exception {
try {
response.setContentType("text/plain; charset=utf-8");
Video video = videoService.get(id);
if (null != video) {
// 删除数据库记录
videoService.delete(video.getVideoId());
// 删除图片
FileTool.deleteFileExcludeDir(request, video.getVideoPicture());
} else {
response.setStatus(HttpStatus.UNPROCESSABLE_ENTITY.value());
}
} catch (Exception e) {
Logger.getLogger(Video.class.getName()).log(Level.SEVERE, null, e);
}
/* 记录日志到数据库 */
operationLogService.insert(request, "删除视频");
}
}
05-11
1750
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-05
08-05
08-05