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

开发工具:eclipse/idea/myeclipse/sts等均可配置运行

适用

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

                            <div class="main-tabs">
                                <a th:href="@{/reserve/reserveAttractionsListUI}">更多 <i
                                        class="fa fa-angle-right"></i></a>
                                </li>
                                </ul>
                            </div>
                        </div>
                    </div>

                    <div class="main-cont">
                        <div class="tab-content">
                            <div class="tab-pane active" id="cp01">
                                <div id="oc-kx" class="owl-carousel owl-theme">
                                    <div th:each="attractions:${top10Attractions}" class="item">
    </div>
    <div class="page-container">

        <div class="container">
            <div class="row med_toppadder50 med_bottompadder50">
                <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
                    <h1>我发布的攻略</h1>
                    <div style="min-height: 150px" class="cy-news-grid-item" th:each="travelStrategy:${page.content}">
                        <div class="cy-ib-thumbnail pull-left">
                        </div>
                        <div class="booklet-cont">
                            <h5><a th:href="@{/strategy/travelStrategyDetailsUI(id=${travelStrategy.id})}"
                                   th:text="'攻略标题: ' + ${travelStrategy.title}"></a></h5>
                            <div class="cy-summary-intro">
                                <p th:text="${travelStrategy.describe}">
                                </p>
                                <div align="right" style="float:right" th:if="${travelStrategy.status == 2}">
                                    <button type="button" th:onclick="aaa([[${travelStrategy.errorMessage}]])"
                                            class="btn btn-default btn-danger">审核不通过,查看原因
        User user = userRepository.findUserByUsername(cookie.getValue());
        UserAttractions userAttractions = userAttractionsRepository.findUserAttractionsByAttractionsAndUser(attractions, user);
        //存在值就是取消预约.不存在值就是预约
        if (userAttractions != null) {
            userAttractionsRepository.delete(userAttractions);
        } 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();
            //景点name模糊查询
            if (!StringUtils.isEmpty(searchName)) {
                predicates.add((cb.like(root.get("name"), "%" + searchName + "%")));
            }
            query.where(predicates.toArray(new Predicate[]{}));
            query.orderBy(cb.desc(root.get("createDate")));
            return null;
        }, pageable);
        return attractionsPage;
    }

    public Attractions findAttractionsById(String id) {
        return attractionsRepository.findById(id).orElseThrow(() -> new ServiceException("景点id错误!"));
    }


    public List<UserHotel> getReserveHotelByUser(HttpServletRequest request) {
        Cookie cookie = CookieUitl.get(request, "username");
        if (cookie == null) {
            throw new ServiceException("未能获得正确的用户名");
        }
        User user = userRepository.findUserByUsername(cookie.getValue());
        return userHotelRepository.findUserHotelsByUser(user);

    @Autowired
    private UserRepository userRepository;

    @Autowired
    private UserRouteRepository userRouteRepository;

    public Page<TravelRoute> TravelRouteListUI(String searchName, Pageable pageable) {
        //查询启用的旅游路线列表
        Page<TravelRoute> travelRoutePage = travelRouteRepository.findAll((root, query, cb) -> {
            List<Predicate> predicates = new ArrayList<>();
            //status状态,查询状态为0,启动的路线
            predicates.add((cb.equal(root.get("status"), 0)));
            //旅游路线name模糊查询
            if (!StringUtils.isEmpty(searchName)) {
                predicates.add((cb.like(root.get("name"), "%" + searchName + "%")));
            }
            query.where(predicates.toArray(new Predicate[]{}));
            query.orderBy(cb.desc(root.get("createDate")));
            return null;
        }, pageable);
        return travelRoutePage;
    }
                </div>
            </div>
        </div>
    </div>
    <!--main section end-->
    <script src="js/jquery_min.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <script src="js/wow.min.js"></script>
    <script src="plugins/slider-pro/js/jquery.sliderPro.min.js"></script>
    <script src="plugins/owlcarousel/js/owl.carousel.min.js"></script>
    <script src="js/custom.js"></script>
    <!--js code-->
    <script type="text/javascript">
        $(document).ready(function () {
            $('#my-slider').sliderPro({
                arrows: true,
                waitForLayers: true,
                autoplay: false,
                fade: true,
                buttons: false,
                autoScaleLayers: false,
                width: 1170,
                height: 400
            });
            $('.image_fade').hover(function () {
                $(this).filter(':not(:animated)').animate({opacity: 0.8}, 400);
            }, function () {
            </div>
        </div>
    </div>
    <script th:src="@{/js/jquery_min.js}"></script>
    <script th:src="@{/js/bootstrap.min.js}"></script>
    <script th:src="@{/js/wow.min.js}"></script>
    <script th:src="@{/js/custom.js}"></script>
    <script th:src="@{/plugins/slider-pro/js/jquery.sliderPro.min.js}"></script>
    <script th:src="@{/plugins/owlcarousel/js/owl.carousel.min.js}"></script>
    <script th:src="@{/layer/layer.js}"></script>
    <script th:inline="javascript">


        function cancelTravelStrategyReserve(id) {
            $.ajax({
                url: '/travel/strategy/cancelTravelStrategyReserve',
                data: {"id": id},
                type: 'post',
                dataType: 'json',
                success: function (result) {
                    if (result.code === 200) {
                //默认为停用
                travelRoute.setStatus(StatusEnum.DOWM_STATUS.getCode());
                travelRoute.setCollectNumber(0);
                travelRoute.setCreateDate(new Date());
            }
        } else {
            //有id的情况
            TravelRoute oldTravelRoute = getTravelRouteById(travelRoute.getId());
            travelRoute.setStatus(oldTravelRoute.getStatus());
            travelRoute.setCollectNumber(oldTravelRoute.getCollectNumber());
            travelRoute.setCreateDate(oldTravelRoute.getCreateDate());
        }
        travelRouteRepository.saveAndFlush(travelRoute);
        return ResultGenerator.genSuccessResult();
    }

    @Transactional(rollbackFor = Exception.class)
    public Result saveTravelStrategy(HttpServletRequest request,TravelStrategy travelStrategy) {

        if (StringUtils.isEmpty(travelStrategy.getId())) {//没有id的情况
            travelStrategy.setId(IdGenerator.id());
            if (travelStrategy.getStatus() == null) {
                //默认为停用
                travelStrategy.setStatus(StatusEnum.DOWM_STATUS.getCode());
                travelStrategy.setCreateDate(new Date());
            }
        } else {
            //有id的情况
            TravelStrategy oldTravelStrategy = getTravelStrategyById(travelStrategy.getId());
            travelStrategy.setStatus(StatusEnum.Third_STATUS.getCode());
            travelStrategy.setCreateDate(oldTravelStrategy.getCreateDate());
            travelStrategy.setUser(oldTravelStrategy.getUser());
            travelStrategy.setTitle(oldTravelStrategy.getTitle());
            travelStrategy.setDescribe(oldTravelStrategy.getDescribe());
            travelStrategy.setErrorMessage(request.getParameter("errorMessage"));
        }
        travelStrategyRepository.saveAndFlush(travelStrategy);
        return ResultGenerator.genSuccessResult();
    }
}
package com.demo.service;

import com.demo.common.core.Result;
                                        <a th:href="@{/strategy/travelStrategyListUI}">更多 <i
                                                class="fa fa-angle-right"></i></a>
                                    </li>
                                </ul>
                            </div>
                        </div>
                    </div>
                    <ul class="main-cy-thesis">
                        <li th:each="strategy:${top10Strategy}"><a th:href="@{/strategy/travelStrategyDetailsUI(id=${strategy.id})}"
                                                             data-toggle="tooltip" data-container="body"
                                                             th:title="${strategy.title}" th:text="${strategy.title}">xxxxxxxxxxxx</a>
                        </li>
                    </ul>

                    <div class="cy-title">
                        <h2>热门路线</h2>
                        <div class="pull-right">

运行环境

Java≥8、MySQL≥5.7

开发工具

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

技术框架

JavaWeb SpringBoot JPA Thymeleaf HTML Bootstrap JavaScript SpringMVC MySQL

适用

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

功能说明

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

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

20220404154802

前台

20220404151447

20220404151453

20220404151517

20220404151525

20220404151554

20220404151738

20220404151755

20220404151808

20220404151819

20220404151830

后台

20220404152535

20220404152552

20220404152621

20220404152645


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值