基于javaweb+mysql的+JPA旅行网站旅游管理系统(前台、后台)

基于javaweb+mysql的+JPA旅行网站旅游管理系统(前台、后台)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

前台:路线收藏、攻略发布与收藏、景点预定、酒店预定等……

后台: 管理审核用户、酒店、景点、攻略、路线等……

前台

后台

技术框架

JavaWeb SpringBoot JPA Thymeleaf HTML Bootstrap JavaScript SpringMVC MySQL


                        <div class="top_header_add">
                            <ul>
                                <li><a th:href="@{/}"><i class="fa fa-home"
                                                         aria-hidden="true"></i> 爱游人旅行网 </a>
                                </li>
                            </ul>
                        </div>
                        <div class="top_login">
                            <ul>
                                <li id="login"><i class="fa fa-sign-in" aria-hidden="true"></i> 你好,请<a
                                        th:href="@{/loginUI}">登录</a>&nbsp;&nbsp;/&nbsp;&nbsp;<a
                                        th:href="@{/registerUI}">注册</a>
                                        /&nbsp;&nbsp;<a target="_blank"
                                        href="/travel/system">后台管理</a></li>
                                <li id="logout"><i class="fa fa-sign-in"></i> 你好,<a id="yonghuming"
                                                                                    th:href="@{/user/centerUI}"></a>&nbsp;&nbsp;<a
                                        th:href="@{/logout}">退出</a>
                                </li>
                        <li th:each="route:${top10Route}"><a th:href="@{/route/travelRouteDetailsUI(id=${route.id})}"
                                                             data-toggle="tooltip" data-container="body"
                                                             th:title="${route.name}" th:text="${route.name}">xxxxxxxxxxxx</a>
                        </li>
                    </ul>
                </div>
                <div class="col-lg-3 col-md-3 col-sm-12 col-xs-12">

                    <div class="cy-title">
                        <h2>友情链接</h2>
                    </div>
                    <ul class="cy-link">
                        <li><a href="javascript:void(0);">百度</a></li>
                        <li><a href="javascript:void(0);">QQ</a></li>
                        <li><a href="javascript:void(0);">微博</a></li>
                        <li><a href="javascript:void(0);">空间</a></li>
                    </ul>
                    <div class="cy-title">
                        <h2>联系我们</h2>
                    </div>
                    <ul class="cy-contact">
                        <li><i class="fa fa-map-marker"></i> 地址:河南省郑州市前程路8号郑州工商学院</li>
                        <li><i class="fa fa-compass"></i> 邮编:434000</li>
                        <li><i class="fa fa-phone"></i> 电话:158XXX3244</li>
            return userRoute != null;
        }
        return false;
    }

    public List<UserRoute> getTravelRouteByUser(HttpServletRequest request) {
        Cookie cookie = CookieUitl.get(request, "username");
        if (cookie == null) {
            throw new ServiceException("未能获得正确的用户名");
        }
        User user = userRepository.findUserByUsername(cookie.getValue());
        return userRouteRepository.findUserRouteByUser(user);
    }
    public String travelRouteListUI(Model model, @PageableDefault(size = 10) Pageable pageable) {
        Page<TravelRoute> page = systemService.getTravelRoutePage(pageable);
        model.addAttribute("page", page);
        return "system/route/list";
    }

    @RequestMapping("/getTravelRouteById")
    @ResponseBody
    public Result getTravelRouteById(String id) {
        return ResultGenerator.genSuccessResult(systemService.getTravelRouteById(id));
    }

    @RequestMapping("/updateTravelRouteStatus")
    @ResponseBody
    public Result updateTravelRouteStatus(String id) {
        return systemService.updateTravelRouteStatus(id);
    }

    @RequestMapping("/saveTravelRoute")
    private TravelStrategyRepository travelStrategyRepository;

    private Random random = new Random(100);

    public Result login(SysUser sysUser, HttpServletResponse response) {
        SysUser sysUserByUsrname = sysUserRepository.findSysUserByUsername(sysUser.getUsername());
        if (sysUserByUsrname == null) {
            return ResultGenerator.genFailResult("用户名错误!");
        } else {
            if (sysUser.getPassword().equals(sysUserByUsrname.getPassword())) {
                CookieUitl.set(response, "sysUsername", sysUser.getUsername(), 3600);
                return ResultGenerator.genSuccessResult();
            } else {
                return ResultGenerator.genFailResult("密码错误");
            }
        }

    }

    public void logout(HttpServletRequest request, HttpServletResponse response) {
                                                        <label class="label col col-1">通讯地址</label>
                                                        <div class="col col-2">
                                                            <p class="form-control-static">未实现</p>
                                                        </div>
                                                        <label class="label col col-1">职务</label>
                                                        <div class="col col-2">
                                                            <p class="form-control-static">未实现</p>
                                                        </div>
                                                    </section>
                                                    <section>
                                                        <label class="label col col-1">所在地区</label>
                                                        <div class="col col-2">
                                                            <p class="form-control-static">未实现</p>
                                                        </div>

                                                        <label class="label col col-1">所属人群</label>
                                                        <div class="col col-2">
                                                            <p class="form-control-static">未实现</p>
                                                        </div>

                                                    </section>
                                                </div>
                                            </fieldset>
                                            <footer>
    }

    @RequestMapping("/cancelTravelStrategyReserve")
    @ResponseBody
    public Result cancelTravelStrategyReserve(HttpServletRequest request, String id) {
        return strategyService.cancelTravelStrategyReserve(request, id);
    }

    @RequestMapping("/strategyManageUI")
    public String strategyManageUI(Model model, HttpServletRequest request) {
        List<UserStrategy> userStrategyList = strategyService.getTravelStrategyByUser(request);
        List<TravelStrategy> top10Strategy = strategyService.findTop10Strategy();
        model.addAttribute("top10Strategy", top10Strategy);
        model.addAttribute("userStrategyList", userStrategyList);
        return "strategy/strategy-manage";
    }

    @RequestMapping("/saveTravelStrategy")
    @ResponseBody
    public Result saveTravelStrategy(HttpServletRequest request, TravelStrategy travelStrategy) {
        return strategyService.saveTravelStrategy(request, travelStrategy);
    }

    @RequestMapping("/pushStrategyListUI")
