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

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

系统架构图:

img

数据结构图:

img

景点库:

img

景点详情:

img

旅游线路:

img

线路详情:

img

酒店列表:

img

酒店详情:

img

前台个人管理:

img

后台登陆:

img

后台管理页面:

img

景点管理:

img

线路活动管理:

img

酒店管理:

img

img

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

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

酒店管理控制器代码:

@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";
    }


}
 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
一、项目简介 本项目是一套基于SSM旅游管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具、项目说明等,该项目可以直接作为毕设使用。 项目都经过严格调试,确保可以运行! 二、技术实现 ​后台框架:Spring、SpringMVC、MyBatis ​数据库:MySQL 开发环境:JDK、Eclipse、Tomcat 三、系统功能 本系统主要包含了:系统用户管理、景点信息管理、新闻管理、公告文章管理多个功能模块。 下面分别简单阐述一下这几个功能模块需求。 1.登陆注册模块 管理员的登录模块:管理员登录系统对本系统其他管理模块进行管理。 用户的登录模块:用户登录本系统,对个人的信息等进行查询,操作可使用的功能。 用户注册模块:游客用户可以进行用户注册,系统会反馈是否注册成功。 添加管理员模块:向本系统中添加更多的管理人员,管理员包括普通管理员和超级管理员。 2.景点信息管理模块: 景点信息列表:将数据库的景点信息表以列表的形式呈现给管理员。 添加景点信息:实现管理员添加景点信息。 修改景点信息:实现管理员修改景点信息。 3.公告文章管理模块: 公告文章列表:将数据库的公告文章表以列表的形式呈现给管理员。 添加公告文章:实现管理员添加公告文章。 修改公告文章:实现管理员修改公告文章。 4.旅游线路管理模块: 旅游线路列表:显示系统的所有旅游线路,可以通过关键字查询。 旅游线路删除:对输入错误或过期的旅游线路删除。 5.变幻图管理模块: 变幻图列表:显示系统的所有变幻图,可以通过关键字查询。 变幻图删除:对输入错误或过期的变幻图删除。 6.用户模块: 资料管理:用户登录本系统。可以对自己的个人主页进行查看。 系统信息:用户可以查看自己的系统提示信息。 修改资料:用户可以修改自己的账号密码。 信息搜索:用户可以通过关键字搜索站内信息。 密码修改:用户可以修改个人登录密码。 7.系统管理模块:包括数据备份。 8.退出模块: 管理员退出:管理员用来退出系统。 用户退出:用户用来退出系统。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。
### 回答1: 我可以回答这个问题。基于ssm框架的旅游信息管理系统研究方法,一般包括需求分析、系统设计、编码实现、测试和部署等步骤。具体来说,可以采用UML建模工具进行需求分析和系统设计,使用Java语言编写代码,使用JUnit等测试工具进行测试,最后将系统部署到服务器上。同时,还需要注意系统的安全性和可扩展性等方面的问题。 ### 回答2: 基于SSM框架的旅游信息管理系统的研究方法可以分为需求分析、系统设计系统开发和系统测试四个阶段。 首先,在需求分析阶段,研究人员需要与用户进行沟通,了解用户对旅游信息管理系统的需求和期望。可以通过问卷调查、访谈等方式收集用户意见和建议,并分析这些需求,确定系统功能和性能的要求,为后续的系统设计做准备。 其次,在系统设计阶段,基于收集到的需求,研究人员需要设计系统的结构和功能模块。可以采用UML(统一建模语言)等工具,设计系统的用例图、类图和时序图等,明确系统的各个模块之间的关系和交互方式,并确定技术方案和框架选择,例如选择SSM框架作为开发基础。 然后,在系统开发阶段,研究人员按照所设计系统框架和模块进行具体的编码实现。可以采用Java语言编写后台业务逻辑代码,使用Spring来管理依赖注入和事务管理,采用SpringMVC来处理用户请求,使用MyBatis来操作数据库等。在开发过程中,需要确保系统的功能的正确性和可靠性,保证系统的稳定运行。 最后,在系统测试阶段,研究人员需要对开发完成的系统进行系统测试,包括功能测试、性能测试、兼容性测试等。可以通过编写测试用例,模拟用户的操作情况,验证系统的各项功能是否符合需求,并测试系统的性能负载是否能满足用户的需求。通过测试发现和解决系统中的问题,最终确保系统的质量和可靠性。 综上所述,基于SSM框架的旅游信息管理系统的研究方法主要包括需求分析、系统设计系统开发和系统测试四个阶段,通过迭代反馈,不断优化和完善系统,最终实现一个功能完备、性能稳定的旅游信息管理系统。 ### 回答3: 基于SSM框架的旅游信息管理系统的研究方法主要包括需求分析、系统设计系统实现系统测试等步骤。 首先,需求分析是整个系统研究的第一步。通过分析旅游信息管理系统的使用者需要和功能要求,确定系统的核心功能和模块。在需求分析阶段,可以采用问卷调查、访谈或焦点小组等方法,收集用户的需求,并基于此完成需求规格说明书的编写。 其次,系统设计是根据需求规格说明进行系统结构和界面的设计。在这一阶段,可以采用UML建模方法,绘制用例图、类图、时序图等,确定系统的各个模块功能和之间的关系。 然后,系统实现是将系统设计转化为实际可运行的代码。在这一阶段,可以采用SSM框架进行开发,使用Spring框架实现业务逻辑的控制,使用Spring MVC框架实现页面的跳转和请求处理,使用MyBatis框架实现对数据库的访问。同时,还需要根据系统的需求,开发相应的前端页面和数据库表结构,并进行系统的集成和调试。 最后,系统测试是验证系统实现是否符合需求的重要步骤。可以采用黑盒测试和白盒测试相结合的方法,对系统进行功能测试、性能测试和安全性测试等。通过测试,可以发现系统的问题和不足之处,并进行相应的修复和优化。 综上所述,基于SSM框架的旅游信息管理系统研究方法主要包括需求分析、系统设计系统实现系统测试等步骤,这些步骤相互关联、相互作用,最终完成一个高效可靠的旅游信息管理系统
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程千纸鹤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值