视频演示
基于Springboot+Vue的电影售票管理系统 计算机毕业设计
前言
影院管理系统作为电影院业务的关键组成部分,不仅为观众提供了便利,还为电影院管理提供了精细化的工具和数据支持。传统的售票方式存在繁琐、低效和容易出错的问题,而现代的售票系统通过数字化和自动化的方式,为观众提供了多种购票渠道,包括网站、手机应用和自动售票机,大大提升了购票的便捷性和效率。
影院管理系统的功能不仅仅局限于购票,还包括电影信息管理、座位分配、票务统计和报告等。电影院可以通过系统轻松更新和维护电影信息,包括放映时间、票价和演员阵容等,确保观众能够及时了解最新的电影信息。座位分配功能可以根据观众的选择或自动分配座位,确保每个观众都能够享受到一个舒适的观影位置。票务统计和报告功能可以帮助电影院管理层了解销售数据和趋势,为他们做出战略决策提供参考。
用户端首页
查看电影页面
预定门票页面
查看订单页面
订单管理页面
电影管理页面
权限管理页面
用户登录核心代码
public LoginUser login(SysUserVo sysUserVo) {
SysUser user = sysUserMapper.findUserByName(sysUserVo.getUserName());
if (user == null) {
throw new AuthenticationException("用户名不存在");
}
Md5Hash md5Hash = new Md5Hash(sysUserVo.getPassword(), user.getSalt(), 1024);
if (!user.getPassword().equals(md5Hash.toHex())) {
throw new AuthenticationException("用户名或密码错误");
}
LoginUser loginUser = findLoginUser(sysUserVo);
String token = JwtUtil.sign(user.getUserName(), user.getPassword());
loginUser.setToken(token);
return loginUser;
}
选座购票核心代码
public static String changeSessionSeats(String curSessionSeats, String selectSeats) {
JSONObject curSessionSeatsJSON = JSONObject.parseObject(curSessionSeats);
Map<String, Integer> selectedSeatsMap = new LinkedHashMap<>();
String[] selectedSeats = selectSeats.split(",");
for (int i = 0; i < selectedSeats.length; i++) {
String row = selectedSeats[i].substring(selectedSeats[i].indexOf("\"") + 1, selectedSeats[i].indexOf("排"));
Integer col = Integer.parseInt(selectedSeats[i].substring(selectedSeats[i].indexOf("排") + 1, selectedSeats[i].indexOf("座")));
selectedSeatsMap.put(row, col);
}
selectedSeatsMap.forEach((key, value) -> {
System.out.println("key = " + key + " value=" + value);
});
Map<String, Object> valueMap = new LinkedHashMap<>();
valueMap.putAll(curSessionSeatsJSON);
valueMap.forEach((key, value) -> System.out.println("\"" + key + "\":" + " " + value));
selectedSeatsMap.forEach((index, value) -> {
((JSONArray) valueMap.get(index)).set(value - 1, 0);
});
JSONObject newSessionSeatsJSON = new JSONObject(valueMap);
return JSONObject.toJSONString(newSessionSeatsJSON);
}
场次管理核心代码
@GetMapping("/sysHall")
public ResponseResult findAllHalls(SysHall sysHall) {
startPage();
return getResult(sysHallService.findAllHalls(sysHall));
}
@GetMapping("/sysHall/{hallId}")
public ResponseResult findHallById(@PathVariable Long hallId) {
SysHall sysHall = new SysHall();
sysHall.setHallId(hallId);
return getResult(sysHallService.findHallById(sysHall));
}
@PostMapping("/sysHall")
public ResponseResult addHall(@Validated @RequestBody SysHall sysHall) {
return getResult(sysHallService.addHall(sysHall));
}
@PutMapping("/sysHall")
public ResponseResult updateHall(@Validated @RequestBody SysHall sysHall) {
int rows = sysHallService.updateHall(sysHall);
return getResult(rows);
}
@PostMapping("/sysHall/delete")
public ResponseResult deleteHall(@RequestBody SysHall[] sysHalls) {
return getResult(sysHallService.deleteHall(sysHalls));
}