基于SSM实现旅游网站管理系统

简介: 基于SSM实现旅游网站管理系统

本项目是基于Java语言的SSM框架作为后台进行设计,页面采用JSP,前端使用的是JS、CSS、JQUEY、BootStrap来实现并设计页面;数据库采用目前比较流行的MYSQL数据库进行信息存储,应用服务器采用Tomcat8.0。

系统架构图:

数据结构图:

景点库:

景点详情:

旅游线路:

线路详情:

酒店列表:

酒店详情:

前台个人管理:

后台登陆:

后台管理页面:

景点管理:

线路活动管理:

酒店管理:

后台管理员可以对前端的信息进行添加、修改、发布、删除、查看等操作。

主要包括旅游线路管理、景点信息管理、订单管理、留言评论管理、酒店管理、管理员登录退出模块。

酒店管理控制器代码:

@Controller
@RequestMapping("/hotel")
public class HotelController {
    @Autowired
    private HotelService hotelService ;
    /**
     * 旅游酒店前台:分页查询
     */
    @RequestMapping("/pageQuery")
    @ResponseBody
    public PageBean<Hotel> pageQuery(String currentPage,String pageSize,String cid){
        int cids = 3;//类别id
        //2.处理参数
        if(cid != null && cid.length() > 0 && !"null".equals(cid)){
            cids = Integer.parseInt(cid);
        }
        int currentPages = 0;//当前页码,如果不传递,则默认为第一页
        if(currentPage != null && currentPage.length() > 0){
            currentPages = Integer.parseInt(currentPage);
        }else{
            currentPages = 1;
        }
        int pageSizes = 0;//每页显示条数,如果不传递,默认每页显示5条记录
        if(pageSize != null && pageSize.length() > 0){
            pageSizes = Integer.parseInt(pageSize);
        }else{
            pageSizes = 5;
        }
        //3. 调用service查询PageBean对象
        PageBean<Hotel> pb = hotelService.pageQuery(cids, currentPages, pageSizes);
        //4. 将pageBean对象序列化为json,返回
        return pb;
    }
    /**
     * 根据id查询一个旅游酒店的详细信息
     * @throws ServletException
     * @throws IOException
     */
    @RequestMapping("/findOne")
    @ResponseBody
    public Hotel findOne(String tid){
        //1.调用service查询hotel对象
        Hotel hotel = hotelService.findOne(tid);
        //2.转为json写回客户端
        return hotel;
    }
    /**
     * 首页查询旅游酒店酒店
     * @throws ServletException
     * @throws IOException
     */
    @RequestMapping("/findAll")
    @ResponseBody
    public ResultInfo findAll(String limit){
        int limitNum = 12;
        if (limit != null && limit.length() > 0) {
            limitNum = Integer.parseInt(limit);
        }
        List<Hotel> hotels = new ArrayList<>();
        boolean flag = true;
        try {
            hotels = hotelService.findAll(limitNum);
        } catch (Exception ex) {
            flag = false;
            ex.printStackTrace();
        }
        ResultInfo info = new ResultInfo();
        info.setData(hotels);
        info.setFlag(true);
        return info;
    }
    /**
     * 后台管理:旅游酒店酒店
     * @throws ServletException
     * @throws IOException
     */
    @RequestMapping("/findAdminAll")
    public ModelAndView findAdminAll(String currentPage,String pageSize,String cid) {
       int cids = 3;//类别id
        //2.处理参数
        if(cid != null && cid.length() > 0 && !"null".equals(cid)){
            cids = Integer.parseInt(cid);
        }
        int currentPages = 0;//当前页码,如果不传递,则默认为第一页
        if(currentPage != null && currentPage.length() > 0){
            currentPages = Integer.parseInt(currentPage);
        }else{
            currentPages = 1;
        }
        int pageSizes = 0;//每页显示条数,如果不传递,默认每页显示5条记录
        if(pageSize != null && pageSize.length() > 0){
            pageSizes = Integer.parseInt(pageSize);
        }else{
            pageSizes = 5;
        }
        //3. 调用service查询PageBean对象
        PageBean<Hotel> pb = hotelService.pageQueryAdmin(cids, currentPages, pageSizes);
        ModelAndView mv = new ModelAndView();
        mv.addObject("pb", pb);
        mv.setViewName("/admin/pages/hotel-list.jsp");
        return mv;
    }
    /**
     * 后台管理:旅游酒店酒店添加
     * @throws ServletException
     * @throws IOException
     */
    @RequestMapping("/addHotel")
    public String addHotel(HttpServletRequest request,Hotel hotel, MultipartFile myFile) throws ServletException, IOException, ParseException {
            String path = request.getServletContext().getRealPath("/img/product/small/");
            String newFileName = "";
            if(myFile!=null&&!myFile.isEmpty()) {
                String fileName = myFile.getOriginalFilename();
                String suffix = fileName.substring(fileName.lastIndexOf("."));
                newFileName = UUID.randomUUID() + suffix;
                File file = new File(path + newFileName);
                try{
                    myFile.transferTo(file);
                }catch (Exception ex){
                    ex.printStackTrace();;
                }
            }
        hotel.setTdate(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
        hotel.setTimg("/img/product/small/"+newFileName);
        //执行添加功能
        boolean result = hotelService.addHotel(hotel);
        return "redirect:/hotel/findAdminAll";
    }
    /**
     * 后台旅游酒店管理:修改查询单个酒店初始化
     * @throws ServletException
     * @throws IOException
     */
    @RequestMapping("/findHotelByRid")
    public ModelAndView findHotelByRid(String rid){
        Hotel hotel = hotelService.findOne(rid);
        ModelAndView mv = new ModelAndView();
        mv.addObject("hotel", hotel);
        mv.setViewName("/admin/pages/hotel-update.jsp");
        return mv;
    }
    /**
     * 后台管理:旅游酒店酒店添加
     *
     * @param request
     * @throws ServletException
     * @throws IOException
     */
    @RequestMapping("/addHotelImages")
    public String addHotelImages(HttpServletRequest request,String tid,@RequestParam("myFiles") MultipartFile[] myFiles) throws IOException{
        HotelImg hotelImg = new HotelImg();
        hotelImg.setTid(Integer.parseInt(tid));
        String path = request.getServletContext().getRealPath("/img/product/size6/");
        for (MultipartFile multipartFile:myFiles) {
            if(!multipartFile.isEmpty()&&multipartFile.getSize()>0) {
                String fileName = multipartFile.getOriginalFilename();
                String suffix = fileName.substring(fileName.lastIndexOf("."));
                String newFileName = UUID.randomUUID() + suffix;
                File file = new File(path + newFileName);
                multipartFile.transferTo(file);
                hotelImg.setSmallPic("/img/product/size6/" + newFileName);
                hotelImg.setBigPic("/img/product/size6/" + newFileName);
                //循环插入图片
                hotelService.addHotelImgs(hotelImg);
            }
        }
        //跳转到
       return "redirect:/hotel/findAdminAll";
    }
    /**
     * 后台管理:旅游酒店酒店下架---酒店不要删除,因为有关联的订单
     * @param request
     * @throws ServletException
     * @throws IOException
     */
    @RequestMapping("/updateHotel")
    public String updateHotel(HttpServletRequest request,Hotel hotel,String nowimg,MultipartFile myFile) throws IOException {
        String path = request.getServletContext().getRealPath("/img/product/small/");
        if(myFile!=null&&!myFile.isEmpty()) {
            String fileName = myFile.getOriginalFilename();
            String suffix = fileName.substring(fileName.lastIndexOf("."));
            String newFileName = UUID.randomUUID() + suffix;
            File file = new File(path + newFileName);
            myFile.transferTo(file);
            hotel.setTdate(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
            hotel.setTimg("img/product/small/"+newFileName);
        }else{
            hotel.setTimg(nowimg);
        }
        hotel.setTdate(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
        //执行修改功能
        boolean result = hotelService.updateHotel(hotel);
        return "redirect:/hotel/findAdminAll";
    }
    /**
     * 后台旅游酒店管理:旅游酒店下线
     * @throws ServletException
     * @throws IOException
     */
    @RequestMapping("/updateFlag")
    public String updateFlag(String rid, String rflag){
         hotelService.updateFlag(rid,rflag);
        return "redirect:/hotel/findAdminAll";
    }
}
相关文章
|
4月前
|
Java 数据库连接 Maven
手把手教你如何搭建SSM框架、图书商城系统案例
这篇文章是关于如何搭建SSM框架以及实现一个图书商城系统的详细教程,包括了项目的配置文件整合、依赖管理、项目结构和运行效果展示,并提供了GitHub源码链接。
手把手教你如何搭建SSM框架、图书商城系统案例
|
3月前
|
Java 应用服务中间件 数据库连接
ssm项目整合,简单的用户管理系统
文章介绍了一个使用SSM框架(Spring、SpringMVC、MyBatis)构建的简单用户管理系统的整合过程,包括项目搭建、数据库配置、各层代码实现以及视图展示。
ssm项目整合,简单的用户管理系统
|
3月前
|
XML Java 数据库连接
如何搭建SSM框架、图书商城系统
这是一份详尽的《Spring + SpringMVC + Mybatis 整合指南》,作者耗时良久整理出约五万字的内容,现已经全部笔记公开。此文档详细地介绍了如何搭建与整合SSM框架,具体步骤包括创建Maven项目、添加web骨架、配置pom文件以及整合Spring、SpringMVC和Mybatis等。无论是对初学者还是有一定基础的开发者来说,都是很好的学习资源。此外,作者还提供了项目源码的GitHub链接,方便读者实践。虽然当前主流推荐学习SpringBoot,但了解SSM框架仍然是不可或缺的基础。
46 0
|
4月前
|
SQL Java 应用服务中间件
使用SSM搭建图书商城管理系统(完整过程介绍、售后服务哈哈哈)
这篇文章是关于如何使用SSM框架搭建图书商城管理系统的教程,包括完整过程介绍、常见问题解答和售后服务,提供了项目地址、运行环境配置、效果图展示以及运行代码的步骤。
使用SSM搭建图书商城管理系统(完整过程介绍、售后服务哈哈哈)
|
5月前
|
存储 关系型数据库 测试技术
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)(2)
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)
78 1
|
6月前
|
前端开发
杨校老师之基于SSM开发的校园点餐配送系统
杨校老师之基于SSM开发的校园点餐配送系统
65 0
杨校老师之基于SSM开发的校园点餐配送系统
|
6月前
|
存储 Java 关系型数据库
基于SSM框架的电影院售票网站
基于SSM框架的电影院售票网站
基于SSM框架的电影院售票网站
|
5月前
|
安全 数据挖掘 测试技术
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)(2)
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)
80 0
|
5月前
|
Java 关系型数据库 MySQL
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)(1)
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)
76 0
|
5月前
|
Java 关系型数据库 测试技术
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)(1)
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)
66 0