@Controller
@RequestMapping("/reserve")
public class ReserveController {

    @Autowired
    private ReserveService reserveService;

    @RequestMapping("/reserveHotelListUI")
    public String reserveHotelListUI(Model model, @ModelAttribute("searchName") String searchName, @PageableDefault(size = 10) Pageable pageable) {
        Page<Hotel> page = reserveService.reserveHotelListUI(searchName, pageable);
        List<Hotel> top10Hotel = reserveService.getTop10Hotel();
        List<Attractions> top10Attractions = reserveService.getTop10Attractions();
        model.addAttribute("top10Hotel", top10Hotel);
        model.addAttribute("top10Attractions", top10Attractions);
        model.addAttribute("page", page);
        return "reserve/reserve-hotel";
    }

    @RequestMapping("/hotelDetailsUI")
    public String hotelDetailsUI(Model model, HttpServletRequest request, @RequestParam(name = "id") String id) {
        Hotel hotel = reserveService.findHotelById(id);
        //如果用户显示已经预约,就是查看预约列表
        Boolean flag = reserveService.isReserveHotel(request, id);
        List<Hotel> top10Hotel = reserveService.getTop10Hotel();
        SysUser sysUserByUsrname = sysUserRepository.findSysUserByUsername(sysUser.getUsername());
        if (sysUserByUsrname == null) {
            return ResultGenerator.genFailResult("用户名错误!");
        } else {
            if (sysUser.getPassword().equals(sysUserByUsrname.getPassword())) {
                CookieUitl.set(response, "sysUsername", sysUser.getUsername(), 3600);
                return ResultGenerator.genSuccessResult();
            } else {
                return ResultGenerator.genFailResult("密码错误");
            }
        }

    }
                                                                    <option value="松江区">松江区</option>
                                                                    <option value="青浦区">青浦区</option>
                                                                    <option value="嘉定区">嘉定区</option>
                                                                    <option value="宝山区">宝山区</option>
                                                                    <option value="崇明县">崇明县</option>
                                                                </select>
                                                                <i></i>
                                                            </label>
                                                        </div>
                                                        <label class="label col col-1">所属人群</label>
                                                        <div class="col col-2">
                                                            <label class="select">
                                                                <select id="throng" name="cmsMember.throng">
                                                                    <option value="">--请选择--</option>
                                                                    <option value="科研">科研</option>
                                                                    <option value="科技管理">科技管理</option>
                                                                    <option value="技术">技术</option>
                                                                    <option value="教师">教师</option>
                                                                    <option value="学生">学生</option>
                                                                    <option value="其他" selected="selected">其他</option>
                                                                </select>
                                                                <i></i>
                                                            </label>
                                                        </div>
                                                    </section>
                                                </div>
            //景点name模糊查询
            query.where(predicates.toArray(new Predicate[]{}));
            query.orderBy(cb.desc(root.get("createDate")));
            return null;
        }, pageable);
        return attractionsPage.getContent();
    }
}

