1、项目介绍
基于ssm的演唱会订票管理系统,订票管理系统,网上演唱会票务系统,票务管理系统。
系统中的核心用户是系统管理员,管理员登录后,主要功能有管理员信息管理、网站用户管理、新闻公告信息管理、演唱会类型信息管理、演唱会信息管理、票务信息管理、订单信息管理。管理员用户用例图如图所示。
用户登录后,主要功能模块有首页、网站公告、推荐演唱会、全部演唱会。用户用例图如图所示。
2、技术架构
架构:B/S
后端框架:SSM(Spring+SpringMvc+Mybatis)
前端框框:Jsp
编程语言:Java
数据库:MySQL
运行环境:JDK8+MySQL5.x或者8.X+Tomcat8.5+Idea
3、演示视频
B站地址:
【毕业设计】基于ssm的演唱会订票管理系统,订票管理系统,网上演唱会票务系统,票务管理系统,附源码+文档+PPT,适合大实验,大作业,实训,课程设计,毕业设计
【毕业设计】基于ssm的演唱会订票管理系统,订票管理系统,网上演唱会票务系统,票务管理系统,附源码+文档+PPT,适合大实验,大作业,实训,课程设计,毕业设计_哔哩哔哩_bilibili
4、功能截图
4.1、首页
4.2、详情页
4.3、网站公告
4.4、公告内容
4.5、推荐演唱会
4.7、全部演唱会
4.8、演唱会搜索
4.9、购物车
4.10、付款
4.11、用户信息
4.12、管理员-登录
4.13、管理员-管理员信息管理
4.14、管理员-用户信息管理
4.15、管理员-公告信息管理
4.16、管理员-演唱会类型信息管理
4.17、管理员-演唱会信息管理
4.18、管理员-票务信息管理
4.19、管理员-订单信息管理
5、文档截图
6、代码示例
package com.action;
import java.io.File;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import com.util.VeDate;
@Controller
@RequestMapping("/upload")
public class UploadAction {
@RequestMapping(value = "/image.action")
public String upload(@RequestParam(value = "image", required = false) MultipartFile file,
HttpServletRequest request, ModelMap model) {
String path = request.getSession().getServletContext().getRealPath("/") + "upfiles/";
String fileName = file.getOriginalFilename();
int i = fileName.lastIndexOf(".");
String name = String.valueOf(VeDate.getStringDatex());
String type = fileName.substring(i + 1);
fileName = name + "." + type;
File targetFile = new File(path, fileName);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
// 保存
try {
file.transferTo(targetFile);
} catch (Exception e) {
e.printStackTrace();
}
model.addAttribute("imageFileName", fileName);
return "saveimage";
}
@RequestMapping(value = "/files.action")
public String files(@RequestParam(value = "image", required = false) MultipartFile file, HttpServletRequest request,
ModelMap model) {
String path = request.getSession().getServletContext().getRealPath("/") + "upfiles/";
String fileName = file.getOriginalFilename();
int i = fileName.lastIndexOf(".");
String name = String.valueOf(VeDate.getStringDatex());
String type = fileName.substring(i + 1);
fileName = name + "." + type;
File targetFile = new File(path, fileName);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
// 保存
try {
file.transferTo(targetFile);
} catch (Exception e) {
e.printStackTrace();
}
model.addAttribute("imageFileName", fileName);
return "savefile";
}
}
package com.action;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.entity.Orders;
import com.service.OrdersService;
import com.entity.Users;
import com.entity.Concert;
import com.entity.Ticket;
import com.service.UsersService;
import com.service.ConcertService;
import com.service.TicketService;
import com.util.PageHelper;
//定义为控制器
@Controller
// 设置路径
@RequestMapping(value = "/orders", produces = "text/plain;charset=utf-8")
public class OrdersAction extends BaseAction {
// 注入Service 由于标签的存在 所以不需要getter setter
@Autowired
@Resource
private OrdersService ordersService;
@Autowired
@Resource
private UsersService usersService;
@Autowired
@Resource
private ConcertService concertService;
@Autowired
@Resource
private TicketService ticketService;
// 准备添加数据
@RequestMapping("createOrders.action")
public String createOrders() {
List<Users> usersList = this.usersService.getAllUsers();
this.getRequest().setAttribute("usersList", usersList);
List<Concert> concertList = this.concertService.getAllConcert();
this.getRequest().setAttribute("concertList", concertList);
List<Ticket> ticketList = this.ticketService.getAllTicket();
this.getRequest().setAttribute("ticketList", ticketList);
return "admin/addorders";
}
// 添加数据
@RequestMapping("addOrders.action")
public String addOrders(Orders orders) {
this.ordersService.insertOrders(orders);
return "redirect:/orders/createOrders.action";
}
// 通过主键删除数据
@RequestMapping("deleteOrders.action")
public String deleteOrders(String id) {
this.ordersService.deleteOrders(id);
return "redirect:/orders/getAllOrders.action";
}
// 批量删除数据
@RequestMapping("deleteOrdersByIds.action")
public String deleteOrdersByIds() {
String[] ids = this.getRequest().getParameterValues("ordersid");
for (String ordersid : ids) {
this.ordersService.deleteOrders(ordersid);
}
return "redirect:/orders/getAllOrders.action";
}
// 更新数据
@RequestMapping("updateOrders.action")
public String updateOrders(Orders orders) {
this.ordersService.updateOrders(orders);
return "redirect:/orders/getAllOrders.action";
}
@RequestMapping("send.action")
public String send(String id) {
Orders orders = this.ordersService.getOrdersById(id);
orders.setStatus("已出票");
this.ordersService.updateOrders(orders);
return "redirect:/orders/getAllOrders.action";
}
// 显示全部数据
@RequestMapping("getAllOrders.action")
public String getAllOrders(String number) {
List<Orders> ordersList = this.ordersService.getAllOrders();
PageHelper.getPage(ordersList, "orders", null, null, 10, number, this.getRequest(), null);
return "admin/listorders";
}
// 按条件查询数据 (模糊查询)
@RequestMapping("queryOrdersByCond.action")
public String queryOrdersByCond(String cond, String name, String number) {
Orders orders = new Orders();
if (cond != null) {
if ("ordercode".equals(cond)) {
orders.setOrdercode(name);
}
if ("usersid".equals(cond)) {
orders.setUsersid(name);
}
if ("concertid".equals(cond)) {
orders.setConcertid(name);
}
if ("ticketid".equals(cond)) {
orders.setTicketid(name);
}
if ("price".equals(cond)) {
orders.setPrice(name);
}
if ("num".equals(cond)) {
orders.setNum(name);
}
if ("total".equals(cond)) {
orders.setTotal(name);
}
if ("status".equals(cond)) {
orders.setStatus(name);
}
}
List<String> nameList = new ArrayList<String>();
List<String> valueList = new ArrayList<String>();
nameList.add(cond);
valueList.add(name);
PageHelper.getPage(this.ordersService.getOrdersByLike(orders), "orders", nameList, valueList, 10, number, this.getRequest(), "query");
name = null;
cond = null;
return "admin/queryorders";
}
// 按主键查询数据
@RequestMapping("getOrdersById.action")
public String getOrdersById(String id) {
Orders orders = this.ordersService.getOrdersById(id);
this.getRequest().setAttribute("orders", orders);
List<Users> usersList = this.usersService.getAllUsers();
this.getRequest().setAttribute("usersList", usersList);
List<Concert> concertList = this.concertService.getAllConcert();
this.getRequest().setAttribute("concertList", concertList);
List<Ticket> ticketList = this.ticketService.getAllTicket();
this.getRequest().setAttribute("ticketList", ticketList);
return "admin/editorders";
}
public OrdersService getOrdersService() {
return ordersService;
}
public void setOrdersService(OrdersService ordersService) {
this.ordersService = ordersService;
}
}
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<base href="<%=basePath%>" />
<title>${title }</title>
</head>
<body>
<jsp:include page="header.jsp"></jsp:include>
<div class="block box">
<div class="blank"></div>
<div id="ur_here">
当前位置: <a href=".">首页</a>
<code> > </code>
购物车
</div>
</div>
<div class="blank"></div>
<div class="block table">
<div class="flowBox">
<h6>
<span>购物车</span>
</h6>
<form action="index/deletecart.action" method="post">
<table width="99%" align="center" border="0" cellpadding="5" cellspacing="1" bgcolor="#dddddd">
<tr>
<th bgcolor="#ffffff">演唱会</th>
<th bgcolor="#ffffff">区域</th>
<th bgcolor="#ffffff">数量</th>
<th bgcolor="#ffffff">票价</th>
<th bgcolor="#ffffff">日期</th>
<th bgcolor="#ffffff">操作</th>
</tr>
<c:forEach items="${cartList}" var="cart">
<tr>
<td bgcolor="#ffffff" align="center" style="width: 300px;"><a
href="index/detail.action?id=${cart.concertid }" target="_blank" class="f6">${cart.title }</a></td>
<td align="center" bgcolor="#ffffff">${cart.areaname }</td>
<td align="center" bgcolor="#ffffff">¥${cart.price }元</td>
<td align="center" bgcolor="#ffffff">${cart.num }</td>
<td align="center" bgcolor="#ffffff">${cart.addtime }</td>
<td align="center" bgcolor="#ffffff"><a
href="javascript:if (confirm('您确实要把该车辆移出购物车吗?')) location.href='<%=basePath%>index/deletecart.action?id=${cart.cartid}'; "
class="f6">移除</a></td>
</tr>
</c:forEach>
</table>
<table width="99%" align="center" border="0" cellpadding="5" cellspacing="0" bgcolor="#dddddd">
<tr>
<td bgcolor="#ffffff"><a href="index.jsp"><img src="themes/xecmoban_haier2015/images/continue.gif"
alt="continue" /> </a></td>
<td bgcolor="#ffffff" align="right"><a href="index/checkout.action"><img
src="themes/xecmoban_haier2015/images/checkout.gif" alt="checkout" /> </a></td>
</tr>
</table>
</form>
</div>
<div class="blank"></div>
<div class="blank5"></div>
</div>
<jsp:include page="footer.jsp"></jsp:include>
</body>
</html>