基于Springboot+Vue的电影售票管理系统 计算机毕业设计

视频演示

基于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));
    }

  • 14
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值