package com.demo.service;

import com.demo.common.core.Result;
import com.demo.common.core.ResultGenerator;
import com.demo.common.core.ServiceException;
import com.demo.common.enums.StatusEnum;
import com.demo.model.TravelStrategy;
import com.demo.model.User;
import com.demo.model.UserStrategy;
import com.demo.common.util.CookieUitl;
import com.demo.common.util.IdGenerator;
import com.demo.common.core.Result;
import com.demo.model.TravelRoute;
import com.demo.model.UserRoute;
import com.demo.service.RouteService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.web.PageableDefault;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import java.util.List;


@Controller
@RequestMapping("/route")
public class RouteController {

    @Autowired
    private RouteService routeService;

        } else {
            UserAttractions newUserAttractions = new UserAttractions();
            newUserAttractions.setId(IdGenerator.id());
            newUserAttractions.setCreateDate(new Date());
            newUserAttractions.setUser(user);
            newUserAttractions.setAttractions(attractions);
            userAttractionsRepository.saveAndFlush(newUserAttractions);
        }
        return ResultGenerator.genSuccessResult();
    }

    public Boolean isReserveAttractions(HttpServletRequest request, String id) {
        Cookie cookie = CookieUitl.get(request, "username");
        if (cookie != null) {
            User user = userRepository.findUserByUsername(cookie.getValue());
            Attractions attractions = findAttractionsById(id);
            UserAttractions userAttractions = userAttractionsRepository.findUserAttractionsByAttractionsAndUser(attractions, user);
            //每个景点只能预约一次
            return userAttractions != null;
        }
        return false;
    }
            $("#login").show();
            console.log('隐藏后面退出');
        }
    });


    function getCookie(key) {
        var arr1 = document.cookie.split("; ");//由于cookie是通过一个分号+空格的形式串联起来的,所以这里需要先按分号空格截断,变成[name=Jack,pwd=123456,age=22]数组类型;
        for (var i = 0; i < arr1.length; i++) {
            var arr2 = arr1[i].split("=");//通过=截断,把name=Jack截断成[name,Jack]数组;
            if (arr2[0] == key) {
                return decodeURI(arr2[1]);
            }
        }
    }

