写基于ssm框架选秀管理系统的选手功能模块(包括选手上传视频,提交退赛申请表,查看个人主页) 具体代码包括jsp
时间: 2024-03-31 21:35:34 浏览: 14
好的,下面是基于ssm框架的选手功能模块的代码:
## 1. 选手上传视频
### a. Controller层
```java
@Controller
@RequestMapping("/player")
public class PlayerController {
@Autowired
private PlayerService playerService;
@RequestMapping("/uploadVideo")
public String uploadVideo(@RequestParam("video") MultipartFile file, HttpServletRequest request) {
// 获取选手id
Integer playerId = (Integer) request.getSession().getAttribute("playerId");
// 上传视频
playerService.uploadVideo(playerId, file);
return "redirect:/player/home";
}
}
```
### b. Service层
```java
@Service
public class PlayerServiceImpl implements PlayerService {
@Autowired
private PlayerMapper playerMapper;
@Override
public void uploadVideo(Integer playerId, MultipartFile file) {
// 获取上传视频的文件名
String fileName = file.getOriginalFilename();
// 上传视频到指定目录
String filePath = "/upload/" + playerId + "/";
File dest = new File(filePath + fileName);
try {
file.transferTo(dest);
} catch (IOException e) {
e.printStackTrace();
}
// 更新选手信息
Player player = new Player();
player.setId(playerId);
player.setVideoUrl(filePath + fileName);
playerMapper.updateByPrimaryKeySelective(player);
}
}
```
## 2. 提交退赛申请表
### a. Controller层
```java
@Controller
@RequestMapping("/player")
public class PlayerController {
@Autowired
private PlayerService playerService;
@RequestMapping("/applyWithdrawal")
public String applyWithdrawal(HttpServletRequest request) {
// 获取选手id
Integer playerId = (Integer) request.getSession().getAttribute("playerId");
// 提交退赛申请表
playerService.applyWithdrawal(playerId);
return "redirect:/player/home";
}
}
```
### b. Service层
```java
@Service
public class PlayerServiceImpl implements PlayerService {
@Autowired
private PlayerMapper playerMapper;
@Override
public void applyWithdrawal(Integer playerId) {
// 更新选手状态为已申请退赛
Player player = new Player();
player.setId(playerId);
player.setStatus(2);
playerMapper.updateByPrimaryKeySelective(player);
}
}
```
## 3. 查看个人主页
### a. Controller层
```java
@Controller
@RequestMapping("/player")
public class PlayerController {
@Autowired
private PlayerService playerService;
@RequestMapping("/home")
public String home(Model model, HttpServletRequest request) {
// 获取选手id
Integer playerId = (Integer) request.getSession().getAttribute("playerId");
// 获取选手信息
Player player = playerService.getPlayerById(playerId);
model.addAttribute("player", player);
return "player/home";
}
}
```
### b. Service层
```java
@Service
public class PlayerServiceImpl implements PlayerService {
@Autowired
private PlayerMapper playerMapper;
@Override
public Player getPlayerById(Integer playerId) {
return playerMapper.selectByPrimaryKey(playerId);
}
}
```
### c. JSP页面
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>选手个人主页</title>
</head>
<body>
<h1>${player.name}的个人主页</h1>
<h2>个人信息</h2>
<ul>
<li>姓名:${player.name}</li>
<li>性别:<fmt:choose><fmt:when test="${player.gender == 0}">男</fmt:when><fmt:otherwise>女</fmt:otherwise></fmt:choose></li>
<li>年龄:${player.age}</li>
<li>联系方式:${player.phone}</li>
<li>邮箱:${player.email}</li>
</ul>
<h2>比赛信息</h2>
<ul>
<li>参赛作品:${player.work}</li>
<li>作品简介:${player.intro}</li>
<li>比赛状态:<fmt:choose><fmt:when test="${player.status == 0}">未审核</fmt:when><fmt:when test="${player.status == 1}">已通过</fmt:when><fmt:otherwise>已申请退赛</fmt:otherwise></fmt:choose></li>
<c:if test="${player.status == 1}">
<li>投票数:${player.voteCount}</li>
<li>排名:${player.rank}</li>
<li>视频地址:<a href="${player.videoUrl}" target="_blank">${player.videoUrl}</a></li>
</c:if>
</ul>
<c:if test="${player.status == 0}">
<a href="/player/applyWithdrawal">申请退赛</a>
</c:if>
<c:if test="${player.status == 1}">
<form action="/player/uploadVideo" method="post" enctype="multipart/form-data">
<input type="file" name="video">
<input type="submit" value="上传视频">
</form>
</c:if>
</body>
</html>
```
以上就是基于ssm框架的选手功能模块的代码,包括选手上传视频,提交退赛申请表,查看个人主页。