</script>
</body>
</html>
<!DOCTYPE html>
<html
        xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:th="http://www.thymeleaf.org"
        layout:decorate="~{base/layout}">

        return "strategy/travelStrategy";
    }

    @RequestMapping("/travelStrategyDetailsUI")
    public String travelStrategyDetailsUI(Model model, HttpServletRequest request, @RequestParam(name = "id") String id) {
        TravelStrategy travelStrategy = strategyService.findTravelStrategyById(id);
        //如果用户显示已经关注,就是查看关注列表
        Boolean flag = strategyService.isStrategy(request, id);
        List<TravelStrategy> top10Strategy = strategyService.findTop10Strategy();
        model.addAttribute("top10Strategy", top10Strategy);
        model.addAttribute("travelStrategy", travelStrategy);
        model.addAttribute("flag", flag);
        return "strategy/travelStrategy-details";

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

软件名称: 乐旅旅游网站管理系统 英文简称: Lelvw 软件版本: V 3.9.0 软件类型:免费版 运行环境:Asp + IIs6 + Access + Windows2003 程序构造: ASP + Access AJAX + XML + DIV + CSS + HTML 乐旅旅游网站系统: 是一套面向中小型旅游企业一体化管理旅游系统,无论在稳定性、代码优化、运行效率、负载能力、安全等级、功能可操控性和权限严密性等方面都居国内外同类产品领先地位。帮助中小型旅游企业实现管理,应用了新一代的B/S结构,巧妙地结合了酒店、机票、线路、景区、会员等多种功能于一体,它以浏览器为软件界面的导航式操作,快速完成日常管理中的会员,订单等操作,并结合准确、高效的统计和业务分析功能,通过交互式的数据中心与一目了然的统计,使企业决策者最关心的往来订单、会员状况等能够即点即现。 在当今瞬机万变的市场环境中,快速高效的IT解决方案是您业务成功的关键。我们Lelvw因为能为您量身打造完全符合需求的解决方案而自豪,运用我们的系统,我们可以让您的企业更高效,从而在市场中获得更大的利润。 20130222更新: 1、全面升级Kindetior编辑器 2、编辑兼容火狐,360浏览器器 20130120更新: 1、新增后台登陆日志 2、安全加载SQL防注 3、底部列表显示整理 20121220更新: 1、首页页面优化显示 2、关于我们优化显示 3、广告链接字段加长 20121121更新: 1、修复酒店城市搜索 2、首页图片加载美化 3、管理密码长度修正 20121015更新: 1、租车详细界面优化 2、酒店详细界面优化 3、线路详细界面优化 特点和优势 1、基于B/S架构,通过本地电脑、局域网、互联网皆可使用,使得企业的管理与业务不受地域限制 2. 客户端无需安装专用软件,使用浏览器即可实现异地、实时业务办理 3、软件完全独立安装在用户自己的电脑或是服务器上,提供数据备份工具,数据资料彻底安全 4. 管理权限分配灵活严谨,可以设置操作人员不同级别的操作权限,避免越权操作,数据相互保密 5、账号不限,可以任意添加、修改、删除用户帐号 6、使用期限不限,一次购买,终身使用 7、安装简单,使用简捷方便,技术支持使您更快熟悉软件功能 注意事项: 1.本程序只需支持ASP空间即可运行,使用前请先联系空间商。 2.上传wwwroot文件夹到你的网站根目录,然后运行即可。 3.免费版适用个人用途,如需建立商业站点或公司使用请购买商业版。 版权所有:乐旅网 主站:http://www.lelvw.com 演示:http://www.lelvw.com/lv
目前,我国旅游业信息化管理的进程缓慢,跟国外的城市相比管理依然落后。这就 需要提供最好的服务,提供最完善的设施和最先进的管理。在信息时代,更重要的是还 必须要有一个完善的信息宣传系统,便于方便客人以及更好地宣传城市。特别是近年来 计算机和网络技术和应用在我国突飞猛进的发展, 越来越多的行业都涉足到这个新兴的 领域,而城市宣传由于自身应该和游客及时快捷紧密联系的特点,更应该乘着这股春风 打开城市管理新的一页, 更为城市管理与国际接轨以及城市的长足发展打下良好的软件 基础。旅游线路管理系统设计与开发,它可以借用计算机信息化的优势,方便快捷的实 现游客和管理者的交户,方便管理者在第一时间了解游客的需求,及时做好应对措施, 从而可以使旅游风景区在竞争日益激烈的城市服务行业中取得优势。 科学技术日新月异的进步,让人类生活发生了巨大的变化,计算机网络技术的飞速 发展,使各行各业在计算机网络技术应用方面得到了广泛的普及和使用。信息化时代的 到来成为不可抗拒的潮流,人类文明正在进入一个崭新的时代。因此,旅游线路管理系 统设计与开发也以方便、快捷、费用低的优点正慢慢地进入人们的生活,将传统的城市 旅游宣传方式彻底的解脱出来,提高效率,减轻工人人员以往繁忙的工作,提高宣传效 果,使工作人员可以花更多的时间在选择如何提高服务质量上。从而使旅游从业人员有 更多时间来获取信息、了解信息、掌握信息。 面对激烈的市场竞争和纷繁复杂的业务需求,现代旅游业的宣传必须通过城市网络 宣传系统的帮助,来完成日常管理,特殊服务等各项业务。引入城市网络宣传系统,对 旅游风景区的旅游业务进行科学化、现代化的宣传,是提高城市旅游形象、档次和服务 水准的有力表现方式。为城市旅游强化内部管理、提高服务质量,减少工作中的差错, 防止跑单漏单提供了可靠的技术手段和技术保障 . 为了能让宣传人员从繁重的工作中解脱出来, 使宣传人员在使用一个系统以后能极 其容易地对所有旅游资源进行宣传,并且准确无误,轻松自如。因此开发一个旅游线路 管理系统设计与开发是当务之急,也是本论文选题的重要意义和研究宗旨。 关键字 : 信息宣传 ,JSP,,数据库, 计算机网络应用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值